(define gash-boot (package-with-bootstrap-guile (package (inherit gash) (name "gash-boot") (source (origin (method url-fetch) ;; This should point to the result of `make dist' from ;; commit b5831f715eabd857a17d10ea6ce06439aecf8014. (uri "file:///home/debian/gash/gash-0.1.40-b583.tar.gz") (sha256 (base32 "04cm8y39wgcvx83b38yndi1d9fwf1ahvvzzpd54h7p18r43irmkl")))) (arguments `(#:implicit-inputs? #f #:guile ,%bootstrap-guile #:phases (modify-phases %standard-phases (delete 'patch-source-shebangs) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (guile-dir (assoc-ref inputs "guile")) (guile (string-append guile-dir "/bin/guile")) (moddir (string-append out "/share/guile/site/" (effective-version))) (godir (string-append out "/lib/guile/" (effective-version) "/site-ccache"))) (format #t "Configuring gash/config.scm.in~%") (copy-file "gash/config.scm.in" "gash/config.scm") (substitute* "gash/config.scm" (("@VERSION@") ,(package-version gash))) (format #t "Configuring scripts/gash.in~%") (copy-file "scripts/gash.in" "scripts/gash") (substitute* "scripts/gash" (("@GUILE@") guile) (("@MODDIR@") moddir) (("@GODIR@") godir)) #t))) (delete 'patch-generated-file-shebangs) (replace 'build (lambda _ (add-to-load-path (getcwd)) (for-each (lambda (scm) (let* ((base (string-drop-right scm 4)) (go (string-append base ".go")) (dir (dirname scm))) (format #t "Compiling ~a~%" scm) (compile-file scm #:output-file go))) (find-files "gash" "\\.scm$")) #t)) (delete 'check) (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (guile-dir (assoc-ref inputs "guile")) (guile (string-append guile-dir "/bin/guile")) (moddir (string-append out "/share/guile/site/" (effective-version))) (godir (string-append out "/lib/guile/" (effective-version) "/site-ccache"))) (for-each (lambda (scm) (let* ((base (string-drop-right scm 4)) (go (string-append base ".go")) (dir (dirname scm))) (format #t "Installing ~a~%" scm) (install-file scm (string-append moddir "/" dir)) (format #t "Installing ~a~%" go) (install-file go (string-append godir "/" dir)))) (find-files "gash" "\\.scm$")) (format #t "Installing scripts/gash~%") (install-file "scripts/gash" (string-append out "/bin")) (chmod (string-append out "/bin/gash") #o555) (symlink (string-append out "/bin/gash") (string-append out "/bin/sh")) (symlink (string-append out "/bin/gash") (string-append out "/bin/bash")) #t)))))) (inputs `(("guile" ,%bootstrap-guile))) (native-inputs `(("coreutils" ,%bootstrap-coreutils&co))))))