From a68eca169b8b165571a257d640ab772d81cf263f Mon Sep 17 00:00:00 2001 From: Ryan Schanzenbacher Date: Sat, 25 Apr 2026 20:41:25 -0400 Subject: defined ly --- modules/ryan-packages/login.scm | 102 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 modules/ryan-packages/login.scm (limited to 'modules') diff --git a/modules/ryan-packages/login.scm b/modules/ryan-packages/login.scm new file mode 100644 index 0000000..e3856a5 --- /dev/null +++ b/modules/ryan-packages/login.scm @@ -0,0 +1,102 @@ +(define-module (ryan-packages login) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system zig) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages curl) + #:use-module (gnu packages linux) + #:use-module (gnu packages nss) + #:use-module (gnu packages version-control) + #:use-module (gnu packages zig) + #:use-module (gnu packages zig-xyz) + #:use-module (guix utils)) + +(define ly-source + (let ((commit "1b9286166e2b49fb11823a0f02baa6c42e66fe61") + (revision "1") + (name "ly") + (version "1.3.2")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/fairyglade/ly") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dwx0ri61p16n1kpcv57g7xf3rgwysnfijw7i76b1l802a4qnk1z"))))) + +(define ly-zig-cache + (computed-file + "ly-zig-cache" + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (let ((cert-dir (string-append #$nss-certs "/etc/ssl/certs")) + (certs "/tmp/ca-certificates.crt") + (zig-bin (string-append #$zig-0.15 "/bin")) + (git-bin (string-append #$git-minimal "/bin")) + (curl-bin (string-append #$curl "/bin")) + (proot-bin (string-append #$proot "/bin")) + (coreutils-bin (string-append #$(@ (gnu packages base) coreutils) "/bin"))) + (call-with-output-file certs + (lambda (out) + (for-each (lambda (file) + (call-with-input-file file + (lambda (p) + (dump-port p out) + (display "\n" out)))) + (find-files cert-dir "\\.pem$")))) + (setenv "HOME" "/tmp") + (setenv "PATH" (string-append zig-bin ":" curl-bin ":" proot-bin ":" git-bin ":" coreutils-bin)) + (setenv "ZIG_GLOBAL_CACHE_DIR" "/tmp/zcache") + (setenv "SSL_CERT_FILE" certs) + (setenv "GIT_SSL_CAINFO" certs) + (setenv "CURL_CA_BUNDLE" certs) + (mkdir-p "/tmp/zcache") + (mkdir-p "/tmp/src") + (copy-recursively #$ly-source "/tmp/src") + (chmod "/tmp/src" #o755) + (with-directory-excursion "/tmp/src" + (invoke "proot" "-b" (string-append certs ":/etc/ssl/certs/ca-certificates.crt") + "zig" "build" "--fetch=all")) + (copy-recursively "/tmp/zcache/p" #$output)))) + #:options (list + #:hash-algo 'sha256 + #:hash (base32 "1qmj0ysynvyfvwc68apy3lxqccrv3rxak5a21ij6y0c2dw3yzl64") + #:recursive? #t))) + +(define-public ly + (package + (name "ly") + (version "1.3.2") + (source ly-source) + (build-system zig-build-system) + (arguments + (list + #:zig-release-type "small" + #:zig-build-flags #~(list "-Denable_x11_support=false" + "--search-prefix" + #$(this-package-input "linux-pam")) + #:zig zig-0.15 + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'seed-zig-cache + (lambda _ + (let ((cache-dir "/tmp/zig-cache")) + (mkdir-p cache-dir) + (symlink #$ly-zig-cache (string-append cache-dir "/p")) + (setenv "ZIG_GLOBAL_CACHE_DIR" cache-dir))))))) + (native-inputs (list + ly-zig-cache)) + (inputs (list linux-pam)) + (home-page "https://codeberg.org/fairyglade/ly") + (synopsis "TTY-based login manager written in Zig.") + (description "Zig-based login manager that can launch X Server and Wayland based compositors.") + (license license:expat))) + +ly -- cgit v1.2.3