Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 697550

Summary: virtual/libudev-228 and 232 is incorrectly satisfied by >=sys-fs/eudev-1.3
Product: Gentoo Linux Reporter: Mart Raudsepp <leio>
Component: Current packagesAssignee: udev maintainers <udev-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: eudev, gentoo, hydrapolic, kroemmelbein, mgorny, systemd, tomaszg
Priority: Normal Keywords: PullRequest
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=694014
https://github.com/gentoo/gentoo/pull/13448
https://github.com/gentoo/gentoo/pull/13449
https://bugs.gentoo.org/show_bug.cgi?id=698726
Whiteboard:
Package list:
Runtime testing required: ---

Description Mart Raudsepp gentoo-dev 2019-10-12 11:04:43 UTC
eudev-1.3 doesn't provide >=libudev-232 (pkg-config) package, thus the virtual is wrong to have >=sys-fs/eudev-1.3 as a provider.

eudev should be dropped from the virtual, which of course isn't so feasible, but definitely the dep needs to get fixed to require a revision that fixes it in eudev - once that fix eventually materializes, if ever, eudev maintainers are ignoring the bug so far.

>=virtual/libudev-228 is used as a dep in x11-wm/mutter-3.32.x, because that's also what it requires (the pkg-config dep atom is '>= 228'). Therefore it's completely broken right now for ~arch + eudev users and the only solution is to directly depend on libudev or changing virtual or having eudev be fixed and virtual reflected to that.
All current eudev revisions declare a version 220 (or older, haven't checked older versions) in its .pc file.
Comment 1 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-10-24 04:33:28 UTC
Ping.
Comment 2 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-10-26 15:07:07 UTC
Also note that eudev is apparently the last provider to provide static-libs flag.
Comment 3 Mike Gilbert gentoo-dev 2019-10-26 15:17:54 UTC
I don't really see any reasonable way forward without some input from the eudev team.

If you can suggest some workable solution, that would be helpful.
Comment 4 Mike Gilbert gentoo-dev 2019-10-26 15:41:30 UTC
(In reply to Michał Górny from comment #2)
> Also note that eudev is apparently the last provider to provide static-libs
> flag.

It looks like recent systemd releases support building static libs again. I'll look into exposing that in sys-fs/udev and sys-apps/systemd.

https://github.com/systemd/systemd/commit/70848ecfc6306711197394c0926e443e803ae870
Comment 5 Anthony Basile gentoo-dev 2019-10-26 20:39:25 UTC
This should be fixed with eudev-3.2.9 which I just added to the tree.
Comment 6 Larry the Git Cow gentoo-dev 2019-10-27 15:31:49 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f09d6675b255190d9376671c68565c54662d771

commit 9f09d6675b255190d9376671c68565c54662d771
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2019-10-26 15:43:59 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2019-10-27 15:30:40 +0000

    virtual/libudev: Remove incorrect eudev provider from 232
    
    Remove sys-fs/eudev from the list of providers for 232 since it does
    not satisfy the requirement on that version.  Since it is the only
    provider offering static-libs, remove that flag as well (reverse
    dependencies have already been updated to account for that).  While
    at it, bump to EAPI 7.
    
    People who are in dire need of static libraries or eudev in general
    can still install the older version of virtual/libudev.
    
    Closes: https://bugs.gentoo.org/697550
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 virtual/libudev/libudev-215-r1.ebuild |  2 +-
 virtual/libudev/libudev-232-r1.ebuild | 15 +++++++++++++++
 virtual/libudev/libudev-232.ebuild    | 24 ------------------------
 3 files changed, 16 insertions(+), 25 deletions(-)
Comment 7 Markus Baumeister 2019-10-27 19:26:36 UTC
Sorry but I would guess that this fix breaks "stable" on all non-systemd systems. 

I just emerged --sync and emerged @world (i.e. no configuration change) and also got what is described on the forums in https://forums.gentoo.org/viewtopic-t-1103396-highlight-eudev.html by others

--- snip ---
emerge --update --deep --changed-use --backtrack=30 @world 

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] acct-group/kmem-0 
[...]
[ebuild     U  ] mail-client/thunderbird-68.2.0 [60.9.0] USE="gmp-autoupdate%* system-av1%* system-harfbuzz* system-icu* system-jpeg* system-libevent* system-libvpx* system-sqlite* system-webp%* -eme-free% -lto% (-pgo) -test% -wayland%" CPU_FLAGS_X86="avx2%*" 
[ebuild  N    #] sys-fs/udev-242  USE="acl kmod (-selinux)" ABI_X86="32 (64) (-x32)" 
[uninstall     ] sys-fs/eudev-3.2.5 
[blocks b      ] sys-fs/udev ("sys-fs/udev" is blocking sys-fs/eudev-3.2.5)
[ebuild     U  ] virtual/libudev-232-r1 [232]
[ebuild     U  ] dev-libs/libgudev-233-r1 [233]
[ebuild     U  ] dev-libs/libusb-1.0.21-r1 [1.0.21]
[ebuild     U  ] sys-apps/pciutils-3.5.6-r1 [3.5.6]
[ebuild     U  ] sys-fs/lvm2-2.02.184-r5 [2.02.184-r4]
[ebuild     U  ] www-client/chromium-78.0.3904.70 [77.0.3865.120]
[ebuild     U  ] sys-fs/cryptsetup-2.2.1-r1 [2.2.1]

The following mask changes are necessary to proceed:
 (see "package.unmask" in the portage(5) man page for more details)
# required by virtual/libudev-232-r1::gentoo[-systemd]
# required by dev-libs/libgudev-233-r1::gentoo
# required by virtual/libgudev-232::gentoo
# required by x11-misc/colord-1.3.5::gentoo
# required by x11-misc/xiccd-0.3.0::gentoo
# required by @selected
# required by @world (argument)
# /etc/portage/package.mask/systemd:
=sys-fs/udev-242

NOTE: The --autounmask-keep-masks option will prevent emerge
      from creating package.unmask or ** keyword changes.

Would you like to add these changes to your config files? [Yes/No] n
--- snip ---

Obviously I do not want to unmask udev as it is a non-systemd system.
My guess (but I am no portage expert) is that removing eudev from the latest stable virual/libudev gives portage the impression that libudev is now mandatory .

BTW, with respect to
>People who are in dire need of static libraries or eudev in general
>can still install the older version of virtual/libudev.

Isn't stable (normally) supposed to build without such interventions?
Maybe you should thus declare virtual/libudev-232 unstable.
Comment 8 Tomáš Mózes 2019-10-28 06:22:23 UTC
(In reply to Markus Baumeister from comment #7)
> Sorry but I would guess that this fix breaks "stable" on all non-systemd
> systems. 

Same here.

Solved by adding this to package.accept_keywords:
=sys-fs/eudev-3.2.9
=virtual/libudev-232-r2