[OE-core] Not selecting <old version of package> as installing it would break existing dependencies

Mike Looijmans mike.looijmans at topic.nl
Tue Mar 31 10:01:24 UTC 2015


On 30-03-15 21:16, Alejandro del Castillo wrote:
> Sounds like you hit an already reported bug:
>
>          https://code.google.com/p/opkg/issues/detail?id=142
>
> It is currently targeted for the 0.3 release, but I am not sure if Paul is
> going to be able to get to it on the 0.3 timeframe. Could you add details
> to the bug report (how to reproduce steps would be great)? If Paul doesn't
> get to it on the 0.3 timeframe, I'll take care of it on the next release.

It looks a lot like the problem described there, so I think it's a safe bet to 
say that they're one and the same.

As for steps to reproduce, well, it does that for some packages but not for 
others, and I haven't been able to figure out what triggers it. The common 
factor appears to be that it usually concerns libraries, i.e. packages that 
the user didn't select but where there because of dependencies. If I find a 
way to trigger it, i'll add that to the bug description.

Kind regards,
Mike.


>
> cheers,
>
> -Alejandro
>
>
>
>
> From:   Mike Looijmans <mike.looijmans at topic.nl>
> To:     Alejandro del Castillo <alejandro.delcastillo at ni.com>,
> Cc:     openembedded-core at lists.openembedded.org,
> openembedded-core-bounces at lists.openembedded.org
> Date:   03/28/2015 08:04 AM
> Subject:        Re: [OE-core] Not selecting <old version of package> as
> installing it would break existing dependencies
>
>
>
> On 27-03-15 22:21, Alejandro del Castillo wrote:
>> openembedded-core-bounces at lists.openembedded.org wrote on 03/24/2015
>> 12:16:05 PM:
>>
>>> From: Mike Looijmans <mike.looijmans at topic.nl>
>>> To: openembedded-core at lists.openembedded.org,
>>> Date: 03/24/2015 12:16 PM
>>> Subject: [OE-core] Not selecting <old version of package> as
>>> installing it would break existing dependencies
>>> Sent by: openembedded-core-bounces at lists.openembedded.org
>>>
>>> After upgrading a library to a newer version, for example, something
>>> called libdvbsi++ from 0.3.6 to 0.3.7, running opkg upgrade outputs the
>>> following cryptic error message:
>>>
>>> Not selecting libdvbsi++1 0.3.6 as installing it would break existing
>>> dependencies.
>>
>> When opkg runs, it creates a list of all the available packages on the
>> configured repos + all the installed packages. During an upgrade, it
> goes
>> through the process of finding the best upgrade match for each installed
>> package, searching on the master list. The process goes through a series
>> of checks for each candidate, like making sure the archs are compatible,
>> and making sure installing a candidate won't break existing installed
>> packages. In your case, opkg determines there are 2 candidates,
>> libdvbsi++0.3.6 and libdvbsi++0.3.7. While evaluating libdvbsi++0.3.6,
> the
>> pkg_breaks_reverse_dep check fails, triggering the message shown above
>> (and removing the candidate).
>>
>>> Adding "-V2" to opkg upgrade expands that with the following message:
>>>
>>> opkg_prepare_upgrade_pkg: Package libdvbsi++1 (0.3.7-r2.0) installed in
>>> root is up to date.
>>>
>>> So apparently it knows about the later version, so why complain about
>>> the old one?
>>
>> The function that returns the best candidate match correctly returns
>> libdvbsi++1 0.3.7. It then compares it against what's already installed.
>> The DEBUG message above shows that the best candidate found is already
>> installed on the system.
>>
>>
>>> There is only one package that (r)depends on that lib (enigma2).
> Nothing
>>
>>> else needs it.
>>>
>>> This often happens with other packages as well. Is this a bug in opkg,
>>> or is it trying to tell us we're doing something wrong?
>>
>> It is not a bug, the message is harmless as it is only pointing to the
>> reason why one of the possible upgrade candidates was discarded.
>
> But why does this message keep coming back, even months after the
> upgrade that installed 0.3.7?
> The 0.3.6 version is no longer installed, it is no longer in the feeds,
> but opkg still keeps whining about it. A bit of searching in the
> filesystem of the box reveals that it is only named in a file named
> "/var/lib/opkg/status", which contains the following lines:
>
> Package: libdvbsi++1
> Version: 0.3.7-r2.0
> Depends: libgcc1 (>= 4.9.1), libstdc++6 (>= 4.9.1), libc6 (>= 2.20)
> Provides: libdvbsi++
> Status: unknown ok installed
> Architecture: mips32el
> Installed-Time: 1427216569
> Auto-Installed: yes
>
> Package: libdvbsi++1
> Version: 0.3.6-r1.2
> Depends: libgcc1 (>= 4.9.1), libstdc++6 (>= 4.9.1), libc6 (>= 2.20)
> Provides: libdvbsi++
> Status: install ok not-installed
> Architecture: mips32el
> Installed-Time: 1423323784
> Auto-Installed: yes
>
>
> As you can see, 0.3.6 is mentioned here as "not-installed", but opkg
> keeps reporting about it. Removing the entry from the file works around
> the problem, but I would have expected opkg to remove the entry after
> upgrading it. Why didn't opkg remove the obsolete entry?
>
>
>> Hope this helps!
>
> It helps to know that the message is harmless.
>
>



Kind regards,

Mike Looijmans
System Expert

TOPIC Embedded Products
Eindhovenseweg 32-C, NL-5683 KH Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
Telefax: +31 (0) 499 33 69 70
E-mail: mike.looijmans at topicproducts.com
Website: www.topicproducts.com

Please consider the environment before printing this e-mail




More information about the Openembedded-core mailing list