gnu: Add nomad.

* gnu/packages/guile-xyz.scm (nomad): New variable.
This commit is contained in:
Amar Singh 2019-07-10 16:46:35 +05:30 committed by Jan Nieuwenhuizen
parent c99f32b94e
commit e8c2da4104
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
1 changed files with 94 additions and 0 deletions

View File

@ -56,6 +56,7 @@
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gperf) #:use-module (gnu packages gperf)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
@ -71,6 +72,7 @@
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages networking) #:use-module (gnu packages networking)
#:use-module (gnu packages noweb) #:use-module (gnu packages noweb)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
@ -2441,3 +2443,95 @@ in C using Gtk+-3 and WebKitGtk.")
"Guile-JPEG is a Scheme library to parse JPEG image files and to "Guile-JPEG is a Scheme library to parse JPEG image files and to
perform geometrical transforms on JPEG images.") perform geometrical transforms on JPEG images.")
(license license:gpl3+)))) (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+)))