Created attachment 381824 [details, diff] patch Patch attached.
$ 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.