The following commit has been merged in the master branch:
commit b5f01770ba731708abe7585d37d5d473d2c19a4d
Author: Cyril Brulebois <k...@debian.org>
Date:   Tue Feb 21 03:06:06 2012 +0100

    Bug#657557: [PATCH 2/4] Add support for long descriptions in suites above 
squeeze.
    
    Use description-md5 from English translations (when available) to
    restore the long descriptions during package processing.
    
    Fix for:
      http://bugs.debian.org/657557
    
    Archive change:
      http://lists.debian.org/debian-devel-announce/2012/01/msg00004.html

diff --git a/bin/parse-packages b/bin/parse-packages
index a1c8d98..b926982 100755
--- a/bin/parse-packages
+++ b/bin/parse-packages
@@ -59,6 +59,10 @@ $/ = "";
 -d "$DBDIR/xapian.old" && rmtree("$DBDIR/xapian.old");
 mkpath( "$DBDIR/xapian.new" );
 
+# Needed to compensate removal of long descriptions from Packages files:
+my %descriptions_translated_db;
+tie %descriptions_translated_db, "DB_File", 
"files/db/descriptions_translated.db", O_RDONLY, 0666, $DB_BTREE;
+
 for my $suite (@SUITES) {
     my %package_names_suite = ();
     my %packages_all_db;
@@ -129,6 +133,23 @@ for my $suite (@SUITES) {
                    $data{'tag'} = join ", ", @tags;
                }
 
+               # If description-md5 is present, use a lookup, thanks
+               # to the English translation which got processed right
+               # before:
+               if ($data{'description-md5'}) {
+                   # The short description is a nice fallback:
+                   my $description = $data{'description'};
+                   my $lookup = 
$descriptions_translated_db{$data{'description-md5'}};
+                   if ($lookup) {
+                       while ($lookup =~ /([^\001]*)\001([^\000]*)\000/g) {
+                           my ($language, $translated_description) = ($1, $2);
+                           $description = $translated_description
+                               if $language eq 'en';
+                       }
+                       $data{'description'} = $description;
+                   }
+               }
+
                # we add some additional data here
                my $descr = "$data{'description'}\000$data{'package'}\000"
                    .($data{'tag'}||'');
@@ -194,6 +215,8 @@ for my $suite (@SUITES) {
     untie %packages_all_db;
 }
 
+untie %descriptions_translated_db;
+
 print "Writing databases...\n";
 my %packages_small_db;
 tie %packages_small_db, "DB_File", "$DBDIR/packages_small.db.new",

-- 
APT Archive Web-Frontend (Alioth repository)


-- 
To UNSUBSCRIBE, email to debian-www-cvs-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to