fix caddy, add uki, update pipewire, update xdg-desktop-portal-hyprland

This commit is contained in:
Freya Murphy 2024-08-08 23:22:53 -04:00
parent 156490a98a
commit db77903bf6
Signed by: freya
GPG key ID: 744AB800E383AE52
11 changed files with 465 additions and 948 deletions

View file

@ -3,7 +3,7 @@
(url "https://git.savannah.gnu.org/git/guix.git")
(branch "master")
(commit
"e3f87960915e3ef0b1d6a5a15281b3d4e9ee4d38")
"5e567587dd4abf51f9a6fa44f5a852dde1115ce9")
(introduction
(make-channel-introduction
"9edb3f66fd807b096b48283debdcddccfea34bad"
@ -14,7 +14,7 @@
(url "https://gitlab.com/nonguix/nonguix")
(branch "master")
(commit
"877ed8cc4eee26ddde3d7d200c19c370c6bf7cb1")
"1b0594dc534d834be6f3facec98dee13db2a2299")
(introduction
(make-channel-introduction
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"

View file

@ -3,6 +3,7 @@
waybar --config $HOME/.config/waybar/config.hypr &
nm-applet --indicator &
mako &
gnome-keyring-daemon --foreground &
wl-clip-persist --clipboard both &

View file

@ -0,0 +1,116 @@
(define-module (freya bootloader uki)
#:use-module (gnu bootloader)
#:use-module (freya packages bootloaders)
#:use-module (gnu packages bootloaders)
#:use-module (gnu packages efi)
#:use-module (gnu packages linux)
#:use-module (guix gexp)
#:use-module (guix modules)
#:use-module (srfi srfi-1)
#:export (uefi-uki-bootloader uefi-uki-signed-bootloader))
;; config generator makes script creating uki images
;; install runs script
;; install device is path to uefi dir
(define vendor "Guix")
(define script-loc "/boot/install-uki.scm")
(define* (uefi-uki-configuration-file #:optional cert privkey)
(lambda* (config entries #:key (old-entries '()) #:allow-other-keys)
(define (menu-entry->args e)
(let* ((boot (bootloader-configuration-bootloader config))
(stub (bootloader-package boot)))
#~(list "--os-release" #$(menu-entry-label e)
"--linux" #$(menu-entry-linux e) "--initrd" #$(menu-entry-initrd e)
"--cmdline" (string-join (list #$@(menu-entry-linux-arguments e)))
"--stub" #$(file-append stub "/libexec/" (systemd-stub-name))
#$@(if cert #~("--secureboot-certificate" #$cert) #~())
#$@(if privkey #~("--secureboot-private-key" #$privkey) #~()))))
(define (enum-filenames . args) ; same args as iota
(map (lambda (n) (string-append (number->string n) ".efi"))
(apply iota (map length args))))
(program-file "install-uki"
(with-imported-modules (source-module-closure '((guix build syscalls)
(guix build utils)))
#~(let* ((target (cadr (command-line)))
(vendir (string-append target "/EFI/" #$vendor))
(schema (string-append vendir "/boot.mgr"))
(findmnt #$(file-append util-linux "/bin/findmnt"))
(efibootmgr #$(file-append efibootmgr "/sbin/efibootmgr")))
(use-modules (guix build syscalls) (guix build utils)
(ice-9 popen) (ice-9 textual-ports))
(define (out name) (string-append vendir "/" name))
(define fulldisk
(call-with-port
(open-pipe* OPEN_READ findmnt "-fnro" "SOURCE" "-T" target)
(lambda (port) (get-line port)))) ; only 1 line: the device
(define disk
(substring fulldisk 0 (- (string-length fulldisk) 1)))
(define part
(substring fulldisk (- (string-length fulldisk) 1)))
;; delete all boot entries and files we control
(when (file-exists? schema)
(call-with-input-file schema
(lambda (port)
(for-each (lambda (l)
(unless (string-null? l)
(system* efibootmgr "-B" "-L" l "-q")))
(string-split (get-string-all port) #\lf)))))
(when (directory-exists? vendir) (delete-file-recursively vendir))
(mkdir-p vendir)
(define (install port boot? oos)
(lambda (args label name)
(let ((minbytes (* 2 (stat:size (stat #$script-loc)))))
(put-string port label)
(put-char port #\lf)
(force-output port) ; make sure space is alloc'd
(apply invoke #$(file-append ukify "/bin/ukify")
"build" "-o" (out name) args)
;; make sure we have enough space for next install-uki.scm
(when (and oos (< (free-disk-space vendir) minbytes)) (oos))
(invoke efibootmgr (if boot? "-c" "-C") "-L" label "--disk" disk "--part" part
"--loader" (string-append "\\EFI\\" #$vendor "\\" name) "-q"))))
(call-with-output-file schema
(lambda (port) ; prioritize latest UKIs in limited ESP space
(for-each (install port #t #f)
(list #$@(map-in-order menu-entry->args entries))
(list #$@(map-in-order menu-entry-label entries))
(list #$@(enum-filenames entries)))
(for-each ; old-entries can fail (out of space) we don't care
(lambda (args label name)
(define (cleanup . _) ; do exit early if out of space tho
(when (file-exists? (out name)) (delete-file (out name)))
(exit))
(with-exception-handler cleanup
(lambda _ ((install port #f cleanup) args label name))))
(list #$@(map-in-order menu-entry->args old-entries))
(list #$@(map-in-order menu-entry-label old-entries))
(list #$@(enum-filenames old-entries entries))))))))))
(define install-uefi-uki
#~(lambda (bootloader target mount-point)
(invoke (string-append mount-point #$script-loc)
(string-append mount-point target))))
(define* (make-uefi-uki-bootloader #:optional cert privkey)
(bootloader
(name 'uefi-uki)
(package systemd-stub)
(installer install-uefi-uki)
(disk-image-installer #f)
(configuration-file script-loc)
(configuration-file-generator (uefi-uki-configuration-file cert privkey))))
;; IMPORTANT NOTE: if bootloader install fails, do not turn off your computer! until
;; install succeeds, your system is unbootable.
(define uefi-uki-bootloader (make-uefi-uki-bootloader))
;; use ukify genkey to generate cert and privkey. DO NOT include in store.
(define (uefi-uki-signed-bootloader cert privkey)
(make-uefi-uki-bootloader cert privkey))

View file

@ -0,0 +1,108 @@
(define-module (freya packages bootloaders)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages efi)
#:use-module (gnu packages base)
#:use-module (gnu packages linux)
#:use-module (gnu packages gperf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages pkg-config)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix modules)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python))
(define systemd-version "255")
(define systemd-source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/systemd/systemd")
(commit (string-append "v" systemd-version))))
(file-name (git-file-name "systemd" systemd-version))
(sha256
(base32
"1qdyw9g3jgvsbc1aryr11gpc3075w5pg00mqv4pyf3hwixxkwaq6"))))
(define-public (systemd-stub-name)
(let ((arch (cond ((target-x86-32?) "ia32")
((target-x86-64?) "x64")
((target-arm32?) "arm")
((target-aarch64?) "aa64")
((target-riscv64?) "riscv64"))))
(string-append "linux" arch ".efi.stub")))
(define-public systemd-stub
(package
(name "systemd-stub")
(version systemd-version)
(source systemd-source)
(build-system meson-build-system)
(arguments
(list
#:configure-flags
`(list "-Defi=true" "-Dsbat-distro=guix"
"-Dsbat-distro-generation=1" ; package revision!
"-Dsbat-distro-summary=Guix System"
"-Dsbat-distro-url=https://guix.gnu.org"
,(string-append "-Dsbat-distro-pkgname=" name)
,(string-append "-Dsbat-distro-version=" version))
#:phases
#~(let ((stub #$(string-append "src/boot/efi/" (systemd-stub-name))))
(modify-phases %standard-phases
(replace 'build
(lambda* (#:key parallel-build? #:allow-other-keys)
(invoke "ninja" stub
"-j" (if parallel-build?
(number->string (parallel-job-count)) "1"))))
(replace 'install
(lambda _
(install-file stub (string-append #$output "/libexec"))))
(delete 'check)))))
(inputs (list libcap python-pyelftools `(,util-linux "lib")))
(native-inputs (list gperf pkg-config python-3 python-jinja2))
(home-page "https://systemd.io")
(synopsis "Unified kernel image UEFI stub")
(description "Simple UEFi boot stub that loads a conjoined kernel image and
supporting data to their proper locations, before chainloading to the kernel.
Supports measured and/or verified boot environments.")
(license license:lgpl2.1+)))
(define-public ukify
(package
(name "ukify")
(version systemd-version)
(source systemd-source)
(build-system python-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(replace 'build
(lambda _
(substitute* "src/ukify/ukify.py" ; added in python 3.11
(("datetime\\.UTC") "datetime.timezone.utc"))))
(delete 'check)
(replace 'install
(lambda* (#:key inputs #:allow-other-keys)
(let* ((bin (string-append #$output "/bin"))
(file (string-append bin "/ukify"))
(binutils (assoc-ref inputs "binutils"))
(sbsign (assoc-ref inputs "sbsigntools")))
(mkdir-p bin)
(copy-file "src/ukify/ukify.py" file)
(wrap-program file
`("PATH" ":" prefix
(,(string-append binutils "/bin")
,(string-append sbsign "/bin"))))))))))
(inputs (list binutils python-cryptography python-pefile sbsigntools))
(home-page "https://systemd.io")
(synopsis "Unified kernel image UEFI tool")
(description "@command{ukify} joins together a UKI stub, linux kernel, initrd,
kernel arguments, and optional secure boot signatures into a single, UEFI-bootable
image.")
(license license:lgpl2.1+)))

View file

@ -1,833 +1,61 @@
(define-module (freya packages golang)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (gnu packages base)
#:use-module (gnu packages version-control)
#:use-module (gnu packages package-management)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (gnu packages golang)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix build-system go)
#:use-module (guix build-system trivial)
#:use-module (guix build utils)
#:use-module (guix utils))
#:use-module (gnu packages)
#:use-module (gnu packages golang))
(define (go-package name version url hash path inputs)
(define-public go-github-com-caddy-certmagic
(package
(name name)
(version version)
(name "certmagic")
(version "0.19.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url url)
(url "https://github.com/caddyserver/certmagic")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
hash))))
(build-system go-build-system)
(propagated-inputs inputs)
(arguments
`(#:go ,go-1.20
#:import-path ,path
#:phases %standard-phases
#:install-source? #t
#:tests? #f))
(synopsis (string-append name " go package"))
(description (string-append name " go package"))
(home-page url)
(license license:expat)))
(define (go-version-go-package name version url hash path inputs)
(package
(inherit (go-package name version url hash path inputs))
(source (origin
(method git-fetch)
(uri (git-reference
(url url)
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32
hash))))))
(define (commit-go-package name comm url hash path inputs)
(package
(inherit (go-package name comm url hash path inputs))
(source (origin
(method git-fetch)
(uri (git-reference
(url url)
(commit comm)))
(file-name (git-file-name name comm))
(sha256
(base32
hash))))))
(define (source-only gopackage)
(package
(inherit gopackage)
(arguments
(substitute-keyword-arguments (package-arguments gopackage)
((#:phases phases)
#~(modify-phases #$phases
(delete 'build)))))))
(define (set-go gopackage gover)
(package
(inherit gopackage)
(arguments
(substitute-keyword-arguments (package-arguments gopackage)
((#:go _) gover)))))
(define (set-unpack gopackage unpack)
(package
(inherit gopackage)
(arguments
(substitute-keyword-arguments (package-arguments gopackage)
((#:unpack-path _) unpack)))))
(define (set-inputs gopackage inputs)
(package
(inherit gopackage)
(native-inputs inputs)))
(define go-github-com-matttproud-golang-protobuf-extensions
(source-only (go-package
"go-github-com-matttproud-golang-protobuf-extensions"
"2.0.0"
"https://github.com/matttproud/golang_protobuf_extensions"
"0jw4vjycwx0a82yvixmp25805krdyqd960y8lnyggllb6br0vh41"
"github.com/matttproud/golang_protobuf_extensions"
(list))))
(define go-github-com-beorn7-perks
(source-only (go-package
"go-github-com-beorn7-perks"
"1.0.1"
"https://github.com/beorn7/perks"
"17n4yygjxa6p499dj3yaqzfww2g7528165cl13haj97hlx94dgl7"
"github.com/beorn7/perks"
(list))))
(define go-github-com-golang-protobuf
(source-only (go-package
"go-github-com-golang-protobuf" ; name
"1.5.3" ; version
"https://github.com/golang/protobuf" ; url
"03f1w2cd4s8a3xhl61x7yjx81kbzlrjpvnnwmbhqnz814yi7h43i" ; hash
"github.com/golang/protobuf" ; path
(list)))) ; inputs
(define go-go-uber-org-multierr
(go-package
"go-go-uber-org-multierr"
"1.11.0"
"https://github.com/uber-go/multierr"
"1s6skad93nbsq4b0sy5dsgacrdh2kzg0p8wjlhvff49vasqsi3qx"
"go.uber.org/multierr"
(list)))
(define go-go-uber-org-zap
(go-package
"go-go-uber-org-zap"
"1.26.0"
"https://github.com/uber-go/zap"
"1aw7zba4f06835vm6l6j1y1jaz2p92gi2nv52hfn1a62gixj8nq4"
"go.uber.org/zap"
(list go-go-uber-org-multierr)))
(define go-github-com-cespare-xxhash
(go-package
"go-github-com-cespare-xxhash"
"2.2.0"
"https://github.com/cespare/xxhash"
"055xvgyv78xl6bdj8kgy0105n9cq33w4rb0sg84lp9r85i9qx2l5"
"github.com/cespare/xxhash"
(list)))
(define go-golang-org-x-exp
(source-only (go-version-go-package
"go-golang-org-x-exp" ; name
"v0.0.0-20230310171629-522b1b587ee0" ; version
"https://go.googlesource.com/exp" ; url
"054hbk826n3kprk75m19ik89mnicbshq6kdiwd60xxfczdjf88rn" ; hash
"golang.org/x/exp" ; path
(list)))) ; inputs
(define go-golang-org-x-sync
(source-only (go-package
"go-golang-org-x-text" ; namie
"0.3.0" ; version
"https://go.googlesource.com/sync" ; url
"0jmkqah45db9nz6yjdd8vvanpjfzb5lsv6bxf0d1dih4zhp4l8kc" ; hash
"golang.org/x/sync" ; path
(list)))) ; inputs
(define go-golang-org-x-text
(source-only (go-package
"go-golang-org-x-text" ; namie
"0.11.0" ; version
"https://go.googlesource.com/text" ; url
"1a0d6f9qqzd9njd8xb59mjrfv5jrz8130crcxbqaiy7lk434nq1k" ; hash
"golang.org/x/text" ; path
(list)))) ; inputs
(define go-golang-org-x-term
(source-only (go-package
"go-golang-org-x-term" ; namie
"0.10.0" ; version
"https://go.googlesource.com/term" ; url
"19abybnsqix924d9ak4p93bgq1312zp1yk11bilrrmsjplhbrzqf" ; hash
"golang.org/x/term" ; path
(list)))) ; inputs
(define go-golang-org-x-net
(source-only (go-package
"go-golang-org-x-net" ; name
"0.14.0" ; version
"https://go.googlesource.com/net" ; url
"0pk9pfd5n5hlg5zx1ab3gfzi6lfcs41dfds6fyn661g5xs00l9s1" ; hash
"golang.org/x/net" ; path
(list)))) ; inputs
(define go-golang-org-x-crypto
(source-only (go-package
"go-golang-org-x-crypto" ; name
"0.12.0" ; version
"https://go.googlesource.com/crypto" ; url
"00cg67w0n01a64fc4kqg5j7r47fx5y9vyqlanwb60513dv6lzacs" ; hash
"golang.org/x/crypto" ; path
(list)))) ; inputs
(define go-golang-org-x-sys
(source-only (go-package
"go-golang-org-x-sys" ; name
"0.11.0" ; version
"https://go.googlesource.com/sys" ; url
"1pp0479l9w92kr6p97d19s8y0hj16gblg4hvdqqzcrf3d9mr4cs3" ; hash
"golang.org/x/sys" ; path
(list)))) ; inputs
(define go-github-com-quic-go-qtls-go1-20
(go-package
"go-github-com-quic-go-qtls-go1-20" ; name
"0.3.4" ; version
"https://github.com/quic-go/qtls-go1-20" ; url
"0fl3yv1w8cygag3lav45vvzb4k9i72p92x13wcq0xn13wxirzirn" ; hash
"github.com/quic-go/qtls-go1-20" ; path
(list go-golang-org-x-crypto ; inputs
go-golang-org-x-sys)))
(define go-github-com-google-go-cmp
(source-only (go-package
"go-github-com-google-go-cmp"
"0.5.9"
"https://github.com/google/go-cmp"
"0a13m7l1jrysa7mrlmra8y7n83zcnb23yjyg3a609p8i9lxkh1wm"
"github.com/google/go-cmp/go"
(list))))
(define go-github-com-hashicorp-go-uuid
(go-package
"go-github-com-hashicorp-go-uuid"
"1.0.3"
"https://github.com/hashicorp/go-uuid"
"0wd4maaq20alxwcvfhr52rzfnwwpmc2a698ihyr0vfns2sl7gkzk"
"github.com/hashicorp/go-uuid"
(list)))
(define go-github-com-google-uuid
(go-package
"go-github-com-google-uuid"
"1.3.1"
"https://github.com/google/uuid"
"1pd1lkl50prswl91dpwml66s2ildjqipnsqi9a7m25lv3l008417"
"github.com/google/uuid"
(list)))
(define go-github-com-marten-seemann-qtls-go1-19
(set-go (go-package
"go-github-com-marten-seemann-qtls-go1-19"
"0.3.3"
"https://github.com/quic-go/qtls-go1-19"
"07i56533033cd0kn67fvyyvwbmfwfdk3y5x5wl4y00zplyhhys9q"
"github.com/marten-seemann/qtls-go1-19"
(list go-golang-org-x-sys
go-golang-org-x-crypto))
go-1.19))
(define go-github-com-lucas-clemente-quic-go
(set-go (go-package
"go-github-com-lucas-clemente-quic-go"
"0.31.1"
"https://github.com/quic-go/quic-go"
"1vn72wlcyb4j2lw3pfqfvhb3pz7r61j3sddj4r1sf32vc3csis97"
"github.com/lucas-clemente/quic-go"
(list go-golang-org-x-crypto
go-golang-org-x-net
go-golang-org-x-exp
go-golang-org-x-sys
go-github-com-marten-seemann-qtls-go1-19))
go-1.19))
(define go-github-com-quic-go-quic-go
(go-package
"go-github-com-quic-go-quic-go" ; name
"0.39.0" ; version
"https://github.com/quic-go/quic-go" ; url
"0jiwh97xpvswrbq5glnafc2jc3ybpl17ffa0cg9x3f03raa2q8vg" ; hash
"github.com/quic-go/quic-go" ; path
(list go-golang-org-x-crypto ; inputs
go-golang-org-x-exp
go-golang-org-x-net
go-golang-org-x-sys
go-github-com-quic-go-qtls-go1-20)))
(define go-github-com-prometheus-procfs
(go-package
"go-github-com-prometheus-procfs" ; name
"0.8.0" ; version
"https://github.com/prometheus/procfs" ; url
"0k2d27pm6q6im42x8ikwz0d4sb31wn6rvfs9wlf51d9gldncmpqz" ; hash
"github.com/prometheus/procfs" ; path
(list go-golang-org-x-sys))) ; inputs
(define go-github-com-prometheus-client-model
(source-only (go-package
"go-github-com-prometheus-client-model" ; name
"0.4.0" ; version
"https://github.com/prometheus/client_model" ; url
"0w3hxsc0qmb5vdm8lyhsvkm0g9yk81vrpcyf31haysvid8yjrzg0" ; hash
"github.com/prometheus/client_model" ; path
(list go-github-com-golang-protobuf)))) ; inputs
(define go-github-com-prometheus-common
(source-only (go-package
"go-github-com-prometheus-common" ; name
"0.37.0" ; version
"https://github.com/prometheus/common" ; url
"161ayg76ag1h21kaf0qycpy7cizvy3xrm0dn598hj91n44v4z0hf" ; hash
"github.com/prometheus/common" ; path
(list go-github-com-golang-protobuf ; inputs
go-github-com-matttproud-golang-protobuf-extensions
go-github-com-prometheus-client-model))))
(define go-github-com-prometheus-client-golang
(source-only (go-package
"go-github-com-prometheus-client-golang" ; name
"1.14.0" ; version
"https://github.com/prometheus/client_golang" ; url
"041br6n309bajwdv871f69fwy1yq3vk46rmzxnkr1ldpq1bhd63n" ; hash
"github.com/prometheus/client_golang" ; path
(list go-github-com-prometheus-client-model ; inputs
go-github-com-prometheus-procfs
go-github-com-prometheus-common))))
(define go-github-com-klauspost-cpuid-v2
(go-package
"go-github-com-klauspost-cpuid-v2" ; name
"2.2.5" ; version
"https://github.com/klauspost/cpuid" ; url
"127jlppxs226lnq499rjnjyzgmp849xlxhq7380w2ypdkhvafni1" ; hash
"github.com/klauspost/cpuid/v2" ; path
(list))) ; inputs
(define go-github-com-libdns-libdns
(go-package
"go-github-com-libdns-libdns" ; name
"0.2.1" ; version
"https://github.com/libdns/libdns" ; url
"1ix668h4n2n9iph4xiznzdfw7hy0ijy906mvnys4kq9f0v9ih4bg" ; hash
"github.com/libdns/libdns" ; path
(list))) ; inputs
(define go-github-com-mholt-acmez
(go-package
"go-github-com-mholt-acmez" ; name
"1.2.0" ; version
"https://github.com/mholt/acmez" ; url
"1wzkgbgnp23vbcz4nc3c8x7vi1lkqp36485f7g05zbshc7hzby6d" ; hash
"github.com/mholt/acmez" ; path
(list go-go-uber-org-zap ; inputs
go-golang-org-x-crypto
go-golang-org-x-text
go-golang-org-x-net)))
(define go-github-com-miekg-dns
(go-package
"go-github-com-miekg-dns" ; name
"1.1.50" ; version
"https://github.com/miekg/dns" ; url
"1svvx9qamy3hy0ms8iwbisqjmfkbza0zljmds6091siq150ggmws" ; hash
"github.com/miekg/dns" ; path
(list go-golang-org-x-net ; inputs
go-golang-org-x-sys)))
(define go-github-com-zeebo-blake3
(go-package
"go-github-com-zeebo-blake3" ; name
"0.2.3" ; version
"https://github.com/zeebo/blake3" ; url
"1pkk97d1jwfcg3hs9g09zbwn31l96icx1vk4d9l2rhcvfw0aw0fc" ; hash
"github.com/zeebo/blake3" ; path
(list go-github-com-klauspost-cpuid-v2))) ; inputs
(define go-github-com-caddy-certmagic
(go-package
"go-github-com-caddy-certmagic" ; name
"0.19.2" ; version
"https://github.com/caddyserver/certmagic" ; url
"07a1xiynbbaqm7qzg0q1xhvab99x8mvzr2rw68npxws4dshgdv5f" ; hash
"github.com/caddyserver/certmagic" ; path
(list go-github-com-klauspost-cpuid-v2 ; inputs
go-github-com-libdns-libdns
go-go-uber-org-zap
go-golang-org-x-crypto
go-github-com-mholt-acmez
go-github-com-zeebo-blake3
go-github-com-miekg-dns
go-golang-org-x-sys
go-golang-org-x-net
go-golang-org-x-text)))
(define go-github-com-quic-go-qpack
(go-package
"go-github-com-quic-go-qpack" ; name
"0.4.0" ; version
"https://github.com/quic-go/qpack" ; url
"00mjz445hhx4yar5l8p21bpp4d06jyg2ajw0ax7bh64d37l4kx39" ; hash
"github.com/quic-go/qpack" ; path
(list go-golang-org-x-net))) ; inputs
(define go-google-golang-org-protobuf
(source-only (go-package
"go-google-golang-org-protobuf" ; name
"1.31.0" ; version
"https://go.googlesource.com/protobuf" ; url
"1xf18kzz96hgfy1vlbnydrizzpxkqj2iamfdbj3dx5a1zz5mi8n0" ; hash
"google.golang.org/protobuf" ; path
(list go-github-com-google-go-cmp ; inputs
go-github-com-golang-protobuf))))
(define go-github-com-google-cel-go
(source-only (go-package
"go-github-com-google-cel-go"
"0.18.1"
"https://github.com/google/cel-go"
"07jp5n266jyk74zaj1n1g15apn2nw1lr6v5zmi13fhir91k6sybr"
"github.com/google/cel-go"
(list))))
(define go-github-com-klauspost-compress
(go-package
"go-github-com-klauspost-compress"
"1.17.0"
"https://github.com/klauspost/compress"
"1fjch04mz11lyikzw1xmm541wc5fkvxk18a9wgzxvdvszs84xfjn"
"github.com/klauspost/compress"
(list)))
(define go-github-com-rs-xid
(go-package
"go-github-com-rs-xid"
"1.2.1"
"https://github.com/rs/xid"
"1vgw1dikqw273awcci6pzifs7shkl5ah4l88j1zjbnpgbiwzlx9j"
"github.com/rs/xid"
(list)))
(define go-github-com-micromdm-scep
(source-only (go-package
"go-github-com-micromdm-scep"
"2.1.0"
"https://github.com/micromdm/scep"
"1a3knshfmh8lniz098ir0rl7ixb2a0zwvdlwy22a6q8fsicfk40q"
"github.com/micromdm/scep"
(list))))
(define go-github-com-smallstep-certificates
(source-only (go-package
"go-github-com-smallstep-certificates"
"0.25.0"
"https://github.com/smallstep/certificates"
"1f7ignpnsj5q1qfdn040hjh9gzix4bg88wspjzx0qms9s9c42n1g"
"github.com/smallstep/certificates"
(list go-github-com-rs-xid
go-github-com-micromdm-scep))))
(define go-github-com-smallstep-truststore
(source-only (go-package
"go-github-com-smallstep-truststore"
"0.12.1"
"https://github.com/smallstep/truststore"
"06a73r4h69q3626x14xcc4rkiparyvhwbn19g22y2r9pgvxirfi9"
"github.com/smallstep/truststore"
(list))))
(define gopkg-in-square-go-jose-v2
(go-package
"gopkg-in-square-go-jose-v2"
"2.6.0"
"https://github.com/square/go-jose"
"1b1nhqxfmhzwrfk7pkvp2w3z3d0pf5ir00vizmy2d4xdbnldn70r"
"gopkg.in/square/go-jose.v2"
(list go-golang-org-x-crypto)))
(define go-filippo-io-edwards25519
(go-package
"go-filippo-io-edwards25519"
"1.0.0"
"https://github.com/FiloSottile/edwards25519"
"01m8hpaj0cwp250f7b0din09cf8j6j5y631grx67qfhvfrmwr1zr"
"filippo.io/edwards25519"
(list)))
(define go-github-com-masterminds-goutils
(go-package
"go-github-com-masterminds-goutils"
"1.1.1"
"https://github.com/Masterminds/goutils"
"09m4mbcdlv9ng3xcrmjlxi0niavby52y9nl2jhjnbx1xxpjw0jrh"
"github.com/Masterminds/goutils"
(list)))
(define go-github-com-shopspring-decimal
(go-package
"go-github-com-shopspring-decimal"
"1.3.1"
"https://github.com/shopspring/decimal"
"1w1wjv2aqyqp22s8gc2nxp8gk4h0dxvp15xsn5lblghaqjcd239h"
"github.com/shopspring/decimal"
(list)))
(define go-github-com-imdario-mergo
(go-package
"go-github-com-imdario-mergo"
"1.0.0"
"https://github.com/imdario/mergo"
"037k2bd97vnbyhn2sczxk0j6ijmv06n1282f76i3ky73s3qmqnlf"
"github.com/imdario/mergo"
(list)))
(define go-github-com-huandu-xstrings
(go-package
"go-github-com-huandu-xstrings"
"1.4.0"
"https://github.com/huandu/xstrings"
"0y6afn5yp5pw1gjc4a6gxxkj753w2aaw46nwbi7scnqdqlb2l3cp"
"github.com/huandu/xstrings"
(list)))
(define go-github-com-mitchellh-reflectwalk
(go-package
"go-github-com-mitchellh-reflectwalk"
"1.0.2"
"https://github.com/mitchellh/reflectwalk"
"1nxgb4gskzv045539vb312n0a443308dvh1akz7vi6x1l0z46zsm"
"github.com/mitchellh/reflectwalk"
(list)))
(define go-github-com-mitchellh-copystructure
(go-package
"go-github-com-mitchellh-copystructure"
"1.2.0"
"https://github.com/mitchellh/copystructure"
"1izw243b3r03nvgnnxvk706l3s3v3q7k69kq3n4asnzjkcymq7sm"
"github.com/mitchellh/copystructure"
(list go-github-com-mitchellh-reflectwalk)))
(define go-github-com-spf13-cast
(go-package
"go-github-com-spf13-cast"
"1.5.1"
"https://github.com/spf13/cast"
"05ahl8kicdhz95rxraavqsfsb8bvj03abpk8zclypy1gchc0vm7y"
"github.com/spf13/cast"
(list)))
(define go-github-com-masterminds-semver
(go-package
"go-github-com-masterminds-semver"
"3.2.1"
"https://github.com/Masterminds/semver"
"1h4c647dgq6k5q78j3m98ccdrzd7kbcq4ahdy25j72rbxjmci8al"
"github.com/Masterminds/semver"
(list)))
(define go-github-com-masterminds-sprig
(go-package
"go-github-com-masterminds-sprig"
"3.2.2"
"https://github.com/Masterminds/sprig"
"0wfbzhmv971si9gx9c77gz89b9va2y03bhdmds9hzal4i7cccw2x"
"github.com/Masterminds/sprig"
(list go-github-com-masterminds-goutils
go-github-com-masterminds-semver
go-github-com-google-uuid
go-golang-org-x-crypto
go-github-com-shopspring-decimal
go-github-com-huandu-xstrings
go-github-com-imdario-mergo
go-github-com-spf13-cast
go-github-com-mitchellh-copystructure)))
(define go-step-sm-crypto
(source-only (go-package
"go-step-sm-crypto"
"0.35.1"
"https://github.com/smallstep/crypto"
"0fb77246iyxhw91d52ph6b3bl32182xs3cw1fzhs884km9wary8v"
"go.step.sm/crypto"
(list gopkg-in-square-go-jose-v2
go-filippo-io-edwards25519
go-github-com-masterminds-sprig))))
(define go-step-sm-cli-utils
(source-only (go-package
"go-step-sm-cli-utils"
"0.8.0"
"https://github.com/smallstep/cli-utils"
"1239ivvmjvmmy5jkv6n7zg9qpk5wlnsb4prw4k3fx3nycx8nd3pa"
"go.step.sm/cli-utils"
(list))))
(define go-github-com-go-logr-logr
(go-package
"go-github-com-go-logr-logr"
"1.2.4"
"https://github.com/go-logr/logr"
"1ara5lacbzwqw8m6800837jgf5gbcfj6namm0zwzb45xqgfl64c0"
"github.com/go-logr/logr"
(list)))
(define go-github-com-go-logr-stdr
(go-package
"go-github-com-go-logr-stdr"
"1.2.2"
"https://github.com/go-logr/stdr"
"1dl2rzvjacwqlnvw7azrxqbh4jvzaq8v399f6drs146l39ss21c1"
"github.com/go-logr/stdr"
(list go-github-com-go-logr-logr)))
(define go-github-com-grpc-ecosystem-grpc-gateway
(source-only (go-package
"go-github-com-grpc-ecosystem-grpc-gateway"
"2.18.0"
"https://github.com/grpc-ecosystem/grpc-gateway"
"0rkymxrwm4bk2sizawnrmn54jjkiwlzh2mxrsz435lhrzk3zfmhm"
"github.com/grpc-ecosystem/grpc-gateway"
(list))))
(define go-google-golang-org-genproto
(source-only (commit-go-package
"go-google-golang-org-genproto"
"e6e6cdab5c137738d2c1bc9d66183cfbd9f440d1"
"https://github.com/googleapis/go-genproto"
"1c7dm3iwc0k25ynxqnzfqf9mn47fw5sy4sbgm5v4akg1klzkvkpg"
"google.golang.org/genproto"
(list))))
(define go-google-golang-org-grpc
(go-package
"go-google-golang-org-grpc"
"1.58.2"
"https://github.com/grpc/grpc-go"
"1qchzb1kv03mjd5k4j5lcr3arwvlridgfmsdlv9grmnpx7caw8sf"
"google.golang.org/grpc"
(list go-google-golang-org-protobuf
go-golang-org-x-sys
go-golang-org-x-net
go-golang-org-x-text
go-google-golang-org-genproto)))
(define go-opentelemetry-io-proto-otlp
(source-only (set-unpack (go-package
"go-opentelemetry-io-proto-otlp"
"1.0.0"
"https://github.com/open-telemetry/opentelemetry-proto-go"
"0w69grih4qv8pw6ywpa9f675mixrxhqzcqafrp6ibrd7z3mdzfyq"
"go.opentelemetry.io/proto"
(list go-github-com-grpc-ecosystem-grpc-gateway))
"go.opentelemetry.io/proto/otlp")))
(define go-opentelemetry-io-otel
(go-package
"go-opentelemetry-io-otel"
"1.19.0"
"https://github.com/open-telemetry/opentelemetry-go"
"06lmf7pnxp9b5ciy5yv7qwzph8k7w2m48g7p72fl5y3g57lh8v7w"
"go.opentelemetry.io/otel"
(list go-github-com-go-logr-stdr
go-opentelemetry-io-proto-otlp
go-google-golang-org-grpc)))
(define go-github-com-yuin-goldmark
(go-package
"go-github-com-yuin-goldmark"
"1.5.5"
"https://github.com/yuin/goldmark"
"0kziqic2rgnb0fyng9rmlg8akk4bv07qhscy4n6z45f235r1l955"
"github.com/yuin/goldmark"
(list)))
(define go-github-com-dlclark-regexp2
(go-package
"go-github-com-dlclark-regexp2"
"1.10.0"
"https://github.com/dlclark/regexp2"
"137jrvg6w6ivc0qm4zgk3hjf06kfl900m8730hbd5xnhxzyf6717"
"github.com/dlclark/regexp2"
(list)))
(define go-github-com-alecthomas-chroma
(go-package
"go-github-com-alecthomas-chroma"
"2.7.0"
"https://github.com/alecthomas/chroma"
"0i4ck23gn0v7x6r8wa2k7qiwhxpxqqnaknb9iy9rz8pjcj14ai75"
"github.com/alecthomas/chroma/v2"
(list go-github-com-dlclark-regexp2)))
(define go-github-com-yuin-goldmark-highlighting
(set-go (set-inputs (go-version-go-package
"go-github-com-yuin-goldmark-highlighting"
"v2.0.0-20230729083705-37449abec8cc"
"https://github.com/yuin/goldmark-highlighting"
"163jbi8si9qxcabzni39qypj495y48rabkkchc03ay68p19v160y"
"github.com/yuin/goldmark-highlighting/v2"
(list))
(list (set-go (go-package
"go-github-com-yuin-goldmark"
"1.4.15"
"https://github.com/yuin/goldmark"
"0qs08hy288zdr0xpd49rp8h1048s1n7frmzcmb8diqpcv5hvbmgm"
"github.com/yuin/goldmark"
(list))
go-1.14)
(set-go (go-package
"go-github-com-alecthomas-chroma"
"2.2.0"
"https://github.com/alecthomas/chroma"
"0rxsi4kdf363p6ysvxvgndbvcb0a5zgm0iaxkkqllj3m8nfwmzlk"
"github.com/alecthomas/chroma/v2"
(list go-std-1.17 go-github-com-dlclark-regexp2))
go-1.14)))
go-1.14))
(define go-github-com-mitchellh-go-ps
(go-package
"go-github-com-mitchellh-go-ps"
"1.0.0"
"https://github.com/mitchellh/go-ps"
"0ipcbz66x7q8xczi7cyfq06y7n7v0syvkp730vn9jrn7s8f5ag0z"
"github.com/mitchellh/go-ps"
(list)))
(define go-github-com-tailscale-tscert
(commit-go-package
"go-github-com-tailscale-tscert"
"28a91b69a0467442178b62e2cfb9ab272ed3b64c"
"https://github.com/tailscale/tscert"
"0zzpkff4nrknh345nqiaz88hvlc5pynhzyws02f3rlcyjh7kj2sh"
"github.com/tailscale/tscert"
(list go-golang-org-x-sys
go-github-com-mitchellh-go-ps)))
(define go-opentelemetry-io-contrib
(go-package
"go-opentelemetry-io-contrib"
"1.20.0"
"https://github.com/open-telemetry/opentelemetry-go-contrib"
"0vsv2ihjk3i3k1mwkdjngcp497knw85fz1m32lycl6qf3fcpzaiy"
"go.opentelemetry.io/contrib"
(list)))
(define go-github-com-dustin-go-humanize
(go-package
"go-github-com-dustin-go-humanize"
"1.0.1"
"https://github.com/dustin/go-humanize"
"1iyhd90pnmxh64nhsh6k02c1b1glpmhh4whga9jgb9g0i5hz3sya"
"github.com/dustin/go-humanize"
(list)))
(define go-github-com-burntsushi-toml
(go-package
"go-github-com-burntsushi-toml"
"1.3.2"
"https://github.com/BurntSushi/toml"
"1s1d3622al03xgx84iqai384ycfp5hgy2r6h4db29byamqgk530l"
"github.com/BurntSushi/toml"
(list)))
(define-public caddy
(package
(name "caddy")
(version "2.7.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/caddyserver/caddy")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0jgbkj0azkbs828vsd3gycpab8pycgf55vrxkvnfmwfjpdiq1551"))))
(build-system go-build-system)
(inputs (list go-github-com-hashicorp-go-uuid
go-github-com-burntsushi-toml
go-github-com-dustin-go-humanize
go-github-com-yuin-goldmark
go-github-com-yuin-goldmark-highlighting
go-github-com-tailscale-tscert
go-github-com-google-cel-go
go-step-sm-crypto
go-step-sm-cli-utils
go-github-com-smallstep-certificates
go-github-com-smallstep-truststore
go-opentelemetry-io-otel
go-opentelemetry-io-contrib
go-github-com-google-uuid
go-github-com-lucas-clemente-quic-go
go-github-com-prometheus-client-golang
go-github-com-prometheus-procfs
go-github-com-prometheus-common
go-google-golang-org-protobuf
go-github-com-beorn7-perks
go-github-com-cespare-xxhash
go-go-uber-org-zap
go-golang-org-x-term
go-github-com-caddy-certmagic
go-github-com-quic-go-quic-go
go-github-com-quic-go-qpack
go-github-com-klauspost-compress
go-github-com-golang-protobuf
go-golang-org-x-net
go-golang-org-x-sync))
(arguments
`(#:go ,go-1.20
#:substitutable? #f
#:install-source? #t
#:import-path "github.com/caddyserver/caddy"
#:tests? #f
#:phases (modify-phases %standard-phases
(replace 'build
(lambda arguments
(apply (assoc-ref %standard-phases
'build)
`(,@arguments #:import-path
"github.com/caddyserver/caddy/cmd/caddy")))))))
(synopsis "A powerful, enterprise-ready, open source web server with automatic HTTPS written in Go ")
(description "Caddy simplifies your infrastructure. It takes care of TLS certificate renewals, OCSP stapling, static file serving, reverse proxying, Kubernetes ingress, and more.
Its modular architecture means you can do more with a single, static binary that compiles for any platform.
Caddy runs great in containers because it has no dependenciesnot even libc. Run Caddy practically anywhere.")
(home-page "https://caddyserver.com/")
(license license:asl2.0)))
(list #:tests? #f
#:go go-1.20
#:import-path "github.com/caddyserver/certmagic"))
(home-page "https://github.com/caddyserver/certmagic")
(synopsis "Certbot ACME")
(description "Automagic certificate management in Caddy")
(license license:expat)))
(define-public caddy
(package
(name "Caddy")
(version "2.7.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/caddyserver/caddy")
(commit (string-append "v" version))))
(sha256
(base32
"0jgbkj0azkbs828vsd3gycpab8pycgf55vrxkvnfmwfjpdiq1551"))))
(build-system go-build-system)
(native-inputs (list go-github-com-google-uuid
go-go-uber-org-zap
go-github-com-caddy-certmagic
go-github-com-prometheus-client-golang
go-golang-org-x-term
go-golang-org-x-sys))
(arguments
(list #:tests? #f
#:go go-1.20
;#:unpack-path "github.com/caddyserver/caddy"
#:import-path "github.com/caddyserver/caddy"))
(home-page "https://github.com/caddyserver/caddy")
(synopsis "Web server")
(description "This package serves the web")
(license license:expat)))

View file

@ -6,7 +6,8 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages python-xyz)
#:use-module (guix git-download)
#:use-module (guix utils))
#:use-module (guix utils)
#:use-module (freya packages networking))
(define-public bluez-new
(package
@ -21,14 +22,56 @@
(sha256
(base32
"0vjk4ihywzv8k07bxq7clqgi2afrw54nfp0gcnxw35m98nipz7a9"))))
(arguments
(list
#:configure-flags
#~(list "--sysconfdir=/etc"
"--localstatedir=/var"
"--enable-library"
"--disable-manpages"
"--disable-systemd"
"--enable-hid2hci"
(string-append "--with-dbusconfdir=" #$output "/etc")
(string-append "--with-udevdir=" #$output "/lib/udev"))))))
(arguments (list
#:configure-flags
#~(list "--sysconfdir=/etc"
"--localstatedir=/var"
"--enable-library"
"--disable-manpages"
"--disable-systemd"
"--enable-hid2hci"
(string-append "--with-dbusconfdir=" #$output "/etc")
(string-append "--with-udevdir=" #$output "/lib/udev"))))))
(define-public pipewire-new
(package
(inherit pipewire)
(name "pipewire")
(version "1.2.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/pipewire/pipewire")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0cvbyklzqcdr9zj7k7psb24xp8cxb9fdksrd74r68zvnbbix1qlx"))))
(inputs
(modify-inputs
(package-inputs pipewire)
(delete "alsa-lib")
(prepend alsa-lib-new)))))
(define-public wireplumber-new
(package
(inherit wireplumber)
(name "wireplumber")
(version "0.5.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://gitlab.freedesktop.org/pipewire/wireplumber.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1s9p2hpi9v4w70j6hhqnsa4czhn3rzrk03j0qb7lz87qlw491yks"))))
(inputs
(modify-inputs
(package-inputs wireplumber)
(delete "pipewire")
(prepend pipewire-new)))))

View file

@ -6,6 +6,7 @@
#:use-module (guix download)
#:use-module (guix packages)
#:use-module (guix build-system trivial)
#:use-module (freya packages linux)
#:use-module (nonguix build-system binary)
#:use-module (nongnu packages mozilla))
@ -20,7 +21,7 @@
(license license:mpl2.0)
(inputs
`(("bash" ,bash-minimal)
("pipewire" ,pipewire)
("pipewire" ,pipewire-new)
("firefox" ,firefox)))
(build-system trivial-build-system)
(arguments

View file

@ -1,7 +1,9 @@
(define-module (freya packages networking)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (gnu packages)
#:use-module (gnu packages linux)
#:use-module (gnu packages networking)
#:use-module (freya packages linux)
#:use-module (guix utils))
@ -14,3 +16,19 @@
(package-inputs blueman)
(delete "bluez")
(prepend bluez-new)))))
(define-public alsa-lib-new
(package
(inherit alsa-lib)
(name "alsa-lib")
(version "1.2.12")
(source (origin
(method url-fetch)
(uri (string-append
"ftp://ftp.alsa-project.org/pub/lib/alsa-lib-"
version ".tar.bz2"))
(sha256
(base32
"1lnh38wii8mnwp3n4hnqa718rgi52rq6ix1llsjrs9r7hs8css28"))))))

View file

@ -39,6 +39,7 @@
#:use-module (freya packages gl)
#:use-module (freya packages admin)
#:use-module (freya packages cmake)
#:use-module (freya packages linux)
#:use-module (freya packages freedesktop)
#:use-module (freya packages assembly)
#:use-module (guix utils))
@ -249,7 +250,7 @@ for c++.")
(define-public aquamarine
(package
(name "aquamarine")
(version "0.2.0")
(version "0.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -260,7 +261,7 @@ for c++.")
(file-name (git-file-name name version))
(sha256
(base32
"061shgk8lvbk4f35cf057hl4jh36aahd6l3si6ga91rzl184b9sh"))))
"114fspibmrwvzdmzv4xdy000vg7mn9r5vas3pr1ndb9xyl15ja1s"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f))
@ -311,101 +312,99 @@ for c++.")
(define-public hyprland
(let ((commit "0e86808e5912823f1c6bea1b6d5fcae297fc9f57")
(revision "1"))
(package
(name "hyprland")
(version (git-version "0.42.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hyprwm/Hyprland")
(commit commit)))
(patches (list
(local-file "patches/hyprland-fix-cmake.patch")))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file-recursively
'("hyprpm"
"subprojects"))))
(file-name (git-file-name name version))
(sha256
(base32 "10fiipxxkdvwxqgll5q5sa8sl5hm323gshx9bmlmlry07r0mk3mx"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f
#:build-type "release"
#:cmake cmake-minimal-3.27.0
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* (find-files "src" "\\.cpp$")
(("/usr/local(/bin/Hyprland)" _ path)
(string-append #$output path))
(("/usr") #$output)
(("(execAndGet\\(\")\\<(cat|fc-list|lspci)\\>"
_ pre cmd)
(string-append
pre (search-input-file
inputs (string-append "bin/" cmd))))
(("\\<cc\\>") (search-input-file inputs "bin/gcc"))
;; NOTE: Add binutils to inputs will override ld-wrapper.
(("(execAndGet\\(\\(\")\\<nm\\>" _ pre)
(string-append pre #$binutils "/bin/nm"))
(("\\<(addr2line|objcopy)\\>" _ cmd)
(string-append #$binutils "/bin/" cmd)))
(substitute* "CMakeLists.txt"
(("libudis86") "udis86"))
))
(add-after 'fix-path 'fix-protocols
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((protocols (string-append
(getcwd)
"/subprojects/hyprland-protocols/protocols")))
(mkdir-p protocols)
(copy-recursively
(search-input-directory inputs "share/hyprland-protocols/protocols")
protocols))))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(mesa (assoc-ref inputs "mesa")))
(wrap-program (string-append out "/bin/Hyprland")
`("__EGL_VENDOR_LIBRARY_DIRS" prefix ,(list (string-append mesa "/share/glvnd/egl_vendor.d")))))))
)))
(native-inputs
(list gcc-13
jq
pkg-config
hyprwayland-scanner
hwdata-for-hyprland))
(inputs
(list gcc-13
(package
(name "hyprland")
(version "0.42.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hyprwm/Hyprland")
(commit (string-append "v" version))))
(patches (list
(local-file "patches/hyprland-fix-cmake.patch")))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file-recursively
'("hyprpm"
"subprojects"))))
(file-name (git-file-name name version))
(sha256
(base32 "1hp2xafvlymikxsi6pr8iik35g46683bg376n9hkjxgh9y6njzqv"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f
#:build-type "release"
#:cmake cmake-minimal-3.27.0
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* (find-files "src" "\\.cpp$")
(("/usr/local(/bin/Hyprland)" _ path)
(string-append #$output path))
(("/usr") #$output)
(("(execAndGet\\(\")\\<(cat|fc-list|lspci)\\>"
_ pre cmd)
(string-append
pre (search-input-file
inputs (string-append "bin/" cmd))))
(("\\<cc\\>") (search-input-file inputs "bin/gcc"))
;; NOTE: Add binutils to inputs will override ld-wrapper.
(("(execAndGet\\(\\(\")\\<nm\\>" _ pre)
(string-append pre #$binutils "/bin/nm"))
(("\\<(addr2line|objcopy)\\>" _ cmd)
(string-append #$binutils "/bin/" cmd)))
(substitute* "CMakeLists.txt"
(("libudis86") "udis86"))
))
(add-after 'fix-path 'fix-protocols
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((protocols (string-append
(getcwd)
"/subprojects/hyprland-protocols/protocols")))
(mkdir-p protocols)
(copy-recursively
(search-input-directory inputs "share/hyprland-protocols/protocols")
protocols))))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(mesa (assoc-ref inputs "mesa")))
(wrap-program (string-append out "/bin/Hyprland")
`("__EGL_VENDOR_LIBRARY_DIRS" prefix ,(list (string-append mesa "/share/glvnd/egl_vendor.d")))))))
)))
(native-inputs
(list gcc-13
jq
pkg-config
hyprwayland-scanner
hwdata-for-hyprland))
(inputs
(list gcc-13
cairo
pango
pciutils
libliftoff
udis86
cairo
pango
pciutils
libliftoff
udis86
aquamarine
hyprcursor
hyprland-protocols
hyprlang
hyprutils
aquamarine
hyprcursor
hyprland-protocols
hyprlang
hyprutils
xorg-server-xwayland-for-hyprland))
(home-page "https://hyprland.org")
(synopsis "Dynamic tiling Wayland compositor based on wlroots")
(description
"Hyprland is a dynamic tiling Wayland compositor based on @code{wlroots}
that doesn't sacrifice on its looks. It supports multiple layouts, fancy
effe cts, has a very flexible IPC model allowing for a lot of customization, and
more .")
(license license:bsd-3))))
xorg-server-xwayland-for-hyprland))
(home-page "https://hyprland.org")
(synopsis "Dynamic tiling Wayland compositor based on wlroots")
(description
"Hyprland is a dynamic tiling Wayland compositor based on @code{wlroots}
th doesn't sacrifice on its looks. It supports multiple layouts, fancy
ef cts, has a very flexible IPC model allowing for a lot of customization, and
mo .")
(license license:bsd-3)))
(define-public hyprpaper
@ -519,7 +518,7 @@ more .")
(define-public xdg-desktop-portal-hyprland
(package
(name "xdg-desktop-portal-hyprland")
(version "1.3.1")
(version "1.3.3")
(source (origin
(method git-fetch)
(uri (git-reference
@ -528,11 +527,10 @@ more .")
(file-name (git-file-name name version))
(sha256
(base32
"0fdbzxanmmzrvb9wfzg1pdsnlg7dl6v5k8bl44w10n48s7bbbzn0"))))
(build-system qt-build-system)
"14n4a8b91ili0kp2kjqlw3h57bsxkrjwg5bhlw2h3q93zaxv2b3k"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f ;No tests
#:qtbase qtbase
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-path
@ -554,11 +552,12 @@ more .")
hyprland-protocols
wayland-protocols-1.36
hyprlang
mesa
pipewire
mesa-libglvnd
pipewire-new
qtwayland
sdbus-c++
slurp))
slurp
qtbase))
(home-page "https://github.com/hyprwm/xdg-desktop-portal-hyprland")
(synopsis "XDG Desktop Portal backend for Hyprland")
(description

View file

@ -5,12 +5,14 @@
#:use-module (gnu services configuration)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
#:use-module (freya packages linux)
#:use-module (freya packages networking)
#:use-module (guix gexp))
(define (home-pipewire-profile-service config)
(map specification->package
(list "pipewire"
"wireplumber")))
(list pipewire-new
wireplumber-new))
(define (home-pipewire-shepherd-service config)
(list
@ -20,7 +22,7 @@
(provision '(pipewire))
(stop #~(make-kill-destructor))
(start #~(make-forkexec-constructor
(list #$(file-append pipewire "/bin/pipewire"))
(list #$(file-append pipewire-new "/bin/pipewire"))
#:log-file (string-append
(or (getenv "XDG_LOG_HOME")
(format #f "~a/.local/var/log"
@ -35,7 +37,7 @@
(provision '(pipewire-pulse))
(stop #~(make-kill-destructor))
(start #~(make-forkexec-constructor
(list #$(file-append pipewire "/bin/pipewire-pulse"))
(list #$(file-append pipewire-new "/bin/pipewire-pulse"))
#:log-file (string-append
(or (getenv "XDG_LOG_HOME")
(format #f "~a/.local/var/log"
@ -50,7 +52,7 @@
(provision '(wireplumber))
(stop #~(make-kill-destructor))
(start #~(make-forkexec-constructor
(list #$(file-append wireplumber "/bin/wireplumber"))
(list #$(file-append wireplumber-new "/bin/wireplumber"))
#:log-file (string-append
(or (getenv "XDG_LOG_HOME")
(format #f "~a/.local/var/log"
@ -67,18 +69,18 @@
#~(string-append
"<"
#$(file-append
pipewire "/share/alsa/alsa.conf.d/50-pipewire.conf")
pipewire-new "/share/alsa/alsa.conf.d/50-pipewire.conf")
">\n<"
#$(file-append
pipewire "/share/alsa/alsa.conf.d/99-pipewire-default.conf")
pipewire-new "/share/alsa/alsa.conf.d/99-pipewire-default.conf")
">\n"
"
pcm_type.pipewire {
lib " #$(file-append pipewire "/lib/alsa-lib/libasound_module_pcm_pipewire.so")
lib " #$(file-append pipewire-new "/lib/alsa-lib/libasound_module_pcm_pipewire.so")
"
}
ctl_type.pipewire {
lib " #$(file-append pipewire "/lib/alsa-lib/libasound_module_ctl_pipewire.so")
lib " #$(file-append pipewire-new "/lib/alsa-lib/libasound_module_ctl_pipewire.so")
"
}
")))))

View file

@ -29,6 +29,7 @@
#:use-module (guix packages)
#:use-module (nongnu packages linux)
#:use-module (srfi srfi-1)
#:use-module (freya bootloader uki)
#:use-module (freya packages wm)
#:use-module (freya packages certs)
#:use-module (freya packages linux)
@ -58,7 +59,7 @@
(supplementary-groups '("wheel"
"audio"
"lp"
"docker"
;"docker"
"plugdev"
"libvirt"
"kvm"
@ -105,7 +106,7 @@
; xdg
"xdg-utils"
"xdg-desktop-portal"
;"xdg-desktop-portal-wlr"
"xdg-desktop-portal-wlr"
"xdg-desktop-portal-gtk"
; firmware
@ -141,6 +142,7 @@
; system daemons
"chrony"
"docker"
"containerd"
"avahi"
"gnupg"
"pinentry"
@ -148,7 +150,6 @@
"brightnessctl"
"wireguard-tools"
"fprintd"
"wireplumber"
"libpcap"
; fonts
@ -204,7 +205,7 @@
(avahi-configuration
(publish? #f) ;; do not advertise this machiene
(publish-workstation? #f))) ; do not advertise, I want this to be as silent as possible
(service docker-service-type)
;(service docker-service-type)
;(service chrony-sericve-type)
(service nix-service-type)
(service libvirt-service-type
@ -269,6 +270,6 @@
%base-file-systems))
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
(bootloader uefi-uki-bootloader)
(targets (list "/boot/efi"))
(keyboard-layout keyboard-layout)))))