diff options
Diffstat (limited to 'gnu/packages/guile-xyz.scm')
-rw-r--r-- | gnu/packages/guile-xyz.scm | 165 |
1 files changed, 160 insertions, 5 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 16e30b9de7..7dff0c6269 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -21,6 +21,7 @@ ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2019 swedebugia <swedebugia@riseup.net> +;;; Copyright © 2019 Amar Singh <nly@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,6 +56,7 @@ #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages gnupg) #:use-module (gnu packages gperf) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) @@ -70,6 +72,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) #:use-module (gnu packages noweb) + #:use-module (gnu packages password-utils) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -2350,22 +2353,52 @@ more expressive and flexible than the traditional @code{format} procedure.") ("pkg-config" ,pkg-config) ("texinfo" ,texinfo) ("texlive" ,(texlive-union (list texlive-generic-epsf))))) - (propagated-inputs + (inputs `(("dbus-glib" ,dbus-glib) ("guile" ,guile-2.2) ("guile-lib" ,guile-lib) ("guile-readline" ,guile-readline) - ("glib-networking" ,glib-networking) ("freeglut" ,freeglut) - ("gssettings-desktop-schemas" ,gsettings-desktop-schemas) ("webkitgtk" ,webkitgtk))) + (propagated-inputs + `(("glib-networking" ,glib-networking) + ("gssettings-desktop-schemas" ,gsettings-desktop-schemas))) (arguments - `(#:phases + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 popen) + (ice-9 rdelim) + (ice-9 regex) + (ice-9 ftw) + (srfi srfi-26)) + #:phases (modify-phases %standard-phases (add-before 'configure 'setenv (lambda _ (setenv "GUILE_AUTO_COMPILE" "0") - #t))))) + #t)) + (add-after 'install 'wrap-binaries + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (effective (read-line + (open-pipe* OPEN_READ + "guile" "-c" + "(display (effective-version))"))) + (deps (map (cut assoc-ref inputs <>) + '("guile-lib" "guile-readline"))) + (scm-path (map (cut string-append <> "/share/guile/site/" + effective) `(,out ,@deps))) + (go-path (map (cut string-append <> "/lib/guile/" effective + "/site-ccache/") `(,out ,@deps))) + (examples (filter (cut string-match "emacsy" <>) + (scandir (string-append out "/bin/")))) + (progs (map (cut string-append out "/bin/" <>) + examples))) + (map (cut wrap-program <> + `("GUILE_LOAD_PATH" ":" prefix ,scm-path) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix ,go-path)) + progs) + #t)))))) (home-page "https://savannah.nongnu.org/projects/emacsy") (synopsis "Embeddable GNU Emacs-like library using Guile") (description @@ -2377,6 +2410,36 @@ comes with a simple counter example using FreeGLUT and browser examples in C using Gtk+-3 and WebKitGtk.") (license license:gpl3+))) +(define-public emacsy-minimal + (let ((commit "f3bf0dbd803d7805b6ae8303253507ad13922293")) + (package + (inherit emacsy) + (name "emacsy-minimal") + (version (git-version "v0.4.1" "19" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/emacsy.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ivy28km1p7nlrf63xx3hvrpxf5ld5amk1wcan3k7sqv1kq9mqdb")))) + (build-system gnu-build-system) + (inputs + `(("guile" ,guile-2.2) + ("guile-lib" ,guile-lib) + ("guile-readline" ,guile-readline))) + (propagated-inputs '()) + (arguments + `(#:configure-flags '("--without-examples") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'setenv + (lambda _ + (setenv "GUILE_AUTO_COMPILE" "0") + #t)))))))) + (define-public guile-jpeg (let ((commit "6a1673578b297c2c1b28e44a76bd5c49e76a5046") (revision "0")) @@ -2410,3 +2473,95 @@ in C using Gtk+-3 and WebKitGtk.") "Guile-JPEG is a Scheme library to parse JPEG image files and to perform geometrical transforms on JPEG images.") (license license:gpl3+)))) + +(define-public nomad + (package + (name "nomad") + (version "0.1.1-alpha") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/nomad.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0abz07hl5dh802ciy71xzkvkhyryypq1i94wna40a2wndbd73f7z")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("bash" ,bash) + ("pkg-config" ,pkg-config) + ("libtool" ,libtool) + ("guile" ,guile-2.2) + ("glib:bin" ,glib "bin"))) + (inputs + `(("guile" ,guile-2.2) + ("guile-lib" ,guile-lib) + ("guile-gcrypt" ,guile-gcrypt) + ("guile-readline" ,guile-readline) + ("gnutls" ,gnutls) + ("shroud" ,shroud) + ("emacsy" ,emacsy-minimal) + ("glib" ,glib) + ("dbus-glib" ,dbus-glib) + ("gtk+" ,gtk+) + ("gtksourceview" ,gtksourceview) + ("webkitgtk" ,webkitgtk) + ("xorg-server" ,xorg-server))) + (propagated-inputs + `(("glib" ,glib) + ("glib-networking" ,glib-networking) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 popen) + (ice-9 rdelim) + (srfi srfi-26)) + #:phases + (modify-phases %standard-phases + (add-before 'check 'start-xorg-server + (lambda* (#:key inputs #:allow-other-keys) + ;; The test suite requires a running X server. + (system (format #f "~a/bin/Xvfb :1 &" + (assoc-ref inputs "xorg-server"))) + (setenv "DISPLAY" ":1") + #t)) + (add-after 'install 'wrap-binaries + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (gio-deps (map (cut assoc-ref inputs <>) '("glib-networking" + "glib"))) + (gio-mod-path (map (cut string-append <> "/lib/gio/modules") + gio-deps)) + (effective (read-line (open-pipe* + OPEN_READ + "guile" "-c" + "(display (effective-version))"))) + (deps (map (cut assoc-ref inputs <>) + '("emacsy" "guile-lib" "guile-readline" + "shroud"))) + (scm-path (map (cut string-append <> + "/share/guile/site/" effective) + `(,out ,@deps))) + (go-path (map (cut string-append <> + "/lib/guile/" effective "/site-ccache") + `(,out ,@deps))) + (progs (map (cut string-append out "/bin/" <>) + '("nomad")))) + (map (cut wrap-program <> + `("GIO_EXTRA_MODULES" ":" prefix ,gio-mod-path) + `("GUILE_LOAD_PATH" ":" prefix ,scm-path) + `("GUILE_LOAD_COMPILED_PATH" ":" + prefix ,go-path)) + progs) + #t)))))) + (home-page "https://savannah.nongnu.org/projects/nomad/") + (synopsis "Extensible Web Browser in Guile Scheme") + (description "Nomad is an Emacs-like Web Browser built using Webkitgtk and +Emacsy. It has a small C layer and most browser features are fully +programmable in Guile. It has hooks, keymaps, and self documentation +features.") + (license license:gpl3+))) |