This commit is contained in:
Daniel Ziltener 2024-03-18 23:45:26 +01:00
parent 4e11610f68
commit 90e2f7ce52
Signed by: zilti
GPG key ID: B38976E82C9DAE42

View file

@ -2,6 +2,7 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
@ -11,14 +12,19 @@
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages build-tools) #:use-module (gnu packages build-tools)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages cmake) #:use-module (gnu packages cmake)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages docbook)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages hardware) #:use-module (gnu packages hardware)
#:use-module (gnu packages image) #:use-module (gnu packages image)
@ -26,6 +32,7 @@
#:use-module (gnu packages ninja) #:use-module (gnu packages ninja)
#:use-module (gnu packages pciutils) #:use-module (gnu packages pciutils)
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
#:use-module (gnu packages pdf)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages version-control) #:use-module (gnu packages version-control)
@ -37,6 +44,82 @@
#:use-module (gnu packages wm) #:use-module (gnu packages wm)
#:use-module (gnu packages xorg)) #:use-module (gnu packages xorg))
(define-public cairo ;; SENT to Guix
(package
(name "cairo")
(version "1.18.0")
(source
(origin
(method url-fetch)
(uri
(string-append "https://cairographics.org/releases/cairo-"
version ".tar.xz"))
(sha256
(base32
"0r0by563s75xyzz0d0j1nmjqmdrk2x9agk7r57p3v8vqp4v0ffi4"))))
(build-system meson-build-system)
(arguments
`(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
#:configure-flags
(list
"-Dgtk_doc=true"
"-Dsymbol-lookup=disabled"
"-Dspectre=disabled"
;; XXX: To be enabled.
;; "--enable-gallium=yes"
;; "--enable-gl=yes"
;; " --enable-glesv2=yes"
;; "--enable-glesv3=yes"
;; "--enable-cogl=yes"
;; "--enable-directfb=yes"
;; "--enable-vg=yes"
)))
(native-inputs
`(,@(if (target-hurd?)
'()
`(("gobject-introspection" ,gobject-introspection)))
("gcc-13" ,gcc-13)
("gtk-doc" ,gtk-doc)
("docbook-xsl" ,docbook-xsl)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)))
(inputs
`(("bash-minimal" ,bash-minimal) ;for glib-or-gtk-wrap
,@(if (target-hurd?)
'()
`(("drm" ,libdrm)))
("ghostscript" ,ghostscript)
("libspectre" ,libspectre)
,@(if (target-hurd?)
'()
`(("poppler" ,poppler)))))
(propagated-inputs
`( ;; ("cogl" ,cogl)
;; ("directfb" ,directfb)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("glib" ,glib)
;; ("gtk+" ,gtk+)
("libpng" ,libpng)
;; ("librsvg" ,librsvg)
;; ("opengl" ,mesa)
("pixman" ,pixman)
("x11" ,libx11)
("xcb" ,libxcb)
("xext" ,libxext)
("xrender" ,libxrender)))
(synopsis "Multi-platform 2D graphics library")
(description "Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X Window System (via
both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.")
(home-page "https://cairographics.org/")
(license
;; This project is dual-licensed.
(list
license:lgpl2.1+
license:mpl1.1))))
(define-public swayfx (define-public swayfx
(package (package
(inherit sway) (inherit sway)
@ -72,7 +155,7 @@ adds extra options and effects to the original Sway, such as blur, rounded
corners, shadows, inactive window dimming, etc.") corners, shadows, inactive window dimming, etc.")
(license license:expat))) (license license:expat)))
(define-public tomlplusplus (define-public tomlplusplus ;; SENT to Guix
(package (package
(name "tomlplusplus") (name "tomlplusplus")
(version "3.4.0") (version "3.4.0")
@ -94,10 +177,10 @@ corners, shadows, inactive window dimming, etc.")
(description "Header-only TOML config file parser and serializer for C++17.") (description "Header-only TOML config file parser and serializer for C++17.")
(license license:expat))) (license license:expat)))
(define-public hwdata (define-public hwdata ;; SENT to Guix
(package (package
(name "hwdata") (name "hwdata")
(version "0.378") ;updated monthly (version "0.380") ;updated monthly
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -106,7 +189,7 @@ corners, shadows, inactive window dimming, etc.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"080mzxv2m65kv414yl6kzndsr4j1ax6smw35k0xw10rbhxpp8b30")))) "1j7lr67ay4nz737cv4y1hiyqdz03zl5c1vdavr7fd05h92sv91i2"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list pkg-config)) (list pkg-config))
@ -137,7 +220,7 @@ Each database is contained in a specific package output, such as the
(license (list license:gpl2+ (license (list license:gpl2+
license:expat)))) ;XFree86 1.0 license:expat)))) ;XFree86 1.0
(define-public libinput-1.25 (define-public libinput-1.25 ;; SENT to Guix
;; Updating this will rebuild over 700 packages through libinput-minimal. ;; Updating this will rebuild over 700 packages through libinput-minimal.
(package (package
(name "libinput") (name "libinput")
@ -184,7 +267,7 @@ Each database is contained in a specific package output, such as the
other applications that need to directly deal with input devices.") other applications that need to directly deal with input devices.")
(license license:x11))) (license license:x11)))
(define-public libdrm-2.4.120 (define-public libdrm-2.4.120 ;; SENT to Guix
(package (package
(name "libdrm") (name "libdrm")
(version "2.4.120") (version "2.4.120")
@ -256,83 +339,176 @@ way. Users create \"virtual planes\" called layers, set KMS properties on them,
and libliftoff will pick hardware planes for these layers if possible.") and libliftoff will pick hardware planes for these layers if possible.")
(license license:expat))) (license license:expat)))
(define-public wlroots-0.17.1 (define-public wayland-protocols ;; SENT to Guix
(package (package
(name "wlroots") (name "wayland-protocols")
(version "0.17.1") (version "1.33")
(source (source (origin
(origin (method url-fetch)
(method git-fetch) (uri (string-append "https://gitlab.freedesktop.org/wayland/"
(uri (git-reference name "/-/releases/" version "/downloads/"
(url "https://gitlab.freedesktop.org/wlroots/wlroots") name "-" version ".tar.xz"))
(commit version))) (sha256
(file-name (git-file-name name version)) (base32
(sha256 "0flnqfc8npzn6rxsw4afpr8yifwsn5kq81327yh62vhd145wbw4l"))))
(base32
"1hj4gq5vx8in65622yvjm8bwqkw2vpc556k9my997a0hn0ricj37"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments
`(#:configure-flags
'("-Dauto_features=enabled")
#: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
ffmpeg-4
glslang
libxkbcommon
mesa
pixman
libcap
libdisplay-info
libinput-1.25
libliftoff
libpng
libseat
libxkbcommon
mesa
vulkan-loader
wayland
wayland-protocols
xcb-util-errors
xcb-util-renderutil
xcb-util-wm
xorg-server-xwayland))
(inputs (inputs
(list libdrm-2.4.120)) (list wayland))
(native-inputs (native-inputs (cons* pkg-config python
(cons* (if (%current-target-system)
`(,hwdata "pnp") (list pkg-config-for-build
cmake wayland) ; for wayland-scanner
hwdata '())))
mesa-headers (synopsis "Wayland protocols")
vulkan-headers (description "Wayland-Protocols contains Wayland protocols that add
pkg-config functionality not available in the Wayland core protocol. Such protocols either
wayland add completely new functionality, or extend the functionality of some other
(if (%current-target-system) protocol either in Wayland core, or some other protocol in wayland-protocols.")
(list pkg-config-for-build) (home-page "https://wayland.freedesktop.org")
'()))) (properties
(home-page "https://gitlab.freedesktop.org/wlroots/wlroots/") '((release-monitoring-url
(synopsis "Pluggable, composable, unopinionated modules for building a . "https://wayland.freedesktop.org/releases.html")))
(license license:expat)))
(define-public wlroots-0.17.2
(package
(name "wlroots")
(version "0.17.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
"0y6rrl17as5wb27v66xfgdp0pfwvikqacdlhfc8ib74m9k56mzrr"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
'("-Dauto_features=enabled")
#: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
ffmpeg-4
glslang
libxkbcommon
mesa
pixman
libcap
libdisplay-info
libinput-1.25
libliftoff
libpng
libseat
libxkbcommon
mesa
vulkan-loader
wayland
wayland-protocols
xcb-util-errors
xcb-util-renderutil
xcb-util-wm
xorg-server-xwayland))
(inputs
(list libdrm-2.4.120))
(native-inputs
(cons*
`(,hwdata "pnp")
cmake
hwdata
mesa-headers
vulkan-headers
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") Wayland compositor")
(description "wlroots is a set of pluggable, composable, unopinionated (description "wlroots is a set of pluggable, composable, unopinionated
modules for building a Wayland compositor.") modules for building a Wayland compositor.")
(license license:expat))) ; MIT license (license license:expat)))
(define-public wlroots-hyprland
(package
(name "wlroots")
(version "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b")
(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
"0bwpppb86nfjg2lw62y449f9iz2v8djqb8n6g1cn45vqnwj8hxf1"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
'("-Dauto_features=enabled")))
(propagated-inputs
(list ;; As required by wlroots.pc.
eudev
ffmpeg-4
glslang
libxkbcommon
mesa
pixman
libcap
libdisplay-info
libinput-1.25
libliftoff
libpng
libseat
libxkbcommon
mesa
vulkan-loader
wayland
wayland-protocols
xcb-util-errors
xcb-util-renderutil
xcb-util-wm
xorg-server-xwayland))
(inputs
(list libdrm-2.4.120))
(native-inputs
(cons*
`(,hwdata "pnp")
cmake
hwdata
mesa-headers
vulkan-headers
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 (define-public hyprland-protocols
(package (package
@ -404,10 +580,62 @@ Wayland compositor based on wlroots") (description "Hyprland.")
(description "EDID and DisplayID library") (description "EDID and DisplayID library")
(license license:expat))) (license license:expat)))
(define-public hyprlang
(package
(name "hyprlang")
(version "0.5.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hyprwm/hyprlang")
(commit (string-append "v" version))))
(sha256
(base32
"0f8mahg6d6wylybvh6hgayls57miwwv4w69fbaskd8d7dkg2h7kd"))))
(build-system cmake-build-system)
(native-inputs
(list gcc-13))
(home-page "https://www.hyprland.org")
(synopsis "The official implementation library for the hypr config language.")
(description "The hypr configuration language is an extremely efficient, yet easy to work with, configuration language for linux applications.")
(license license:bsd-3)))
(define-public hyprcursor
(package
(name "hyprcursor")
(version "0.1.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hyprwm/hyprcursor")
(commit (string-append "v" version))))
(sha256
(base32
"0bp0y825g9aakh1k2n32n6g7mx40rbn1cay46kqibyvdmvskm4lv"))))
(build-system cmake-build-system)
(native-inputs
(list gcc-13
pkg-config))
(inputs
(list hyprlang
cairo
librsvg
libzip))
(arguments
'(#:phases
(modify-phases %standard-phases
(delete 'check))))
(home-page "https://www.hyprland.org")
(synopsis "The hyprland cursor format, library and utilities.")
(description "The hyprland cursor format, library and utilities.")
(license license:bsd-3)))
(define-public hyprland (define-public hyprland
(package (package
(name "hyprland") (name "hyprland")
(version "0.34.0") (version "0.37.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -417,7 +645,7 @@ Wayland compositor based on wlroots") (description "Hyprland.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0jsqfg8yk2b1z52fmqw1jjn6b8qkfh5x0xk1j0zx7ng4il2f6ajr")) "1qkiyfcb3y61kwc1gqdsav87299ji7xr5j6zbh8wgam720mgivav"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
#~(begin #~(begin
@ -434,11 +662,11 @@ Wayland compositor based on wlroots") (description "Hyprland.")
(arguments (arguments
'(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure (add-before 'configure
'pre-configure 'pre-configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(system "patch -p1 -i nix/patches/meson-build.patch") (system "patch -p1 -i nix/patches/meson-build.patch")
(system "cat src/meson.build")))))) (system "cat src/meson.build"))))))
(native-inputs (native-inputs
(list gcc-13 (list gcc-13
cmake cmake
@ -454,6 +682,8 @@ Wayland compositor based on wlroots") (description "Hyprland.")
glu glu
glfw glfw
hyprland-protocols hyprland-protocols
hyprcursor
hyprlang
libdisplay-info libdisplay-info
libglvnd libglvnd
libinput-1.25 libinput-1.25
@ -467,10 +697,10 @@ Wayland compositor based on wlroots") (description "Hyprland.")
pciutils pciutils
udis86 udis86
wayland wayland
wlroots-0.17.1 wlroots-hyprland
xcb-util)) xcb-util))
(home-page "https://www.hyprland.org") (home-page "https://www.hyprland.org")
(synopsis "Dynamic tiling (synopsis "Dynamic tiling
Wayland compositor based on wlroots") Wayland compositor based on wlroots")
(description "Hyprland.") (description "Hyprland.")
(license license:bsd-3))) (license license:bsd-3)))