commit:     652b5e27bb7c15574678d9cd837f6e24639e713b
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Fri Feb  9 12:16:31 2024 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Fri Feb  9 12:16:31 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=652b5e27

sys-apps/baselayout: Add bugfix for riscv multilib stage builds

Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 ...elayout-9999.ebuild => baselayout-2.14-r3.ebuild} | 20 ++++++++++++++++----
 sys-apps/baselayout/baselayout-9999.ebuild           | 18 +++++++++++++++---
 2 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/sys-apps/baselayout/baselayout-9999.ebuild 
b/sys-apps/baselayout/baselayout-2.14-r3.ebuild
similarity index 95%
copy from sys-apps/baselayout/baselayout-9999.ebuild
copy to sys-apps/baselayout/baselayout-2.14-r3.ebuild
index 76beeff5aac8..820c4f714c44 100644
--- a/sys-apps/baselayout/baselayout-9999.ebuild
+++ b/sys-apps/baselayout/baselayout-2.14-r3.ebuild
@@ -12,7 +12,7 @@ if [[ ${PV} = 9999 ]]; then
        inherit git-r3
 else
        SRC_URI="https://gitweb.gentoo.org/proj/${PN}.git/snapshot/${P}.tar.bz2";
-       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos 
~x64-macos ~x64-solaris"
+       KEYWORDS="~riscv"
 fi
 
 LICENSE="GPL-2"
@@ -67,11 +67,23 @@ multilib_layout() {
                                        continue
                                fi
                                if ! use split-usr && [[ ${prefix} = ${EROOT}/ 
]]; then
+                                       # for the special case of riscv 
multilib, we drop the
+                                       # second part of two-component libdirs, 
e.g. lib64/lp64
                                        libdir="${libdir%%/*}"
                                        dir="${prefix}${libdir}"
-                                       einfo "symlinking ${dir} to 
usr/${libdir}"
-                                       ln -s usr/${libdir} ${dir} ||
-                                               die "Unable to make ${dir} 
symlink"
+                                       if [[ -h "${dir}" ]] ; then
+                                               if use riscv ; then
+                                                       # with riscv we get now 
double entries so we
+                                                       # need to ignore 
already existing symlinks
+                                                       einfo "symlink ${dir} 
already exists (riscv)"
+                                               else
+                                                       die "symlink ${dir} 
already exists"
+                                               fi
+                                       else
+                                               einfo "symlinking ${dir} to 
usr/${libdir}"
+                                               ln -s usr/${libdir} ${dir} ||
+                                                       die "Unable to make 
${dir} symlink"
+                                       fi
                                else
                                        einfo "creating directory ${dir}"
                                        mkdir -p "${dir}" ||

diff --git a/sys-apps/baselayout/baselayout-9999.ebuild 
b/sys-apps/baselayout/baselayout-9999.ebuild
index 76beeff5aac8..8dfcf1d42876 100644
--- a/sys-apps/baselayout/baselayout-9999.ebuild
+++ b/sys-apps/baselayout/baselayout-9999.ebuild
@@ -67,11 +67,23 @@ multilib_layout() {
                                        continue
                                fi
                                if ! use split-usr && [[ ${prefix} = ${EROOT}/ 
]]; then
+                                       # for the special case of riscv 
multilib, we drop the
+                                       # second part of two-component libdirs, 
e.g. lib64/lp64
                                        libdir="${libdir%%/*}"
                                        dir="${prefix}${libdir}"
-                                       einfo "symlinking ${dir} to 
usr/${libdir}"
-                                       ln -s usr/${libdir} ${dir} ||
-                                               die "Unable to make ${dir} 
symlink"
+                                       if [[ -h "${dir}" ]] ; then
+                                               if use riscv ; then
+                                                       # with riscv we get now 
double entries so we
+                                                       # need to ignore 
already existing symlinks
+                                                       einfo "symlink ${dir} 
already exists (riscv)"
+                                               else
+                                                       die "symlink ${dir} 
already exists"
+                                               fi
+                                       else
+                                               einfo "symlinking ${dir} to 
usr/${libdir}"
+                                               ln -s usr/${libdir} ${dir} ||
+                                                       die "Unable to make 
${dir} symlink"
+                                       fi
                                else
                                        einfo "creating directory ${dir}"
                                        mkdir -p "${dir}" ||

Reply via email to