diff options
Diffstat (limited to 'srcds-pkgs')
-rw-r--r-- | srcds-pkgs/depotdownloader-json/2_5/0001-emit-json-in-.DepotDownload.patch (renamed from srcds-pkgs/depotdownloader-json/0001-emit-json-in-.DepotDownload.patch) | 0 | ||||
-rw-r--r-- | srcds-pkgs/depotdownloader-json/2_5/0002-ProtoManifest-sort-files-in-constructor.patch (renamed from srcds-pkgs/depotdownloader-json/0002-ProtoManifest-sort-files-in-constructor.patch) | 0 | ||||
-rw-r--r-- | srcds-pkgs/depotdownloader-json/2_7/0001-ProtoManifest-sort-files-in-constructor.patch | 24 | ||||
-rw-r--r-- | srcds-pkgs/depotdownloader-json/2_7/0002-emit-json-in-.DepotDownload.patch | 50 | ||||
-rw-r--r-- | srcds-pkgs/depotdownloader-json/default.nix | 21 |
5 files changed, 88 insertions, 7 deletions
diff --git a/srcds-pkgs/depotdownloader-json/0001-emit-json-in-.DepotDownload.patch b/srcds-pkgs/depotdownloader-json/2_5/0001-emit-json-in-.DepotDownload.patch index 6a58ac6..6a58ac6 100644 --- a/srcds-pkgs/depotdownloader-json/0001-emit-json-in-.DepotDownload.patch +++ b/srcds-pkgs/depotdownloader-json/2_5/0001-emit-json-in-.DepotDownload.patch diff --git a/srcds-pkgs/depotdownloader-json/0002-ProtoManifest-sort-files-in-constructor.patch b/srcds-pkgs/depotdownloader-json/2_5/0002-ProtoManifest-sort-files-in-constructor.patch index ac4fe97..ac4fe97 100644 --- a/srcds-pkgs/depotdownloader-json/0002-ProtoManifest-sort-files-in-constructor.patch +++ b/srcds-pkgs/depotdownloader-json/2_5/0002-ProtoManifest-sort-files-in-constructor.patch diff --git a/srcds-pkgs/depotdownloader-json/2_7/0001-ProtoManifest-sort-files-in-constructor.patch b/srcds-pkgs/depotdownloader-json/2_7/0001-ProtoManifest-sort-files-in-constructor.patch new file mode 100644 index 0000000..3cc62b8 --- /dev/null +++ b/srcds-pkgs/depotdownloader-json/2_7/0001-ProtoManifest-sort-files-in-constructor.patch @@ -0,0 +1,24 @@ +From 1ecf96ef85c9d2d14619da93bd5a5ce53a74d8ad Mon Sep 17 00:00:00 2001 +From: yuuko <yuuko@kurofuku.me> +Date: Wed, 1 Nov 2023 06:46:57 -0700 +Subject: [PATCH 1/2] ProtoManifest: sort files in constructor + +--- + DepotDownloader/ProtoManifest.cs | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/DepotDownloader/ProtoManifest.cs b/DepotDownloader/ProtoManifest.cs +index b6eb010..260fdef 100644 +--- a/DepotDownloader/ProtoManifest.cs ++++ b/DepotDownloader/ProtoManifest.cs +@@ -23,6 +23,7 @@ namespace DepotDownloader + public ProtoManifest(DepotManifest sourceManifest, ulong id) : this() + { + sourceManifest.Files.ForEach(f => Files.Add(new FileData(f))); ++ Files.Sort((f1,f2) => f1.FileName.CompareTo(f2.FileName)); + ID = id; + CreationTime = sourceManifest.CreationTime; + } +-- +2.47.0 + diff --git a/srcds-pkgs/depotdownloader-json/2_7/0002-emit-json-in-.DepotDownload.patch b/srcds-pkgs/depotdownloader-json/2_7/0002-emit-json-in-.DepotDownload.patch new file mode 100644 index 0000000..cd50e0b --- /dev/null +++ b/srcds-pkgs/depotdownloader-json/2_7/0002-emit-json-in-.DepotDownload.patch @@ -0,0 +1,50 @@ +From 740cc23a0993d5a0d757aeb07762714b5e0a4fbe Mon Sep 17 00:00:00 2001 +From: yuuko <yuuko@partyvan.io> +Date: Sun, 24 Nov 2024 00:43:33 -0800 +Subject: [PATCH 2/2] emit json in .DepotDownload + +--- + DepotDownloader/ContentDownloader.cs | 1 + + DepotDownloader/ProtoManifest.cs | 8 ++++++++ + 2 files changed, 9 insertions(+) + +diff --git a/DepotDownloader/ContentDownloader.cs b/DepotDownloader/ContentDownloader.cs +index 9042c39..bd1ec4a 100644 +--- a/DepotDownloader/ContentDownloader.cs ++++ b/DepotDownloader/ContentDownloader.cs +@@ -876,6 +876,7 @@ namespace DepotDownloader + + newProtoManifest = new ProtoManifest(depotManifest, depot.ManifestId); + newProtoManifest.SaveToFile(newManifestFileName, out var checksum); ++ newProtoManifest.SaveToJSON(newManifestFileName.Replace(".bin", ".json")); + File.WriteAllBytes(newManifestFileName + ".sha", checksum); + + Console.WriteLine(" Done!"); +diff --git a/DepotDownloader/ProtoManifest.cs b/DepotDownloader/ProtoManifest.cs +index 260fdef..ffb0420 100644 +--- a/DepotDownloader/ProtoManifest.cs ++++ b/DepotDownloader/ProtoManifest.cs +@@ -5,6 +5,8 @@ using System; + using System.Collections.Generic; + using System.IO; + using System.IO.Compression; ++using System.Text; ++using System.Text.Json; + using System.Security.Cryptography; + using ProtoBuf; + using SteamKit2; +@@ -158,5 +160,11 @@ namespace DepotDownloader + using var ds = new DeflateStream(fs, CompressionMode.Compress); + ms.CopyTo(ds); + } ++ ++ public void SaveToJSON(string filename) ++ { ++ var jsonBytes = new UTF8Encoding(true).GetBytes(JsonSerializer.Serialize(this)); ++ File.Open(filename, FileMode.Create).Write(jsonBytes, 0, jsonBytes.Length); ++ } + } + } +-- +2.47.0 + diff --git a/srcds-pkgs/depotdownloader-json/default.nix b/srcds-pkgs/depotdownloader-json/default.nix index c09422d..7ff0270 100644 --- a/srcds-pkgs/depotdownloader-json/default.nix +++ b/srcds-pkgs/depotdownloader-json/default.nix @@ -1,10 +1,17 @@ { depotdownloader }: depotdownloader.overrideAttrs({ patches ? [], version, ... }: { - patches = assert builtins.elem version [ "2.4.7" "2.5.0" ]; patches ++ [ - # with this, nix has access to the hashes in the manifest - ./0001-emit-json-in-.DepotDownload.patch - # the manifest can arrive out of order across requests to the same build! - # luckily that singular reproducibility snag is patched in 1 line. - ./0002-ProtoManifest-sort-files-in-constructor.patch - ]; + patches = if builtins.elem version [ "2.4.7" "2.5.0"] then + [ + # with this, nix has access to the hashes in the manifest + ./2_5/0001-emit-json-in-.DepotDownload.patch + # the manifest can arrive out of order across requests to the same build! + # luckily that singular reproducibility snag is patched in 1 line. + ./2_5/0002-ProtoManifest-sort-files-in-constructor.patch + ] + else if builtins.elem version [ "2.7.3" ] then + [ + ./2_7/0001-ProtoManifest-sort-files-in-constructor.patch + ./2_7/0002-emit-json-in-.DepotDownload.patch + ] + else builtins.abort "version of DepotDownloader not covered by patches"; }) |