guixchannel/packages/hyprland.scm
2023-11-28 10:54:10 +01:00

226 lines
6.6 KiB
Scheme

(define-module
(packages hyprland)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix build-system meson)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix git-download)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gl)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
#:use-module (gnu packages ninja)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages python)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages rust)
#:use-module (gnu packages web)
#:use-module (gnu packages wm)
#:use-module (gnu packages xorg))
(define-public pixman
(package
(name "pixman")
(version "0.42.2")
(source
(origin
(method url-fetch)
(uri
(string-append
"https://www.cairographics.org/releases/pixman-"
version ".tar.gz"))
(sha256
(base32 "0pk298iqxqr64vk3z6nhjwr6vjg1971zfrjkqy5r9zd2mppq057a"))
(patches
(search-patches
"pixman-CVE-2016-5296.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list
"--disable-static"
"--enable-timers"
"--enable-gnuplot")))
(native-inputs
(list pkg-config))
(inputs
(list libpng zlib))
(synopsis "Low-level pixel manipulation library")
(description "Pixman is a low-level software library for pixel
manipulation, providing features such as image compositing and trapezoid
rasterisation.")
(home-page "http://www.pixman.org/")
(license license:expat)))
(define-public wlroots
(package
(name "wlroots")
(version "0.17.0")
(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 "11vb6xjvsjz7j2jkx00ygjp5xi63ni8ydd8wf3s0200ldr4ffjjm"))))
(build-system meson-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'hardcode-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "xwayland/server.c"
(("Xwayland") (string-append (assoc-ref inputs
"xorg-server-xwayland")
"/bin/Xwayland")))
#t))
(add-before 'configure 'fix-meson-file
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(substitute* "backend/drm/meson.build"
(("/usr/share/hwdata/pnp.ids")
(string-append (assoc-ref (or native-inputs inputs) "hwdata")
"/share/hwdata/pnp.ids"))))))))
(propagated-inputs
(list ;; As required by wlroots.pc.
eudev
libinput-minimal
libxkbcommon
mesa
pixman
libseat
wayland
wayland-protocols
xcb-util-errors
xcb-util-wm
xorg-server-xwayland))
(native-inputs
(cons*
`(,hwdata "pnp")
pkg-config
wayland
(if (%current-target-system)
(list pkg-config-for-build)
'())))
(home-page "https://gitlab.freedesktop.org/wlroots/wlroots/")
(synopsis "Pluggable, composable, unopinionated modules for building a
Wayland compositor")
(description "wlroots is a set of pluggable, composable, unopinionated
modules for building a Wayland compositor.")
(license license:expat))) ; MIT license
(define-public hyprland-protocols
(package
(name "hyprland-protocols")
(version "0.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hyprwm/hyprland-protocols")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1drjznj7fn6m5m6skhzh0p031cb5x0bb4i56jxnxwpwaa71g1z20"))))
(build-system meson-build-system)
(home-page "https://www.hyprland.org") (synopsis "Dynamic tiling
Wayland compositor based on wlroots") (description "Hyprland.")
(license license:bsd-3)
))
(define-public udis86
(package
(name "udis86")
(version "unstable-2022-10-13")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/canihavesomecoffee/udis86")
(commit "5336633af70f3917760a6d441ff02d93477b0c86")))
(sha256
(base32 "0y5z1169wff578jylpafsww4px4y6gickhcs885a9c660d8xs9qy"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
automake
libtool
python-wrapper))
(inputs
(list python-wrapper))
(home-page "blah")
(synopsis "blub")
(description "Disassembler")
(license license:bsd-2)))
(define-public hyprland
(package
(name "hyprland")
(version "0.32.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hyprwm/Hyprland")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "17h8gy7wvsxg1ypq70b0cldz6h599xi7fibawlm2g6cvxkmzdwzh"))
(modules '((guix build utils)))
(snippet
#~(begin
(substitute* "src/render/OpenGL.cpp"
(("/usr") "$out"))))))
(build-system meson-build-system)
(arguments
'(;#:configure-flags
;'("-DNO_SYSTEMD=true")
#:phases (modify-phases %standard-phases
(add-before 'configure
'pre-configure
(lambda* (#:key outputs #:allow-other-keys)
(system "patch -p1 -i nix/patches/meson-build.patch"))))))
(native-inputs
(list gcc-13
jq
git
ninja
mesa-headers
meson
pkg-config))
(inputs
(list cairo
egl-wayland
glu
glfw
hyprland-protocols
libglvnd
libinput
libxkbcommon
libdrm
mesa
wayland
wayland-protocols
pango
pciutils
udis86
wlroots
xcb-util))
(home-page "https://www.hyprland.org")
(synopsis "Dynamic tiling
Wayland compositor based on wlroots")
(description "Hyprland.")
(license license:bsd-3)))