diff options
author | Maciej Barć <xgqt@gentoo.org> | 2024-01-23 21:52:20 +0100 |
---|---|---|
committer | Maciej Barć <xgqt@gentoo.org> | 2024-01-23 23:06:51 +0100 |
commit | fc187cda398158fe0c83ede26729d44c5837f17c (patch) | |
tree | 013bf94d84595bc29e0275bb20d5aeb480d3b046 /dev-dotnet | |
parent | dev-lang/nelua: new package; add 20240113 and live 9999 (diff) | |
download | gentoo-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')
-rw-r--r-- | dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-6.0.417-r1.ebuild | 69 | ||||
-rw-r--r-- | dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-6.0.417-r2.ebuild | 142 | ||||
-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%/*}" |