From d22596b0c192a38081bac070b5688989c2e1ec92 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Fri, 9 Nov 2012 13:49:08 -0800 Subject: [PATCH] Patch to fix spaces in java jar files https://bugzilla.redhat.com/show_bug.cgi?id=872737 --- brp-java-repack-jars | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/brp-java-repack-jars b/brp-java-repack-jars index df6935e..961834f 100755 --- a/brp-java-repack-jars +++ b/brp-java-repack-jars @@ -25,17 +25,19 @@ if [ ! -z "$JARS" ]; then # unpack every jar, set the date of the files and directories and # repack the jar + OLD_IFS="$IFS" + IFS=$(printf '\n\t') for j in $JARS ; do - JARNAME=`basename $j` - JTMPDIR=`mktemp -d -p $RPM_BUILD_ROOT/tmp $JARNAME.tmpdir.XXXXXXXXXX` || exit 1 - JARDIR=`mktemp -d -p $RPM_BUILD_ROOT/tmp $JARNAME.jardir.XXXXXXXXXX` || exit 1 - TIMEREF=`mktemp -p $RPM_BUILD_ROOT/tmp $JARNAME.timeref.XXXXXXXXXX` || exit 1 + JARNAME=`basename "$j"` + JTMPDIR=`mktemp -d -p $RPM_BUILD_ROOT/tmp "$JARNAME.tmpdir.XXXXXXXXXX"` || exit 1 + JARDIR=`mktemp -d -p $RPM_BUILD_ROOT/tmp "$JARNAME.jardir.XXXXXXXXXX"` || exit 1 + TIMEREF=`mktemp -p $RPM_BUILD_ROOT/tmp "$JARNAME.timeref.XXXXXXXXXX"` || exit 1 - pushd $JTMPDIR > /dev/null - /usr/bin/unzip -qq -o $j + pushd "$JTMPDIR" > /dev/null + /usr/bin/unzip -qq -o "$j" find -type d -exec chmod a+rx {} \; find -type f -exec chmod a+r {} \; - rm -f $j + rm -f "$j" # Create the directories first. find -type d | LC_ALL=C sort | while read d; do @@ -76,24 +78,25 @@ if [ ! -z "$JARS" ]; then done # make the jar - pushd $JARDIR > /dev/null + pushd "$JARDIR" > /dev/null if [ -n "`find -not -name '.'`" ]; then if [ -e META-INF/MANIFEST.MF ]; then - /usr/bin/zip -q -X -9 $j META-INF/MANIFEST.MF + /usr/bin/zip -q -X -9 "$j" META-INF/MANIFEST.MF fi - find * -not -name '.' | LC_ALL=C sort | /usr/bin/zip -u -q -X -9 $j -@ + find * -not -name '.' | LC_ALL=C sort | /usr/bin/zip -u -q -X -9 "$j" -@ else # Put the empty jar back - touch $j + touch "$j" fi popd > /dev/null # Cleanup. - rm -rf $JTMPDIR - rm -rf $JARDIR - rm -f $TIMEREF + rm -rf "$JTMPDIR" + rm -rf "$JARDIR" + rm -f "$TIMEREF" done + IFS="$OLD_IFS" # remove $RPM_BUILD_ROOT/tmp if we created it if [ $rmtmp -eq 1 ]; then