Hello community, here is the log from the commit of package quilt for openSUSE:Factory checked in at 2012-10-26 17:29:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/quilt (Old) and /work/SRC/openSUSE:Factory/.quilt.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "quilt", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/quilt/quilt.changes 2012-03-07 13:45:19.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.quilt.new/quilt.changes 2012-10-26 17:30:07.000000000 +0200 @@ -1,0 +2,31 @@ +Fri Oct 19 14:17:34 CEST 2012 - [email protected] + +- quilt.spec: Add myself as an author. + +------------------------------------------------------------------- +Fri Oct 19 11:15:16 CEST 2012 - [email protected] + +- quilt-setup-04-handle-zip-files.patch: Refresh from upstream. +- quilt-setup-05-fix-check_for_existing_files.patch: Fix handling + of directory names including white spaces by + check_for_existing_files. +- quilt-setup-06-check-for-directories-too.patch: Check for + existing directories before unpacking. + +------------------------------------------------------------------- +Wed Oct 17 21:42:44 CEST 2012 - [email protected] + +- quilt-setup-04-handle-zip-files.patch: Let quilt setup handle + zip archives referenced in spec files (bnc#768332). + +------------------------------------------------------------------- +Tue Oct 16 13:13:36 CEST 2012 - [email protected] + +- quilt-setup-01-check-existing-files-after-unpack.patch: setup: + Check for existing files after unpacking (bnc#785167). +- quilt-setup-02-try-alternative-names.patch: setup: Try + alternative patches/series names (bnc#785167). +- quilt-setup-03-remember-alternative-names.patch: setup: Run + create_db (bnc#785167). + +------------------------------------------------------------------- New: ---- quilt-setup-01-check-existing-files-after-unpack.patch quilt-setup-02-try-alternative-names.patch quilt-setup-03-remember-alternative-names.patch quilt-setup-04-handle-zip-files.patch quilt-setup-05-fix-check_for_existing_files.patch quilt-setup-06-check-for-directories-too.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ quilt.spec ++++++ --- /var/tmp/diff_new_pack.MIwmuy/_old 2012-10-26 17:30:09.000000000 +0200 +++ /var/tmp/diff_new_pack.MIwmuy/_new 2012-10-26 17:30:09.000000000 +0200 @@ -50,6 +50,12 @@ Patch3: patch-wrapper-rpm.diff Patch5: suse-workaround-pseudo-release.patch Patch6: quilt-stable-rebuild.patch +Patch7: quilt-setup-01-check-existing-files-after-unpack.patch +Patch8: quilt-setup-02-try-alternative-names.patch +Patch9: quilt-setup-03-remember-alternative-names.patch +Patch10: quilt-setup-04-handle-zip-files.patch +Patch11: quilt-setup-05-fix-check_for_existing_files.patch +Patch12: quilt-setup-06-check-for-directories-too.patch Url: http://savannah.nongnu.org/projects/quilt BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch @@ -67,6 +73,7 @@ Authors: -------- Andreas Gruenbacher <[email protected]> + Jean Delvare <[email protected]> %prep %setup -q @@ -75,6 +82,12 @@ %patch3 -p1 %patch5 -p1 %patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 %build # --with-rpmbuild=/usr/lib/rpm/rpmb: ++++++ quilt-setup-01-check-existing-files-after-unpack.patch ++++++ From: Jean Delvare <[email protected]> Subject: setup: Check for existing files after unpacking setup: check for existing files after unpacking the tar files, not before, otherwise we check too early and a tar file containing a "patches" directory will not be handled properly. --- Originally (commit b704611d) existing files were checked for both before and after unpacking the tar files. Commit 639f2f9c dropped the second check, while I believe it should have dropped the first. Andreas, is there any reason to check before unpacking too? quilt/setup.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/quilt/setup.in +++ b/quilt/setup.in @@ -183,8 +183,6 @@ case "$1" in ;; esac -check_for_existing_files || exit 1 - while read tag dir arg1 arg2 do case "$tag" in @@ -203,6 +201,8 @@ do esac done < $tmpfile +check_for_existing_files || exit 1 + while read tag dir arg1 arg2 do case "$tag" in ++++++ quilt-setup-02-try-alternative-names.patch ++++++ From: Jean Delvare <[email protected]> Subject: setup: Try alternative patches/series names setup: If a tar file contains a patches directory or a series file, automatically try alternative names which are less likely to collide. --- quilt/setup.in | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) --- a/quilt/setup.in +++ b/quilt/setup.in @@ -201,7 +201,13 @@ do esac done < $tmpfile -check_for_existing_files || exit 1 +if ! check_for_existing_files +then + echo "Trying alternative patches and series names..." >&2 + QUILT_PATCHES=quilt_patches + QUILT_SERIES=quilt_series + check_for_existing_files || exit 1 +fi while read tag dir arg1 arg2 do ++++++ quilt-setup-03-remember-alternative-names.patch ++++++ From: Jean Delvare <[email protected]> Subject: setup: Run create_db Run create_db() as part of quilt setup, so that $QUILT_PATCHES and $QUILT_SERIES are recorded for future quilt commands. --- quilt/setup.in | 8 ++++++-- test/setup.test | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) --- a/quilt/setup.in +++ b/quilt/setup.in @@ -218,8 +218,12 @@ do tar_file="$arg1" ;; patch) - [ -e "$prefix$dir/$QUILT_PATCHES" ] \ - || create_symlink "$sourcedir" "$prefix$dir/$QUILT_PATCHES" + if [ ! -e "$prefix$dir/$QUILT_PATCHES" ] + then + create_symlink "$sourcedir" "$prefix$dir/$QUILT_PATCHES" + (cd "$prefix$dir" && create_db) + fi + if [ -n "$series_file" ] then [ -e "$prefix$dir/$QUILT_SERIES" ] \ --- a/test/setup.test +++ b/test/setup.test @@ -7,7 +7,11 @@ $ diff -u dir/foo.orig dir/foo > revert. $ diff -u dir/foo.orig dir/foo > again.diff $ mv dir/foo.orig dir/foo $ tar cf - dir | gzip > dir.tar.gz +$ mkdir dir/patches +$ echo crap > dir/patches/foo.diff +$ tar cf - dir | gzip > dir_with_patches.tar.gz $ rm -rf dir + $ cat > series < # Source: dir.tar.gz < # Patchdir: dir @@ -57,6 +61,28 @@ $ quilt push -qa > Applying patch patches/revert.diff > Applying patch patches/again.diff > Now at patch patches/again.diff +$ cd ../.. +$ rm -rf "dir" + +# Now test the case where the tarball contains a patches directory +$ cat > series_with_patches +< # Source: dir_with_patches.tar.gz +< # Patchdir: dir +< # +< foo.diff +$ quilt setup series_with_patches +> Unpacking archive dir_with_patches.tar.gz +> Directory dir/patches exists +> Trying alternative patches and series names... +$ cd dir +$ ls -l quilt_patches quilt_series | sed -e 's:.* -> ::' +> .. +> ../series_with_patches +$ quilt push -qa +> Applying patch quilt_patches/foo.diff +> Now at patch quilt_patches/foo.diff +$ cd .. +$ rm -rf "dir" # Now a basic test with space in dir name $ mkdir "space [dir]" ++++++ quilt-setup-04-handle-zip-files.patch ++++++ Let quilt setup handle zip archives referenced in spec files. --- quilt/scripts/inspect.in | 28 ++++++++++++++++++++++++++++ quilt/setup.in | 23 +++++++++++++++++++++-- 2 files changed, 49 insertions(+), 2 deletions(-) --- a/quilt/scripts/inspect.in +++ b/quilt/scripts/inspect.in @@ -251,6 +251,21 @@ cat <<-'EOF' > $tmpdir/bin/wrapper esac } + unzip_input_file() { + while [ $# -gt 0 ]; do + case "$1" in + -*) + shift + ;; + *) + echo "$1" + return + ;; + esac + done + return 1 + } + tar_opt_C() { case "$1" in *C*f*) @@ -270,6 +285,9 @@ cat <<-'EOF' > $tmpdir/bin/wrapper # For tar, file - means read from stdin [ "$inputfile" = "-" ] && inputfile= ;; + unzip) + inputfile=$(unzip_input_file "$@") + ;; esac if [ -z "$inputfile" ]; then # put data from stdin into tmpfile @@ -309,6 +327,14 @@ cat <<-'EOF' > $tmpdir/bin/wrapper dir=${dir// /\\ } echo "${0##*/} ${dir:-.} $unpackfile" >&3 ;; + unzip) + echo -n Z >&4 + dir=$PWD + dir=${dir/$RPM_BUILD_DIR} + dir=${dir##/} + dir=${dir// /\\ } + echo "${0##*/} ${dir:-.} $unpackfile" >&3 + ;; esac fi @@ -333,6 +359,7 @@ fi ln -s wrapper $tmpdir/bin/patch ln -s wrapper $tmpdir/bin/tar +ln -s wrapper $tmpdir/bin/unzip # let rpm do all the dirty specfile stuff ... echo -n "### rpmbuild: " >&4 @@ -343,6 +370,7 @@ rpmbuild --eval "%define _sourcedir $sou --eval "%define _builddir $tmpdir/build" \ --eval "%define __patch $tmpdir/bin/patch" \ --eval "%define __tar $tmpdir/bin/tar" \ + --eval "%define __unzip $tmpdir/bin/unzip" \ --eval "$DEFINE_FUZZ" \ --nodeps \ -bp "$specdir/$specfile" < /dev/null >&5 2>&5 --- a/quilt/setup.in +++ b/quilt/setup.in @@ -167,7 +167,15 @@ case "$1" in "# Source: "*) shift 2 source="$@" - echo "tar ${tar_dir:-.} ${source// /\\ }" + filetype="$(file -b "$source")" + case "$filetype" in + Zip*) + echo "unzip ${tar_dir:-.} ${source// /\\ }" + ;; + *) + echo "tar ${tar_dir:-.} ${source// /\\ }" + ;; + esac ;; "# Patchdir: "*) shift 2 @@ -198,6 +206,17 @@ do cat_file "$tarball" \ | tar xf - -C "$prefix$dir" ;; + unzip) + tarball=$sourcedir$arg1 + if [ ! -e "$tarball" ] + then + printf $"File %s not found\n" "$tarball" >&2 + exit 1 + fi + printf $"Unpacking archive %s\n" "$tarball" + mkdir -p "${prefix:-.}" "$prefix$dir" + unzip -qqo "$tarball" -d "$prefix$dir" + ;; esac done < $tmpfile @@ -212,7 +231,7 @@ fi while read tag dir arg1 arg2 do case "$tag" in - tar) + tar|unzip) tar_dir="$dir" [ "$tar_dir" = . ] && tar_dir= tar_file="$arg1" ++++++ quilt-setup-05-fix-check_for_existing_files.patch ++++++ Fix handling of directory names including white spaces by check_for_existing_files. awk can't deal with tokens which include white spaces, so use bash's read function instead. As a side bonus, we get rid of the undocumented dependency to "uniq". --- quilt/setup.in | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) --- a/quilt/setup.in +++ b/quilt/setup.in @@ -23,9 +23,12 @@ then fi check_for_existing_files() { - local dir status=0 - for dir in $(awk ' $1 == "patch" { print $2 }' $tmpfile | uniq) + local tag dir last_dir arg status=0 + + while read tag dir arg do + [ "$tag" = "patch" -a "$dir" != "$last_dir" ] || continue + if [ -e "$prefix$dir/$QUILT_PATCHES" ] then printf $"Directory %s exists\n" \ @@ -38,7 +41,9 @@ check_for_existing_files() { "$prefix$dir/$QUILT_SERIES" >&2 status=1 fi - done + last_dir=$dir + done < $tmpfile + return $status } ++++++ quilt-setup-06-check-for-directories-too.patch ++++++ Check for existing directories before unpacking. --- quilt/setup.in | 22 ++++++++++++++++++++++ test/setup.test | 7 ++++++- 2 files changed, 28 insertions(+), 1 deletion(-) --- a/quilt/setup.in +++ b/quilt/setup.in @@ -22,6 +22,25 @@ then fi fi +check_for_existing_directories() { + local tag dir last_dir arg status=0 + + while read tag dir arg + do + [ "$dir" != "." -a "$dir" != "$last_dir" ] || continue + + if [ -e "$prefix$dir" ] + then + printf $"Directory %s exists\n" \ + "$prefix$dir" >&2 + status=1 + fi + last_dir=$dir + done < $tmpfile + + return $status +} + check_for_existing_files() { local tag dir last_dir arg status=0 @@ -196,6 +215,9 @@ case "$1" in ;; esac +# Make sure that unpacking will not overwrite anything +check_for_existing_directories || exit 1 + while read tag dir arg1 arg2 do case "$tag" in --- a/test/setup.test +++ b/test/setup.test @@ -64,12 +64,17 @@ $ quilt push -qa $ cd ../.. $ rm -rf "dir" -# Now test the case where the tarball contains a patches directory +# Now test the cases where the directory already exists, or the tarball +# contains a patches directory $ cat > series_with_patches < # Source: dir_with_patches.tar.gz < # Patchdir: dir < # < foo.diff +$ mkdir dir +$ quilt setup series_with_patches +> Directory dir exists +$ rmdir dir $ quilt setup series_with_patches > Unpacking archive dir_with_patches.tar.gz > Directory dir/patches exists -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
