alsa-lib Binary: disagrees with Files:

Bug #88276 reported by Peter Miller
2
Affects Status Importance Assigned to Milestone
alsa-lib (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

When I build the alsa-lib package from source, the .changes file's Binary and Files fields disagree. I'm using an up-to-date i386 Dapper. There is example .changes file at the end of this note: you will see that the lib32asound2 and lib32asound2-dev binaries are missing.

This is a problem because I'm trying to automate package building, and when I compare the .dsc file with the pool, there are 2 files "missing", indicating that the package needs a rebuild - maybe the previous build got a ^C halfway through copying the files.

What is happening is that pbuilder of alsa-lib makes either "plain and 32" or it makes "plain and 64" files, always with 2 Binary files missing.

Possible solution 1:
I suggest that it should always make "32 and 64 and plain" with plain being a copy of one of other two. This means that the Binary line will always be accurate, and never disagree with the Files field of the .changes file. This way also leads to a more consistent user experience: both width-specific form will always be available no matter what the platform, and so will the "native" form.

Possible solution 2:
An alternative solution is to have architecture specific source packages, TWO of them, one which is for 32 bit machines, and one which is for 64 bit machines. Arrange the Binaries lines of each package so that it always agrees with the Files field of the .changes file.

---- Example .change File: -------------------------------------------

Format: 1.7
Date: Wed, 10 May 2006 19:54:05 -0400
Source: alsa-lib
Binary: libasound2-dev lib32asound2-dev lib64asound2 libasound2-doc lib64asound2-dev lib32asound2 libasound2
Architecture: source all i386
Version: 1.0.10-2ubuntu4
Distribution: dapper
Urgency: low
Maintainer: Debian ALSA Maintainers <email address hidden>
Changed-By: Daniel T Chen <email address hidden>
Description:
 lib64asound2 - ALSA library (64bit)
 lib64asound2-dev - ALSA library development files (64 bit)
 libasound2 - ALSA library
 libasound2-dev - ALSA library development files
 libasound2-doc - ALSA library developer documentation
Changes:
 alsa-lib (1.0.10-2ubuntu4) dapper; urgency=low
 .
   * debian/patches: Add:
     - 24_dont_free_uninitialised_pointer.
     - 24_fix_generation_of_iec958_subframes_and_preamble.
     - 24_fix_pcm_no_control_status_mmap_on_32_compat_mode_64_bit_kernel.
     - 24_make_dmix_dsnoop_defaults_for_aureonxx,
       24_make_dmix_dsnoop_defaults_for_ice17xx.
Files:
 a69075098897bd03019472d729f35216 769 libs optional alsa-lib_1.0.10-2ubuntu4.dsc 110111a335ea3b71a6d1fe9ee76cbbbf 32090 libs optional alsa-lib_1.0.10-2ubuntu4.diff.gz
 66d466afd13196779b5bba552c0378a6 311262 libs optional libasound2_1.0.10-2ubuntu4_i386.deb
 04eac98794800f0bfc6e718c59dc597c 453814 libdevel optional libasound2-dev_1.0.10-2ubuntu4_i386.deb
 ade17450854230e0e180894cda614c92 329896 libs optional lib64asound2_1.0.10-2ubuntu4_i386.deb
 2ba1e08bb87d4364549e29699361693d 445610 libdevel optional lib64asound2-dev_1.0.10-2ubuntu4_i386.deb
 60643c428b0634d75cbbfc695b6177ad 906668 libdevel optional libasound2-doc_1.0.10-2ubuntu4_all.deb

Revision history for this message
Daniel T Chen (crimsun) wrote :

No, the ^Binary field is generated from the source package's debian/control. Please read Debian Policy 5.6.19[0].

[0] http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Binary

Changed in alsa-lib:
status: Unconfirmed → Rejected
Revision history for this message
Peter Miller (pmiller-opensource) wrote :

Ah, my mistake. I misinterpreted this section. The .dsc file is correct.

However, the .changes file is not. The relevant section, quoted below, implies that the Binary field of a .changes file must not list package names of binaries not actually built -- it's difficult to upload a non-existent file. I.e. Files and Binary must agree in a .changes file.

---------------------------------------------------------
5.6.19 Binary

This field is a list of binary packages.

When it appears in the .dsc file it is the list of binary packages which a source package can produce. It does not necessarily produce all of these binary packages for every architecture. The source control file doesn't contain details of which architectures are appropriate for which of the binary packages.

When it appears in a .changes file it lists the names of the binary packages actually being uploaded.

The syntax is a list of binary packages separated by commas[36]. Currently the packages must be separated using only spaces in the .changes file.

Revision history for this message
Daniel T Chen (crimsun) wrote :

Your architecture line includes 'Source'. (See also https://lists.ubuntu.com/archives/feisty-changes/2007-February/005372.html .)

Revision history for this message
Peter Miller (pmiller-opensource) wrote :

I don't understand. I have read "5.6.8 Architecture" and I don't see the connection with the .changes file's Files and Binary field discrepancies. Could you please explain?

Also, that .changes file, above, was produced with a simple pbuilder command, with no options to add or remove anything. Was my pbuilder command wrong?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.