[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#712435: apt-cache show output changed/broken when translated descriptions used

Package: apt
Severity: important

Hi folks,

Another problem to report, I'm afraid. :-(

For a long time, debian-cd has been successfully using the output of
"apt-cache show <list of packages>" to retrieve package metadata
during CD builds. We use it to build an internal cache of package
data; as each package is added to a CD tree at build time, we also add
the relevant metadata to various locations in the CD tree (Packages,
Translations, md5sums.txt, etc.).

Just today, I've come to build the Wheezy r1 CDs. The build seemed to
work just fine, but the output was broken. Tasksel shows no
description for most of the tasks. Debugging through the problem, I

 * tasksel was failing with "Use of uninitialized value $d in
   substitution (s///) at /usr/bin/tasksel line 345"; caused by

 * apt-cache show <package> failed with "E: Handler silently failed",
   which is not very enlightening. :-(

 * eventually, after a lot of debugging by a group of people, we
   worked out that this was caused by the Packages file missing
   Description: fields for all the package entries. Not everybody
   could consistently reproduce the problem (and it certainly wasn't
   there in squeeze); we worked out that the issue was related to the
   Acquire::Languages setting. 

As far as I can see, if Acquire::Languages is set to "none", apt-cache
show will continue to produce valid-looking Packages metadata such
that apt itself will accept that metadata back as its own input. If
there are any translations in effect, the output format is changed
subtly and the Description: field changes to Description-<lang>: ;
then this output is not accepted by apt later. Broken CDs :-(

For now, I'm working around this in debian-cd by explicitly adding "-o
Acquire::Languages=none" to the code where I call apt, but I'd love to
know: is this change a deliberate design decision, or a bug? If it's
deliberate, could you please explain the reasoning? I can't see
anything in the Changelog that mentions this behaviour change,


Reply to: