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]

Reply via email to