rosenthal: Add mirror-substitutes.

* modules/rosenthal/packages/package-management.scm (mirror-substitutes): New variable.
This commit is contained in:
Hilton Chain 2026-03-31 21:10:12 +08:00
parent 9d95263fcf
commit 5443654eea
No known key found for this signature in database
GPG Key ID: ACC66D09CA528292

View File

@ -8,7 +8,14 @@
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (rosenthal utils packages)
;; Guix origin methods
#:use-module (guix git-download)
;; Guix build systems
#:use-module (guix build-system guile)
;; Guix packages
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages guile)
#:use-module (gnu packages package-management))
(define-public guix/dolly
@ -23,3 +30,64 @@
(substitute-keyword-arguments arguments
((#:parallel-build? _ #f) #t)))
(properties '((disable-updater? . #t)))))
(define-public mirror-substitutes
(let ((commit "e4001938bdec86e16da3b9c455f8d6fb40c1ab06")
(revision "0"))
(package
(name "mirror-substitutes")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/hako/mirror-substitutes.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1xbz63akkxz3b0bpqfz2q7sz90raf6nn65cmwa9mzz3alm9avzfj"))))
(build-system guile-build-system)
(arguments
(list
#:source-directory "modules"
#:phases
#~(modify-phases %standard-phases
(add-after 'build 'install
(lambda* (#:key inputs #:allow-other-keys)
(define-values (module-dir object-dir)
(target-guile-scm+go #$output))
(define bindir
(in-vicinity #$output "bin"))
(with-directory-excursion "scripts"
(for-each
(lambda (script)
(substitute* script
(("/usr/(bin/env) -S guix" _ env)
(format #f "~a -S ~a"
(search-input-file inputs env)
(if (string-suffix? "query-substitutes" script)
"guix"
(search-input-file inputs "bin/guix")))))
(install-file script bindir)
(with-directory-excursion bindir
(wrap-program script
`("GUILE_LOAD_PATH" prefix
(,module-dir))
`("GUILE_LOAD_COMPILED_PATH" prefix
(,object-dir)))))
(find-files "."))))))))
(native-inputs
(list bash-minimal
guile-3.0-latest
guix))
(inputs
(list bash-minimal
coreutils-minimal
guix))
(home-page "https://codeberg.org/hako/mirror-substitutes")
(synopsis
"Mirror Guix substitutes without relying on remote server implementation")
(description
"This package provides commands to mirror substitutes for Guix and Nix
without relying on the implementation of remote server.")
(license license:gpl3+))))