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