--- Begin Message ---
Package: dupload
Version: 2.6.3.3
Severity: normal
Tags: patch
I've prepared a new upload for dupload with some fixes and support
for the new checksums-* fields.
Please comment whether you approve the upload.
(May I also suggest that I add my names to Uploaders, given that would
be my third consecutive upload of this package?)
Gruesse,
Frank Lichtenheld
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (900, 'unstable'), (900, 'testing'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.25-rc8-686 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages dupload depends on:
ii perl 5.8.8-12 Larry Wall's Practical Extraction
ii perl-modules [libnet-perl] 5.8.8-12 Core Perl modules
Versions of packages dupload recommends:
ii openssh-client 1:4.7p1-8 secure shell client, an rlogin/rsh
ii ssh 1:4.7p1-8 secure shell client and server (me
-- no debconf information
diff -Nru dupload-2.6.3.3/debian/changelog dupload-2.6.3.4/debian/changelog
--- dupload-2.6.3.3/debian/changelog 2006-11-15 15:50:22.000000000 +0100
+++ dupload-2.6.3.4/debian/changelog 2008-04-21 22:37:23.000000000 +0200
@@ -1,3 +1,18 @@
+dupload (2.6.3.4) unstable; urgency=low
+
+ * Update mentors.debian.net configuration. Patch by Charles Plessy.
+ (Closes: #226101)
+ * Add volatile configuration. (Closes: #420693)
+ * Add backports.org configuration.
+ * Abort upload if distribution is UNRELEASED. (Closes: #384703)
+ (also remove support for "frozen")
+ * Add support for parsing and testing new checksums-* fields.
+ dupload will not complain if the fields are absent.
+ (Closes: #473518)
+ * Check file sizes, too. (Closes: #360161)
+
+ -- Frank Lichtenheld <[EMAIL PROTECTED]> Mon, 21 Apr 2008 22:35:34 +0200
+
dupload (2.6.3.3) unstable; urgency=low
* NMU (with maintainers consent)
diff -Nru /tmp/EXP6Qtz2Vz/dupload-2.6.3.3/dupload
/tmp/cfrM8LWfgf/dupload-2.6.3.4/dupload
--- dupload-2.6.3.3/dupload 2006-11-11 23:14:14.000000000 +0100
+++ dupload-2.6.3.4/dupload 2008-04-21 22:31:26.000000000 +0200
@@ -298,18 +298,39 @@
# distribution code and the files
# avoid duplicate mail addressees
open(C, "<$cf") or fatal("Can't read $cf: $!\n");
+ my ($field);
while (<C>) {
chomp;
- /^changes:\s*/i and $fields{changes}++;
- /^architecture:\s+/i and chomp($arch{$job} = $'), next;
+ /^changes:\s*/i and do {
+ $fields{changes}++;
+ $field = undef;
+ next;
+ };
+ /^architecture:\s+/i and do {
+ chomp($arch{$job} = "$'");
+ $field = undef;
+ next;
+ };
/^distribution:\s+/i and do { $_ = " $'";
/\Wstable/i and $mailto{$mailto}++;
/\Wunstable/i and $mailto{$mailtx}++;
- /\Wfrozen/i and $mailto{$mailtx}++;
/\Wexperimental/i and $mailto{$mailtx}++;
+ /\WUNRELEASED/ and fatal "distribution: UNRELEASED";
+ $field = undef;
next;
};
- /^files:\s*$/i and last;
+ /^(files|checksums-(?:sha1|sha256)):\s*$/i and do {
+ $field = lc $1;
+ push @{$fields{$field}}, $' if $';
+ next;
+ };
+ /^\s+/ and $field and do {
+ push @{$fields{$field}}, $' if $';
+ next;
+ };
+ /^[\w.-]+:/ and do {
+ $field = undef;
+ };
}
foreach (keys %mailto) {
my $k = $_;
@@ -336,38 +357,69 @@
$extra{$job} = [EMAIL PROTECTED];
}
- # read the files from the changes file
- while (<C>) {
+ my %checksums;
+ foreach my $alg (qw(sha1 sha256)) {
+ foreach (@{$fields{"checksums-$alg"}}) {
chomp;
- /^ / and do {
- my ($md5, $size, $sect, $pri, $file) = split;
- $md5{$file} = $md5;
+ my ($chksum, $size, $file) = split;
+ $checksums{$file}{$alg} = $chksum;
+ if (exists $checksums{$file}{size}
+ and $checksums{$file}{size} != $size) {
+ fatal "differing sizes for file $file: $size !=
$checksums{$file}{size}";
}
+ $checksums{$file}{size} = $size;
+ }
+ }
+ foreach (@{$fields{files}}) {
+ chomp;
+ my ($chksum, $size, undef, undef, $file) = split;
+ $checksums{$file}{md5} = $chksum;
+ if (exists $checksums{$file}{size}
+ and $checksums{$file}{size} != $size) {
+ fatal "differing sizes for file $file: $size !=
$checksums{$file}{size}";
+ }
+ $checksums{$file}{size} = $size;
}
close(C);
- %md5 && $fields{changes} or p(": not a changes file ]\n"), next PACKAGE;
+ %checksums && $fields{changes} or p(": not a changes file ]\n"), next
PACKAGE;
# test the md5sums
- foreach (keys %md5) {
- my $file = $_;
- p "\n $file";
- if (-r $file) { $_ = `md5sum $file`; $_ = (split)[0]; }
- else { print ": $!"; $_ = ""; }
- $md5{$file} eq $_ or do {
- $keep or fatal("MD5sum mismatch for $file\n");
- w("MD5sum mismatch for $file",
- ", skipping $job\n");
- push @skipped, $cf;
- next PACKAGE;
- };
- p ", md5sum ok";
- if (!$force && @done && grep(/^u \Q${file}\E/, @done)) {
- p ", already done for $host";
- } else {
- push @files, $file;
- }
- next;
- };
+ foreach my $file (keys %checksums) {
+ p "\n $file";
+ if ($checksums{$file}{size} != -s $file) {
+ $keep or fatal("Size mismatch for $file\n");
+ w("Size mismatch for $file, skipping $job\n");
+ push @skipped, $cf;
+ next PACKAGE;
+ }
+ p ", size ok";
+
+ foreach my $alg (qw(md5 sha1 sha256)) {
+ next unless $checksums{$file}{$alg};
+
+ if (-r $file) {
+ $_ = `${alg}sum $file`;
+ $_ = (split)[0];
+ } else {
+ print ": $!";
+ $_ = "";
+ }
+
+ $checksums{$file}{$alg} eq $_ or do {
+ $keep or fatal(uc($alg)."sum mismatch for $file\n");
+ w(uc($alg)."sum mismatch for $file, skipping $job\n");
+ push @skipped, $cf;
+ next PACKAGE;
+ };
+ p ", ${alg}sum ok";
+ }
+ if (!$force && @done && grep(/^u \Q${file}\E/, @done)) {
+ p ", already done for $host";
+ } else {
+ push @files, $file;
+ }
+ next;
+ }
# The changes file itself
p "\n $cf ok";
diff -Nru /tmp/EXP6Qtz2Vz/dupload-2.6.3.3/dupload.1pod
/tmp/cfrM8LWfgf/dupload-2.6.3.4/dupload.1pod
--- dupload-2.6.3.3/dupload.1pod 2002-10-11 20:53:02.000000000 +0200
+++ dupload-2.6.3.4/dupload.1pod 2008-04-21 22:27:58.000000000 +0200
@@ -20,7 +20,7 @@
E<quot>.changesE<quot>. Further processing is done chdir'ed into the
directories of the changes files.
-B<dupload> tests the MD5 sum for each file listed in the F<.changes> file,
+B<dupload> tests the available checksums and size for each file listed in the
F<.changes> file,
and fails if it finds a mismatch. If all this goes well, B<dupload> checks
if there is an F<.upload> file with the basename of the F<.changes> file.
If the file to be uploaded is recorded to have already been uploaded to the
@@ -97,7 +97,7 @@
=item B<-k> B<--keep>
-Keep going, skipping packages whose MD5sums don't match.
+Keep going, skipping packages whose checksums don't match.
=item B<-c> B<--configfile>
diff -Nru /tmp/EXP6Qtz2Vz/dupload-2.6.3.3/dupload.conf
/tmp/cfrM8LWfgf/dupload-2.6.3.4/dupload.conf
--- dupload-2.6.3.3/dupload.conf 2006-11-11 22:54:13.000000000 +0100
+++ dupload-2.6.3.4/dupload.conf 2008-04-21 21:48:19.000000000 +0200
@@ -78,6 +78,15 @@
dinstall_runs => 1,
};
+# see http://www.debian.org/devel/debian-volatile/ for more information
+$cfg{'volatile'} = {
+ fqdn => "volatile-master.debian.org",
+ incoming => "/pub/UploadQueue/",
+ # files pass on to dinstall on ftp-master which sends emails itself
+ dinstall_runs => 1,
+ passive => 1,
+};
+
# For Delayed uploads use this. You can use 0-day, which is uploaded
# one hour before dinstall runs.
$delay = (defined($ENV{DEBDELAY}) ? $ENV{DEBDELAY} : 7);
@@ -90,22 +99,18 @@
};
# Mentors upload queue, see
-# http://mentors.debian.net/signup.php
+# http://mentors.debian.net/cgi-bin/maintainer-intro
$cfg{'mentors'} = {
fqdn =>'mentors.debian.net',
- method =>'scpb',
- login =>'incoming',
- incoming=>'~',
-# Change these to the user and domain part of your email address
-# and uncomment them
-# visibleuser=>'hugo',
-# visiblename=>'mydomain.tld',
- mailtx =>'[EMAIL PROTECTED]',
- preupload=> {
- deb=>'chmod 0644 %1',
- changes=>'chmod 0644 %1',
- file=>'chmod 0644 %1',
- },
+ incoming=>'/',
+ dinstall_runs => 1,
+ passive => 1,
+};
+
+# see http://www.backports.org/dokuwiki/doku.php?id=contribute for more
information
+$cfg{'bpo'} = {
+ fqdn => "www.backports.org",
+ incoming => "/",
};
# NOTE: Do _NOT_ upload a package to the security upload queue
--- End Message ---