sloth/manifest.scm

91 lines
2.8 KiB
Scheme

;; Development dependencies for Sloth
;; Because both Hall and Guix are being used for development, these are just the
;; tools to build things using those tools. Notably, running a guix shell
;; container with only these packages should be comfortable.
;; Usage: guix shell -[CNW]m manifest.scm
(use-modules (gnu packages autotools)
(gnu packages base)
(gnu packages guile)
(gnu packages guile-xyz)
(gnu packages pkg-config)
(gnu packages readline)
(gnu packages texinfo)
(gnu packages version-control)
(guix build-system gnu)
(guix git-download)
((guix licenses)
#:prefix license:)
(guix packages))
(define guile-hall-next
(package
(name "guile-hall")
(version "0.4.1-next")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/a-sassmannshausen/guile-hall")
(commit "9ca0c3e")))
(file-name (git-file-name name version))
(sha256
(base32 "0fi7isi5wq6awssk08zj4scifrb9g1g1027id5j87awb29q22jlj"))))
(build-system gnu-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'install 'hall-wrap-binaries
(lambda _
(use-modules (ice-9 ftw))
(define (compiled-dir out version)
(string-append out "/lib/guile/"
version
"/site-ccache"))
(define (uncompiled-dir out version)
(string-append out
"/share/guile/site"
(if (string-null? version) ""
"/")
version))
(define (dep-path env modules path)
(list env ":"
'prefix
(cons modules
(map (lambda (input)
(string-append input path))
(list #$guile-config)))))
(define bin (string-append #$output "/bin/"))
(define site (uncompiled-dir #$output ""))
(define version (caddr (scandir site)))
(wrap-program (string-append bin "hall")
(dep-path
"GUILE_LOAD_PATH"
(uncompiled-dir #$output version)
(uncompiled-dir "" version))
(dep-path
"GUILE_LOAD_COMPILED_PATH"
(compiled-dir #$output version)
(compiled-dir "" version))))))))
(native-inputs (list autoconf
automake
pkg-config
texinfo))
(inputs (list guile-3.0))
(propagated-inputs (list guile-config))
(synopsis "Guile project tooling")
(description
"Hall is a command-line application and a set of Guile libraries that
allow you to quickly create and publish Guile projects. It allows you to
transparently support the GNU build system, manage a project hierarchy &
provides tight coupling to Guix.")
(home-page "https://gitlab.com/a-sassmannshausen/guile-hall")
(license license:gpl3+)))
(packages->manifest
(list coreutils
git
guile-3.0
guile-hall-next
guile-readline))