Unable to upgrade packages [Solved]

Anything that pertains to Entropy, Equo or Sulfur

Moderator: Moderators

Post Reply
rdnetto
Young Hen
Posts: 27
Joined: Sun Jun 23, 2013 10:06

Unable to upgrade packages [Solved]

Post by rdnetto » Sun Apr 05, 2015 13:44

Hi,
I am no longer able to install updates via entropy.

Code: Select all

$ sudo equo upgrade -p
╠  @@ Calculating System Updates: 
╠  @@ 416 => Packages matching update
╠  @@ 36 => Packages matching not available
╠  @@ 1575 => Packages matching already up to date
╠  @@ Calculating dependencies...
☢  @@ Dependencies not found:
☢    # Not found: >=media-video/ffmpeg-1.2.1:0

$ equery d media-video/ffmpeg
 * These packages depend on media-video/ffmpeg:
app-misc/strigi-0.7.8-r1 (!libav ? media-video/ffmpeg:0)
kde-base/ffmpegthumbs-4.14.3 (!libav ? media-video/ffmpeg:0)
media-libs/chromaprint-1.2 (!libav ? media-video/ffmpeg:0)
media-libs/gegl-0.2.0-r2 (!libav ? media-video/ffmpeg:0)
media-libs/mediastreamer-2.9.0-r1 (!libav ? >=media-video/ffmpeg-1.2.6-r1:0)
media-libs/opencv-2.4.9 (!libav ? media-video/ffmpeg:0)
media-libs/xine-lib-1.2.6-r1 (!libav ? media-video/ffmpeg:0)
media-plugins/gst-plugins-libav-1.4.5-r1 (!libav ? >=media-video/ffmpeg-2.2:0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?])
media-plugins/mediastreamer-x264-1.4.2-r1 (!libav ? media-video/ffmpeg:0)
media-video/mplayer2-2.0_p20131009-r1 (!libav ? media-video/ffmpeg:0)
                                      (!libav ? >=media-video/ffmpeg-1.2.6:0[threads?,vdpau?])
media-video/mpv-0.8.3 (!libav ? >=media-video/ffmpeg-2.1.4:0[encode?,threads,vaapi?,vdpau?])
media-video/vlc-2.2.0 (!libav ? media-video/ffmpeg:0)
                      (!libav ? >=media-video/ffmpeg-1.2:0)
                      (!libav ? media-video/ffmpeg:0[vaapi])
virtual/ffmpeg-9-r2 (!libav ? >=media-video/ffmpeg-1.2.6-r1:0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?,X?,encode?,gsm?,jpeg2k?,mp3?,opus?,sdl?,speex?,theora?,threads?,truetype?,vaapi?,vdpau?,x264?])
As I understand it, Sabayon uses libav, so there shouldn't even be any packages which depend on ffmpeg.
Running 'equery u $(equery d media-video/ffmpeg) | grep libav' confirms that everything has the libav USE flag set.

This only happens on one of my systems, though as far as I can tell the contents of /etc/entropy are identical.
Can anyone tell me how to identify which package has a dependency on media-video/ffmpeg?
Last edited by rdnetto on Sun Apr 05, 2015 17:36, edited 1 time in total.

joost
Sagely Hen
Posts: 2742
Joined: Fri Nov 17, 2006 12:11
Location: The Netherlands
Contact:

Re: Unable to upgrade packages

Post by joost » Sun Apr 05, 2015 16:02

Nothing in Entropy deps on ffmpeg.

Ran on server:

Code: Select all

eit q revdeps media-video/ffmpeg
☛ Not matched: media-video/ffmpeg
I guess you used Portage on that system?

Maybe try:

Code: Select all

equo update --force
My blog | Mastodon | Please support Sabayon: Become a Patron

rdnetto
Young Hen
Posts: 27
Joined: Sun Jun 23, 2013 10:06

Re: Unable to upgrade packages

Post by rdnetto » Sun Apr 05, 2015 17:18

EDIT: Ok, I've figured it out. Scroll to the bottom for answer.
joost wrote:Nothing in Entropy deps on ffmpeg.

Ran on server:

Code: Select all

eit q revdeps media-video/ffmpeg
☛ Not matched: media-video/ffmpeg
I guess you used Portage on that system?
Yes, though I didn't think Portage packages could block an upgrade like this, since Entropy normally either tries to replace them with its own versions or complains about masked packages. (The packages emerged were libav-11 [1] and some reverse dependencies of it - if anything I'd expect them to block ffmpeg rather than requiring it.)

[1] It's hitting stable soon, and I've been trying to find the bugs so we can bump the version in entropy without too many issues. (Also, mplayer2 got deprecated and the version of mpv which is compatible with smplayer needed a newer libav.)
Maybe try:

Code: Select all

equo update --force
Doesn't seem to help.

Code: Select all

$ sudo equo update --force
╠  @@ Repositories synchronization ...
╠   # Sabayon Linux Official Repository
╠   # Repository URL: http://pkg.sabayon.org/standard/sabayon-weekly/database/amd64/5 [bz2]
╠   # Repository URL: http://pkg.repo.sabayon.org/standard/sabayon-weekly/database/amd64/5 [bz2]
╠   # Repository local path: /var/lib/entropy/client/database/amd64/sabayon-weekly/standard/amd64/5
╠   # Repository API: 3
╠   # Selected URL: http://pkg.sabayon.org/standard/sabayon-weekly/database/amd64/5 [bz2]
╠       Downloading repository ...
╠       Downloading checksum packages.db.dumplight.bz2.md5 ...
╠       packages.db.meta: available, w00t!.
╠         << unpacked meta file: 00-sabayon.package.keywords
╠         << unpacked meta file: 00-sabayon.package.mask
╠         << unpacked meta file: 00-sabayon.package.unmask
╠         << unpacked meta file: 00-sabayon.package.use
╠         << unpacked meta file: cross-armv6j-hardfloat-linux-gnueabi
╠         << unpacked meta file: cross-armv7a-hardfloat-linux-gnueabi
╠         << unpacked meta file: cross-armv7a-unknown-linux-gnueabi
╠         << unpacked meta file: eapi
╠         << unpacked meta file: make.conf
╠         << unpacked meta file: make.profile
╠         << unpacked meta file: packages.db.critical
╠         << unpacked meta file: packages.db.fallback_mirrors
╠         << unpacked meta file: packages.db.keywords
╠         << unpacked meta file: packages.db.lic_whitelist
╠         << unpacked meta file: packages.db.mask
╠         << unpacked meta file: packages.db.mirrors
╠         << unpacked meta file: packages.db.post_update.sh
╠         << unpacked meta file: packages.db.post_upgrade.sh
╠         << unpacked meta file: packages.db.restricted
╠         << unpacked meta file: packages.db.revision
╠         << unpacked meta file: packages.db.system_mask
╠         << unpacked meta file: packages.db.webservices
╠         << unpacked meta file: parent
╠         << unpacked meta file: signature.asc
╠       packages.db.meta.asc: not available, it's ok.
╠       notice.rss: available, w00t!.
╠       Repository revision: 3144
╠       Downloaded repository status: OK
╠       GPG key already installed for: sabayon-weekly
☛       Make sure to verify the imported key and set an appropriate trust level:
☛       $ gpg --homedir '/etc/entropy/client-gpg-keys' --edit-key 'F96DEF6B01C5BDAEB1BADB8CB116DA6F114D935D'
╠       Unpacking database to packages.db.dumplight ...
╠       Injecting downloaded dump packages.db.dumplight, please wait ...
╠       Indexing Repository metadata ...
╠  @@ /etc/make.profile: link differs. Updating.
╠  @@ Security Advisories: getting latest advisories ...
╠  @@ Security Advisories: already up to date
╠  @@  Notice board: sabayon-weekly
╠     [0] [Mon, 29 Jul 2013 17:09:52 +0000] Title: Important: systemd replaces OpenRC as our main init system
╠     [1] [Sat, 09 Nov 2013 12:00:33 +0000] Title: GNOME users: please migrate to systemd now!
╠     [2] [Sat, 09 Nov 2013 12:03:06 +0000] Title: Important: Sabayon funding in 2013 and 2014
╠     [3] [Wed, 26 Feb 2014 13:46:17 +0000] Title: Running OpenRC is now unsupported

$ sudo equo upgrade
╠  @@ Calculating System Updates: 
╠  @@ Calculating dependencies...
☢  @@ Dependencies not found:
☢    # Not found: >=media-video/ffmpeg-1.2.1:0
Grepping /usr/portage for the atom shows the only installed package containing it is xbmc, but that's from the Sabayon overlay, and that version doesn't contain any dependencies on ffmpeg. Unless...

Ok, so this is interesting. If I mask mplayer, then the error message changes to:

Code: Select all

╠  @@ Calculating System Updates: 
╠  @@ Calculating dependencies...
☢  @@ Dependencies not found:
☛  !!! Every package matching media-video/mplayer[bidi,libass,png,X] is masked.
☛     # Masking reason: user package.mask
☛      <> atom: media-video/mplayer-1.2_pre20130729 in sabayon-weekly
SOLUTION
So, at some point during my experimentation with smplayer, mpv and libav-11, I uninstalled mplayer. Entropy was trying to update smplayer to the latest version, which pulled in mplayer, and the ancient version in entropy has the following dependencies:

Code: Select all

$ equo match --verbose mplayer
╠      @@ Package: media-video/mplayer-1.2_pre20130729 branch: 5, [sabayon-weekly] 
...
╠          ## Dependencies:
...
╠          ##               [0] >=media-video/ffmpeg-1.2.1:0;>=media-video/libav-9.8:0?
╠          ##               [3] >=media-video/ffmpeg-1.2.1:0;>=media-video/libav-9.8:0?
...
╠          ##               Legend:
╠          ##               {0} Runtime dependency
╠          ##               {1} Post dependency
╠          ##               {2} Manually added (by staff) dependency
╠          ##               {3} Build dependency
I'm not sure about the syntax used by equo, but in the ebuild those are blockers, and not present in the newer versions.

I'm still not entirely certain why it was trying to install ffmpeg, given that libav-11 should satisfy that dependency and entropy is definitely aware that it is installed, but at least I've got a solution. (Emerging smplayer and masking all versions of it fixed it. Another alternative would have been to emerge mplayer, since portage was able to install any version of it without pulling in ffmpeg.)

Entropy handling dependencies differently to portage definitely feels like a bug though.
Last edited by rdnetto on Sun Apr 05, 2015 17:23, edited 1 time in total.

joost
Sagely Hen
Posts: 2742
Joined: Fri Nov 17, 2006 12:11
Location: The Netherlands
Contact:

Re: Unable to upgrade packages

Post by joost » Sun Apr 05, 2015 17:23

You are the bug.

:alien:
My blog | Mastodon | Please support Sabayon: Become a Patron

rdnetto
Young Hen
Posts: 27
Joined: Sun Jun 23, 2013 10:06

Re: Unable to upgrade packages

Post by rdnetto » Sun Apr 05, 2015 17:32

joost wrote:You are the bug.

:alien:
Given the number of systems the apostrophe in my surname has broken, I'm sure you're not the only one who feels that way... :P

rdnetto
Young Hen
Posts: 27
Joined: Sun Jun 23, 2013 10:06

Re: Unable to upgrade packages [Solved]

Post by rdnetto » Mon Apr 06, 2015 19:42

So, I did a bit of digging and it turns out there really is a bug in entropy.

The exact conditions which trigger it are:
  • mplayer (the package to be installed) has a dependency of the form 'ffmpeg OR libav'. [1]
  • libav-9.17 (the version of libav in entropy) is masked
  • the installed version of libav (11.3) is greater than (or equal to?) the version of libav in entropy
Entropy then fails to satisfy the dependency with libav because the only version it can install is masked, even though there is already a version installed which does satisfy it. Unmasking libav-9.17 allows it to meet the dependency with libav-11.3 (libav is not downgraded [2]).

I've submitted a pull request on Github - so hopefully it'll get fixed soon..

[1] Counter-example: xine-lib, which has the dependency 'media-video/libav:0', is unaffected.
[2] I have 'ignore-spm-downgrades = enable' in client.conf.

lxnay
Land Owner
Posts: 3596
Joined: Thu Oct 13, 2005 23:16
Location: Italy
Contact:

Re: Unable to upgrade packages [Solved]

Post by lxnay » Fri Apr 24, 2015 9:07

libav-9.17 is not masked in Entropy. :?: Are you sure that you did not mask it on your system?
Image
Join us on IRC (chat.freenode.net #sabayon or WebChat)
Submit bugs to our Bug Tracker
Follow me on Twitter
Add me on Facebook
Add me on Google+

rdnetto
Young Hen
Posts: 27
Joined: Sun Jun 23, 2013 10:06

Re: Unable to upgrade packages [Solved]

Post by rdnetto » Fri Apr 24, 2015 9:21

lxnay wrote:libav-9.17 is not masked in Entropy. :?: Are you sure that you did not mask it on your system?
I did mask it on my system (because I installed libav-11.3 via portage). I know that using portage with entropy is not supported, but this bug can also manifest when using pure entropy.

The reason I consider it a bug is that packages which are masked and installed should be able to satisfy dependencies (since masking is also used to prevent entropy from upgrading/downgrading a package, as opposed to preventing the installation of a package). However, if the package is masked entropy does not currently consider it. This means that the user must temporarily unmask the package to allow the install/upgrade to proceed, even though entropy will not change the package status/version. (This is exacerbated by the fact that the package which should be unmasked is not necessarily the one listed in the error message.)

Post Reply