aboutsummaryrefslogtreecommitdiff
path: root/srcds-pkgs/depotdownloader-json
diff options
context:
space:
mode:
Diffstat (limited to 'srcds-pkgs/depotdownloader-json')
-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.patch24
-rw-r--r--srcds-pkgs/depotdownloader-json/2_7/0002-emit-json-in-.DepotDownload.patch50
-rw-r--r--srcds-pkgs/depotdownloader-json/default.nix21
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";
})