guixchannel/packages/hyprland.scm

239 lines
6.9 KiB
Scheme
Raw Normal View History

2023-11-27 23:00:56 +00:00
(define-module
2023-11-27 23:04:45 +00:00
(packages hyprland)
2023-11-27 23:00:56 +00:00
#: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)
2023-11-28 09:47:57 +00:00
#:use-module (gnu packages admin)
2023-11-27 23:00:56 +00:00
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages build-tools)
2023-11-28 10:09:32 +00:00
#:use-module (gnu packages cmake)
2023-11-28 09:54:30 +00:00
#:use-module (gnu packages compression)
2023-11-27 23:00:56 +00:00
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gl)
#:use-module (gnu packages gtk)
2023-11-28 09:54:10 +00:00
#:use-module (gnu packages image)
2023-11-28 09:47:32 +00:00
#:use-module (gnu packages linux)
2023-11-27 23:00:56 +00:00
#: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))
2023-11-28 09:53:51 +00:00
(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)))
2023-11-28 09:47:09 +00:00
(define-public wlroots
(package
(name "wlroots")
2023-11-28 09:48:34 +00:00
(version "0.17.0")
2023-11-28 09:47:09 +00:00
(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
2023-11-28 09:49:47 +00:00
(base32 "11vb6xjvsjz7j2jkx00ygjp5xi63ni8ydd8wf3s0200ldr4ffjjm"))))
2023-11-28 09:47:09 +00:00
(build-system meson-build-system)
(arguments
2023-11-28 11:25:44 +00:00
`(#:configure-flags
2023-11-28 11:27:03 +00:00
'("-Ddrm-backend=enabled"
"-Dlibinput-backend=enabled"
"-Dxwayland=enabled"
"-Dsession=enabled")
2023-11-28 11:25:44 +00:00
#:phases
2023-11-28 09:47:09 +00:00
(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
2023-11-28 11:21:04 +00:00
libdrm
2023-11-28 09:47:09 +00:00
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
2023-11-27 23:00:56 +00:00
(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"
2023-11-28 09:11:16 +00:00
(("/usr") "$out"))))))
2023-11-27 23:00:56 +00:00
(build-system meson-build-system)
(arguments
2023-11-28 10:03:50 +00:00
'(#:phases
(modify-phases %standard-phases
(add-before 'configure
'pre-configure
(lambda* (#:key outputs #:allow-other-keys)
2023-11-28 10:05:19 +00:00
(system "pkg-config --list-all")
2023-11-28 10:07:43 +00:00
(system "pkg-config --libs wlroots")
(system "pkg-config --mobversion wlroots")
2023-11-28 10:16:19 +00:00
(system "patch -p1 -i nix/patches/meson-build.patch")
(system "cat src/meson.build"))))))
2023-11-27 23:00:56 +00:00
(native-inputs
(list gcc-13
2023-11-28 10:09:00 +00:00
cmake
2023-11-27 23:00:56 +00:00
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))
2023-11-28 09:11:16 +00:00
(home-page "https://www.hyprland.org")
(synopsis "Dynamic tiling
Wayland compositor based on wlroots")
(description "Hyprland.")
2023-11-27 23:00:56 +00:00
(license license:bsd-3)))