diff --git a/lang/dotnet8/Makefile b/lang/dotnet8/Makefile index c63474b8e068..79ad6ec009e5 100644 --- a/lang/dotnet8/Makefile +++ b/lang/dotnet8/Makefile @@ -1,25 +1,30 @@ DISTVERSION= ${DOTNETVERSION}.20 PKGNAMESUFFIX= 8 SHEBANG_FILES= src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/updateAssemblyInfo.sh DOTNET_ENV= PATH=${PATH}:${LLVM_PREFIX}/bin BOOTSTRAP_DOTNETVERSION= 8.0 BOOTSTRAP_SDKVERSION= ${BOOTSTRAP_DOTNETVERSION}.120 BOOTSTRAP_SDKVERSIONSUFFIX= -servicing.25421.1 DOTNETVERSION= 8.0 SDKVERSION= ${DOTNETVERSION}.120 SDKVERSIONSUFFIX= -servicing.25323.1 SDK_RID= freebsd-${DOTNET_ARCH} DOTNET_BUILD_SH_EXTRA_FLAGS= ARTIFACTS_SUBDIR= /artifacts/${DOTNET_ARCH}/Release MASTERDIR= ${.CURDIR}/../dotnet PATCHDIR= ${.CURDIR}/files DISTINFO_FILE= ${.CURDIR}/distinfo PLIST= ${.CURDIR}/pkg-plist +# https://github.com/dotnet/dotnet/issues/4037 +post-patch: + ${CP} ${PATCHDIR}/0003-Fix-assembly-version-calculation-in-2026.patch \ + ${WRKSRC}/src/source-build-externals/patches/azure-activedirectory-identitymodel-extensions-for-dotnet/ + .include "${MASTERDIR}/Makefile" diff --git a/lang/dotnet8/files/0003-Fix-assembly-version-calculation-in-2026.patch b/lang/dotnet8/files/0003-Fix-assembly-version-calculation-in-2026.patch new file mode 100644 index 000000000000..3d3026f30113 --- /dev/null +++ b/lang/dotnet8/files/0003-Fix-assembly-version-calculation-in-2026.patch @@ -0,0 +1,29 @@ +diff --git a/updateAssemblyInfo.sh b/updateAssemblyInfo.sh +index c5117975..e71b6c45 100755 +--- a/updateAssemblyInfo.sh ++++ b/updateAssemblyInfo.sh +@@ -5,12 +5,23 @@ scriptroot=$(cd -P "$(dirname -- "${BASH_SOURCE[0]}")" && pwd) + + packageType=${1:-preview} + ++# Get current date components ++year=$(date '+%Y') ++year_offset=$((year - 2019)) ++month=$(date '+%m') ++day=$(date '+%d') ++ ++# Calculate revision using the new formula that prevents overflow ++# Base: 61232 (ensures revision is higher than already shipped packages) ++# This will overflow in 2029 and needs a long term fix ++revision=$((61232 + (year_offset * 416) + (10#$month * 32) + 10#$day)) ++ + date=$(date '+%y%m%d%H%M%S') + # Formats the date by replacing the 4-digit year with a 2-digit value and then subtract 19 + dateTimeStamp=$(echo $((10#${date:0:2}-19)))${date:2} + + assemblyVersion=$(sed -n 's/.*\([^<]*\)<.*/\1/p' ${scriptroot}/buildConfiguration.xml) +-assemblyFileVersion="$assemblyVersion.${dateTimeStamp::$((${#dateTimeStamp} - 6))}" # Trim minutes/seconds ++assemblyFileVersion="$assemblyVersion.$revision" + assemblyInformationalVersion="$assemblyVersion.$dateTimeStamp" + + echo "assemblyVersion: $assemblyVersion"