internal/rosa/package: migrate wayland
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m42s
Test / Hakurei (push) Successful in 3m46s
Test / ShareFS (push) Successful in 3m47s
Test / Sandbox (race detector) (push) Successful in 5m20s
Test / Hakurei (race detector) (push) Successful in 6m28s
Test / Flake checks (push) Successful in 1m23s

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-05-20 06:12:19 +09:00
parent 656059278d
commit 7770ccf0aa
3 changed files with 111 additions and 129 deletions

View File

@@ -0,0 +1,50 @@
From 8b4c76275fa1b6e0a99a53494151d9a2c907144d Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Fri, 8 Nov 2024 11:27:25 -0600
Subject: [PATCH] tests: Make build-only tests actually build-only
The goal behind the pedantic compiler tests are to ensure that the code
that wayland-scanner is generating can be compiled in pedantic mode by
the system C compiler.
Trying to execute the built tests may fail because of undefined symbols.
This affects certain platforms more than others; Linux/musl and Darwin
are examples of platforms that cannot execute binaries with undefined
symbols. This meant tests needlessly failed on these platforms.
Signed-off-by: A. Wilcox <AWilcox@Wilcox-Tech.com>
Closes: #48, #228
---
tests/meson.build | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tests/meson.build b/tests/meson.build
index aa216ec2..5a93bb36 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -1,4 +1,5 @@
prog_scan_sh = find_program('scan.sh')
+prog_true = find_program('true')
libwayland = [
dependency('wayland-client'),
@@ -100,7 +101,7 @@ foreach protocol_file : protocol_files
test_source,
client_header,
server_header,
- code
+ code,
],
link_args: extra_linker_flags,
dependencies: libwayland,
@@ -111,7 +112,7 @@ foreach protocol_file : protocol_files
'-Werror' ],
install: false,
)
- test(test_name, pedantic_test_executable)
+ test(test_name, prog_true, depends : [pedantic_test_executable])
# Check that the header
if not protocol_file.contains('xdg-foreign-unstable-v1')
--
GitLab

View File

@@ -0,0 +1,61 @@
package wayland {
description = "core Wayland window system code and protocol";
website = "https://wayland.freedesktop.org";
anitya = 10061;
version* = "1.25.0";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "wayland/wayland";
ref = version;
checksum = "q-4dYXme46JPgLGtXAxyZGTy7udll9RfT0VXtcW2YRR1WWViUhvdZXZneXzLqpCg";
};
writable = true;
early = `
chmod +w tests tests/sanity-test.c
echo 'int main(){}' > tests/sanity-test.c
`;
exec = meson {
setup = {
"Ddefault_library": "both";
"Ddocumentation": "false";
"Dtests": "true";
};
};
inputs = [
gawk,
diffutils,
libffi,
libexpat,
libxml2,
];
runtime = [
libffi,
libexpat,
libxml2,
];
}
package wayland-protocols {
description = "additional standard Wayland protocols";
website = "https://wayland.freedesktop.org";
anitya = 13997;
version* = "1.48";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "wayland/wayland-protocols";
ref = version;
checksum = "xvfHCBIzXGwOqOu9b8dfhGw_U29Pd-g4JBwpYIaxee8SwEbxi6NaVU-Y1Q7wY4jK";
};
patches = [ "build-only.patch" ];
exec = meson {};
inputs = [ wayland ];
}

View File

@@ -1,129 +0,0 @@
package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newWayland() (pkg.Artifact, string) {
const (
version = "1.25.0"
checksum = "q-4dYXme46JPgLGtXAxyZGTy7udll9RfT0VXtcW2YRR1WWViUhvdZXZneXzLqpCg"
)
return t.NewPackage("wayland", version, newFromGitLab(
"gitlab.freedesktop.org",
"wayland/wayland",
version,
checksum,
), &PackageAttr{
Writable: true,
ScriptEarly: `
cd /usr/src/wayland
chmod +w tests tests/sanity-test.c
echo 'int main(){}' > tests/sanity-test.c
`,
}, &MesonHelper{
Setup: []KV{
{"Ddefault_library", "both"},
{"Ddocumentation", "false"},
{"Dtests", "true"},
},
},
Gawk,
Diffutils,
Libffi,
Libexpat,
Libxml2,
), version
}
func init() {
native.mustRegister(Toolchain.newWayland, &Metadata{
Name: "wayland",
Description: "core Wayland window system code and protocol",
Website: "https://wayland.freedesktop.org/",
Dependencies: P{
Libffi,
Libexpat,
Libxml2,
},
ID: 10061,
})
}
func (t Toolchain) newWaylandProtocols() (pkg.Artifact, string) {
const (
version = "1.48"
checksum = "xvfHCBIzXGwOqOu9b8dfhGw_U29Pd-g4JBwpYIaxee8SwEbxi6NaVU-Y1Q7wY4jK"
)
return t.NewPackage("wayland-protocols", version, newFromGitLab(
"gitlab.freedesktop.org",
"wayland/wayland-protocols",
version,
checksum,
), &PackageAttr{
Patches: []KV{
{"build-only", `From 8b4c76275fa1b6e0a99a53494151d9a2c907144d Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Fri, 8 Nov 2024 11:27:25 -0600
Subject: [PATCH] tests: Make build-only tests actually build-only
The goal behind the pedantic compiler tests are to ensure that the code
that wayland-scanner is generating can be compiled in pedantic mode by
the system C compiler.
Trying to execute the built tests may fail because of undefined symbols.
This affects certain platforms more than others; Linux/musl and Darwin
are examples of platforms that cannot execute binaries with undefined
symbols. This meant tests needlessly failed on these platforms.
Signed-off-by: A. Wilcox <AWilcox@Wilcox-Tech.com>
Closes: #48, #228
---
tests/meson.build | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tests/meson.build b/tests/meson.build
index aa216ec2..5a93bb36 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -1,4 +1,5 @@
prog_scan_sh = find_program('scan.sh')
+prog_true = find_program('true')
libwayland = [
dependency('wayland-client'),
@@ -100,7 +101,7 @@ foreach protocol_file : protocol_files
test_source,
client_header,
server_header,
- code
+ code,
],
link_args: extra_linker_flags,
dependencies: libwayland,
@@ -111,7 +112,7 @@ foreach protocol_file : protocol_files
'-Werror' ],
install: false,
)
- test(test_name, pedantic_test_executable)
+ test(test_name, prog_true, depends : [pedantic_test_executable])
# Check that the header
if not protocol_file.contains('xdg-foreign-unstable-v1')
--
GitLab
`},
},
}, (*MesonHelper)(nil),
Wayland,
), version
}
func init() {
native.mustRegister(Toolchain.newWaylandProtocols, &Metadata{
Name: "wayland-protocols",
Description: "Additional standard Wayland protocols",
Website: "https://wayland.freedesktop.org/",
ID: 13997,
})
}