Skip to contentSkip to conversation

Not selecting <old version of package> as installing it would break existing dependencies

DISCUSSION Mike Looijmans 2 participants 5 messages Mar 24, 2015 – Mar 31, 2015

lore
Share & tools
lore
#0 lore raw

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.

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?

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?

Signature · 1 line
Mike Looijmans
#1 lore raw

[email protected] wrote on 03/24/2015 12:16:05 PM:

Quoted 7 lines

From: Mike Looijmans <[email protected]>
To: [email protected],
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: [email protected]

Quoted 6 lines

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).

Quoted 7 lines

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.

Quoted 6 lines

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.

Hope this helps!

Alejandro del Castillo

Quoted 7 lines
Signature · 6 lines
Mike Looijmans
-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
#2 lore raw
Quoted 44 lines · Alejandro del Castillo

[email protected] wrote on 03/24/2015 12:16:05 PM:

Quoted 7 lines

From: Mike Looijmans <[email protected]>
To: [email protected],
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: [email protected]

Quoted 6 lines

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).

Quoted 7 lines

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.

Quoted 1 line

There is only one package that (r)depends on that lib (enigma2). Nothing

Quoted 7 lines
Quoted 4 lines

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?

Quoted 1 line

Hope this helps!

It helps to know that the message is harmless.

Signature · 1 line
Mike Looijmans
#3 lore raw

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.

cheers,

-Alejandro

From:   Mike Looijmans <[email protected]>
To:     Alejandro del Castillo <[email protected]>, 
Cc:     [email protected], 
[email protected]
Date:   03/28/2015 08:04 AM
Subject:        Re: [OE-core] Not selecting <old version of package> as 

installing it would break existing dependencies

Quoted 14 lines · Alejandro del Castillo

[email protected] wrote on 03/24/2015 12:16:05 PM:

Quoted 11 lines

From: Mike Looijmans <[email protected]>
To: [email protected],
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: [email protected]

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:

Quoted 5 lines
Quoted 2 lines

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

Quoted 6 lines

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

Quoted 8 lines

pkg_breaks_reverse_dep check fails, triggering the message shown above (and removing the candidate).

Quoted 5 lines

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.

Quoted 10 lines
Quoted 2 lines

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.

Quoted 1 line

There is only one package that (r)depends on that lib (enigma2).

Nothing

Quoted 8 lines
Quoted 5 lines

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?

Quoted 1 line

Hope this helps!

It helps to know that the message is harmless.

Signature · 1 line
Mike Looijmans
#4 lore raw
Quoted 8 lines · Alejandro del Castillo

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.

Quoted 106 lines

cheers,

-Alejandro

From:   Mike Looijmans <[email protected]>
To:     Alejandro del Castillo <[email protected]>,
Cc:     [email protected],
[email protected]
Date:   03/28/2015 08:04 AM
Subject:        Re: [OE-core] Not selecting <old version of package> as

installing it would break existing dependencies

Quoted 14 lines · Alejandro del Castillo

[email protected] wrote on 03/24/2015 12:16:05 PM:

Quoted 11 lines

From: Mike Looijmans <[email protected]>
To: [email protected],
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: [email protected]

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:

Quoted 5 lines
Quoted 2 lines

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

Quoted 6 lines

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

Quoted 8 lines

pkg_breaks_reverse_dep check fails, triggering the message shown above (and removing the candidate).

Quoted 5 lines

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.

Quoted 10 lines
Quoted 2 lines

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.

Quoted 1 line

There is only one package that (r)depends on that lib (enigma2).

Nothing

Quoted 8 lines
Quoted 5 lines

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?

Quoted 5 lines
Quoted 1 line

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: [email protected]
Website: www.topicproducts.com

Please consider the environment before printing this e-mail