Update OWE to 0.2.10 and package its lock feed (#843)

* Update OWE to 0.2.10 and package its lock feed

* Print OWE regression failures during package checks

* Make OWE package regression independent of timestamp precision
This commit is contained in:
David Heinemeier Hansson authored and GitHub committed 2026-10-07 21:11:46 +02:00
1 parent be91aebbf3
commit fe4b80b0a6
2 files changed
+38 -6

No files matched your search

+20 -6
View File
@@ -1,22 +1,34 @@
# Maintainer: owe contributors
pkgname=owe
pkgver=0.2.9
pkgver=0.2.10
pkgrel=1
pkgdesc="High-performance wallpaper engine for Omarchy (mp4, gif, stills)"
arch=('x86_64' 'aarch64')
url="https://github.com/omacom/owe"
license=('MIT')
depends=('mpv' 'ffmpeg' 'wayland' 'libglvnd' 'libepoxy' 'systemd-libs' 'socat')
makedepends=('meson' 'ninja' 'gcc' 'pkgconf' 'wayland-protocols')
depends=('mpv' 'ffmpeg' 'wayland' 'libglvnd' 'libepoxy' 'systemd-libs' 'socat' 'qt6-declarative')
makedepends=('meson' 'ninja' 'gcc' 'pkgconf' 'wayland-protocols' 'cmake')
checkdepends=('python')
optdepends=('intel-media-driver: VAAPI hardware decode on Intel GPUs'
'libva-mesa-driver: VAAPI hardware decode on AMD GPUs')
source=("$pkgname-$pkgver.tar.gz::https://github.com/omacom/owe/archive/refs/tags/v$pkgver.tar.gz")
sha256sums=('cbf55f6bf4ca88621a2e59b3a62b2b078e1c82c06437e1f5137fdaeb8b5b560a')
source=("$pkgname-$pkgver.tar.gz::https://github.com/omacom/owe/archive/refs/tags/v$pkgver.tar.gz"
'lock-policy-timestamp.patch')
sha256sums=('b171397c24c0ffd6096781b3f744f674055a57f660a74db07a3b71a111a6980b'
'3ebf413093922b0917bca60c42720c6424c77b1695317364bf73f9fd745376d8')
prepare() {
cd "$srcdir/owe-$pkgver"
# Upstream 9876702: make the invalidation test independent of filesystem timestamps.
patch -p1 -i "$srcdir/lock-policy-timestamp.patch"
}
build() {
meson setup build "$srcdir/owe-$pkgver" -Dbuildtype=release -Dprefix=/usr
ninja -C build
cmake -S "$srcdir/owe-$pkgver/qml-plugin" -B build-qml \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_TESTING=ON
cmake --build build-qml
}
check() {
@@ -30,11 +42,13 @@ check() {
mapfile -t tests < <(meson test -C build --list | sed 's/^owe://' | grep -vx transition)
(( ${#tests[@]} )) || return 1
fi
meson test -C build "${tests[@]}"
meson test -C build --print-errorlogs "${tests[@]}"
ctest --test-dir build-qml --output-on-failure
}
package() {
DESTDIR="$pkgdir" ninja -C build install
DESTDIR="$pkgdir" cmake --install build-qml
install -d "$pkgdir/usr/lib/systemd/user"
sed 's|%h/.local/bin/owed|/usr/bin/owed|' "$srcdir/owe-$pkgver/systemd/owed.service" \
>"$pkgdir/usr/lib/systemd/user/owed.service"
+18
View File
@@ -0,0 +1,18 @@
diff --git i/test/lock_policy.c w/test/lock_policy.c
index 8561616..6c554b1 100644
--- i/test/lock_policy.c
+++ w/test/lock_policy.c
@@ -576,6 +576,13 @@ int main(void) {
CHECK(!prepared_intro_matches(copy));
a = open(prepared, O_WRONLY);
CHECK(a >= 0 && write(a, "clip-c", 6) == 6);
+ /* Fast writes can share a timestamp on the builder filesystem.
+ * Advance mtime explicitly to exercise prepared-file invalidation. */
+ struct timespec changed_times[2] = {
+ { .tv_nsec = UTIME_OMIT },
+ { .tv_sec = g_app.intro_prepared_mtime.tv_sec + 1 }
+ };
+ CHECK(futimens(a, changed_times) == 0);
close(a);
CHECK(!prepared_intro_matches(prepared));
clear_prepared_intro();