summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej Barć <xgqt@gentoo.org>2024-01-23 21:52:20 +0100
committerMaciej Barć <xgqt@gentoo.org>2024-01-23 23:06:51 +0100
commitfc187cda398158fe0c83ede26729d44c5837f17c (patch)
tree013bf94d84595bc29e0275bb20d5aeb480d3b046 /dev-dotnet/dotnet-sdk-bin
parentdev-lang/nelua: new package; add 20240113 and live 9999 (diff)
downloadgentoo-fc187cda398158fe0c83ede26729d44c5837f17c.tar.gz
gentoo-fc187cda398158fe0c83ede26729d44c5837f17c.tar.bz2
gentoo-fc187cda398158fe0c83ede26729d44c5837f17c.zip
dev-dotnet/dotnet-sdk-bin: fix bad musl libc link; remove static-libs
Bug: https://github.com/dotnet/runtime/issues/83779 Closes: https://bugs.gentoo.org/894760 Closes: https://bugs.gentoo.org/825774 Signed-off-by: Maciej Barć <xgqt@gentoo.org>
Diffstat (limited to 'dev-dotnet/dotnet-sdk-bin')
-rw-r--r--dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-6.0.417-r1.ebuild69
-rw-r--r--dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-6.0.417-r2.ebuild142
-rw-r--r--dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-7.0.404-r2.ebuild (renamed from dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-7.0.404-r1.ebuild)76
-rw-r--r--dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-8.0.100-r2.ebuild (renamed from dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-8.0.100-r1.ebuild)76
-rw-r--r--dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-8.0.101-r1.ebuild (renamed from dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-8.0.101.ebuild)74
5 files changed, 363 insertions, 74 deletions
diff --git a/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-6.0.417-r1.ebuild b/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-6.0.417-r1.ebuild
deleted file mode 100644
index 7c70a1e24b95..000000000000
--- a/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-6.0.417-r1.ebuild
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION=".NET is a free, cross-platform, open-source developer platform"
-HOMEPAGE="https://dotnet.microsoft.com/"
-SRC_URI="
-amd64? (
- elibc_glibc? ( https://dotnetcli.azureedge.net/dotnet/Sdk/${PV}/dotnet-sdk-${PV}-linux-x64.tar.gz )
- elibc_musl? ( https://dotnetcli.azureedge.net/dotnet/Sdk/${PV}/dotnet-sdk-${PV}-linux-musl-x64.tar.gz )
-)
-arm? (
- elibc_glibc? ( https://dotnetcli.azureedge.net/dotnet/Sdk/${PV}/dotnet-sdk-${PV}-linux-arm.tar.gz )
- elibc_musl? ( https://dotnetcli.azureedge.net/dotnet/Sdk/${PV}/dotnet-sdk-${PV}-linux-musl-arm.tar.gz )
-)
-arm64? (
- elibc_glibc? ( https://dotnetcli.azureedge.net/dotnet/Sdk/${PV}/dotnet-sdk-${PV}-linux-arm64.tar.gz )
- elibc_musl? ( https://dotnetcli.azureedge.net/dotnet/Sdk/${PV}/dotnet-sdk-${PV}-linux-musl-arm64.tar.gz )
-)
-"
-S="${WORKDIR}"
-
-SDK_SLOT="$(ver_cut 1-2)"
-RUNTIME_SLOT="${SDK_SLOT}.25"
-SLOT="${SDK_SLOT}/${RUNTIME_SLOT}"
-
-LICENSE="MIT"
-KEYWORDS="amd64 arm arm64"
-RESTRICT="splitdebug"
-
-RDEPEND="
- app-crypt/mit-krb5:0/0
- dev-libs/icu
- dev-util/lttng-ust:0/2.12
- sys-libs/zlib:0/1
-"
-IDEPEND="app-eselect/eselect-dotnet"
-PDEPEND="
- ~dev-dotnet/dotnet-runtime-nugets-${RUNTIME_SLOT}
-"
-
-QA_PREBUILT="*"
-
-src_install() {
- local dest=opt/${PN}-${SDK_SLOT}
- dodir "${dest%/*}"
-
- # Create a magic workloads file, bug #841896
- local featureband="$(( $(ver_cut 3) / 100 * 100 ))" # e.g. 404 -> 400
- local workloads="metadata/workloads/${SDK_SLOT}.${featureband}"
-
- mkdir -p "${S}/${workloads}" || die
- touch "${S}/${workloads}/userlocal" || die
-
- mv "${S}" "${ED}/${dest}" || die
- mkdir "${S}" || die
-
- fperms 0755 "/${dest}"
- dosym ../../${dest}/dotnet /usr/bin/dotnet-bin-${SDK_SLOT}
-}
-
-pkg_postinst() {
- eselect dotnet update ifunset
-}
-
-pkg_postrm() {
- eselect dotnet update ifunset
-}
diff --git a/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-6.0.417-r2.ebuild b/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-6.0.417-r2.ebuild
new file mode 100644
index 000000000000..ff4d8c61be4f
--- /dev/null
+++ b/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-6.0.417-r2.ebuild
@@ -0,0 +1,142 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION=".NET is a free, cross-platform, open-source developer platform"
+HOMEPAGE="https://dotnet.microsoft.com/
+ https://github.com/dotnet/dotnet/"
+SRC_URI="
+amd64? (
+ elibc_glibc? ( https://dotnetcli.azureedge.net/dotnet/Sdk/${PV}/dotnet-sdk-${PV}-linux-x64.tar.gz )
+ elibc_musl? ( https://dotnetcli.azureedge.net/dotnet/Sdk/${PV}/dotnet-sdk-${PV}-linux-musl-x64.tar.gz )
+)
+arm? (
+ elibc_glibc? ( https://dotnetcli.azureedge.net/dotnet/Sdk/${PV}/dotnet-sdk-${PV}-linux-arm.tar.gz )
+ elibc_musl? ( https://dotnetcli.azureedge.net/dotnet/Sdk/${PV}/dotnet-sdk-${PV}-linux-musl-arm.tar.gz )
+)
+arm64? (
+ elibc_glibc? ( https://dotnetcli.azureedge.net/dotnet/Sdk/${PV}/dotnet-sdk-${PV}-linux-arm64.tar.gz )
+ elibc_musl? ( https://dotnetcli.azureedge.net/dotnet/Sdk/${PV}/dotnet-sdk-${PV}-linux-musl-arm64.tar.gz )
+)
+"
+S="${WORKDIR}"
+
+SDK_SLOT="$(ver_cut 1-2)"
+RUNTIME_SLOT="${SDK_SLOT}.25"
+SLOT="${SDK_SLOT}/${RUNTIME_SLOT}"
+
+LICENSE="MIT"
+KEYWORDS="amd64 arm arm64"
+RESTRICT="splitdebug"
+
+RDEPEND="
+ app-crypt/mit-krb5:0/0
+ dev-libs/icu
+ dev-util/lttng-ust:0/2.12
+ sys-libs/zlib:0/1
+"
+BDEPEND="
+ dev-util/patchelf
+"
+IDEPEND="
+ app-eselect/eselect-dotnet
+"
+PDEPEND="
+ ~dev-dotnet/dotnet-runtime-nugets-${RUNTIME_SLOT}
+"
+
+QA_PREBUILT="*"
+
+MUSL_BAD_LINKS=(
+ apphost
+ createdump
+ dotnet
+ libSystem.Globalization.Native.so
+ libSystem.IO.Compression.Native.so
+ libSystem.Native.so
+ libSystem.Net.Security.Native.so
+ libSystem.Security.Cryptography.Native.OpenSsl.so
+ libclrgc.so
+ libclrjit.so
+ libcoreclr.so
+ libcoreclrtraceptprovider.so
+ libdbgshim.so
+ libhostfxr.so
+ libhostpolicy.so
+ libmscordaccore.so
+ libmscordbi.so
+ libnethost.so
+ singlefilehost
+)
+MUSL_BAD_SONAMES=(
+ libc.musl-aarch64.so.1
+ libc.musl-armv7.so.1
+ libc.musl-x86_64.so.1
+)
+
+src_prepare() {
+ default
+
+ # Fix musl libc SONAME links, bug https://bugs.gentoo.org/894760
+ if use elibc_musl ; then
+ local musl_bad_link
+ local musl_bad_link_path
+ local musl_bad_soname
+
+ for musl_bad_link in "${MUSL_BAD_LINKS[@]}" ; do
+ while read -r musl_bad_link_path ; do
+ # Skip if file either does not end with ".so" or is not executable.
+ # Using "case" here for easier matching in case we have to add
+ # a special exception.
+ case "${musl_bad_link_path}" in
+ *.so )
+ :
+ ;;
+ * )
+ if [[ ! -x "${musl_bad_link_path}" ]] ; then
+ continue
+ fi
+ ;;
+ esac
+
+ einfo "Fixing musl libc link for ${musl_bad_link_path}"
+
+ for musl_bad_soname in "${MUSL_BAD_SONAMES[@]}" ; do
+ patchelf --remove-needed "${musl_bad_soname}" "${musl_bad_link_path}" || die
+ done
+
+ patchelf --add-needed libc.so "${musl_bad_link_path}" || die
+ done < <(find . -type f -name "${musl_bad_link}")
+ done
+ fi
+
+ # Remove static libraries, bug https://bugs.gentoo.org/825774
+ find ./packs -type f -name "libnethost.a" -delete || die
+}
+
+src_install() {
+ local dest="opt/${PN}-${SDK_SLOT}"
+ dodir "${dest%/*}"
+
+ # Create a magic workloads file, bug #841896
+ local featureband="$(( $(ver_cut 3) / 100 * 100 ))" # e.g. 404 -> 400
+ local workloads="metadata/workloads/${SDK_SLOT}.${featureband}"
+
+ mkdir -p "${S}/${workloads}" || die
+ touch "${S}/${workloads}/userlocal" || die
+
+ mv "${S}" "${ED}/${dest}" || die
+ mkdir "${S}" || die
+
+ fperms 0755 "/${dest}"
+ dosym "../../${dest}/dotnet" "/usr/bin/dotnet-bin-${SDK_SLOT}"
+}
+
+pkg_postinst() {
+ eselect dotnet update ifunset
+}
+
+pkg_postrm() {
+ eselect dotnet update ifunset
+}
diff --git a/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-7.0.404-r1.ebuild b/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-7.0.404-r2.ebuild
index e4fdeb830a53..ef7d6fbccea9 100644
--- a/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-7.0.404-r1.ebuild
+++ b/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-7.0.404-r2.ebuild
@@ -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
EAPI=8
@@ -36,7 +36,12 @@ RDEPEND="
dev-util/lttng-ust:0/2.12
sys-libs/zlib:0/1
"
-IDEPEND="app-eselect/eselect-dotnet"
+BDEPEND="
+ dev-util/patchelf
+"
+IDEPEND="
+ app-eselect/eselect-dotnet
+"
PDEPEND="
~dev-dotnet/dotnet-runtime-nugets-${RUNTIME_SLOT}
~dev-dotnet/dotnet-runtime-nugets-6.0.25
@@ -44,6 +49,73 @@ PDEPEND="
QA_PREBUILT="*"
+MUSL_BAD_LINKS=(
+ apphost
+ createdump
+ dotnet
+ libSystem.Globalization.Native.so
+ libSystem.IO.Compression.Native.so
+ libSystem.Native.so
+ libSystem.Net.Security.Native.so
+ libSystem.Security.Cryptography.Native.OpenSsl.so
+ libclrgc.so
+ libclrjit.so
+ libcoreclr.so
+ libcoreclrtraceptprovider.so
+ libdbgshim.so
+ libhostfxr.so
+ libhostpolicy.so
+ libmscordaccore.so
+ libmscordbi.so
+ libnethost.so
+ singlefilehost
+)
+MUSL_BAD_SONAMES=(
+ libc.musl-aarch64.so.1
+ libc.musl-armv7.so.1
+ libc.musl-x86_64.so.1
+)
+
+src_prepare() {
+ default
+
+ # Fix musl libc SONAME links, bug https://bugs.gentoo.org/894760
+ if use elibc_musl ; then
+ local musl_bad_link
+ local musl_bad_link_path
+ local musl_bad_soname
+
+ for musl_bad_link in "${MUSL_BAD_LINKS[@]}" ; do
+ while read -r musl_bad_link_path ; do
+ # Skip if file either does not end with ".so" or is not executable.
+ # Using "case" here for easier matching in case we have to add
+ # a special exception.
+ case "${musl_bad_link_path}" in
+ *.so )
+ :
+ ;;
+ * )
+ if [[ ! -x "${musl_bad_link_path}" ]] ; then
+ continue
+ fi
+ ;;
+ esac
+
+ einfo "Fixing musl libc link for ${musl_bad_link_path}"
+
+ for musl_bad_soname in "${MUSL_BAD_SONAMES[@]}" ; do
+ patchelf --remove-needed "${musl_bad_soname}" "${musl_bad_link_path}" || die
+ done
+
+ patchelf --add-needed libc.so "${musl_bad_link_path}" || die
+ done < <(find . -type f -name "${musl_bad_link}")
+ done
+ fi
+
+ # Remove static libraries, bug https://bugs.gentoo.org/825774
+ find ./packs -type f -name "libnethost.a" -delete || die
+}
+
src_install() {
local dest="opt/${PN}-${SDK_SLOT}"
dodir "${dest%/*}"
diff --git a/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-8.0.100-r1.ebuild b/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-8.0.100-r2.ebuild
index f7f7511852a7..4b12b99a8b28 100644
--- a/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-8.0.100-r1.ebuild
+++ b/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-8.0.100-r2.ebuild
@@ -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
EAPI=8
@@ -36,7 +36,12 @@ RDEPEND="
dev-util/lttng-ust:0/2.12
sys-libs/zlib:0/1
"
-IDEPEND="app-eselect/eselect-dotnet"
+BDEPEND="
+ dev-util/patchelf
+"
+IDEPEND="
+ app-eselect/eselect-dotnet
+"
PDEPEND="
~dev-dotnet/dotnet-runtime-nugets-${RUNTIME_SLOT}
~dev-dotnet/dotnet-runtime-nugets-6.0.25
@@ -45,6 +50,73 @@ PDEPEND="
QA_PREBUILT="*"
+MUSL_BAD_LINKS=(
+ apphost
+ createdump
+ dotnet
+ libSystem.Globalization.Native.so
+ libSystem.IO.Compression.Native.so
+ libSystem.Native.so
+ libSystem.Net.Security.Native.so
+ libSystem.Security.Cryptography.Native.OpenSsl.so
+ libclrgc.so
+ libclrjit.so
+ libcoreclr.so
+ libcoreclrtraceptprovider.so
+ libdbgshim.so
+ libhostfxr.so
+ libhostpolicy.so
+ libmscordaccore.so
+ libmscordbi.so
+ libnethost.so
+ singlefilehost
+)
+MUSL_BAD_SONAMES=(
+ libc.musl-aarch64.so.1
+ libc.musl-armv7.so.1
+ libc.musl-x86_64.so.1
+)
+
+src_prepare() {
+ default
+
+ # Fix musl libc SONAME links, bug https://bugs.gentoo.org/894760
+ if use elibc_musl ; then
+ local musl_bad_link
+ local musl_bad_link_path
+ local musl_bad_soname
+
+ for musl_bad_link in "${MUSL_BAD_LINKS[@]}" ; do
+ while read -r musl_bad_link_path ; do
+ # Skip if file either does not end with ".so" or is not executable.
+ # Using "case" here for easier matching in case we have to add
+ # a special exception.
+ case "${musl_bad_link_path}" in
+ *.so )
+ :
+ ;;
+ * )
+ if [[ ! -x "${musl_bad_link_path}" ]] ; then
+ continue
+ fi
+ ;;
+ esac
+
+ einfo "Fixing musl libc link for ${musl_bad_link_path}"
+
+ for musl_bad_soname in "${MUSL_BAD_SONAMES[@]}" ; do
+ patchelf --remove-needed "${musl_bad_soname}" "${musl_bad_link_path}" || die
+ done
+
+ patchelf --add-needed libc.so "${musl_bad_link_path}" || die
+ done < <(find . -type f -name "${musl_bad_link}")
+ done
+ fi
+
+ # Remove static libraries, bug https://bugs.gentoo.org/825774
+ find ./packs -type f -name "libnethost.a" -delete || die
+}
+
src_install() {
local dest="opt/${PN}-${SDK_SLOT}"
dodir "${dest%/*}"
diff --git a/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-8.0.101.ebuild b/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-8.0.101-r1.ebuild
index b40ba8fd8aa8..b00890c77647 100644
--- a/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-8.0.101.ebuild
+++ b/dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-8.0.101-r1.ebuild
@@ -36,7 +36,12 @@ RDEPEND="
dev-util/lttng-ust:0/2.12
sys-libs/zlib:0/1
"
-IDEPEND="app-eselect/eselect-dotnet"
+BDEPEND="
+ dev-util/patchelf
+"
+IDEPEND="
+ app-eselect/eselect-dotnet
+"
PDEPEND="
~dev-dotnet/dotnet-runtime-nugets-${RUNTIME_SLOT}
~dev-dotnet/dotnet-runtime-nugets-6.0.26
@@ -45,6 +50,73 @@ PDEPEND="
QA_PREBUILT="*"
+MUSL_BAD_LINKS=(
+ apphost
+ createdump
+ dotnet
+ libSystem.Globalization.Native.so
+ libSystem.IO.Compression.Native.so
+ libSystem.Native.so
+ libSystem.Net.Security.Native.so
+ libSystem.Security.Cryptography.Native.OpenSsl.so
+ libclrgc.so
+ libclrjit.so
+ libcoreclr.so
+ libcoreclrtraceptprovider.so
+ libdbgshim.so
+ libhostfxr.so
+ libhostpolicy.so
+ libmscordaccore.so
+ libmscordbi.so
+ libnethost.so
+ singlefilehost
+)
+MUSL_BAD_SONAMES=(
+ libc.musl-aarch64.so.1
+ libc.musl-armv7.so.1
+ libc.musl-x86_64.so.1
+)
+
+src_prepare() {
+ default
+
+ # Fix musl libc SONAME links, bug https://bugs.gentoo.org/894760
+ if use elibc_musl ; then
+ local musl_bad_link
+ local musl_bad_link_path
+ local musl_bad_soname
+
+ for musl_bad_link in "${MUSL_BAD_LINKS[@]}" ; do
+ while read -r musl_bad_link_path ; do
+ # Skip if file either does not end with ".so" or is not executable.
+ # Using "case" here for easier matching in case we have to add
+ # a special exception.
+ case "${musl_bad_link_path}" in
+ *.so )
+ :
+ ;;
+ * )
+ if [[ ! -x "${musl_bad_link_path}" ]] ; then
+ continue
+ fi
+ ;;
+ esac
+
+ einfo "Fixing musl libc link for ${musl_bad_link_path}"
+
+ for musl_bad_soname in "${MUSL_BAD_SONAMES[@]}" ; do
+ patchelf --remove-needed "${musl_bad_soname}" "${musl_bad_link_path}" || die
+ done
+
+ patchelf --add-needed libc.so "${musl_bad_link_path}" || die
+ done < <(find . -type f -name "${musl_bad_link}")
+ done
+ fi
+
+ # Remove static libraries, bug https://bugs.gentoo.org/825774
+ find ./packs -type f -name "libnethost.a" -delete || die
+}
+
src_install() {
local dest="opt/${PN}-${SDK_SLOT}"
dodir "${dest%/*}"