diff --git a/pkgbuilds/owe/PKGBUILD b/pkgbuilds/owe/PKGBUILD index 99fbe84..91c1095 100644 --- a/pkgbuilds/owe/PKGBUILD +++ b/pkgbuilds/owe/PKGBUILD @@ -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" diff --git a/pkgbuilds/owe/lock-policy-timestamp.patch b/pkgbuilds/owe/lock-policy-timestamp.patch new file mode 100644 index 0000000..457aad5 --- /dev/null +++ b/pkgbuilds/owe/lock-policy-timestamp.patch @@ -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();