diff options
Diffstat (limited to 'community/dotnet6-build/installer_reprodicible-tarball.patch')
-rw-r--r-- | community/dotnet6-build/installer_reprodicible-tarball.patch | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/community/dotnet6-build/installer_reprodicible-tarball.patch b/community/dotnet6-build/installer_reprodicible-tarball.patch deleted file mode 100644 index 1fc88dddaf1..00000000000 --- a/community/dotnet6-build/installer_reprodicible-tarball.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 3669424e83ce393e2e0ee3f23b5a255c3a11a192 Mon Sep 17 00:00:00 2001 -From: Antoine Martin <dev@ayakael.net> -Date: Wed, 16 Feb 2022 15:59:42 +0000 -Subject: [PATCH 1/1] reproducible tarball - -By default, tarball is not reprodicible due to a select few of volatile -files. This volatility is associated with .git directories and -OfficialBuildId of a few packages that source it from tarball build -date. This patch allows stripping of git directories to bare minimum and -sources OfficialBuildId with generic date to be modified later for -build. - ---- - .../src/Tarball_WriteSourceRepoProperties.cs | 6 ++--- - .../tools/SourceBuildArcadeTarball.targets | 9 +++---- - .../SourceBuildArcadeTarball_strip-git.sh | 24 +++++++++++++++++++ - 3 files changed, 32 insertions(+), 7 deletions(-) - create mode 100755 src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh - -diff --git a/src/SourceBuild/Arcade/src/Tarball_WriteSourceRepoProperties.cs b/src/SourceBuild/Arcade/src/Tarball_WriteSourceRepoProperties.cs -index b6b2793f3..55d680971 100644 ---- a/src/SourceBuild/Arcade/src/Tarball_WriteSourceRepoProperties.cs -+++ b/src/SourceBuild/Arcade/src/Tarball_WriteSourceRepoProperties.cs -@@ -105,12 +105,12 @@ private static DerivedVersion GetVersionInfo(string version, string commitCount) - if (releaseParts.Length == 2) - { - // NuGet does this - arbitrary build IDs -- return new DerivedVersion { OfficialBuildId = DateTime.Now.ToString("yyyyMMdd.1"), PreReleaseVersionLabel = releaseParts[0] }; -+ return new DerivedVersion { OfficialBuildId = DateTime.Now.ToString("19900101.1"), PreReleaseVersionLabel = releaseParts[0] }; - } - else if (releaseParts.Length == 3) - { - // VSTest uses full dates for the first part of their preview build numbers -- if (DateTime.TryParseExact(releaseParts[1], "yyyyMMdd", new CultureInfo("en-US"), DateTimeStyles.AssumeLocal, out DateTime fullDate)) -+ if (DateTime.TryParseExact(releaseParts[1], "19900101", new CultureInfo("en-US"), DateTimeStyles.AssumeLocal, out DateTime fullDate)) - { - return new DerivedVersion { OfficialBuildId = $"{releaseParts[1]}.{releaseParts[2]}", PreReleaseVersionLabel = releaseParts[0] }; - } -@@ -139,7 +139,7 @@ private static DerivedVersion GetVersionInfo(string version, string commitCount) - { - // finalized version number (x.y.z) - probably not our code - // VSTest, Application Insights, Newtonsoft.Json do this -- return new DerivedVersion { OfficialBuildId = DateTime.Now.ToString("yyyyMMdd.1"), PreReleaseVersionLabel = string.Empty }; -+ return new DerivedVersion { OfficialBuildId = DateTime.Now.ToString("19900101.1"), PreReleaseVersionLabel = string.Empty }; - } - - throw new FormatException($"Can't derive a build ID from version {version} (commit count {commitCount}, release {string.Join(";", nugetVersion.Release.Split('-', '.'))})"); -diff --git a/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets b/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets -index 76297fd3b..0480b495a 100644 ---- a/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets -+++ b/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets -@@ -15,6 +15,7 @@ - <PropertyGroup> - <ArtifactsDir>$(RepoRoot)artifacts/</ArtifactsDir> - <TarballDir>$(ArtifactsDir)tarball/</TarballDir> -+ <TarballNameDir>$([MSBuild]::MakeRelative($([System.IO.Path]::GetDirectoryName($(TarballDir))), $(TarballDir)))</TarballNameDir> - <TarballRootDir>$([MSBuild]::EnsureTrailingSlash('$(TarballDir)'))</TarballRootDir> - <TarballSourceDir>$(TarballRootDir)src/</TarballSourceDir> - <TarballGitInfoDir>$(TarballRootDir)git-info/</TarballGitInfoDir> -@@ -42,7 +43,7 @@ - <Error Text="TarballFilePath not specified." Condition=" '$(TarballFilePath)' == '' " /> - - <MakeDir Directories="$(TarballFileDir)" Condition=" '$(TarballFileDir)' != '' " /> -- <Exec Command="tar --numeric-owner -zcf $(TarballFilePath) -C $(TarballDir) ." /> -+ <Exec Command="tar --format=gnu --sort=name --owner=0 --group=0 --numeric-owner --mtime='1990-01-01Z' -zcf $(TarballFilePath) -C $(TarballDir)/.. $(TarballNameDir)" /> - - <Message Text="Tarball '$(TarballFilePath)' was successfully created from '$(TarballDir)'" Importance="High" /> - </Target> -@@ -184,10 +185,10 @@ - Command="git config --file $(TarballRepoSourceDir)/.git/config --add remote.origin.url $(OriginalRepoUri)" - WorkingDirectory="$(RepoRoot)"/> - -- <!-- Remove the git objects folder to free up tarball space --> -+ <!-- Strips git directories / submodules to bare minimum for reproducibility --> - <Exec -- Command="rm -rf objects" -- WorkingDirectory="$(TarballRepoSourceDir).git" -+ Command="$(RepoRoot)/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh $(SourceDir)" -+ WorkingDirectory="$(TarballSourceDir)" - Condition="$(PreserveTarballGitFolders) != 'true'" /> - - <Message Text="--> Done Cloning Repo $(SourceBuildRepoName)" Importance="High" /> -diff --git a/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh b/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh -new file mode 100755 -index 000000000..4cfcea227 ---- /dev/null -+++ b/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh -@@ -0,0 +1,23 @@ -+#!/bin/bash -+repodir="$1" -+for i in $(find $repodir -name '.git' | sort -r); do -+ if [ -f "$i" ]; then -+ gitdir="${i/\/.git}/$(sed 's/gitdir: //' $i)" -+ commit=$(cat "$gitdir"/HEAD) -+ else -+ gitdir=$i -+ commit=$(git -C "$gitdir/.." rev-parse HEAD) -+ fi -+ -+ url="$(grep -m 1 url "$gitdir"/config)" -+ url=${url#*= } -+ -+ rm -rf "$i" -+ mkdir -p "$i" -+ -+ echo $commit > "$i"/HEAD -+ { -+ echo "[remote \"origin\"]" -+ echo -n "url = \"$url\"" -+ } > "$i"/config -+done --- -2.35.1 - |