cosmic: la barra de más de cosmic-applets — no es un dedazo, es un truco, y hay que respetarlo
El manifiesto apunta a 'https://github.com/pop-os/cosmic-protocols//' con DOS barras al final. Es como upstream hace que cargo trate esa fuente como DISTINTA de la URL normal, para que el [patch] de al lado no se apunte a sí mismo. Pero GitHub devuelve 404 a '/pop-os/cosmic-protocols//info/refs' y cargo vendor muere en el fetch, antes de compilar una línea. El primer intento fue cambiar '//' por '.git', y falló POR LA RAZÓN QUE HACE QUE EL TRUCO EXISTA: cargo normaliza el .git, así que el patch pasaba a apuntar a la misma fuente que reemplaza — 'patches must point to different sources'. La barra de más no es reemplazable por cualquier variante cosmética: tiene que ser una que cargo considere OTRA fuente y que el servidor sepa servir. Sólo cumple las dos la barra en el MEDIO ('pop-os//cosmic-protocols'), que es justo la forma que usa cosmic-comp — y por eso aquél construyó sin parche. Se toca Cargo.toml y Cargo.lock juntos: cambiar uno solo rompe el --locked. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
--- a/Cargo.toml 2026-08-03 13:50:40.173439625 -0400
|
||||
+++ b/Cargo.toml 2026-08-03 13:52:23.790259375 -0400
|
||||
@@ -82,8 +82,8 @@
|
||||
sctk = { package = "smithay-client-toolkit", version = "0.20.0" }
|
||||
|
||||
[patch."https://github.com/pop-os/cosmic-protocols"]
|
||||
-cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols//", rev = "32283d7" }
|
||||
-cosmic-client-toolkit = { git = "https://github.com/pop-os/cosmic-protocols//", rev = "32283d7" }
|
||||
+cosmic-protocols = { git = "https://github.com/pop-os//cosmic-protocols", rev = "32283d7" }
|
||||
+cosmic-client-toolkit = { git = "https://github.com/pop-os//cosmic-protocols", rev = "32283d7" }
|
||||
|
||||
# [patch.'https://github.com/pop-os/dbus-settings-bindings']
|
||||
# cosmic-dbus-networkmanager = { path = "../dbus-settings-bindings/networkmanager" }
|
||||
--- a/Cargo.lock 2026-08-03 13:50:40.173324764 -0400
|
||||
+++ b/Cargo.lock 2026-08-03 13:52:23.791259375 -0400
|
||||
@@ -1273,7 +1273,7 @@
|
||||
[[package]]
|
||||
name = "cosmic-client-toolkit"
|
||||
version = "0.2.0"
|
||||
-source = "git+https://github.com/pop-os/cosmic-protocols//?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f"
|
||||
+source = "git+https://github.com/pop-os//cosmic-protocols?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f"
|
||||
dependencies = [
|
||||
"bitflags 2.13.0",
|
||||
"cosmic-protocols",
|
||||
@@ -1398,7 +1398,7 @@
|
||||
[[package]]
|
||||
name = "cosmic-protocols"
|
||||
version = "0.2.0"
|
||||
-source = "git+https://github.com/pop-os/cosmic-protocols//?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f"
|
||||
+source = "git+https://github.com/pop-os//cosmic-protocols?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f"
|
||||
dependencies = [
|
||||
"bitflags 2.13.0",
|
||||
"wayland-backend",
|
||||
@@ -24,6 +24,24 @@ version = "1.5.0"
|
||||
[source]
|
||||
tarball = "https://github.com/pop-os/cosmic-applets/archive/epoch-1.5.0/cosmic-applets-epoch-1.5.0.tar.gz"
|
||||
sha256 = "ac9328e58f5e9cb9c7561a2ce4af212d4916d97c820741f0959366c7e1a0e3ba"
|
||||
# ⚠ EL PARCHE ARREGLA UNA URL, Y LA URL RARA ES INTENCIONAL RÍO ARRIBA.
|
||||
# El manifiesto apunta a `https://github.com/pop-os/cosmic-protocols//` — con DOS barras al final. No
|
||||
# es un dedazo: es el truco con el que upstream hace que cargo trate esa fuente como DISTINTA de la
|
||||
# URL normal, para que el `[patch."…/cosmic-protocols"]` de al lado no se apunte a sí mismo (cargo
|
||||
# rechaza un patch que reemplaza una fuente por ella misma). Pero GitHub **devuelve 404** a
|
||||
# `/pop-os/cosmic-protocols//info/refs`, así que `cargo vendor` no puede clonar y el build muere en el
|
||||
# fetch, antes de compilar una línea.
|
||||
#
|
||||
# La barra se MUEVE al medio: `https://github.com/pop-os//cosmic-protocols`. Es exactamente la forma
|
||||
# que usa `cosmic-comp` —que por eso construyó sin parche—, y GitHub sí la tolera. Se toca
|
||||
# `Cargo.toml` **y** `Cargo.lock` juntos: cambiar sólo uno rompe el `--locked` del build hermético.
|
||||
#
|
||||
# El primer intento fue `.git` en vez de `//`, y **falló por la razón que hace que el truco exista**:
|
||||
# cargo NORMALIZA el `.git`, así que el patch pasaba a apuntar a la misma fuente que reemplaza y
|
||||
# cortó con «patches must point to different sources». O sea que la barra de más no es reemplazable
|
||||
# por cualquier variante cosmética: tiene que ser una que cargo considere OTRA fuente y que el
|
||||
# servidor sepa servir. Sólo la del medio cumple las dos.
|
||||
patches = ["cosmic-applets-protocols-url.patch"]
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
|
||||
Reference in New Issue
Block a user