From e4ac55afd01a3d0f5f9a456b48ca702357d2f7c4 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 10 Feb 2021 14:55:38 +0530 Subject: Add guix.scm. * guix.scm: New file. --- guix.scm | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 guix.scm (limited to 'guix.scm') diff --git a/guix.scm b/guix.scm new file mode 100644 index 0000000..5575184 --- /dev/null +++ b/guix.scm @@ -0,0 +1,145 @@ +(use-modules (ice-9 match) + (ice-9 popen) + (ice-9 rdelim) + (srfi srfi-1) + (srfi srfi-26) + (guix build utils) + (guix build-system cmake) + (guix build-system guile) + (guix gexp) + (guix git-download) + ((guix licenses) #:prefix license:) + (guix packages) + (guix utils) + (gnu packages bash) + (gnu packages guile) + (gnu packages guile-xyz) + (gnu packages maths) + (gnu packages pkg-config)) + +(define %source-dir (dirname (current-filename))) + +(define git-file? + (let* ((pipe (with-directory-excursion %source-dir + (open-pipe* OPEN_READ "git" "ls-files"))) + (files (let loop ((lines '())) + (match (read-line pipe) + ((? eof-object?) + (reverse lines)) + (line + (loop (cons line lines)))))) + (status (close-pipe pipe))) + (lambda (file stat) + (match (stat:type stat) + ('directory #t) + ((or 'regular 'symlink) + (any (cut string-suffix? <> file) files)) + (_ #f))))) + +;; TODO: Contribute upstream to Guix and delete. +(define sph-lib + (package + (name "sph-lib") + (version "2021-01-05") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sph-mn/sph-lib") + (commit "2b0474218e51c1debb4de7b932a0e1c8bff4577c"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0yz8igkv725ddjlss4jhzzwam3p4zkw38z45pydsdv4q912qjxml")))) + (build-system guile-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-build-errors + (lambda _ + (substitute* "modules/sph/documentation.scm" + (("\\(define output-format-markdown" all) + (string-append "(define default-format-arguments)\n" all))) + (chdir "modules") + (delete-file "sph/documentation/itpn.scm") + (delete-file-recursively "test")))))) + (inputs + `(("guile" ,guile-3.0) + ("guile-fibers" ,guile-fibers) + ("guile-reader" ,guile-reader))) + (home-page "https://github.com/sph-mn/sph-lib") + (synopsis "Collection of guile scheme libraries") + (description "Collection of guile scheme libraries") + (license license:gpl3+))) + +;; TODO: Contribute upstream to Guix and delete. +(define sph-sc + (package + (name "sph-sc") + (version "2021-02-02") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sph-mn/sph-sc") + (commit "42c992737a5a1a176706c9a3c30c32ca3828476c"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0f3nssnqpqbm5wfv53lg8wi3dcpc0l9qyysd9r1bvig343gs79lm")))) + (build-system guile-build-system) + (inputs + `(("bash" ,bash) + ("guile" ,guile-3.0) + ("sph-lib" ,sph-lib))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'fix-build-errors + (lambda* (#:key outputs #:allow-other-keys) + (copy-recursively "other/sc-format/modules" "modules") + (chdir "modules") + (delete-file-recursively "test"))) + (add-after 'install 'install-executables + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (string-append (assoc-ref outputs "out"))) + (bin (string-append out "/bin")) + (version ,(version-major+minor (package-version guile-3.0))) + (scm (string-append out "/share/guile/site/" version)) + (go (string-append out "/share/guile/" version "/site-ccache"))) + (mkdir bin) + (for-each (lambda (executable) + (let ((installed-executable (string-append bin "/" (basename executable)))) + (copy-file executable installed-executable) + (wrap-program installed-executable + `("GUILE_LOAD_PATH" ":" prefix + (,scm ,(getenv "GUILE_LOAD_PATH"))) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix + (,go ,(getenv "GUILE_LOAD_COMPILED_PATH")))))) + (list "../exe/sc" + "../other/sc-format/exe/sc-format")))))))) + (home-page "https://github.com/sph-mn/sph-sc") + (synopsis "Compile scheme-like S-expressions to C") + (description "Compile scheme-like S-expressions to C") + (license license:gpl3+))) + +(package + (name "extent-sampling") + (version "0.1.0") + (home-page "https://git.systemreboot.net/guile-xapian") + (source (local-file %source-dir + #:recursive? #t + #:select? git-file?)) + (build-system cmake-build-system) + (arguments + '(#:tests? #f ; no tests + #:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings + (inputs + `(("gsl" ,gsl) + ("guile" ,guile-3.0))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("sph-sc" ,sph-sc))) + (synopsis "Extent sampling library") + (description "Extent sampling library") + (license license:gpl3+)) -- cgit v1.2.3