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

Bug#590041: Mishandles Packages.gz from other archs



David Kalnischkies <kalnischkies+debian@gmail.com> writes:

> 2010/7/23 Goswin von Brederlow <goswin-v-b@web.de>:
>> I have apt configured with Apt::Architectures = { "amd64"; "armel"; }
>> and a Apt::Post-Update hook that transforms the armel Packages.gz file
>> into something suitable for cross-compiling. But all packages that are
>> not Architecture: all are ignored from
>> ftp.de.debian.org_debian_dists_sid_main_binary-armel_Packages.
>
> More specifically: It ignores packages which are not arch :all or :armel
> in this file. Your libc6-armel-cross package is :amd64.
>
> Its done more or less on intension as files which have a specific
> architecture (in this case armel) shouldn't include other architectures
> by design. Could be changed, sure, but i am unsure if this should be done.
> APT has done it that way since ever so far
> (expect the experimental versions in which i broke it?).
>
> (dpkg/status and flat Packages files are different, from these APT will
> include all packages included in the Architectures list).

I thought that could be the problem. But that isn't it, or not just
that (see spooky part below).

I 've put the mangled Packages file at
  http://mrvn.homeip.net/ftp.de.debian.org_debian_dists_sid_main_binary-armel_Packages.bz2
if you want to try yourself.

root@frosties:/var/lib/apt/lists# apt-get update
Get:1 http://chocos sid Release.gpg [197B]
Ign http://chocos/debian/ sid/main Translation-en                       
Get:2 http://chocos sid Release [7962B]                                 
Ign http://chocos sid/main amd64 Packages                                      
Get:3 http://chocos sid/main amd64 Packages [8996kB]
Get:4 http://ftp.de.debian.org sid Release.gpg [835B]                      
Ign http://ftp.de.debian.org/debian/ sid/main Translation-en
Get:5 http://ftp.de.debian.org sid Release [104kB]     
Get:6 http://ftp.de.debian.org sid/main armel Packages [6649kB]
Fetched 15.8MB in 33s (476kB/s)                                                
I: mangling chocos_debian_dists_sid_main_binary-amd64_Packages
I: mangling ftp.de.debian.org_debian_dists_sid_main_binary-armel_Packages
Reading package lists... Done

root@frosties:/var/lib/apt/lists# grep-dctrl -P libc6-armel-cross ftp.de.debian.org_debian_dists_sid_main_binary-armel_Packages 
Package: libc6-armel-cross
Architecture: armel
Version: 2.11.2-2~0.3
Breaks: locales (<< 2.11), locales-all (<< 2.11), nscd (<< 2.11)
Conflicts: tzdata (<< 2007k-1), tzdata-etch, libc6-i386 (<< 2.9-18), ia32-libs, ia32-libs-gtk
Depends: libc-bin (= 2.11.2-2), libgcc1-armel-cross
Provides: glibc-2.11-1-armel-cross, ia32-abi, ia32-abi-1
Replaces: ia32-libs, ia32-libs-gtk
Suggests: glibc-doc, debconf | debconf-2.0, locales
Description: Embedded GNU C Library: Shared libraries
 Contains the standard libraries that are used by nearly all programs on
 the system. This package includes shared versions of the standard C library
 and the standard math library, as well as many others.
Filename: pool/main/e/eglibc/libc6_2.11.2-2_armel.deb
Homepage: http://www.eglibc.org
Installed-Size: 9740
MD5sum: f5b878ce5fb8aa01a7927fa1460df537
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Priority: required
SHA1: 0464d597dfbf949e8c17a42325b1f93fb4914afd
SHA256: faca4a3d9ccff57568abf41f6cb81ddd835be7b5d8b0161e2d5f9a7f26aae3c0
Section: libs
Size: 4178958
Source: eglibc (2.11.2-2)
Tag: devel::lang:c, devel::library, implemented-in::c, protocol::ipv6, role::shared-lib, suite::gnu

root@frosties:/var/lib/apt/lists# apt-cache show libc6-armel-cross
E: Can't select versions from package 'libc6-armel-cross' as it purely virtual
E: No packages found


And now for the really spooky part:

root@frosties:/var/lib/apt/lists# grep-dctrl -P libc6-armel-cross ftp.de.debian.org_debian_dists_sid_main_binary-armel_Packages > t

root@frosties:/var/lib/apt/lists# mv t ftp.de.debian.org_debian_dists_sid_main_binary-armel_Packages

root@frosties:/var/lib/apt/lists# apt-cache show libc6-armel-cross
Package: libc6-armel-cross
Architecture: armel
Version: 2.11.2-2~0.3
Breaks: locales (<< 2.11), locales-all (<< 2.11), nscd (<< 2.11)
Conflicts: tzdata (<< 2007k-1), tzdata-etch, libc6-i386 (<< 2.9-18), ia32-libs, ia32-libs-gtk
Depends: libc-bin (= 2.11.2-2), libgcc1-armel-cross
Provides: glibc-2.11-1-armel-cross, ia32-abi, ia32-abi-1
Replaces: ia32-libs, ia32-libs-gtk
Suggests: glibc-doc, debconf | debconf-2.0, locales
Description: Embedded GNU C Library: Shared libraries
 Contains the standard libraries that are used by nearly all programs on
 the system. This package includes shared versions of the standard C library
 and the standard math library, as well as many others.
Filename: pool/main/e/eglibc/libc6_2.11.2-2_armel.deb
Homepage: http://www.eglibc.org
Installed-Size: 9740
MD5sum: f5b878ce5fb8aa01a7927fa1460df537
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Priority: required
SHA1: 0464d597dfbf949e8c17a42325b1f93fb4914afd
SHA256: faca4a3d9ccff57568abf41f6cb81ddd835be7b5d8b0161e2d5f9a7f26aae3c0
Section: libs
Size: 4178958
Source: eglibc (2.11.2-2)
Tag: devel::lang:c, devel::library, implemented-in::c, protocol::ipv6, role::shared-lib, suite::gnu


Where does that come from suddenly? Testing some more I find that adding
libdb1-compat-armel-cross to the Packages file makes libc6-armel-cross
disapear:

===[ ftp.de.debian.org_debian_dists_sid_main_binary-armel_Packages ]==
Package: libc6-armel-cross
Architecture: armel
Version: 2.11.2-2~0.3
Breaks: locales (<< 2.11), locales-all (<< 2.11), nscd (<< 2.11)
Conflicts: tzdata (<< 2007k-1), tzdata-etch, libc6-i386 (<< 2.9-18), ia32-libs, ia32-libs-gtk
Depends: libc-bin (= 2.11.2-2), libgcc1-armel-cross
Provides: glibc-2.11-1-armel-cross, ia32-abi, ia32-abi-1
Replaces: ia32-libs, ia32-libs-gtk
Suggests: glibc-doc, debconf | debconf-2.0, locales
Description: Embedded GNU C Library: Shared libraries
 Contains the standard libraries that are used by nearly all programs on
 the system. This package includes shared versions of the standard C library
 and the standard math library, as well as many others.
Filename: pool/main/e/eglibc/libc6_2.11.2-2_armel.deb
Homepage: http://www.eglibc.org
Installed-Size: 9740
MD5sum: f5b878ce5fb8aa01a7927fa1460df537
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Priority: required
SHA1: 0464d597dfbf949e8c17a42325b1f93fb4914afd
SHA256: faca4a3d9ccff57568abf41f6cb81ddd835be7b5d8b0161e2d5f9a7f26aae3c0
Section: libs
Size: 4178958
Source: eglibc (2.11.2-2)
Tag: devel::lang:c, devel::library, implemented-in::c, protocol::ipv6, role::shared-lib, suite::gnu

Package: libdb1-compat-armel-cross
Architecture: armel
Version: 2.1.3-13~0.3
Conflicts: libc6-i386 (<< 2.9-18), ia32-libs, ia32-libs-gtk
Depends: libc6-armel-cross (>= 2.4~0.3)
Provides: ia32-abi, ia32-abi-1
Replaces: libc0.3-armel-cross (<< 2.2.5-13~0.3), libc6-armel-cross (<< 2.2.5-13~0.3), libc6.1-armel-cross (<< 2.2.5-13~0.3), libdb2-util-armel-cross, ia32-libs, ia32-libs-gtk
Description: The Berkeley database routines [glibc 2.0/2.1 compatibility]
 libdb is a library for manipulating database files, developed at Berkeley.
 .
 It supports three kinds of file formats:
  * btree. A representation of a sorted, balanced tree structure.
  * hashed. An extensible, dynamic hashing scheme.
  * UNIX file oriented. A byte stream file with fixed or variable length
    records.
 .
 This library exists for compatibility with applications built against
 glibc 2.0 or 2.1. There is intentionally no corresponding development
 package. Do not link new applications against this library!
Filename: pool/main/d/db1-compat/libdb1-compat_2.1.3-13_armel.deb
Installed-Size: 136
MD5sum: 4043f176ab2b40b0c01bc1211b8c103c
Maintainer: Colin Watson <cjwatson@debian.org>
Priority: extra
SHA1: b9396fdd2e3e8d1d4ba9e74e7346075852d85666
SHA256: f17decaa28d1db3eeb9eb17bebe50d437d293a509bcdd7cdfd3ebb56f5de3cea
Section: oldlibs
Size: 44168
Source: db1-compat (2.1.3-13)
Tag: devel::library, implemented-in::c, role::shared-lib, special::obsolete, works-with::db

======================================================================

Testing some more I find that the problem is the Replaces line. Changing
libc6-armel-cross to Changing libc6-armel-cross2 makes libc6-armel-cross
appear. Changing it back makes it disapear.

MfG
        Goswin



Reply to: