[Lucid][SRU][PATCH 1/1] UBUNTU: Remove conflicts statements for compat-wireless meta packages

Stefan Bader stefan.bader at canonical.com
Fri Dec 3 08:51:14 UTC 2010


On 12/03/2010 03:56 AM, Leann Ogasawara wrote:
> On Thu, 2010-12-02 at 10:55 -0700, Tim Gardner wrote:
>> On 12/02/2010 10:11 AM, Stefan Bader wrote:
>>> On 12/02/2010 05:45 PM, Leann Ogasawara wrote:
>>>> On Thu, 2010-12-02 at 14:55 +0100, Stefan Bader wrote:
>>>>> On 12/02/2010 03:11 AM, Leann Ogasawara wrote:
>>>>>> BugLink: http://bugs.launchpad.net/bugs/683944
>>>>>>
>>>>>> SRU Justification:
>>>>>>
>>>>>> Examining the Lucid compat-wireless LBM meta packages it appears the
>>>>>> 'Conflicts:' statements in each of the debian/control.d flavours is
>>>>>> unnecessary. The LBM packages themselves already have the appropriate
>>>>>> 'Conflicts:' statements. Furthermore, they are coded in only one
>>>>>> location in each of the LBM packages
>>>>>> (debian/control.d/flavour-control.stub) which is much simpler to track
>>>>>> and update vs multiple separate files in each of the meta package
>>>>>> flavours.
>>>>>>
>>>>>> Impact: The package resolver should do the right thing given each
>>>>>> compat-wireless-2.6.3X package has correct 'Conflicts"' statements in
>>>>>> its dependencies, thus there should be no impact.
>>>>>>
>>>>>> Test Case: Test installing the LBM compat-wireless meta packages and
>>>>>> confirm multiple versions of the compat-wireless package are not
>>>>>> installable at the same time.
>>>>>>
>>>>> Apart from it seeming in various states of being commented out, when testing,
>>>>> was there a difference in that the meta package was started to install and when
>>>>> pulling the real binary package, failed? Or just as before immediately fails
>>>>> when trying to install a conflicting meta package?
>>>>
>>>> In my testing I saw the following:
>>>>
>>>> Selecting previously deselected package
>>>> linux-backports-modules-wireless-2.6.35-lucid-generic.
>>>> (Reading database ... 218140 files and directories currently installed.)
>>>> Unpacking linux-backports-modules-wireless-2.6.35-lucid-generic (from
>>>> linux-backports-modules-wireless-2.6.35-lucid-generic_2.6.32.26.29_amd64.deb) ...
>>>> Selecting previously deselected package
>>>> linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic.
>>>> dpkg:
>>>> regarding .../linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic_2.6.32-26.25_amd64.deb containing linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic:
>>>>   linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic
>>>> conflicts with
>>>> linux-backports-modules-compat-wireless-2.6.36-2.6.32-26-generic
>>>>    linux-backports-modules-compat-wireless-2.6.36-2.6.32-26-generic
>>>> (version 2.6.32-26.25) is present and installed.
>>>> dpkg: error
>>>> processing ../linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic_2.6.32-26.25_amd64.deb (--install):
>>>>   conflicting packages - not installing
>>>> linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic
>>>> dpkg: dependency problems prevent configuration of
>>>> linux-backports-modules-wireless-2.6.35-lucid-generic:
>>>>   linux-backports-modules-wireless-2.6.35-lucid-generic depends on
>>>> linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic;
>>>> however:
>>>>    Package
>>>> linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic is not
>>>> installed.
>>>> dpkg: error processing
>>>> linux-backports-modules-wireless-2.6.35-lucid-generic (--install):
>>>>   dependency problems - leaving unconfigured
>>>> Errors were encountered while processing:
>>>>   ../linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic_2.6.32-26.25_amd64.deb
>>>>   linux-backports-modules-wireless-2.6.35-lucid-generic
>>>>
>>>
>>> Ok, so if I read that correctly the effect would be that the meta package gets
>>> installed but is left unconfigured because the binary package conflicts. While,
>>> I think, with the conflicts in the meta packages too, the meta package would
>>> reject being installed.
>>> So thinking further, maybe this would allow de-installing the binary package,
>>> then installing the meta package, but leaving any previous meta package alone?
>>> Which probably could be an issue.
>>> Which we already should have on Maverick then. Just that maybe not many people
>>> really do this.
>>>
>>> Stefan
>>
>> I think the effect is that, given the conflicts, neither the meta 
>> package or its dependencies could be installed. Furthermore, I do not 
>> think you can remove a binary package upon which the meta package is 
>> dependent without also removing the meta package.
> 
> After testing, Tim is correct that you cannot remove a binary package
> upon which the meta package is dependent without also removing the meta
> package.
> 
> I've subsequently done the following series of tests for the meta
> package.  The first series of tests leaves the Conflicts statements
> applied.  The second series of tests has the Conflicts statements
> removed...
> 
> == With the Conflicts statements applied ==
> 1. Install lbm-wireless-2.6.35 and lbm-wireless-2.6.35-meta (confirm
> they are installed via dpkg -l):
> 
> $ COLUMNS=290 dpkg -l "linux-backports-modules*"
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
> |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
> ||/ Name                                                               Version          Description
> +++-==================================================================-================-================================================
> ii  linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic   2.6.32-26.25     compat-wireless Linux modules for version 2.6.32 on x86/x86_64
> ii  linux-backports-modules-wireless-2.6.35-lucid-generic              2.6.32.26.29     Backported wireless drivers for generic kernel image
> 
> 2. Attempt to install lbm-wireless-2.6.36 and lbm-wireless-2.6.36-meta
> (fails as expected, confirm via dpkg -l):
> 
> $ COLUMNS=290 dpkg -l "linux-backports-modules*"
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
> |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
> ||/ Name                                                               Version          Description
> +++-==================================================================-================-================================================
> ii  linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic   2.6.32-26.25     compat-wireless Linux modules for version 2.6.32 on x86/x86_64
> in  linux-backports-modules-compat-wireless-2.6.36-2.6.32-26-generic   <none>           (no description available)
> ii  linux-backports-modules-wireless-2.6.35-lucid-generic              2.6.32.26.29     Backported wireless drivers for generic kernel image
> in  linux-backports-modules-wireless-2.6.36-lucid-generic              <none>           (no description available)
> 
> == With the Conflicts statements removed ==
> 1. Install lbm-wireless-2.6.35 and lbm-wireless-2.6.35-meta (confirm with dpkg -l):
> 
> $ COLUMNS=290 dpkg -l "linux-backports-modules*"
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
> |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
> ||/ Name                                                               Version          Description
> +++-==================================================================-================-================================================
> ii  linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic   2.6.32-26.25     compat-wireless Linux modules for version 2.6.32 on x86/x86_64
> ii  linux-backports-modules-wireless-2.6.35-lucid-generic              2.6.32.26.29     Backported wireless drivers for generic kernel image
> 
> 2. Attempt to install lbm-wireless-2.6.36 and lbm-wireless-2.6.36-meta
> (fails as expected, confirm with dpkg -l):
> 
> $ COLUMNS=290 dpkg -l "linux-backports-modules*"
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
> |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
> ||/ Name                                                               Version          Description
> +++-==================================================================-================-================================================
> ii  linux-backports-modules-compat-wireless-2.6.35-2.6.32-26-generic   2.6.32-26.25     compat-wireless Linux modules for version 2.6.32 on x86/x86_64
> in  linux-backports-modules-compat-wireless-2.6.36-2.6.32-26-generic   <none>           (no description available)
> ii  linux-backports-modules-wireless-2.6.35-lucid-generic              2.6.32.26.29     Backported wireless drivers for generic kernel image
> iU  linux-backports-modules-wireless-2.6.36-lucid-generic              2.6.32.26.29     Backported wireless drivers for generic kernel image
> 
> == Overall Analysis ==
> 
> The only discrepancy that you'll notice is for the meta package which
> has the Conflicts statement removed (ie. proposed patch applied), it
> doesn't install the meta package, but does leave it Unpacked:
> 
> iU  linux-backports-modules-wireless-2.6.36-lucid-generic              2.6.32.26.29     Backported wireless drivers for generic kernel image
> 
> The meta package which leaves the Conflicts statement applied (ie. don't
> apply proposed patch), it doesn't Unpack:
> 
> in  linux-backports-modules-wireless-2.6.36-lucid-generic              <none>           (no description available)
> 
> So leaving the Conflicts statement applied in the meta package does
> leave your system in a slightly cleaner state.  However, LBM is an
> elective install, and thusly I assume any user who is comfortable
> installing LBM should be comfortable enough to clean up in the event
> they try to install multiple LBM compat-wireless meta packages.  But I
> understand if the majority feels this discrepancy is enough to result in
> the rejection of this SRU for both Lucid and Maverick.
> 
> Thanks,
> Leann
> 
Up to now we don't have any majority (at least not from the number of people
alone). There is Tim and me and you in between. :) I am sort of also in between.
I see the maintenance advantage of not having to care about the conflicts in the
meta package. My main concern was that this may lead to situations with
dependencies messed up but your testing removes that.
So the only change is the half-installed meta until you clean up. I guess this
is not a big issue. On the other hand there likely will be the valid question of
"why do you change things if they are not broken" (even more as the change could
turn things into slightly more brokenness depending on the point of view).
Especially doing that change for an LTS. But, as you say, the package is an
elective install.
So a little bit more on the ack than then nak side here. I guess you are
similar. So I think if nobody steps up here and voices issues, lets do it.

-Stefan




More information about the kernel-team mailing list