Rewrite logic to resemble _systemd_get_dir from systemd.eclass.

Remove incorrect command substitution: pkg-config --exists does not
write to stdout.

Die when pkg-config --variable fails.

Remove SYSROOT from pkg-config output in case the user is cross-
compiling with a pkg-config wrapper that sets PKG_CONFIG_SYSROOT_DIR.

Signed-off-by: Mike Gilbert <flop...@gentoo.org>
---
 eclass/udev.eclass | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/eclass/udev.eclass b/eclass/udev.eclass
index 2873ae9a92c3..82af1ea7788b 100644
--- a/eclass/udev.eclass
+++ b/eclass/udev.eclass
@@ -50,12 +50,13 @@ fi
 # @DESCRIPTION:
 # Get unprefixed udevdir.
 _udev_get_udevdir() {
-       if $($(tc-getPKG_CONFIG) --exists udev); then
-               local udevdir="$($(tc-getPKG_CONFIG) --variable=udevdir udev)"
-               echo "${udevdir#${EPREFIX%/}}"
-       else
-               echo /lib/udev
+       local udevdir="/lib/udev"
+       if $(tc-getPKG_CONFIG) --exists udev; then
+               udevdir="$($(tc-getPKG_CONFIG) --variable=udevdir udev)" || die
+               udevdir="${udevdir#${SYSROOT}}"
+               udevdir="${udevdir#${EPREFIX}}"
        fi
+       echo "${udevdir}"
 }
 
 # @FUNCTION: udev_get_udevdir
-- 
2.30.0


Reply via email to