This is an automated email from the git hooks/post-receive script.

nomeata pushed a commit to branch master
in repository devscripts.

commit 6b50047be8b1bfde987b9d1385f523636a74d354
Author: Joachim Breitner <[email protected]>
Date:   Wed Apr 23 16:52:15 2014 +0200

    mk-origtargz: When debian/copyright is not in the right format,
    
    but mentions Files-Excluded, print a warning. This was suggested by
    Gunnar Wolf on debian-devel.
---
 scripts/mk-origtargz.pl | 27 ++++++++++++++-----
 test/test_mk-origtargz  | 71 ++++++++++++++++++++++++++++++++++---------------
 2 files changed, 69 insertions(+), 29 deletions(-)

diff --git a/scripts/mk-origtargz.pl b/scripts/mk-origtargz.pl
index a4ea492..62e88de 100755
--- a/scripts/mk-origtargz.pl
+++ b/scripts/mk-origtargz.pl
@@ -78,7 +78,7 @@ B<Files-Excluded>.
 
 =item B<--copyright-file> I<filename>
 
-Remove files matching the patterns found in I<filename>, which should have the 
format of a Debian F<copyright> file. Errors parsing that file are silently 
ignored, exactly as it is the case with F<debian/copyright>.
+Remove files matching the patterns found in I<filename>, which should have the 
format of a Debian F<copyright> file (B<Format: 
https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/> to be 
precise). Errors parsing that file are silently ignored, exactly as it is the 
case with F<debian/copyright>.
 
 Both the B<--exclude-file> and B<--copyright-file> options amend the list of
 patterns found in F<debian/copyright>. If you do not want to read that file,
@@ -284,13 +284,26 @@ for my $copyright_file (@copyright_files) {
         };
         if (   $data
             && defined $data->{'format'}
-            && $data->{'format'} =~ m{^$okformat/?$}
-            && $data->{'files-excluded'})
+            && $data->{'format'} =~ m{^$okformat/?$})
         {
-               my @rawexcluded = ($data->{"files-excluded"} =~ 
/(?:\A|\G\s+)((?:\\.|[^\\\s])+)/g);
-               # un-escape
-               push @exclude_globs, map { s/\\(.)/$1/g; s?/+$??; $_ } 
@rawexcluded;
-        }
+               if ($data->{'files-excluded'}) {
+                       my @rawexcluded = ($data->{"files-excluded"} =~ 
/(?:\A|\G\s+)((?:\\.|[^\\\s])+)/g);
+                       # un-escape
+                       push @exclude_globs, map { s/\\(.)/$1/g; s?/+$??; $_ } 
@rawexcluded;
+               }
+       } elsif (-r $copyright_file) {
+               # be helpful
+               my $has_files_excluded = 0;
+               open COPYRIGHT, '<', $copyright_file;
+               $has_files_excluded ||= /Files-Excluded/i while (<COPYRIGHT>);
+               close COPYRIGHT;
+               print STDERR
+                     "WARNING: The file debian/copyright mentions 
Files-Excluded, but its ".
+                     "format is not recognized. Specify Format: ".
+                     
"http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ ".
+                     "in order to remove files from the tarball with 
mk_origtargz.\n"
+                                       if ($has_files_excluded);
+       }
 }
 
 
diff --git a/test/test_mk-origtargz b/test/test_mk-origtargz
index 9a35021..a43e366 100755
--- a/test/test_mk-origtargz
+++ b/test/test_mk-origtargz
@@ -104,6 +104,18 @@ END
 
 }
 
+makeWrongDebianCopyright() {
+    cat <<'END' > $TMPDIR/foo/debian/copyright
+Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=174
+Files-Excluded: exclude-this*
+ .exclude-this*
+ exclude-dir1
+ exclude-dir2/
+ ;\ echo\ strange-file;\ #
+END
+
+}
+
 expected_files_after_removal=$(sort <<END
 foo-0.1/
 foo-0.1/a-dir/
@@ -126,12 +138,17 @@ END
 
 run_mk_origtargz() {
        local dir="$1"
-       local exp_stdout="$2"
+       local exp_stderr="$2"
+       local exp_stdout="$3"
+       local stderrF="${SHUNIT_TMPDIR}/stderr"
+       shift
        shift
        shift
-       output="$( cd $TMPDIR/$dir; $MK_ORIGTARGZ "$@" )"
+       output="$( cd $TMPDIR/$dir; $MK_ORIGTARGZ "$@" 2> $stderrF )"
+       stderr="$(cat $stderrF)"
        retval=$?
        assertEquals "standard output of mk-origtargz $*\n" "$exp_stdout" 
"$output"
+       assertEquals "error output of mk-origtargz $*\n" "$exp_stderr" "$stderr"
        assertEquals "return valueof mk-origtargz $*\n" "0" "$retval"
 }
 
@@ -145,7 +162,7 @@ assertType () {
 testSymlink() {
        makeTarBall gz
        makeDebanDir
-       run_mk_origtargz foo \
+       run_mk_origtargz foo "" \
                "Successfully symlinked ../foo-0.1.tar.gz to 
../foo_0.1.orig.tar.gz." \
                ../foo-0.1.tar.gz
        assertTrue "original tarball does not exist" "[ -e 
$TMPDIR/foo-0.1.tar.gz ]"
@@ -158,7 +175,7 @@ testSymlink() {
 testCopy() {
        makeTarBall gz
        makeDebanDir
-       run_mk_origtargz foo \
+       run_mk_origtargz foo "" \
                "Successfully copied ../foo-0.1.tar.gz to 
../foo_0.1.orig.tar.gz." \
                --copy ../foo-0.1.tar.gz
        assertTrue "original tarball does not exist" "[ -e 
$TMPDIR/foo-0.1.tar.gz ]"
@@ -170,7 +187,7 @@ testCopy() {
 testRename() {
        makeTarBall gz
        makeDebanDir
-       run_mk_origtargz foo \
+       run_mk_origtargz foo "" \
                "Successfully renamed ../foo-0.1.tar.gz to 
../foo_0.1.orig.tar.gz." \
                --rename ../foo-0.1.tar.gz
        assertFalse "original tarball does exist" "[ -e $TMPDIR/foo-0.1.tar.gz 
]"
@@ -181,7 +198,7 @@ testRename() {
 
 testSymlinkExplicit() {
        makeTarBall gz
-       run_mk_origtargz "" \
+       run_mk_origtargz "" "" \
                "Successfully symlinked foo-0.1.tar.gz to foo_0.1.orig.tar.gz." 
\
                --package foo --version 0.1 foo-0.1.tar.gz
        assertTrue "original tarball does not exist" "[ -e 
$TMPDIR/foo-0.1.tar.gz ]"
@@ -193,7 +210,7 @@ testSymlinkExplicit() {
 
 testCopyExplicit() {
        makeTarBall gz
-       run_mk_origtargz "" \
+       run_mk_origtargz "" "" \
                "Successfully copied foo-0.1.tar.gz to foo_0.1.orig.tar.gz." \
                --package foo --version 0.1 --copy foo-0.1.tar.gz
        assertTrue "original tarball does not exist" "[ -e 
$TMPDIR/foo-0.1.tar.gz ]"
@@ -204,7 +221,7 @@ testCopyExplicit() {
 
 testRenameExplicit() {
        makeTarBall gz
-       run_mk_origtargz "" \
+       run_mk_origtargz "" "" \
                "Successfully renamed foo-0.1.tar.gz to foo_0.1.orig.tar.gz." \
                --package foo --version 0.1 --rename foo-0.1.tar.gz
        assertFalse "original tarball does exist" "[ -e $TMPDIR/foo-0.1.tar.gz 
]"
@@ -216,7 +233,7 @@ testRenameExplicit() {
 testSymlinkExplicitSubdir() {
        makeTarBall gz
        mkdir -p $TMPDIR/destdir
-       run_mk_origtargz "" \
+       run_mk_origtargz "" "" \
                "Successfully symlinked foo-0.1.tar.gz to 
destdir/foo_0.1.orig.tar.gz." \
                --package foo --version 0.1 -C destdir foo-0.1.tar.gz
        assertTrue "original tarball does not exist" "[ -e 
$TMPDIR/foo-0.1.tar.gz ]"
@@ -228,7 +245,7 @@ testSymlinkExplicitSubdir() {
 
 testRepackGZ2GZ() {
        makeTarBall gz
-       run_mk_origtargz "" \
+       run_mk_origtargz "" "" \
                "Successfully copied foo-0.1.tar.gz to foo_0.1.orig.tar.gz." \
                --package foo --version 0.1 --copy foo-0.1.tar.gz --repack
        assertTrue "result does not exist" "[ -e $TMPDIR/foo_0.1.orig.tar.gz ]"
@@ -237,7 +254,7 @@ testRepackGZ2GZ() {
 
 testRepackGZ2XZ() {
        makeTarBall gz
-       run_mk_origtargz "" \
+       run_mk_origtargz "" ""\
                "Successfully repacked foo-0.1.tar.gz as foo_0.1.orig.tar.xz." \
                --package foo --version 0.1 --copy foo-0.1.tar.gz --repack 
--compression xz
        assertFalse "wrong result does exist" "[ -e $TMPDIR/foo_0.1.orig.tar.gz 
]"
@@ -247,7 +264,7 @@ testRepackGZ2XZ() {
 
 testRepackXZ2GZ() {
        makeTarBall xz
-       run_mk_origtargz "" \
+       run_mk_origtargz "" "" \
                "Successfully repacked foo-0.1.tar.xz as foo_0.1.orig.tar.gz." \
                --package foo --version 0.1 --copy foo-0.1.tar.xz --repack
        assertFalse "wrong result does exist" "[ -e $TMPDIR/foo_0.1.orig.tar.xz 
]"
@@ -257,7 +274,7 @@ testRepackXZ2GZ() {
 
 testRepackZip2GZ() {
        makeZipFile
-       run_mk_origtargz "" \
+       run_mk_origtargz "" "" \
                "Successfully repacked foo-0.1.zip as foo_0.1.orig.tar.gz." \
                --package foo --version 0.1 --copy foo-0.1.zip
        assertTrue "original zip file does not exist" "[ -e $TMPDIR/foo-0.1.zip 
]"
@@ -267,7 +284,7 @@ testRepackZip2GZ() {
 
 testRepackZip2GZRename() {
        makeZipFile
-       run_mk_origtargz "" \
+       run_mk_origtargz "" "" \
                "Successfully repacked foo-0.1.zip as foo_0.1.orig.tar.gz, and 
removed the original file." \
                --package foo --version 0.1 --rename foo-0.1.zip
        assertFalse "original zip file does exist" "[ -e $TMPDIR/foo-0.1.zip ]"
@@ -277,7 +294,7 @@ testRepackZip2GZRename() {
 
 testRepackZip2XZ() {
        makeZipFile
-       run_mk_origtargz "" \
+       run_mk_origtargz "" "" \
                "Successfully repacked foo-0.1.zip as foo_0.1.orig.tar.xz." \
                --package foo --version 0.1 foo-0.1.zip --compression xz
        assertTrue "original zip file does not exist" "[ -e $TMPDIR/foo-0.1.zip 
]"
@@ -289,7 +306,7 @@ testExclude() {
        makeTarBall gz
        makeDebanDir
        makeDebianCopyright
-       run_mk_origtargz foo \
+       run_mk_origtargz foo "" \
                "Successfully repacked ../foo-0.1.tar.gz as 
../foo_0.1.orig.tar.gz, deleting 17 files from it." \
                 ../foo-0.1.tar.gz
        assertTrue "result does not exist" "[ -e $TMPDIR/foo_0.1.orig.tar.gz ]"
@@ -301,7 +318,7 @@ testExcludeXZ() {
        makeTarBall xz
        makeDebanDir
        makeDebianCopyright
-       run_mk_origtargz foo \
+       run_mk_origtargz foo "" \
                "Successfully repacked ../foo-0.1.tar.xz as 
../foo_0.1.orig.tar.xz, deleting 17 files from it." \
                 ../foo-0.1.tar.xz
        assertTrue "result does not exist" "[ -e $TMPDIR/foo_0.1.orig.tar.xz ]"
@@ -313,7 +330,7 @@ testExcludeZip() {
        makeZipFile
        makeDebanDir
        makeDebianCopyright
-       run_mk_origtargz foo \
+       run_mk_origtargz foo "" \
                "Successfully repacked ../foo-0.1.zip as 
../foo_0.1.orig.tar.xz, deleting 17 files from it." \
                 ../foo-0.1.zip --compression xz
        assertTrue "result does not exist" "[ -e $TMPDIR/foo_0.1.orig.tar.xz ]"
@@ -325,7 +342,7 @@ testSameNameSymlink() {
        makeTarBall gz
        mv $TMPDIR/foo-0.1.tar.gz $TMPDIR/foo_0.1.orig.tar.gz
        makeDebanDir
-       run_mk_origtargz foo \
+       run_mk_origtargz foo "" \
                "Leaving ../foo_0.1.orig.tar.gz where it is." \
                 --symlink ../foo_0.1.orig.tar.gz
        assertTrue "result does not exist" "[ -e $TMPDIR/foo_0.1.orig.tar.gz ]"
@@ -336,7 +353,7 @@ testSameNameCopy() {
        makeTarBall gz
        mv $TMPDIR/foo-0.1.tar.gz $TMPDIR/foo_0.1.orig.tar.gz
        makeDebanDir
-       run_mk_origtargz foo \
+       run_mk_origtargz foo "" \
                "Leaving ../foo_0.1.orig.tar.gz where it is." \
                 --copy ../foo_0.1.orig.tar.gz
        assertTrue "result does not exist" "[ -e $TMPDIR/foo_0.1.orig.tar.gz ]"
@@ -347,7 +364,7 @@ testSameNameRename() {
        makeTarBall gz
        mv $TMPDIR/foo-0.1.tar.gz $TMPDIR/foo_0.1.orig.tar.gz
        makeDebanDir
-       run_mk_origtargz foo \
+       run_mk_origtargz foo "" \
                "Leaving ../foo_0.1.orig.tar.gz where it is." \
                 --rename ../foo_0.1.orig.tar.gz
        assertTrue "result does not exist" "[ -e $TMPDIR/foo_0.1.orig.tar.gz ]"
@@ -359,7 +376,7 @@ testSameNameExclude() {
        mv $TMPDIR/foo-0.1.tar.gz $TMPDIR/foo_0.1.orig.tar.gz
        makeDebanDir
        makeDebianCopyright
-       run_mk_origtargz foo \
+       run_mk_origtargz foo "" \
                "Leaving ../foo_0.1.orig.tar.gz where it is, deleting 17 files 
from it." \
                 ../foo_0.1.orig.tar.gz
        assertTrue "result does not exist" "[ -e $TMPDIR/foo_0.1.orig.tar.gz ]"
@@ -367,5 +384,15 @@ testSameNameExclude() {
        assertEquals "file contents" "$expected_files_after_removal" "$(tar taf 
$TMPDIR/foo_0.1.orig.tar.gz | sort)"
 }
 
+testCopyrightFormatWarning() {
+       makeTarBall gz
+       makeDebanDir
+       makeWrongDebianCopyright
+       run_mk_origtargz foo \
+               "WARNING: The file debian/copyright mentions Files-Excluded, 
but its format is not recognized. Specify Format: 
http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ in order to 
remove files from the tarball with mk_origtargz." \
+               "Successfully symlinked ../foo-0.1.tar.gz to 
../foo_0.1.orig.tar.gz." \
+                ../foo-0.1.tar.gz
+
+}
 
 . shunit2

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/collab-maint/devscripts.git

_______________________________________________
devscripts-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/devscripts-devel

Reply via email to