Преглед на файлове

dpkg-source: enhance --commit to auto-whitelist modified binary files

That way the same command can be used whatever kind of upstream files has
been modified.

Reported-by: Cyril Brulebois <kibi@debian.org>
Raphaël Hertzog преди 14 години
родител
ревизия
d334aee245
променени са 3 файла, в които са добавени 18 реда и са изтрити 1 реда
  1. 3 0
      debian/changelog
  2. 5 0
      man/dpkg-source.1
  3. 10 1
      scripts/Dpkg/Source/Package/V2.pm

+ 3 - 0
debian/changelog

@@ -8,6 +8,9 @@ dpkg (1.16.5) UNRELEASED; urgency=low
   * When dpkg-source regenerates the automatic patch (with formats "2.0"
     or "3.0 (quilt)") it will keep the current patch header to avoid
     losing changes made by the maintainer.
+  * Modify dpkg-source --commit to auto-whitelist modified binary files.
+    That way the same command can be used whatever kind of upstream files
+    has been modified.
 
   [ Updated dpkg translations ]
   * Swedish (Peter Krefting).

+ 5 - 0
man/dpkg-source.1

@@ -517,6 +517,11 @@ pre-generated this file, and on this ground the given file is removed
 after integration. Note also that the changes contained in the patch file
 must already be applied on the tree and that the files modified by the
 patch must not have supplementary unrecorded changes.
+
+If the patch generation detects modified binary files, they will be
+automatically added to \fBdebian/source/include\-binaries\fP so that
+they end up in the debian tarball (exactly like \fBdpkg-source
+\-\-include\-binaries \-b\fP would do).
 .PP
 .B Build options
 .TP

+ 10 - 1
scripts/Dpkg/Source/Package/V2.pm

@@ -619,8 +619,17 @@ sub do_commit {
         error(_g("patch file '%s' doesn't exist"), $tmpdiff) if not -e $tmpdiff;
     }
 
+    my $binaryfiles = Dpkg::Source::Package::V2::BinaryFiles->new($dir);
+    my $handle_binary = sub {
+        my ($self, $old, $new) = @_;
+        my $fn = File::Spec->abs2rel($new, $dir);
+        $binaryfiles->new_binary_found($fn);
+    };
+
     unless ($tmpdiff) {
-        $tmpdiff = $self->generate_patch($dir, usage => "commit");
+        $tmpdiff = $self->generate_patch($dir, handle_binary => $handle_binary,
+                                         usage => "commit");
+        $binaryfiles->update_debian_source_include_binaries();
     }
     push @Dpkg::Exit::handlers, sub { unlink($tmpdiff) };
     unless (-s $tmpdiff) {