On Tue, Jan 22, 2008 at 11:05:35AM +0100, Stefano Zacchiroli wrote:
> Do you need help, an upload done by someone else, or something such?

Hi, just to be proactive I've just made a 10-days delayed NMU. The full
debdiff between latest unstable version and the version I've just
uploaded is attached.

In addition to AJ's changes I've also fixed the manpage to document the
new "File:" and "Files:" fields, now supported by equivs-build.

Of course, by all means, feel free to upload a version of yours
preventing mine to enter the archive if you don't like something.
Let me know if you need anything else.

Cheers.

-- 
Stefano Zacchiroli -*- PhD in Computer Science ............... now what?
[EMAIL PROTECTED],cs.unibo.it,debian.org}  -<%>-  http://upsilon.cc/zack/
(15:56:48)  Zack: e la demo dema ?    /\    All one has to do is hit the
(15:57:15)  Bac: no, la demo scema    \/    right keys at the right time
diff -Nru equivs-2.0.7/debian/changelog equivs-2.0.7/debian/changelog
--- equivs-2.0.7/debian/changelog	2006-02-28 09:01:18.000000000 +0100
+++ equivs-2.0.7/debian/changelog	2008-01-22 12:32:25.000000000 +0100
@@ -1,3 +1,15 @@
+equivs (2.0.7-0.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * equivs-build: add support for adding arbitrary extra files to a package.
+    Thanks to Anthony Towns for the patch (closes: #449542)
+  * equivs-build.pod: document the new "Files:" and "File:" fields
+  * debian/control: bump Standards-Version to 3.7.3, no changes needed
+  * debian/control: move debhelper dependency to Build-Depends, so that it is
+    available upon clean
+
+ -- Stefano Zacchiroli <[EMAIL PROTECTED]>  Tue, 22 Jan 2008 12:26:38 +0100
+
 equivs (2.0.7) unstable; urgency=low
 
   * New maintainer.  (Closes: #350835)
diff -Nru /tmp/qkqEiDddKk/equivs-2.0.7/debian/control /tmp/4X1M7l859t/equivs-2.0.7/debian/control
--- equivs-2.0.7/debian/control	2006-02-22 11:12:29.000000000 +0100
+++ equivs-2.0.7/debian/control	2008-01-22 12:26:24.000000000 +0100
@@ -2,8 +2,8 @@
 Section: admin
 Priority: extra
 Maintainer: Peter Samuelson <[EMAIL PROTECTED]>
-Standards-Version: 3.6.2
-Build-Depends-Indep: debhelper (>= 4)
+Standards-Version: 3.7.3
+Build-Depends: debhelper (>= 4)
 
 Package: equivs
 Depends: perl, debhelper (>= 4), dpkg-dev, devscripts, make, fakeroot
diff -Nru /tmp/qkqEiDddKk/equivs-2.0.7/debian/equivs-build.pod /tmp/4X1M7l859t/equivs-2.0.7/debian/equivs-build.pod
--- equivs-2.0.7/debian/equivs-build.pod	2006-02-26 12:51:37.000000000 +0100
+++ equivs-2.0.7/debian/equivs-build.pod	2008-01-22 12:22:50.000000000 +0100
@@ -60,6 +60,21 @@
 A comma-separated list of files to copy to the 
 F</usr/share/doc/packagename> directory.
 
+=item Files:
+
+Files to be copied into some directory of the created package.  The
+field syntax is a list of pairs, one per physical line of Files;
+each pair is space separated, the first component is a path pointing
+to the file to be installed, the second the destination path in the
+resulting package. E.g.: "Files: foo-cron /etc/cron.d/".
+
+=item File:
+
+Files to be copied into some directory of the created package,
+specified inline in the source control file. The field syntax is the
+name of the files to be created, followed by lines indented by 1
+space denoting file content; leading space will be trimmed.
+
 =back
 
 See F</usr/share/doc/equivs/README.Debian> for more information.
diff -Nru /tmp/qkqEiDddKk/equivs-2.0.7/usr/bin/equivs-build /tmp/4X1M7l859t/equivs-2.0.7/usr/bin/equivs-build
--- equivs-2.0.7/usr/bin/equivs-build	2006-02-28 09:33:25.000000000 +0100
+++ equivs-2.0.7/usr/bin/equivs-build	2008-01-22 11:12:32.000000000 +0100
@@ -61,6 +61,51 @@
 # Copy any additional files
 
 my @extra_files = split ",", $control{'Extra-Files'} || "";
+my %install_files = ();
+for (split "\n", $control{'Files'} || "") {
+    $install_files{$2} = $1 if m/^\s*(\S+)\s+(\S+)\s*$/;
+}
+my %create_files = ();
+for (@{$control{'File'} || []}) {
+  if (m/^\s*(\S+)\n(.*)$/s) {
+    my ($f,$b) = ($1,$2);
+    $b =~ s/^ //mg;
+    $b =~ s/^[.]([.]*)$/$1/mg;
+    $create_files{$f} = $b;
+  }
+}
+
+mkdir "$builddir/install", 0755;
+open INSTALL, '>', "$builddir/debian/install" or
+  die "Cannot open $builddir/debian/installfor writing: $!\n";
+foreach my $target (keys %install_files, keys %create_files) {
+  $target =~ s/ +//g;
+  my $destination;
+  my $cnt = 0;
+  if ($target =~ m/^(preinst|postinst|prerm|postrm)$/) {
+    $destination = "debian/$target";
+  } else {
+  do {
+      $destination = "install/$cnt";
+      mkdir "$builddir/$destination" unless -d "$builddir/$destination";
+      $destination .= "/" . basename($target);
+      $cnt++;
+  } while ( -e "$builddir/$destination" );
+    print INSTALL "$destination " . dirname($target) . "\n";
+  }
+  if (defined $install_files{$target}) {
+    my $file = $install_files{$target};
+  copy $file, "$builddir/$destination" or
+    die "Cannot copy $file to $builddir/$destination: $!\n";
+  } else {
+    open CREATE, ">", "$builddir/$destination" or
+      die "Cannot create file $builddir/$destination: $!\n";
+    print CREATE $create_files{$target};
+    print CREATE "\n";
+    close CREATE;
+  } 
+}
+close INSTALL;
 
 mkdir "$builddir/docs", 0755;
 open DOCS, '>', "$builddir/debian/docs" or
@@ -82,7 +127,6 @@
       die "Cannot copy $script to $builddir/debian/$destination: $!\n";
 }
 
-
 write_control_file($builddir, \%control);
 
 if ($control{'Changelog'}) {
@@ -132,11 +176,12 @@
 
 sub read_control_file {
   my ($builddir, $control, $specific_arch, $file) = @_;
+  my @control = ();
   my $in;
 
   open($in, "$builddir/debian/control.in") or
     die "Cannot open control file: $!\n";
-  read_control_file_section($in, $control) or
+  read_control_file_section($in, [EMAIL PROTECTED]) or
     die "error: empty control file\n";
   close $in;
 
@@ -150,6 +195,8 @@
 
   chomp($systemname = qx(hostname --fqdn));
 
+  %{$control} = @control;
+
   $control->{'Maintainer'} = "$fullname <[EMAIL PROTECTED]>";
 
   $control->{'Architecture'} = $specific_arch ? 'any' : 'all';
@@ -157,10 +204,24 @@
   open($in, $file) or
     die "Cannot open control file $file: $!\n";
 
-  read_control_file_section($in, $control) or
+  @control = ();
+  read_control_file_section($in, [EMAIL PROTECTED]) or
     die "error: empty control file\n";
   close $in;
 
+  for (my $i = 0; $i < $#control; $i += 2) {
+    my $k = $control[$i];
+    my $v = $control[$i+1];
+    if ($k eq "File") {
+      my $vv = [];
+      $vv = $control->{$k} if defined $control->{$k};
+      push @{$vv}, $v;
+      $control->{$k} = $vv;
+    } else {
+      $control->{$k} = $v;
+    }
+  }
+
   # Fix Source: entry
   $control->{'Source'} = $control->{'Package'};
 
@@ -177,17 +238,17 @@
   my ($cf,$v);
   while (<$fh>) {
     chomp;
-    next if (m/^\s*$/ or m/^\s*#/);
+    next if (m/^\s*$/ or m/^#/);
 
     # new field?
     if (/^(\S+)\s*:\s*(.*?)\s*$/) {
       ($cf,$v) = (ucfirst lc $1, $2);
       $cf =~ s/(?<=-)([a-z])/uc $1/eg;
-      $pfields->{$cf} = $v;
+      push @{$pfields}, $cf, $v;
     } elsif (/^(\s+\S.*)$/) {
       $v = $1;
       defined($cf) or die "syntax error in control file: no field specified\n";
-      $pfields->{$cf} .= "\n$v";
+      $pfields->[-1] .= "\n$v";
     } else {
       die "syntax error in control file: $_\n";
     }
@@ -243,15 +304,16 @@
 
 sub make_changelog {
   my ($builddir, $control) = @_;
-  my ($version, $date);
+  my ($version, $suite, $date);
 
   $version = $control->{'Version'} || "1.0";
-  chomp ($date = qx(822-date));
+  $suite = $control->{'Suite'} || "unstable";
+  chomp ($date = qx(date -R));
 
   open OUT, '>', "$builddir/debian/changelog" or
     die "Couldn't write changelog: $!\n";
   print OUT <<EOINPUT;
-$control->{Package} ($version) unstable; urgency=low
+$control->{Package} ($version) $suite; urgency=low
 
   * First version
 
diff -Nru /tmp/qkqEiDddKk/equivs-2.0.7/usr/share/equivs/template/debian/rules /tmp/4X1M7l859t/equivs-2.0.7/usr/share/equivs/template/debian/rules
--- equivs-2.0.7/usr/share/equivs/template/debian/rules	2006-02-26 12:46:51.000000000 +0100
+++ equivs-2.0.7/usr/share/equivs/template/debian/rules	2008-01-22 11:11:26.000000000 +0100
@@ -20,6 +20,7 @@
 binary-arch: install
 	dh_testdir
 	dh_testroot
+	dh_install
 	dh_installdocs
 	dh_installchangelogs
 	dh_compress

Attachment: signature.asc
Description: Digital signature

Reply via email to