Blame SOURCES/gst-p-ugly-cleanup.sh

e14fb0
#!/bin/sh
e14fb0
e14fb0
# Process a gst-plugins-ugly tarball to remove
e14fb0
# unwanted GStreamer plugins.
e14fb0
#
e14fb0
# See https://bugzilla.redhat.com/show_bug.cgi?id=1397261
e14fb0
# for details
e14fb0
#
e14fb0
# Bastien Nocera <bnocera@redhat.com> - 2010
e14fb0
# Yaakov Selkowitz <yselkowi@redhat.com> - 2016
e14fb0
#
e14fb0
e14fb0
SOURCE="$1"
e14fb0
NEW_SOURCE=`echo $SOURCE | sed 's/ugly-/ugly-free-/'`
e14fb0
DIRECTORY=`echo $SOURCE | sed 's/\.tar\.xz//'`
e14fb0
e14fb0
ALLOWED="
e14fb0
xingmux
e14fb0
"
e14fb0
e14fb0
NOT_ALLOWED="
e14fb0
asfdemux
e14fb0
dvdlpcmdec
e14fb0
dvdsub
e14fb0
realmedia
e14fb0
"
e14fb0
e14fb0
error()
e14fb0
{
e14fb0
	MESSAGE=$1
e14fb0
	echo $MESSAGE
e14fb0
	exit 1
e14fb0
}
e14fb0
e14fb0
check_allowed()
e14fb0
{
e14fb0
	MODULE=$1
e14fb0
	for i in $ALLOWED ; do
e14fb0
		if test x$MODULE = x$i ; then
e14fb0
			return 0;
e14fb0
		fi
e14fb0
	done
e14fb0
	# Ignore errors coming from ext/ directory
e14fb0
	# they require external libraries so are ineffective anyway
e14fb0
	return 1;
e14fb0
}
e14fb0
e14fb0
check_not_allowed()
e14fb0
{
e14fb0
	MODULE=$1
e14fb0
	for i in $NOT_ALLOWED ; do
e14fb0
		if test x$MODULE = x$i ; then
e14fb0
			return 0;
e14fb0
		fi
e14fb0
	done
e14fb0
	return 1;
e14fb0
}
e14fb0
e14fb0
rm -rf $DIRECTORY
e14fb0
tar xJf $SOURCE || error "Cannot unpack $SOURCE"
e14fb0
pushd $DIRECTORY > /dev/null || error "Cannot open directory \"$DIRECTORY\""
e14fb0
e14fb0
unknown=""
e14fb0
for subdir in gst ext; do
e14fb0
	for dir in $subdir/* ; do
e14fb0
		# Don't touch non-directories
e14fb0
		if ! [ -d $dir ] ; then
e14fb0
			continue;
e14fb0
		fi
e14fb0
		MODULE=`basename $dir`
e14fb0
		if ( check_not_allowed $MODULE ) ; then
e14fb0
			echo "**** Removing $MODULE ****"
e14fb0
			echo "Removing directory $dir"
e14fb0
			rm -r $dir || error "Cannot remove $dir"
e14fb0
			echo
e14fb0
		elif test $subdir = ext  || test $subdir = sys; then
e14fb0
			# Ignore library or system non-blacklisted plugins
e14fb0
			continue;
e14fb0
		elif ! ( check_allowed $MODULE ) ; then
e14fb0
			echo "Unknown module in $dir"
e14fb0
			unknown="$unknown $dir"
e14fb0
		fi
e14fb0
	done
e14fb0
done
e14fb0
e14fb0
echo
e14fb0
e14fb0
if test "x$unknown" != "x"; then
e14fb0
  echo -n "Aborting due to unknown modules: "
e14fb0
  echo "$unknown" | sed "s/ /\n  /g"
e14fb0
  exit 1
e14fb0
fi
e14fb0
e14fb0
popd > /dev/null
e14fb0
e14fb0
tar cJf $NEW_SOURCE $DIRECTORY
e14fb0
echo "$NEW_SOURCE is ready to use"
e14fb0