From df380e3f443b758841b8ff7001dd364a5513c0d8 Mon Sep 17 00:00:00 2001 From: Piotr Chabelski Date: Tue, 10 Jun 2025 12:31:02 +0200 Subject: [PATCH 1/3] Fall back to using GitHub releases of `libsodium` if the download site is unavailable --- project/settings/package.mill.scala | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/project/settings/package.mill.scala b/project/settings/package.mill.scala index c7c56bb376..a17dca5eca 100644 --- a/project/settings/package.mill.scala +++ b/project/settings/package.mill.scala @@ -233,12 +233,29 @@ trait CliLaunchers extends SbtModule { self => os.copy.over(libPath, destDir / s"${prefix}sodiumjni.$ext") } private def copyLibsodiumStaticTo(cs: String, destDir: os.Path, workspace: os.Path): Unit = { - val dirRes = os.proc( - cs, - "get", - "--archive", - s"https://download.libsodium.org/libsodium/releases/libsodium-$libsodiumVersion-stable-msvc.zip" - ).call() + val dirRes = { + val stable = os.proc( + cs, + "get", + "--archive", + s"https://download.libsodium.org/libsodium/releases/libsodium-$libsodiumVersion-stable-msvc.zip" + ).call(check = false) + if (stable.exitCode == 0) stable + else { + System.err.println( + s"Failed to download stable libsodium $libsodiumVersion from https://download.libsodium.org/libsodium/releases" + ) + System.err.println( + "falling back to https://github.com/jedisct1/libsodium/releases *-RELEASE" + ) + os.proc( // fallback to GitHuB *-RELEASE version + cs, + "get", + "--archive", + s"https://github.com/jedisct1/libsodium/releases/download/$libsodiumVersion-RELEASE/libsodium-$libsodiumVersion-msvc.zip" + ).call() + } + } val dir = os.Path(dirRes.out.trim(), workspace) os.copy.over( dir / "libsodium" / "x64" / "Release" / "v143" / "static" / "libsodium.lib", From 1665e890c4bbbae145284c1d4282b582bde0169f Mon Sep 17 00:00:00 2001 From: Piotr Chabelski Date: Tue, 10 Jun 2025 12:32:49 +0200 Subject: [PATCH 2/3] Bump `libsodium` to 1.0.20 --- project/deps/package.mill.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/deps/package.mill.scala b/project/deps/package.mill.scala index d8327f61ad..91cede7b00 100644 --- a/project/deps/package.mill.scala +++ b/project/deps/package.mill.scala @@ -280,7 +280,7 @@ def buildCsVersion = Deps.Versions.coursierCli def buildCsM1Version = Deps.Versions.coursierM1Cli // Native library used to encrypt GitHub secrets -def libsodiumVersion = "1.0.18" +def libsodiumVersion = "1.0.20" // Using the libsodium static library from this Alpine version (in the static launcher) def alpineVersion = "3.16" def ubuntuVersion = "24.04" From e2dcfb3995a0f81411d381d2afe4f75a76c9cfec Mon Sep 17 00:00:00 2001 From: Piotr Chabelski Date: Tue, 10 Jun 2025 12:33:02 +0200 Subject: [PATCH 3/3] Bump `alpine` to 3.21 --- project/deps/package.mill.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/deps/package.mill.scala b/project/deps/package.mill.scala index 91cede7b00..cb80bc2827 100644 --- a/project/deps/package.mill.scala +++ b/project/deps/package.mill.scala @@ -282,7 +282,7 @@ def buildCsM1Version = Deps.Versions.coursierM1Cli // Native library used to encrypt GitHub secrets def libsodiumVersion = "1.0.20" // Using the libsodium static library from this Alpine version (in the static launcher) -def alpineVersion = "3.16" +def alpineVersion = "3.21" def ubuntuVersion = "24.04" object Docker {