Summary: | net-misc/memcached-1.4.33: libevent dependency does not use := slot operator (already fixed in 1.4.33-r1) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Erik Dannenberg <erik.dannenberg> |
Component: | Current packages | Assignee: | Robin Johnson <robbat2> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | kensington, prometheanfire, sam, tsmksubc, zmedico |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Erik Dannenberg
2017-03-02 18:43:57 UTC
I have same issue. I think not only memcached affected, but it is great example I'm a little confused about what's happening. Where does the binary libevent-2.0.22 come from once the upgrade to libevent-2.1.8 is done - portage's preserved-libs? Hi Michael, I have also reproduced this issue. (In reply to Michael Palimaka (kensington) from comment #2) > I'm a little confused about what's happening. Where does the binary > libevent-2.0.22 come from once the upgrade to libevent-2.1.8 is done - > portage's preserved-libs? This happened because of a series of events like the following: - 1. first memcache (with dependency pulling in libevent-2.0.22) installed and binary packages built 2. memcache + libevent-2.0.22 uninstalled 3. libevent-2.1.8 installed due to depenencies of something other than memcache. 4. install memcache from binary package portage believes libevent-2.1.8 satisifies the memcache dependencies memcache is broken. memcache will be broken because binary package is linked to old sonames from libevent-2.0.22 that no longer exist in libevent-2.1.8. Binary packages are often used and shared between a farm of Gentoo machines to speed things up. So are another common scenario this occurs in: - 1. MachineA installs memcache + dependency libevent-2.0.22 building binary packages 2. MachineB updates portage etc. libevent-2.1.8 is installed 3. MachineB installs memcache binary package it got from MachineA Portage thinks libevent-2.1.8 is fine because dependencies match memcache is broken because it's linking to old SONAMEs If `--ignore-soname-deps=n` is enabled emerge will catch the issue and install the older libevent to meet teh soname dependencies, but this will only work everything is binary packages. In the two scenarios above running `revdep-rebuild` will detect the breakage. Thanks, Berne Thanks for the further detail, Berne. This is strange behaviour given that libevent-2.0.22 has an implicit subslot of '0' and libevent-2.1.8 an explicit 2.1-6 - in my experience portage normally catches this when dealing with binary packages. The issue is that the memcached-1.4.33 ebuild does not use a := slot operator dependency for libevent. It's fixed in the memcached-1.4.33-r1 ebuild, which doesn't have a stable keyword yet. |