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

View file

@ -3,6 +3,7 @@
waybar --config $HOME/.config/waybar/config.hypr & waybar --config $HOME/.config/waybar/config.hypr &
nm-applet --indicator & nm-applet --indicator &
mako &
gnome-keyring-daemon --foreground & gnome-keyring-daemon --foreground &
wl-clip-persist --clipboard both & 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) (define-module (freya packages golang)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (gnu packages base) #:use-module (guix utils)
#: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 download) #: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 go)
#:use-module (guix build-system trivial) #:use-module (gnu packages)
#:use-module (guix build utils) #:use-module (gnu packages golang))
#:use-module (guix utils))
(define (go-package name version url hash path inputs) (define-public go-github-com-caddy-certmagic
(package (package
(name name) (name "certmagic")
(version version) (version "0.19.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url url) (url "https://github.com/caddyserver/certmagic")
(commit (string-append "v" version)))) (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 (sha256
(base32 (base32
"0jgbkj0azkbs828vsd3gycpab8pycgf55vrxkvnfmwfjpdiq1551")))) "0jgbkj0azkbs828vsd3gycpab8pycgf55vrxkvnfmwfjpdiq1551"))))
(build-system go-build-system) (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 (arguments
`(#:go ,go-1.20 (list #:tests? #f
#:substitutable? #f #:go go-1.20
#:install-source? #t #:import-path "github.com/caddyserver/certmagic"))
#:import-path "github.com/caddyserver/caddy" (home-page "https://github.com/caddyserver/certmagic")
#:tests? #f (synopsis "Certbot ACME")
#:phases (modify-phases %standard-phases (description "Automagic certificate management in Caddy")
(replace 'build (license license:expat)))
(lambda arguments
(apply (assoc-ref %standard-phases (define-public caddy
'build) (package
`(,@arguments #:import-path (name "Caddy")
"github.com/caddyserver/caddy/cmd/caddy"))))))) (version "2.7.4")
(synopsis "A powerful, enterprise-ready, open source web server with automatic HTTPS written in Go ") (source (origin
(description "Caddy simplifies your infrastructure. It takes care of TLS certificate renewals, OCSP stapling, static file serving, reverse proxying, Kubernetes ingress, and more. (method git-fetch)
Its modular architecture means you can do more with a single, static binary that compiles for any platform. (uri (git-reference
Caddy runs great in containers because it has no dependenciesnot even libc. Run Caddy practically anywhere.") (url "https://github.com/caddyserver/caddy")
(home-page "https://caddyserver.com/") (commit (string-append "v" version))))
(license license:asl2.0))) (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 linux)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix utils)) #:use-module (guix utils)
#:use-module (freya packages networking))
(define-public bluez-new (define-public bluez-new
(package (package
@ -21,14 +22,56 @@
(sha256 (sha256
(base32 (base32
"0vjk4ihywzv8k07bxq7clqgi2afrw54nfp0gcnxw35m98nipz7a9")))) "0vjk4ihywzv8k07bxq7clqgi2afrw54nfp0gcnxw35m98nipz7a9"))))
(arguments (arguments (list
(list #:configure-flags
#:configure-flags #~(list "--sysconfdir=/etc"
#~(list "--sysconfdir=/etc" "--localstatedir=/var"
"--localstatedir=/var" "--enable-library"
"--enable-library" "--disable-manpages"
"--disable-manpages" "--disable-systemd"
"--disable-systemd" "--enable-hid2hci"
"--enable-hid2hci" (string-append "--with-dbusconfdir=" #$output "/etc")
(string-append "--with-dbusconfdir=" #$output "/etc") (string-append "--with-udevdir=" #$output "/lib/udev"))))))
(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 download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (freya packages linux)
#:use-module (nonguix build-system binary) #:use-module (nonguix build-system binary)
#:use-module (nongnu packages mozilla)) #:use-module (nongnu packages mozilla))
@ -20,7 +21,7 @@
(license license:mpl2.0) (license license:mpl2.0)
(inputs (inputs
`(("bash" ,bash-minimal) `(("bash" ,bash-minimal)
("pipewire" ,pipewire) ("pipewire" ,pipewire-new)
("firefox" ,firefox))) ("firefox" ,firefox)))
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments

View file

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

View file

@ -5,12 +5,14 @@
#:use-module (gnu services configuration) #:use-module (gnu services configuration)
#:use-module (gnu home services) #:use-module (gnu home services)
#:use-module (gnu home services shepherd) #:use-module (gnu home services shepherd)
#:use-module (freya packages linux)
#:use-module (freya packages networking)
#:use-module (guix gexp)) #:use-module (guix gexp))
(define (home-pipewire-profile-service config) (define (home-pipewire-profile-service config)
(map specification->package (list pipewire-new
(list "pipewire" wireplumber-new))
"wireplumber")))
(define (home-pipewire-shepherd-service config) (define (home-pipewire-shepherd-service config)
(list (list
@ -20,7 +22,7 @@
(provision '(pipewire)) (provision '(pipewire))
(stop #~(make-kill-destructor)) (stop #~(make-kill-destructor))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append pipewire "/bin/pipewire")) (list #$(file-append pipewire-new "/bin/pipewire"))
#:log-file (string-append #:log-file (string-append
(or (getenv "XDG_LOG_HOME") (or (getenv "XDG_LOG_HOME")
(format #f "~a/.local/var/log" (format #f "~a/.local/var/log"
@ -35,7 +37,7 @@
(provision '(pipewire-pulse)) (provision '(pipewire-pulse))
(stop #~(make-kill-destructor)) (stop #~(make-kill-destructor))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append pipewire "/bin/pipewire-pulse")) (list #$(file-append pipewire-new "/bin/pipewire-pulse"))
#:log-file (string-append #:log-file (string-append
(or (getenv "XDG_LOG_HOME") (or (getenv "XDG_LOG_HOME")
(format #f "~a/.local/var/log" (format #f "~a/.local/var/log"
@ -50,7 +52,7 @@
(provision '(wireplumber)) (provision '(wireplumber))
(stop #~(make-kill-destructor)) (stop #~(make-kill-destructor))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append wireplumber "/bin/wireplumber")) (list #$(file-append wireplumber-new "/bin/wireplumber"))
#:log-file (string-append #:log-file (string-append
(or (getenv "XDG_LOG_HOME") (or (getenv "XDG_LOG_HOME")
(format #f "~a/.local/var/log" (format #f "~a/.local/var/log"
@ -67,18 +69,18 @@
#~(string-append #~(string-append
"<" "<"
#$(file-append #$(file-append
pipewire "/share/alsa/alsa.conf.d/50-pipewire.conf") pipewire-new "/share/alsa/alsa.conf.d/50-pipewire.conf")
">\n<" ">\n<"
#$(file-append #$(file-append
pipewire "/share/alsa/alsa.conf.d/99-pipewire-default.conf") pipewire-new "/share/alsa/alsa.conf.d/99-pipewire-default.conf")
">\n" ">\n"
" "
pcm_type.pipewire { 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 { 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 (guix packages)
#:use-module (nongnu packages linux) #:use-module (nongnu packages linux)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (freya bootloader uki)
#:use-module (freya packages wm) #:use-module (freya packages wm)
#:use-module (freya packages certs) #:use-module (freya packages certs)
#:use-module (freya packages linux) #:use-module (freya packages linux)
@ -58,7 +59,7 @@
(supplementary-groups '("wheel" (supplementary-groups '("wheel"
"audio" "audio"
"lp" "lp"
"docker" ;"docker"
"plugdev" "plugdev"
"libvirt" "libvirt"
"kvm" "kvm"
@ -105,7 +106,7 @@
; xdg ; xdg
"xdg-utils" "xdg-utils"
"xdg-desktop-portal" "xdg-desktop-portal"
;"xdg-desktop-portal-wlr" "xdg-desktop-portal-wlr"
"xdg-desktop-portal-gtk" "xdg-desktop-portal-gtk"
; firmware ; firmware
@ -141,6 +142,7 @@
; system daemons ; system daemons
"chrony" "chrony"
"docker" "docker"
"containerd"
"avahi" "avahi"
"gnupg" "gnupg"
"pinentry" "pinentry"
@ -148,7 +150,6 @@
"brightnessctl" "brightnessctl"
"wireguard-tools" "wireguard-tools"
"fprintd" "fprintd"
"wireplumber"
"libpcap" "libpcap"
; fonts ; fonts
@ -204,7 +205,7 @@
(avahi-configuration (avahi-configuration
(publish? #f) ;; do not advertise this machiene (publish? #f) ;; do not advertise this machiene
(publish-workstation? #f))) ; do not advertise, I want this to be as silent as possible (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 chrony-sericve-type)
(service nix-service-type) (service nix-service-type)
(service libvirt-service-type (service libvirt-service-type
@ -269,6 +270,6 @@
%base-file-systems)) %base-file-systems))
(bootloader (bootloader-configuration (bootloader (bootloader-configuration
(bootloader grub-efi-bootloader) (bootloader uefi-uki-bootloader)
(targets (list "/boot/efi")) (targets (list "/boot/efi"))
(keyboard-layout keyboard-layout))))) (keyboard-layout keyboard-layout)))))