]> err.no Git - dpkg/commitdiff
Fix perl warnings:
authorGuillem Jover <guillem@debian.org>
Tue, 22 May 2007 22:39:39 +0000 (22:39 +0000)
committerGuillem Jover <guillem@debian.org>
Tue, 22 May 2007 22:39:39 +0000 (22:39 +0000)
- When unpacking a source package with -sp from a different directory
  than the one containing the tarball. Closes: #424998

ChangeLog
debian/changelog
scripts/dpkg-source.pl

index ad80e52e60682f5118cdc5682ec97967977d1df7..44fb33269eba20345cc17a450fbb077d6e9716c9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-05-23  Guillem Jover  <guillem@debian.org>
+
+       * scripts/dpkg-source.pl ($copy_required): New variable.
+       ($dumptardev, $dumptarino): Move declaration inside the block issues
+       the stat call, and only compare them against $dsctardev and $dsctarino
+       if the stat succeeded.
+
 2007-05-21  Guillem Jover  <guillem@debian.org>
 
        * scripts/dpkg-statoverride.pl ($pat): Rename to ...
index c8554639fdb60f51bdc5798c13ac3031dc216cba..dcfb001cc4ea1bc93cdd26dfd17956febc28c62d 100644 (file)
@@ -1,6 +1,9 @@
 dpkg (1.14.4) UNRELEASED; urgency=low
 
   [ Guillem Jover ]
+  * Fix perl warnings:
+    - When unpacking a source package with -sp from a different directory
+      than the one containing the tarball. Closes: #424998
   * Remove an unused variable in dpkg-statoverride by renaming it to the
     initially intended name. Closes: #425041
 
index 0d36f52bcd275f24f331fe891a25a955fc23d300..a91dc8692c605533cd509e730f4ec45db7330c15 100755 (executable)
@@ -835,15 +835,20 @@ if ($opmode eq 'build') {
                    &syserr(sprintf(_g("failed to stat `%s' to see if need to copy"), "$dscdir/$tarfile"));
 
                my ($dsctardev, $dsctarino) = stat _;
-               my ($dumptardev, $dumptarino);
+               my $copy_required;
 
-               if (!stat($tarfile)) {
-                   $! == ENOENT || &syserr(sprintf(_g("failed to check destination `%s'".
-                                           " to see if need to copy"), $tarfile));
+               if (stat($tarfile)) {
+                   my ($dumptardev, $dumptarino) = stat _;
+                   $copy_required = ($dumptardev != $dsctardev ||
+                                     $dumptarino != $dsctarino);
                } else {
-                   ($dumptardev,$dumptarino) = stat _;
+                   $! == ENOENT ||
+                       syserr(sprintf(_g("failed to check destination `%s'".
+                              " to see if need to copy"), $tarfile));
+                   $copy_required = 1;
                }
-               unless ($dumptardev == $dsctardev && $dumptarino == $dsctarino) {
+
+               if ($copy_required) {
                    system('cp','--',"$dscdir/$tarfile", $tarfile);
                    $? && subprocerr("cp $dscdir/$tarfile to $tarfile");
                }