Skip to content

Commit f10d069

Browse files
authored
feat(wayland-protocols): 1.49.1 — the enum headers upstream installs (#317)
wlroots 0.20 includes `<wayland-protocols/xdg-shell-enum.h>` from TEN of its public headers. Upstream wayland-protocols installs those (include/wayland- protocols/meson.build runs `wayland-scanner enum-header` over every XML); the fork generated only client-header, server-header and public-code. So a consumer of wlroots writing the ordinary `#include <wlr/...>` had nothing to resolve them against. Purely additive: 65 protocols x 1 new header, no existing generated file changes, upstream/ untouched. mcpplibs/wayland-protocols#1, all four CI jobs green. ⭐ WHY THEY ARE CHECKED IN RATHER THAN GENERATED BY build.mcpp §14 of the graphics-stack design doc prescribes build-time generation. It cannot apply to a package whose PRODUCT is headers, and the reason is measured (2026-08-31, two-package probe): mcpp::include_dir() from a build program -> PACKAGE-PRIVATE; the consumer gets 'No such file or directory' [build] include_dirs in the manifest -> propagates to consumers VERSION: the third component is the FORK's revision. Upstream ships two-component versions and 1.49 is the newest. Not a re-cut of 1.49 — the store is keyed by (name, version) and would not re-extract it, while the tag archive's sha256 changes under every published descriptor. 1.49 stays exactly as published; nothing that depends on it moves.
1 parent ebdb19f commit f10d069

3 files changed

Lines changed: 93 additions & 0 deletions

File tree

pkgs/f/freedesktop.wayland-protocols-stable.lua

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,37 @@ package = {
7979
linux = {
8080
-- wayland-protocols' own release number. Upstream tags without a
8181
-- leading v, and so does the fork.
82+
-- 1.49.1 — the third component is THIS FORK's revision, not
83+
-- upstream's: wayland-protocols releases two-component versions and
84+
-- 1.49 is the newest. 1.49.1 is 1.49's XML plus the
85+
-- `wayland-protocols/<name>-enum.h` headers that upstream's own
86+
-- meson installs (include/wayland-protocols/meson.build runs
87+
-- `wayland-scanner enum-header` over every XML) and that this fork
88+
-- did not previously generate.
89+
--
90+
-- wlroots 0.20 includes them from TEN of its public headers, so a
91+
-- consumer of wlroots writing a plain `#include <wlr/...>` needs
92+
-- them on the include path.
93+
--
94+
-- ⭐ They are checked into the fork rather than produced by a
95+
-- `build.mcpp`, which the fork spec otherwise prescribes, because
96+
-- a package cannot export a generated header. Measured
97+
-- 2026-08-31 with a two-package probe:
98+
--
99+
-- mcpp::include_dir() from a build program → PACKAGE-PRIVATE
100+
-- [build] include_dirs in the manifest → propagates
101+
--
102+
-- Additive, not a re-cut of 1.49: the store is keyed by
103+
-- (name, version) and would not re-extract a version it already
104+
-- holds, so a re-cut tag reaches nobody who already built against
105+
-- it. 1.49 stays exactly as published.
106+
["1.49.1"] = {
107+
url = {
108+
GLOBAL = "https://github.com/mcpplibs/wayland-protocols/archive/refs/tags/1.49.1.tar.gz",
109+
CN = "https://gitcode.com/mcpp-res/wayland-protocols/releases/download/1.49.1/wayland-protocols-1.49.1.tar.gz",
110+
},
111+
sha256 = "52b219f5e307c1d0d49fe9429a877aef8d4b65e69224c97053cbf8434fb79237",
112+
},
82113
["1.49"] = {
83114
url = {
84115
GLOBAL = "https://github.com/mcpplibs/wayland-protocols/archive/refs/tags/1.49.tar.gz",

pkgs/f/freedesktop.wayland-protocols-staging.lua

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,37 @@ package = {
7373
linux = {
7474
-- wayland-protocols' own release number. Upstream tags without a
7575
-- leading v, and so does the fork.
76+
-- 1.49.1 — the third component is THIS FORK's revision, not
77+
-- upstream's: wayland-protocols releases two-component versions and
78+
-- 1.49 is the newest. 1.49.1 is 1.49's XML plus the
79+
-- `wayland-protocols/<name>-enum.h` headers that upstream's own
80+
-- meson installs (include/wayland-protocols/meson.build runs
81+
-- `wayland-scanner enum-header` over every XML) and that this fork
82+
-- did not previously generate.
83+
--
84+
-- wlroots 0.20 includes them from TEN of its public headers, so a
85+
-- consumer of wlroots writing a plain `#include <wlr/...>` needs
86+
-- them on the include path.
87+
--
88+
-- ⭐ They are checked into the fork rather than produced by a
89+
-- `build.mcpp`, which the fork spec otherwise prescribes, because
90+
-- a package cannot export a generated header. Measured
91+
-- 2026-08-31 with a two-package probe:
92+
--
93+
-- mcpp::include_dir() from a build program → PACKAGE-PRIVATE
94+
-- [build] include_dirs in the manifest → propagates
95+
--
96+
-- Additive, not a re-cut of 1.49: the store is keyed by
97+
-- (name, version) and would not re-extract a version it already
98+
-- holds, so a re-cut tag reaches nobody who already built against
99+
-- it. 1.49 stays exactly as published.
100+
["1.49.1"] = {
101+
url = {
102+
GLOBAL = "https://github.com/mcpplibs/wayland-protocols/archive/refs/tags/1.49.1.tar.gz",
103+
CN = "https://gitcode.com/mcpp-res/wayland-protocols/releases/download/1.49.1/wayland-protocols-1.49.1.tar.gz",
104+
},
105+
sha256 = "52b219f5e307c1d0d49fe9429a877aef8d4b65e69224c97053cbf8434fb79237",
106+
},
76107
["1.49"] = {
77108
url = {
78109
GLOBAL = "https://github.com/mcpplibs/wayland-protocols/archive/refs/tags/1.49.tar.gz",

pkgs/f/freedesktop.wayland-protocols-unstable.lua

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,37 @@ package = {
8080
linux = {
8181
-- wayland-protocols' own release number. Upstream tags without a
8282
-- leading v, and so does the fork.
83+
-- 1.49.1 — the third component is THIS FORK's revision, not
84+
-- upstream's: wayland-protocols releases two-component versions and
85+
-- 1.49 is the newest. 1.49.1 is 1.49's XML plus the
86+
-- `wayland-protocols/<name>-enum.h` headers that upstream's own
87+
-- meson installs (include/wayland-protocols/meson.build runs
88+
-- `wayland-scanner enum-header` over every XML) and that this fork
89+
-- did not previously generate.
90+
--
91+
-- wlroots 0.20 includes them from TEN of its public headers, so a
92+
-- consumer of wlroots writing a plain `#include <wlr/...>` needs
93+
-- them on the include path.
94+
--
95+
-- ⭐ They are checked into the fork rather than produced by a
96+
-- `build.mcpp`, which the fork spec otherwise prescribes, because
97+
-- a package cannot export a generated header. Measured
98+
-- 2026-08-31 with a two-package probe:
99+
--
100+
-- mcpp::include_dir() from a build program → PACKAGE-PRIVATE
101+
-- [build] include_dirs in the manifest → propagates
102+
--
103+
-- Additive, not a re-cut of 1.49: the store is keyed by
104+
-- (name, version) and would not re-extract a version it already
105+
-- holds, so a re-cut tag reaches nobody who already built against
106+
-- it. 1.49 stays exactly as published.
107+
["1.49.1"] = {
108+
url = {
109+
GLOBAL = "https://github.com/mcpplibs/wayland-protocols/archive/refs/tags/1.49.1.tar.gz",
110+
CN = "https://gitcode.com/mcpp-res/wayland-protocols/releases/download/1.49.1/wayland-protocols-1.49.1.tar.gz",
111+
},
112+
sha256 = "52b219f5e307c1d0d49fe9429a877aef8d4b65e69224c97053cbf8434fb79237",
113+
},
83114
["1.49"] = {
84115
url = {
85116
GLOBAL = "https://github.com/mcpplibs/wayland-protocols/archive/refs/tags/1.49.tar.gz",

0 commit comments

Comments
 (0)