Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 518504 - [x11-overlay] media-libs/mesa-9999 should depend on virtual/libudev:= instead of virtual/udev
Summary: [x11-overlay] media-libs/mesa-9999 should depend on virtual/libudev:= instead...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Matt Turner
URL:
Whiteboard:
Keywords:
: 518816 (view as bug list)
Depends on:
Blocks: 506034
  Show dependency tree
 
Reported: 2014-07-29 16:33 UTC by darkbasic
Modified: 2016-10-05 09:05 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
patch (mesa_udev.patch,569 bytes, patch)
2014-07-29 16:33 UTC, darkbasic
Details | Diff
Use slot operator everywhere for MULTILIB_USEDEP dependency (x11_overlay_multilib_use_slot_op.patch,40.06 KB, patch)
2014-08-10 22:17 UTC, Jan Buecken
Details | Diff
Use slot operator everywhere for MULTILIB_USEDEP dependency - special cases v1 (x11_overlay_multilib_use_slot_op_special_cases_v1.patch,1.57 KB, patch)
2014-08-20 11:05 UTC, Jan Buecken
Details | Diff
Use slot operator everywhere for MULTILIB_USEDEP dependency - special cases v2 (x11_overlay_multilib_use_slot_op_special_cases_v2.patch,1.80 KB, patch)
2014-08-20 11:14 UTC, Jan Buecken
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description darkbasic 2014-07-29 16:33:54 UTC
Created attachment 381824 [details, diff]
patch

Patch attached.
Comment 1 Samuli Suominen (RETIRED) gentoo-dev 2014-07-29 17:04:48 UTC
$ cd /usr/portage/media-libs/mesa
$ ls *9999*.ebuild
ls: cannot access *9999*.ebuild: No such file or directory

No such package in Portage. What overlay are you referring to? I'm taking a wild guess, that x11-overlay, so reassigning to them.

And your patch has a bug, it's missing :=, that's the main purpose of having split virtual for libudev and libgudev-1.0

+	gbm? ( virtual/libudev[${MULTILIB_USEDEP}] )
+	dri3? ( virtual/libudev[${MULTILIB_USEDEP}] )

Should be

+	gbm? ( >=virtual/libudev-208:=[${MULTILIB_USEDEP}] )
+	dri3? ( >=virtual/libudev-208:=[${MULTILIB_USEDEP}] )
Comment 2 darkbasic 2014-07-29 17:14:39 UTC
Sorry, I forgot to mention the ebuild is from the x11 overlay.
Can you please explain me what := stands for? Thanks
Comment 3 Samuli Suominen (RETIRED) gentoo-dev 2014-07-29 18:19:20 UTC
(In reply to darkbasic from comment #2)
> Sorry, I forgot to mention the ebuild is from the x11 overlay.
> Can you please explain me what := stands for? Thanks

Short answer:

If virtual/libudev changes SONAME from SLOT="0/1" to SLOT="0/2" because libudev.so.1 changed to libudev.so.2, and media-libs/mesa has the := defined, Portage will then automatically rebuild it after upgrading libudev,
and there is no need for @preserved-rebuild or revdep-rebuild anymore

Long answer, please read:

http://wiki.gentoo.org/wiki/Sub-slots_and_Slot-Operators
Comment 4 Jan Buecken 2014-08-10 21:58:05 UTC
Due to
https://bugs.gentoo.org/show_bug.cgi?id=518816
already changed virtual/udev to virtual/libudev.
But the := is still missing.
So this task is still open:

[x11-overlay] media-libs/mesa: virtual/libudev[${MULTILIB_USEDEP}] dependency should be virtual/libudev:=[${MULTILIB_USEDEP}]
Comment 5 Jan Buecken 2014-08-10 21:58:35 UTC
*** Bug 518816 has been marked as a duplicate of this bug. ***
Comment 6 Jan Buecken 2014-08-10 22:17:30 UTC
Created attachment 382646 [details, diff]
Use slot operator everywhere for MULTILIB_USEDEP dependency

Does the slot operator makes sence for every MULTILIB_USEDEP dependency, not only for libudev?

Attached patch adds the := operator for every MULTILIB_USEDEP dependency in every EAPI=5 ebuild.

In short I did

find . | grep ebuild | xargs -i grep -H EAPI=5 {} | awk -F: '{print $1}' | xargs -i grep -H MULTILIB_USEDEP {} | awk -F: '{print $1}' | sort | uniq | xargs -i sed -i s/'\[${MULTILIB_USEDEP}\]'/':=\[${MULTILIB_USEDEP}\]'/g {}

where the pwd / the dot "." is the git root directory of the x11 overlay and the patch is the output of "git diff"

Please check.
Comment 7 Matt Turner gentoo-dev 2014-08-19 21:10:13 UTC
(In reply to Jan Buecken from comment #6)
> Created attachment 382646 [details, diff] [details, diff]
> Use slot operator everywhere for MULTILIB_USEDEP dependency
> 
> Does the slot operator makes sence for every MULTILIB_USEDEP dependency, not
> only for libudev?
> 
> Attached patch adds the := operator for every MULTILIB_USEDEP dependency in
> every EAPI=5 ebuild.
> 
> In short I did
> 
> find . | grep ebuild | xargs -i grep -H EAPI=5 {} | awk -F: '{print $1}' |
> xargs -i grep -H MULTILIB_USEDEP {} | awk -F: '{print $1}' | sort | uniq |
> xargs -i sed -i s/'\[${MULTILIB_USEDEP}\]'/':=\[${MULTILIB_USEDEP}\]'/g {}
> 
> where the pwd / the dot "." is the git root directory of the x11 overlay and
> the patch is the output of "git diff"
> 
> Please check.

Thanks! Committed.
Comment 8 Jan Buecken 2014-08-20 11:05:52 UTC
Created attachment 383188 [details, diff]
Use slot operator everywhere for MULTILIB_USEDEP dependency - special cases v1

Hello,
I just found special cases the sed did not handle:

x11 $ find . | grep ebuild | xargs -i grep -H EAPI=5 {} | awk -F: '{print $1}' | xargs -i grep -H MULTILIB_USEDEP {} | grep -v ":="

./x11-libs/libxkbcommon/libxkbcommon-9999.ebuild:       X? ( >=x11-libs/libxcb-1.10[${MULTILIB_USEDEP},xkb] )
./x11-libs/libxcb/libxcb-9999.ebuild:           ">=x11-proto/xcb-proto-1.10[${MULTILIB_USEDEP},\${PYTHON_USEDEP}]")"
./x11-libs/libxcb/libxcb-9999.ebuild:   has_version --host-root ">=x11-proto/xcb-proto-1.10[${MULTILIB_USEDEP},${PYTHON_USEDEP}]"
./media-libs/mesa/mesa-9999.ebuild:     ${LIBDRM_DEPSTRING}[video_cards_freedreno?,video_cards_nouveau?,video_cards_vmware?,${MULTILIB_USEDEP}]


I'm not sure about the line in ./x11-libs/libxcb/libxcb-9999.ebuild

python_check_deps() {
    has_version --host-root ">=x11-proto/xcb-proto-1.10[${MULTILIB_USEDEP},${PYTHON_USEDEP}]"
}

I believe we don't need the ":=" here. Am I wrong?

The patch attached handles the other special cases I found so far.
Comment 9 Jan Buecken 2014-08-20 11:14:10 UTC
Created attachment 383192 [details, diff]
Use slot operator everywhere for MULTILIB_USEDEP dependency - special cases v2

v2: Do not store ":=" parameter in LIBDRM_DEPSTRING, use it in the line where MULTILIB_USEDED is used only.



I think this is better. (?)
Comment 10 Mart Raudsepp gentoo-dev 2016-10-05 09:05:40 UTC
No, using subslot operator everywhere does not make sense.