sys-apps/baselayout: Remove symlinked components when USE="-split-usr"
authorDavid Seifert <soap@gentoo.org>
Mon, 10 Feb 2020 04:31:09 +0000 (22:31 -0600)
committerWilliam Hubbs <williamh@gentoo.org>
Mon, 10 Feb 2020 04:31:09 +0000 (22:31 -0600)
Closes: https://bugs.gentoo.org/708698
Package-Manager: Portage-2.3.87, Repoman-2.3.20
Signed-off-by: William Hubbs <williamh@gentoo.org>
sys-apps/baselayout/baselayout-9999.ebuild

index 274767b5eab06803eed01347443ba0a0672db6b0..a4b8ca535ac9d559e4213ce155455784745a7515 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -188,6 +188,16 @@ src_prepare() {
                echo ROOTPATH=/usr/sbin:/sbin:/usr/bin:/bin >> etc/env.d/99host
        fi
 
+       # don't want symlinked directories in PATH on systems with usr-merge
+       if ! use split-usr; then
+               sed \
+                       -e 's|/usr/local/sbin:||g' \
+                       -e 's|:/usr/sbin:|:|g' \
+                       -e 's|:/sbin:|:|g' \
+                       -e 's|:/bin:|:|g' \
+                       -i etc/env.d/50baselayout || die
+       fi
+
        # handle multilib paths.  do it here because we want this behavior
        # regardless of the C library that you're using.  we do explicitly
        # list paths which the native ldconfig searches, but this isn't
@@ -196,7 +206,8 @@ src_prepare() {
        # path and the symlinked path doesn't change the resulting cache.
        local libdir ldpaths
        for libdir in $(get_all_libdirs) ; do
-               ldpaths+=":${EPREFIX}/${libdir}:${EPREFIX}/usr/${libdir}"
+               use split-usr && ldpaths+=":${EPREFIX}/${libdir}"
+               ldpaths+=":${EPREFIX}/usr/${libdir}"
                ldpaths+=":${EPREFIX}/usr/local/${libdir}"
        done
        echo "LDPATH='${ldpaths#:}'" >> etc/env.d/50baselayout