Skip to content

Commit

Permalink
dev-dotnet/dotnet-sdk: bump to 8.0.100
Browse files Browse the repository at this point in the history
Signed-off-by: Maciej Barć <[email protected]>
  • Loading branch information
xgqt committed Nov 18, 2023
1 parent da33184 commit 8f3b3cc
Show file tree
Hide file tree
Showing 2 changed files with 145 additions and 0 deletions.
1 change: 1 addition & 0 deletions dev-dotnet/dotnet-sdk/Manifest
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
DIST dotnet-sdk-7.0.105-prepared-gentoo-amd64.tar.xz 1617916684 BLAKE2B 729d2027e3c356581f7db763d7da09cba512a1a48ddf6492e632dd15eaa547efa8153abeec73c37b5e31e0b8d94c54e0495dd0e67dbe8d1592dbb93b5484e830 SHA512 f45366830435a3adb03221a684818337b3ad6af6b3d46edbf0a664af1c49e7b949c0d2c4507b61c767fdddfa492d32d341cd22e2e4ad28657504ed34757c6aff
DIST dotnet-sdk-8.0.0_rc1234194-prepared-gentoo-amd64.tar.xz 1561594596 BLAKE2B c4baf38371fc6f93255dd59a7e00d48dc456eb1c03c480375e37045d79feae26c7bb54d99d0c1660f440115bd6224df6f0b8a23cced7a687272f02d3eb8370a2 SHA512 9a75a83d10cce7fa5c887438e194f0b29baa79b56e7b97ba7f5b8b8a65b0e52a08b7cd9f7b7c3eb93cd1afb03c0eb2e1034b0577379e070cfb8ccf23cf9297f5
DIST dotnet-sdk-8.0.100-prepared-gentoo-amd64.tar.xz 1714535960 BLAKE2B fd6027b86168d8801b1d8a7bbb08e9c358918a7693b03fa4e7e43e2a58568a65d71e2c5907ec7c7a03b83685608cd16aa010706fb4d14cd44ab0f0669654c8c2 SHA512 75efdcf44383445bc81981e2077be03c7311db316e295aa7f960f50d65367cde9bd86351f345072feb827a569c8de4fa8c9829d92000d2cbeb312ee9ddc17b44
144 changes: 144 additions & 0 deletions dev-dotnet/dotnet-sdk/dotnet-sdk-8.0.100.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

# Build the tarball:
# - "$" - shell command,
# - ">" - manual action.
# $ git clone --depth 1 -b v8.0.0 https://github.com/dotnet/dotnet \
# dotnet-sdk-8.0.0
# $ cd dotnet-sdk-8.0.0
# > Note the checkout tag hash.
# $ ./prep.sh
# $ rm -fr .git
# $ cd ..
# $ tar --create --auto-compress --file \
# dotnet-sdk-8.0.100-prepared-gentoo-amd64.tar.xz dotnet-sdk-8.0.0
# > Upload dotnet-sdk-8.0.0_rc1234194-prepared-gentoo-amd64.tar.xz

EAPI=8

COMMIT=113d797bc90104bb4f1cc51e1a462cf3d4ef18fc

LLVM_MAX_SLOT=16
PYTHON_COMPAT=( python3_{10..12} )

inherit check-reqs llvm python-any-r1

DESCRIPTION=".NET is a free, cross-platform, open-source developer platform"
HOMEPAGE="https://dotnet.microsoft.com/
https://github.com/dotnet/dotnet/"
SRC_URI="
amd64? ( https://dev.gentoo.org/~xgqt/distfiles/repackaged/${P}-prepared-gentoo-amd64.tar.xz )
"

SDK_SLOT="$(ver_cut 1-2)"
RUNTIME_SLOT="${SDK_SLOT}.0"
SLOT="${SDK_SLOT}/${RUNTIME_SLOT}"

# SDK reports it is version "8.0.100" but the tag .NET SDK team had given
# it is "8.0.100". I feel that the pattern is to tag based on "RUNTIME_SLOT".
S="${WORKDIR}/${PN}-${RUNTIME_SLOT}"

LICENSE="MIT"
KEYWORDS="~amd64"

CURRENT_NUGETS_DEPEND="
~dev-dotnet/dotnet-runtime-nugets-${RUNTIME_SLOT}
"
EXTRA_NUGETS_DEPEND="
~dev-dotnet/dotnet-runtime-nugets-3.1.32
~dev-dotnet/dotnet-runtime-nugets-6.0.25
~dev-dotnet/dotnet-runtime-nugets-7.0.14
"
NUGETS_DEPEND="
${CURRENT_NUGETS_DEPEND}
${EXTRA_NUGETS_DEPEND}
"
RDEPEND="
app-crypt/mit-krb5:0/0
dev-libs/icu
dev-libs/openssl:=
dev-util/lttng-ust:0/2.12
sys-libs/zlib:0/1
"
BDEPEND="
${PYTHON_DEPS}
<sys-devel/clang-$(( LLVM_MAX_SLOT + 1 ))
dev-util/cmake
dev-vcs/git
"
IDEPEND="
app-eselect/eselect-dotnet
"
PDEPEND="
${NUGETS_DEPEND}
"

CHECKREQS_DISK_BUILD="20G"

# QA_PREBUILT="*" # TODO: Which binaries are created by dotnet itself?

pkg_setup() {
check-reqs_pkg_setup
llvm_pkg_setup
python-any-r1_pkg_setup
}

src_prepare() {
default

unset DOTNET_ROOT
unset NUGET_PACKAGES

export DOTNET_CLI_TELEMETRY_OPTOUT=1
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
export MSBUILDDISABLENODEREUSE=1
export UseSharedCompilation=false

local dotnet_sdk_tmp_directory="${WORKDIR}/dotnet-sdk-tmp"
mkdir -p "${dotnet_sdk_tmp_directory}" || die

# This should fix the "PackageVersions.props" problem,
# see below, in src_compile.
sed -e "s|/tmp|${dotnet_sdk_tmp_directory}|g" -i build.sh || die
}

src_compile() {
# Remove .NET leftover files that can be blocking the build.
# Keep this nonfatal!
local package_versions_path="/tmp/PackageVersions.props"
if [[ -f "${package_versions_path}" ]] ; then
rm "${package_versions_path}" ||
ewarn "Failed to remove ${package_versions_path}, build may fail!"
fi

# The "source_repository" should always be the same.
local source_repository="https://github.com/dotnet/dotnet"

ebegin "Building the .NET SDK ${SDK_SLOT}"
bash ./build.sh \
--clean-while-building \
--source-repository "${source_repository}" \
--source-version "${COMMIT}"
eend ${?} || die "build failed"
}

src_install() {
local dest="/usr/$(get_libdir)/${PN}-${SDK_SLOT}"
dodir "${dest}"

ebegin "Extracting the .NET SDK archive"
tar xzf artifacts/*/Release/${PN}-${SDK_SLOT}.*.tar.gz -C "${ED}/${dest}"
eend ${?} || die "extraction failed"

fperms 0755 "${dest}"
dosym -r "${dest}/dotnet" "/usr/bin/dotnet-${SDK_SLOT}"
}

pkg_postinst() {
eselect dotnet update ifunset
}

pkg_postrm() {
eselect dotnet update ifunset
}

0 comments on commit 8f3b3cc

Please sign in to comment.