From 54bb0defc14d937ed2bfd93a705cb6892d3766dd Mon Sep 17 00:00:00 2001 From: Frank Lichtenheld Date: Sun, 1 Jul 2007 13:57:58 +0000 Subject: [PATCH] dpkg-source warns now about new empty files since those will not be represented in the diff. Closes: #383394 --- ChangeLog | 5 +++++ debian/changelog | 2 ++ scripts/dpkg-source.pl | 17 +++++++++++------ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4ad24a85..bef0f562 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-07-01 Frank Lichtenheld + + * scripts/dpkg-source.pl: Warn that newly created empty files are + not currently represented in the diff. + 2007-07-01 Ian Jackson * scripts/dpkg-source.pl: Don't remove setgid bits diff --git a/debian/changelog b/debian/changelog index 4982aaae..bc01d0c0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -29,6 +29,8 @@ dpkg (1.14.5) UNRELEASED; urgency=low tar balls to match more the user's preferences instead of ours or the ones from the originator of the tar ball. Patch by Ian Jackson. Closes: #390915, #207289 + * dpkg-source warns now about new empty files since those will + not be represented in the diff. Closes: #383394 [ Updated dselect translations ] * French (Christian Perrier) diff --git a/scripts/dpkg-source.pl b/scripts/dpkg-source.pl index 6b40d086..97a54262 100755 --- a/scripts/dpkg-source.pl +++ b/scripts/dpkg-source.pl @@ -510,6 +510,7 @@ if ($opmode eq 'build') { $fn =~ s,^\./,,; lstat("$dir/$fn") || &syserr(sprintf(_g("cannot stat file %s"), "$dir/$fn")); my $mode = S_IMODE((lstat(_))[2]); + my $size = (lstat(_))[7]; if (-l _) { $type{$fn}= 'symlink'; checktype($origdir, $fn, '-l') || next; @@ -526,12 +527,16 @@ if ($opmode eq 'build') { if (!lstat("$origdir/$fn")) { $! == ENOENT || &syserr(sprintf(_g("cannot stat orig file %s"), "$origdir/$fn")); $ofnread= '/dev/null'; - if( $mode & ( S_IXUSR | S_IXGRP | S_IXOTH ) ) { - warning(sprintf(_g("executable mode %04o of '%s' will not be represented in diff"), $mode, $fn)) - unless $fn eq 'debian/rules'; - } - if( $mode & ( S_ISUID | S_ISGID | S_ISVTX ) ) { - warning(sprintf(_g("special mode %04o of '%s' will not be represented in diff"), $mode, $fn)); + if( !$size ) { + warning(sprintf(_g("newly created empty file '%s' will not be represented in diff"), $fn)); + } else { + if( $mode & ( S_IXUSR | S_IXGRP | S_IXOTH ) ) { + warning(sprintf(_g("executable mode %04o of '%s' will not be represented in diff"), $mode, $fn)) + unless $fn eq 'debian/rules'; + } + if( $mode & ( S_ISUID | S_ISGID | S_ISVTX ) ) { + warning(sprintf(_g("special mode %04o of '%s' will not be represented in diff"), $mode, $fn)); + } } } elsif (-f _) { $ofnread= "$origdir/$fn"; -- 2.39.5