Summary: | [x11-overlay] media-libs/mesa-9999 should depend on virtual/libudev:= instead of virtual/udev | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | darkbasic <darkbasic> |
Component: | Current packages | Assignee: | Matt Turner <mattst88> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | jb.faq, voron1, x11 |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 506034 | ||
Attachments: |
patch
Use slot operator everywhere for MULTILIB_USEDEP dependency Use slot operator everywhere for MULTILIB_USEDEP dependency - special cases v1 Use slot operator everywhere for MULTILIB_USEDEP dependency - special cases v2 |
$ 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}] ) Sorry, I forgot to mention the ebuild is from the x11 overlay. Can you please explain me what := stands for? Thanks (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 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}] *** Bug 518816 has been marked as a duplicate of this bug. *** 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.
(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. 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.
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. (?)
No, using subslot operator everywhere does not make sense. |
Created attachment 381824 [details, diff] patch Patch attached.