From e784fe803b5e8bdd3fadabf6b8240a851f5624b2 Mon Sep 17 00:00:00 2001 From: sunrisepeak Date: Thu, 10 Sep 2026 13:05:36 +0800 Subject: [PATCH] fix(compat.vulkan): 1.4.357.1, because a moved pin needs a new version The previous change moved this package's pin on `compat.vulkan-runtime` from 2026.09.07 to 2026.09.10 without giving `compat.vulkan` a new version. On a machine that already holds `compat.vulkan@1.4.357.0`, the installed copy still RECORDS 2026.09.07, and a consumer that also names `compat.vulkan-runtime` itself -- mcpp's graphics examples do, under a `cfg(linux)` predicate -- compares its own pin against that recorded one and stops with `irreconcilable versions`. It does not reproduce locally: a machine that re-resolves from a refreshed index reads 2026.09.10 on both sides and sees no conflict. It appeared on a CI runner with a warm ~/.mcpp, which is the only environment that had the earlier state still on disk. A new version buys the reinstall, and the reinstall is what records the current pin. 1.4.357.0 is left exactly as it was, so machines holding it keep resolving the way they recorded. --- CHANGELOG.md | 18 ++++++++++ pkgs/c/compat.vulkan.lua | 75 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aa4ed4a..d8a1c97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,24 @@ ### Changed +- **`compat.vulkan` 1.4.357.1 —— 移动一个钉,需要一个新版本。** + 上一条把 `compat.vulkan` 对 `compat.vulkan-runtime` 的钉从 2026.09.07 挪到 + 2026.09.10,**没有抬 `compat.vulkan` 自己的版本**。对一台已经装着 + `compat.vulkan@1.4.357.0` 的机器,那份已安装副本里**记着的**仍是 2026.09.07; + 而同时**自己也直接声明** `compat.vulkan-runtime` 的消费者(mcpp 的图形示例在 + `cfg(linux)` 下就是这么写的)拿自己的钉去比,于是构建停在 + `irreconcilable versions`。 + + ⚠️⚠️ **本地测不出来**:重新解析过索引的机器两边都读到 2026.09.10,毫无冲突。 + 它是在 CI 上、一个 `~/.mcpp` 是热的 runner 上现形的。**「本机绿」在这一类升级 + 问题上等于零信息量。** + + ⭐ 规则:**一个包如果钉着另一个包的版本,那个钉挪动时它自己必须换版本** —— + 换版本买到的是一次重装,重装才会按当前索引重新记录。`1.4.357.0` 保持原样, + 已经持有它的机器照原样解析。 + +### Changed + - **三个 host farm 改为对自己的成员负责,并且对宿主只保留一条具名的触达** (`compat.glx-runtime` 2026.09.10、`compat.opencl-runtime` 2026.09.10、 `compat.vulkan-runtime` 2026.09.10)。 diff --git a/pkgs/c/compat.vulkan.lua b/pkgs/c/compat.vulkan.lua index 99789fa..fc6aaf4 100644 --- a/pkgs/c/compat.vulkan.lua +++ b/pkgs/c/compat.vulkan.lua @@ -65,6 +65,31 @@ package = { xpm = { linux = { + -- 1.4.357.1: the same loader source, pinned to the farm that + -- answers for its own members (compat.vulkan-runtime 2026.09.10). + -- + -- A NEW VERSION RATHER THAN A MOVED PIN INSIDE 1.4.357.0, and the + -- difference is measured. A consumer that ALSO names + -- `compat.vulkan-runtime` directly -- mcpp's graphics examples do, + -- under a `cfg(linux)` predicate -- compares its own pin against + -- the one recorded in its installed copy of this package. Moving + -- the pin inside a published version leaves that recorded copy + -- saying 2026.09.07 while the manifest says 2026.09.10, and the + -- build stops with `irreconcilable versions`. Measured on a CI + -- runner with a warm ~/.mcpp; a machine that re-resolves from a + -- fresh index does not see it, which is why it survived local + -- testing. + -- + -- 1.4.357.0 keeps its old pin for the same reason: a version that + -- is already published must keep resolving the way the machines + -- holding it recorded. + ["1.4.357.1"] = { + url = { + GLOBAL = "https://github.com/KhronosGroup/Vulkan-Loader/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/vulkan/releases/download/1.4.357.0/vulkan-1.4.357.0.tar.gz", + }, + sha256 = "54f2537df22313768da0317dda2abdaaab7711b4081c48c869a79db343d0ae70", + }, ["1.4.357.0"] = { url = { GLOBAL = "https://github.com/KhronosGroup/Vulkan-Loader/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz", @@ -74,6 +99,31 @@ package = { }, }, macosx = { + -- 1.4.357.1: the same loader source, pinned to the farm that + -- answers for its own members (compat.vulkan-runtime 2026.09.10). + -- + -- A NEW VERSION RATHER THAN A MOVED PIN INSIDE 1.4.357.0, and the + -- difference is measured. A consumer that ALSO names + -- `compat.vulkan-runtime` directly -- mcpp's graphics examples do, + -- under a `cfg(linux)` predicate -- compares its own pin against + -- the one recorded in its installed copy of this package. Moving + -- the pin inside a published version leaves that recorded copy + -- saying 2026.09.07 while the manifest says 2026.09.10, and the + -- build stops with `irreconcilable versions`. Measured on a CI + -- runner with a warm ~/.mcpp; a machine that re-resolves from a + -- fresh index does not see it, which is why it survived local + -- testing. + -- + -- 1.4.357.0 keeps its old pin for the same reason: a version that + -- is already published must keep resolving the way the machines + -- holding it recorded. + ["1.4.357.1"] = { + url = { + GLOBAL = "https://github.com/KhronosGroup/Vulkan-Loader/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/vulkan/releases/download/1.4.357.0/vulkan-1.4.357.0.tar.gz", + }, + sha256 = "54f2537df22313768da0317dda2abdaaab7711b4081c48c869a79db343d0ae70", + }, ["1.4.357.0"] = { url = { GLOBAL = "https://github.com/KhronosGroup/Vulkan-Loader/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz", @@ -83,6 +133,31 @@ package = { }, }, windows = { + -- 1.4.357.1: the same loader source, pinned to the farm that + -- answers for its own members (compat.vulkan-runtime 2026.09.10). + -- + -- A NEW VERSION RATHER THAN A MOVED PIN INSIDE 1.4.357.0, and the + -- difference is measured. A consumer that ALSO names + -- `compat.vulkan-runtime` directly -- mcpp's graphics examples do, + -- under a `cfg(linux)` predicate -- compares its own pin against + -- the one recorded in its installed copy of this package. Moving + -- the pin inside a published version leaves that recorded copy + -- saying 2026.09.07 while the manifest says 2026.09.10, and the + -- build stops with `irreconcilable versions`. Measured on a CI + -- runner with a warm ~/.mcpp; a machine that re-resolves from a + -- fresh index does not see it, which is why it survived local + -- testing. + -- + -- 1.4.357.0 keeps its old pin for the same reason: a version that + -- is already published must keep resolving the way the machines + -- holding it recorded. + ["1.4.357.1"] = { + url = { + GLOBAL = "https://github.com/xlings-res/vulkan-import/releases/download/1.4.357.1/vulkan-import-1.4.357.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/vulkan-import/releases/download/1.4.357.1/vulkan-import-1.4.357.1.tar.gz", + }, + sha256 = "37a206f866f75f54a56bdb428e4767c9926acd3f8abc8e1b9539853bb45acbf9", + }, ["1.4.357.0"] = { url = { GLOBAL = "https://github.com/xlings-res/vulkan-import/releases/download/1.4.357.1/vulkan-import-1.4.357.1.tar.gz",