@@ -2173,6 +2173,7 @@ dist_patch_DATA = \
%D%/packages/patches/webrtc-audio-processing-big-endian.patch \
%D%/packages/patches/webrtc-for-telegram-desktop-unbundle-libsrtp.patch \
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
+ %D%/packages/patches/wlroots-hwdata-fallback.patch \
%D%/packages/patches/wmctrl-64-fix.patch \
%D%/packages/patches/wmfire-update-for-new-gdk-versions.patch \
%D%/packages/patches/wordnet-CVE-2008-2149.patch \
new file mode 100644
@@ -0,0 +1,46 @@
+backend/drm: add hardcoded hwdata path fallback
+
+Add hardcoded fallback "/usr/share/hwdata/pnp.ids" as a
+temporary solution to get things working in Guix until
+hwdata ships with pkg-config file.
+
+diff --git a/backend/drm/meson.build b/backend/drm/meson.build
+index 6fcb2c15..ed95360a 100644
+--- a/backend/drm/meson.build
++++ b/backend/drm/meson.build
+@@ -1,8 +1,7 @@
+ hwdata = dependency(
+ 'hwdata',
+- required: 'drm' in backends,
++ required: false,
+ native: true,
+- not_found_message: 'Required for the DRM backend.',
+ )
+
+ libdisplay_info = dependency(
+@@ -19,15 +18,21 @@ libliftoff = dependency(
+ required: false,
+ )
+
+-if not (hwdata.found() and libdisplay_info.found() and features['session'])
++if hwdata.found()
++ hwdata_dir = hwdata.get_variable(pkgconfig: 'pkgdatadir')
++ pnp_ids = files(hwdata_dir / 'pnp.ids')
++else
++ pnp_ids = files('/usr/share/hwdata/pnp.ids')
++endif
++
++if not (libdisplay_info.found() and features['session'])
+ subdir_done()
+ endif
+
+-hwdata_dir = hwdata.get_variable(pkgconfig: 'pkgdatadir')
+ pnpids_c = custom_target(
+ 'pnpids.c',
+ output: 'pnpids.c',
+- input: files(hwdata_dir / 'pnp.ids'),
++ input: pnp_ids,
+ feed: true,
+ capture: true,
+ command: files('gen_pnpids.sh'),
+
@@ -66,6 +66,7 @@
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
+;;; Copyright © 2024 Ahmad Draidi <a.r.draidi@redscript.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -207,7 +208,7 @@ (define-public cage
(sha256 (base32 "11sg9x08zl2nr7a723h462knz5lf58sgvkhv1mgc9z3hhkhvbsja"))))
(build-system meson-build-system)
(native-inputs (list pkg-config scdoc))
- (inputs (list wayland wlroots libxkbcommon))
+ (inputs (list wayland wlroots-0.16 libxkbcommon))
(home-page "https://github.com/cage-kiosk/cage")
(synopsis "Wayland kiosk")
(description "This package provides a Wayland @dfn{kiosk}, which runs a
@@ -1167,7 +1168,7 @@ (define-public fnott
tllist
scdoc))
(inputs
- (list wlroots wayland fcft dbus libpng))
+ (list wlroots-0.16 wayland fcft dbus libpng))
(home-page "https://codeberg.org/dnkl/fnott")
(synopsis "Keyboard driven and lightweight Wayland notification daemon")
(description "Fnott is a keyboard driven and lightweight notification daemon
@@ -1569,7 +1570,7 @@ (define-public dwl
(native-inputs
(list pkg-config))
(inputs
- (list wlroots))
+ (list wlroots-0.16))
(home-page "https://github.com/djpohly/dwl")
(synopsis "Dynamic window manager for Wayland")
(description
@@ -1675,7 +1676,7 @@ (define-public polybar
(define-public wlroots
(package
(name "wlroots")
- (version "0.16.2")
+ (version "0.17.1")
(source
(origin
(method git-fetch)
@@ -1684,7 +1685,9 @@ (define-public wlroots
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1m12nv6avgnz626h3giqp6gcx44w1wq6z0jy780mx8z255ic7q15"))))
+ (base32 "1hj4gq5vx8in65622yvjm8bwqkw2vpc556k9my997a0hn0ricj37"))
+ ;; This patch can be removed once hwdata in Guix supports pkg-config
+ (patches (search-patches "wlroots-hwdata-fallback.patch"))))
(build-system meson-build-system)
(arguments
`(#:phases
@@ -1705,6 +1708,7 @@ (define-public wlroots
(propagated-inputs
(list ;; As required by wlroots.pc.
eudev
+ libdisplay-info
libinput-minimal
libxkbcommon
mesa
@@ -1730,6 +1734,23 @@ (define-public wlroots
modules for building a Wayland compositor.")
(license license:expat))) ; MIT license
+(define-public wlroots-0.16
+ (package
+ (inherit wlroots)
+ (name "wlroots-0.16")
+ (version "0.16.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.freedesktop.org/wlroots/wlroots")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1m12nv6avgnz626h3giqp6gcx44w1wq6z0jy780mx8z255ic7q15"))))
+ (propagated-inputs (modify-inputs (package-propagated-inputs wlroots)
+ (delete libdisplay-info)))))
+
(define-public sway
(package
(name "sway")
@@ -1774,7 +1795,7 @@ (define-public sway
pcre2
swaybg
wayland
- wlroots))
+ wlroots-0.16))
(native-inputs
(cons* linux-pam mesa pkg-config scdoc wayland-protocols
(if (%current-target-system)
@@ -2966,7 +2987,7 @@ (define-public cagebreak
(("/etc/") (string-append #$output "/etc/"))
(("/usr/share/") (string-append #$output "/usr/share/"))))))))
(native-inputs (list pkg-config scdoc))
- (inputs (list libevdev pango wlroots))
+ (inputs (list libevdev pango wlroots-0.16))
(home-page "https://github.com/project-repo/cagebreak")
(synopsis "Tiling wayland compositor inspired by ratpoison")
(description
@@ -3063,7 +3084,7 @@ (define-public hikari
linux-pam
pango
wayland
- wlroots))
+ wlroots-0.16))
(arguments
`(#:tests? #f ; no tests
#:make-flags
@@ -61,7 +61,7 @@ (define-public river
scdoc
wayland
wayland-protocols
- wlroots))
+ wlroots-0.16))
(home-page "https://github.com/riverwm/river")
(synopsis "Dynamic tiling Wayland compositor")
(description