diff options
Diffstat (limited to 'gnu/packages/guile.scm')
-rw-r--r-- | gnu/packages/guile.scm | 141 |
1 files changed, 101 insertions, 40 deletions
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index abcefd32ed..90630e8a36 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -221,7 +221,7 @@ without requiring the source code to be rewritten.") (define-public guile-2.2 (package (inherit guile-2.0) (name "guile") - (version "2.2.2") + (version "2.2.2") ;TODO: Update to 2.2.3 (see below). (source (origin (method url-fetch) @@ -251,6 +251,21 @@ without requiring the source code to be rewritten.") (files '("lib/guile/2.2/site-ccache" "share/guile/site/2.2"))))))) +(define-public guile-2.2.3 + ;; TODO: Make it the new 'guile-2.2' on the next rebuild cycle. + (package + (inherit guile-2.2) + (version "2.2.3") + (source (origin (inherit (package-source guile-2.2)) + (uri (list (string-append "mirror://gnu/guile/guile-" + version ".tar.xz") + (string-append + "https://wingolog.org/priv/guile-" + version ".tar.xz"))) + (sha256 + (base32 + "11j01agvnci2cx32wwpqs9078856yxmvs15gcsz7ganpkj2ahlw3")))))) + (define-public guile-2.2/fixed ;; A package of Guile 2.2 that's rarely changed. It is the one used ;; in the `base' module, and thus changing it entails a full rebuild. @@ -1263,7 +1278,7 @@ key-value cache and store.") (define-public guile-wisp (package (name "guile-wisp") - (version "0.9.0") + (version "0.9.8") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/ArneBab/" @@ -1271,25 +1286,26 @@ key-value cache and store.") version ".tar.gz")) (sha256 (base32 - "0y5fxacalkgbv9s71h58vdvm2h2ln3rk024dd0vszwcf953as5fq")))) + "1f2bbicq1rxnwmiplrm4r75wj06w385mjkyvi7g4k740bgwcrzxr")))) (build-system gnu-build-system) (arguments - `(#:modules ((system base compile) - ,@%gnu-build-system-modules) + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 rdelim) + (ice-9 popen)) + #:phases (modify-phases %standard-phases - (add-before - 'configure 'substitute-before-config + (add-before 'configure 'substitute-before-config (lambda* (#:key inputs #:allow-other-keys) (let ((bash (assoc-ref inputs "bash"))) - ;; configure checks for guile-2.0, but ours is just named "guile" :) - (substitute* "configure" - (("guile-2.0") "guile")) ;; Puts together some test files with /bin/bash hardcoded (substitute* "Makefile.in" - (("/bin/bash") - (string-append bash "/bin/bash") )) + (("/usr/bin/env bash") + (string-append bash "/bin/bash")) + (("\\$\\(GUILE_EFFECTIVE_VERSION\\)/site") + "site/$(GUILE_EFFECTIVE_VERSION)")) ;use the right order #t))) ;; auto compilation breaks, but if we set HOME to /tmp, @@ -1299,37 +1315,33 @@ key-value cache and store.") (lambda _ (setenv "HOME" "/tmp") #t)) - (replace - 'install + (add-after 'install 'install-go-files (lambda* (#:key outputs inputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (module-dir (string-append out "/share/guile/site/2.0")) - (language-dir - (string-append module-dir "/language/wisp")) - (guild (string-append (assoc-ref inputs "guile") - "/bin/guild"))) - ;; Make installation directories. - (mkdir-p module-dir) - (mkdir-p language-dir) - - ;; copy the source - (copy-file "wisp-scheme.scm" - (string-append module-dir "/wisp-scheme.scm")) - (copy-file "language/wisp/spec.scm" - (string-append language-dir "/spec.scm")) - + (effective (read-line + (open-pipe* OPEN_READ + "guile" "-c" + "(display (effective-version))"))) + (module-dir (string-append out "/share/guile/site/" + effective)) + (object-dir (string-append out "/lib/guile/" effective + "/site-ccache")) + (prefix (string-length module-dir))) ;; compile to the destination - (compile-file "wisp-scheme.scm" - #:output-file (string-append - module-dir "/wisp-scheme.go")) - (compile-file "language/wisp/spec.scm" - #:output-file (string-append - language-dir "/spec.go")) + (for-each (lambda (file) + (let* ((base (string-drop (string-drop-right file 4) + prefix)) + (go (string-append object-dir base ".go"))) + (invoke "guild" "compile" "-L" module-dir + file "-o" go))) + (find-files module-dir "\\.scm$")) #t)))))) (home-page "http://draketo.de/english/wisp") (inputs - `(("guile" ,guile-2.0) - ("python" ,python))) + `(("guile" ,guile-2.2))) + (native-inputs + `(("python" ,python) + ("pkg-config" ,pkg-config))) (synopsis "Whitespace to lisp syntax for Guile") (description "Wisp is a syntax for Guile which provides a Python-like whitespace-significant language. It may be easier on the eyes for some @@ -1374,11 +1386,11 @@ users and in some situations.") (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs - `(("guile" ,guile-2.2) - ("guile-sdl" ,guile-sdl) + `(("guile-sdl" ,guile-sdl) ("guile-opengl" ,guile-opengl))) (inputs - `(("gsl" ,gsl) + `(("guile" ,guile-2.2) + ("gsl" ,gsl) ("freeimage" ,freeimage) ("mesa" ,mesa))) (synopsis "2D/3D game engine for GNU Guile") @@ -1492,6 +1504,55 @@ It currently supports MySQL, Postgres and SQLite3.") SQL databases. This package implements the interface for SQLite.") (license license:gpl2+))) +(define-public guile-dsv + (package + (name "guile-dsv") + (version "0.2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/artyom-poptsov/guile-dsv") + (commit "bdc5267d007478abc20ea96d7c459b7dd9560b3d"))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1irw6mz8998nwyhzrw9g94jcz60b9zljgqfmipaz1ybn8579qjx0")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) + (inputs `(("guile" ,guile-2.2))) + (propagated-inputs `(("guile-lib" ,guile-lib))) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'set-guilesitedir + (lambda _ + (substitute* "Makefile.in" + (("^guilesitedir =.*$") + "guilesitedir = \ +$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) + (substitute* "modules/Makefile.in" + (("^guilesitedir =.*$") + "guilesitedir = \ +$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) + (substitute* "modules/dsv/Makefile.in" + (("^guilesitedir =.*$") + "guilesitedir = \ +$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) + #t)) + (add-after 'unpack 'autoreconf + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (home-page "https://github.com/artyom-poptsov/guile-dsv") + (synopsis "DSV module for Guile") + (description + "Guile-DSV is a GNU Guile module for working with the +delimiter-separated values (DSV) data format. Guile-DSV supports the +Unix-style DSV format and RFC 4180 format.") + (license license:gpl3+))) + (define-public guile-xosd (package (name "guile-xosd") |