(define-module (ryan-packages freedesktop) #:use-module (guix download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix gexp) #:use-module (guix build-system meson) #:use-module (guix build-system qt) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages gl) #:use-module (gnu packages linux) #:use-module (gnu packages qt) #:use-module (gnu packages cmake) #:use-module (gnu packages pkg-config) #:use-module (gnu packages freedesktop) #:use-module (rosenthal packages wm) #:use-module (gnu packages wm)) (define-public xdg-desktop-portal-wlr-new (package (inherit xdg-desktop-portal-wlr) (version "0.7.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/emersion/xdg-desktop-portal-wlr") (commit (string-append "v" version)))) (sha256 (base32 "1b3hpp3ybjgnnmnwsyb5bsnvz9q5nr3zz0j1alh02g24f68lf00k")) (patches (search-patches "xdg-desktop-portal-wlr-harcoded-length.patch")))) (native-inputs (modify-inputs (package-native-inputs xdg-desktop-portal-wlr) (append wlroots))))) (define-public xdg-desktop-portal-hyprland (package (name "xdg-desktop-portal-hyprland") (version "0.4.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/hyprwm/xdg-desktop-portal-hyprland") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1dcglmx02j73qbmw9qsacamn8byakyzwknpqjnhsyphixb4crrdg")))) (build-system meson-build-system) (arguments (list #:modules '((guix build utils) (guix build meson-build-system) ((guix build qt-build-system) #:prefix qt:)) #:imported-modules (append %meson-build-system-modules %qt-build-system-modules) #:tests? #f #:configure-flags #~(list "-Dsystemd=disabled") #:phases ;; After building the portal, we need to build the share selector using qt #~(modify-phases %standard-phases (add-after 'install 'chdir (lambda _ (chdir "../source/hyprland-share-picker/"))) (add-after 'chdir 'check-setup (assoc-ref qt:%standard-phases 'check-setup)) (add-after 'check-setup 'qt-build-new (lambda* (#:key inputs outputs #:allow-other-keys) ((assoc-ref qt:%standard-phases 'build) #:inputs inputs #:outputs outputs #:configure-flags '() #:qtbase (let ((module (resolve-interface '(gnu packages qt))))(module-ref module 'qtbase))))) (add-after 'qt-build 'qt-install (assoc-ref qt:%standard-phases 'install)) (add-after 'qt-install 'qt-wrap (assoc-ref qt:%standard-phases 'qt-wrap))))) (native-inputs (list cmake pkg-config)) (inputs (list elogind hyprland hyprland-protocols pipewire wayland-protocols wayland libinih mesa qtwayland `(,util-linux "lib"))) (home-page "") (synopsis "test") (description "test") (license license:bsd-3))) xdg-desktop-portal-hyprland