Signed-off-by: Maciej Barć <x...@gentoo.org>
---
 eclass/dotnet-pkg-base.eclass | 35 +++++++++++++++++------------------
 1 file changed, 17 insertions(+), 18 deletions(-)

diff --git a/eclass/dotnet-pkg-base.eclass b/eclass/dotnet-pkg-base.eclass
index e4b275f81..5f3bde340 100644
--- a/eclass/dotnet-pkg-base.eclass
+++ b/eclass/dotnet-pkg-base.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: dotnet-pkg-base.eclass
@@ -228,28 +228,27 @@ dotnet-pkg-base_get-runtime() {
 #
 # Used by "dotnet-pkg_pkg_setup" from the "dotnet-pkg" eclass.
 dotnet-pkg-base_setup() {
-       local dotnet_compat_impl
-       local dotnet_compat_impl_path
-       for dotnet_compat_impl in dotnet{,-bin}-${DOTNET_PKG_COMPAT} ; do
-               dotnet_compat_impl_path="$(type -P "${dotnet_compat_impl}")"
+       local -a impl_dirs=(
+               "${EPREFIX}/usr/$(get_libdir)/dotnet-sdk-${DOTNET_PKG_COMPAT}"
+               "${EPREFIX}/opt/dotnet-sdk-bin-${DOTNET_PKG_COMPAT}"
+       )
+       local impl_exe
+
+       local impl_dir
+       for impl_dir in "${impl_dirs[@]}" ; do
+               impl_exe="${impl_dir}/dotnet"
+
+               if [[ -d "${impl_dir}" ]] && [[ -x "${impl_exe}" ]] ; then
+                       DOTNET_PKG_EXECUTABLE="${impl_exe}"
+                       DOTNET_ROOT="${impl_dir}"
 
-               if [[ -n ${dotnet_compat_impl_path} ]] ; then
-                       DOTNET_PKG_EXECUTABLE="${dotnet_compat_impl}"
                        break
                fi
        done
 
-       # Link "DOTNET_PKG_EXECUTABLE" to "dotnet" only for the package build.
-       local dotnet_spoof_path="${T}/dotnet_spoof/${DOTNET_PKG_COMPAT}"
-       mkdir -p "${dotnet_spoof_path}" || die
-       ln -s "${dotnet_compat_impl_path}" "${dotnet_spoof_path}/dotnet" || die
-       export PATH="${dotnet_spoof_path}:${PATH}"
-
-       einfo "Using dotnet SDK \"${DOTNET_PKG_EXECUTABLE}\" from 
\"${dotnet_compat_impl_path}\"."
-
-       # The picked "DOTNET_PKG_EXECUTABLE" should set "DOTNET_ROOT" internally
-       # and not rely upon this environment variable.
-       unset DOTNET_ROOT
+       einfo "Setting .NET SDK \"DOTNET_ROOT\" to \"${DOTNET_ROOT}\""
+       export DOTNET_ROOT
+       export PATH="${DOTNET_ROOT}:${PATH}"
 
        DOTNET_PKG_RUNTIME="$(dotnet-pkg-base_get-runtime)"
        DOTNET_PKG_CONFIGURATION="$(dotnet-pkg-base_get-configuration)"
-- 
2.43.0


Reply via email to