Package: debpool
Version: 0.2.3
Severity: minor
tags: patch

There is no real reason for Checksums to be a hash (%Checksums) in Release.pm. 
By using a list instead the file lists in the Release files will be in neat 
order instead of random.

Please see attached patch.

-- 
Magnus Holmgren        [EMAIL PROTECTED]
--- debpool-0.2.3/share/DebPool/Release.pm
+++ debpool-0.2.4/share/DebPool/Release.pm	2007-03-18 09:35:22.779559043 +0100
@@ -93,6 +93,8 @@
     'Sources',
     'Packages.gz',
     'Sources.gz',
+    'Packages.bz2',
+    'Sources.bz2',
 );
 
 ### File lexicals
@@ -118,7 +120,7 @@
 
     my($archive, $component, $architecture, $version) = @_;
 
-    my(%Checksums);
+    my(@Checksums);
 
     # Before we bother to do much else, generate the MD5 and SHA1 checksums
     # we'll need later. This is mostly so that we can catch errors before
@@ -140,9 +142,7 @@
     # Now, for each file, generate MD5 and SHA1 checksums, and put them
     # into Checksums for later use (assuming it's a file we care about).
 
-    my($ck_file);
-
-    foreach $ck_file (@dirfiles) {
+    foreach my $ck_file (@dirfiles) {
         if (0 == grep(/^$ck_file$/, @SigFiles)) { # We don't care about it.
             next;
         }
@@ -169,7 +169,8 @@
         my($md5) = Digest::MD5::md5_hex(@filetext);
         my($sha1) = Digest::SHA1::sha1_hex(@filetext);
 
-        $Checksums{$ck_file} = {
+        push @Checksums, {
+            'File' => $ck_file,
             'Size' => $size,
             'MD5' => $md5,
             'SHA1' => $sha1,
@@ -199,15 +200,15 @@
     # Now print MD5 and SHA1 checksum lists.
 
     print $tmpfile_handle "MD5Sum:\n";
-    foreach $ck_file (keys(%Checksums)) {
-        printf $tmpfile_handle " %s %8d %s\n", $Checksums{$ck_file}->{'MD5'},
-            $Checksums{$ck_file}->{'Size'}, $ck_file;
+    foreach my $checksum (@Checksums) {
+        printf $tmpfile_handle " %s %8d %s\n", $checksum->{'MD5'},
+            $checksum->{'Size'}, $checksum->{'File'};
     }
 
     print $tmpfile_handle "SHA1:\n";
-    foreach $ck_file (keys(%Checksums)) {
-        printf $tmpfile_handle " %s %8d %s\n", $Checksums{$ck_file}->{'SHA1'},
-            $Checksums{$ck_file}->{'Size'}, $ck_file;
+    foreach my $checksum (@Checksums) {
+        printf $tmpfile_handle " %s %8d %s\n", $checksum->{'SHA1'},
+            $checksum->{'Size'}, $checksum->{'File'};
     }
 
     close($tmpfile_handle);
@@ -232,7 +233,7 @@
     my($version) = shift(@_);
     my(@files) = @_;
 
-    my(%Checksums);
+    my(@Checksums);
     my($dists_dir) = $Options{'dists_dir'};
 
     # Before we bother to do much else, generate the MD5 and SHA1 checksums
@@ -261,7 +262,8 @@
         my($md5) = Digest::MD5::md5_hex(@filetext);
         my($sha1) = Digest::SHA1::sha1_hex(@filetext);
     
-        $Checksums{$file} = {
+        push @Checksums, {
+            'File' => $file,
             'Size' => $size,
             'MD5' => $md5,
             'SHA1' => $sha1,
@@ -290,15 +292,15 @@
     # Now print MD5 and SHA1 checksum lists.
 
     print $tmpfile_handle "MD5Sum:\n";
-    foreach $file (keys(%Checksums)) {
-        printf $tmpfile_handle " %s %8d %s\n", $Checksums{$file}->{'MD5'},
-            $Checksums{$file}->{'Size'}, $file;
+    foreach $file (@Checksums) {
+        printf $tmpfile_handle " %s %8d %s\n", $file->{'MD5'},
+            $file->{'Size'}, $file->{'File'};
     }
 
     print $tmpfile_handle "SHA1:\n";
-    foreach $file (keys(%Checksums)) {
-        printf $tmpfile_handle " %s %8d %s\n", $Checksums{$file}->{'SHA1'},
-            $Checksums{$file}->{'Size'}, $file;
+    foreach $file (@Checksums) {
+        printf $tmpfile_handle " %s %8d %s\n", $file->{'SHA1'},
+            $file->{'Size'}, $file->{'File'};
     }
 
     close($tmpfile_handle);

Attachment: pgpsHJBr3vLSR.pgp
Description: PGP signature

Reply via email to