From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:41487) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1hzy1t-0003kf-36 for guix-patches@gnu.org; Tue, 20 Aug 2019 02:54:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hzy1q-0005jH-RF for guix-patches@gnu.org; Tue, 20 Aug 2019 02:54:05 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:52003) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hzy1q-0005jA-MD for guix-patches@gnu.org; Tue, 20 Aug 2019 02:54:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hzy1q-000476-Kb for guix-patches@gnu.org; Tue, 20 Aug 2019 02:54:02 -0400 Subject: [bug#37094] [PATCH 1-3/3] gnu: Add nomad. Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:41409) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1hzy0t-0003SY-07 for guix-patches@gnu.org; Tue, 20 Aug 2019 02:53:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hzy0q-0004on-Nz for guix-patches@gnu.org; Tue, 20 Aug 2019 02:53:02 -0400 Received: from knopi.disroot.org ([178.21.23.139]:37714) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hzy0q-0004mX-1j for guix-patches@gnu.org; Tue, 20 Aug 2019 02:53:00 -0400 From: Amar Singh Date: Tue, 20 Aug 2019 12:22:36 +0530 Message-ID: <85sgpwcoqz.fsf@disroot.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 37094@debbugs.gnu.org Cc: mike.rosset@gmail.com --=-=-= Content-Type: text/plain >From the package description: Nomad is an Emacs-like Web Browser built using Webkitgtk and Emacsy. It has a small C backend and most browser features are fully programmable in Guile. It has hooks, keymaps, and self documentation features. Though it requires a few changes to existing packages: Patches: 1. Shroud related patches a. update to 0.1.2: brings Guile-2.2 support Related issue: https://issues.guix.gnu.org/issue/36576 2. Emacsy related patches a. Add guile-emacsy package, $ guix size emacsy ... total: 1136.3 MiB versus: $ guix size guile-emacsy ... total: 132.3 MiB Related issue: https://issues.guix.gnu.org/issue/36151 (Discussion about "emacsy" vs "guile-emacsy" naming) 3. Nomad related patches a. Add 'Nomad' package in guile-xyz.scm 4. [Optional] Emacsy package can also be cleaned up a bit, mostly removal of propagated-inputs. Though that's a seperate issue. [patch 04 attached] Cheers, amar --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-gnu-Add-guile-emacsy.patch >From 1f5cb19d4e44e2f99250499b7a4f756cddb21d13 Mon Sep 17 00:00:00 2001 From: Amar Singh Date: Mon, 8 Jul 2019 12:04:56 +0530 Subject: [PATCH 1/4] gnu: Add guile-emacsy. * (guile-emacsy): New variable. Emacsy is a library for Guile. Emacsy package is too heavy for use as a dependency for other packages: $ guix size emacsy ... total: 1136.3 MiB versus: $ guix size guile-emacsy ... total: 132.3 MiB --- gnu/packages/guile-xyz.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 91054fef25..760646259e 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2430,6 +2430,36 @@ comes with a simple counter example using FreeGLUT and browser examples in C using Gtk+-3 and WebKitGtk.") (license license:gpl3+))) +(define-public guile-emacsy + (let ((commit "f3bf0dbd803d7805b6ae8303253507ad13922293")) + (package + (inherit emacsy) + (name "guile-emacsy") + (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")) -- 2.22.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-gnu-shroud-Update-to-0.1.2.patch >From 6c3d8835105c09eda6215e4b0d8847f4a6b6b3e8 Mon Sep 17 00:00:00 2001 From: Amar Singh Date: Sun, 11 Aug 2019 03:44:16 +0530 Subject: [PATCH 2/4] gnu: shroud: Update to 0.1.2. * gnu/packages/password-utils.scm (shroud): Update to 0.1.2. Shroud now builds with Guile-2.2. Remove hardcoded '2.0' string. --- gnu/packages/password-utils.scm | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 49024b26c4..6ca16025ef 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -236,28 +236,40 @@ platforms.") (define-public shroud (package (name "shroud") - (version "0.1.1") + (version "0.1.2") (source (origin (method url-fetch) (uri (string-append "https://files.dthompson.us/shroud/shroud-" version ".tar.gz")) (sha256 (base32 - "1y43yhgy2zbrk5bqj3qyx9rkcz2bma9sinlrg7dip3jqms9gq4lr")))) + "1l2shrhvcwfzkar9qiwb75nhcqmx25iz55lzmz0c187nbjhqzi9p")))) (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) (arguments - '(#:phases + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 popen) + (ice-9 rdelim)) + #:phases (modify-phases %standard-phases (add-after 'install 'wrap-shroud - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (ccachedir (string-append out "/lib/guile/2.0/ccache")) + (guile (assoc-ref inputs "guile")) + (effective (read-line + (open-pipe* OPEN_READ + (string-append guile "/bin/guile") + "-c" "(display (effective-version))"))) + (ccachedir (string-append out + "/lib/guile/" effective "/site-ccache")) (prog (string-append out "/bin/shroud"))) (wrap-program prog `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,ccachedir))) #t)))))) (inputs - `(("guile" ,guile-2.0) + `(("guile" ,guile-2.2) ("gnupg" ,gnupg) ("xclip" ,xclip))) (synopsis "GnuPG-based secret manager") -- 2.22.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0003-gnu-Add-nomad.patch >From ac789e669024af96627934d9509b1673bb8fe54e Mon Sep 17 00:00:00 2001 From: Amar Singh Date: Wed, 10 Jul 2019 16:46:35 +0530 Subject: [PATCH 3/4] gnu: Add nomad. * gnu/packages/guile-xyz.scm (nomad): New variable. --- gnu/packages/guile-xyz.scm | 91 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 760646259e..0fed3c6da5 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -59,6 +59,7 @@ #:use-module (gnu packages gperf) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages gnupg) #:use-module (gnu packages hurd) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) @@ -71,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) @@ -2615,3 +2617,92 @@ GObject Introspection and (some of) the GObject and Glib libraries, as well as additional (G-Golf) utilities - used to import GObject libraries and build their corresponding G-Golf high level API.") (license license:lgpl3+))))) + +(define-public nomad + (package + (name "nomad") + (version "v0.1.0-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 + "0bffysgq3swpx2qyi8fnkyjfsla92haqhdq17m31wa3yzkpqq3a6")))) + (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" ,guile-emacsy) + ("glib" ,glib) + ("dbus-glib" ,dbus-glib) + ("gtk+" ,gtk+) + ("gtksourceview" ,gtksourceview) + ("webkitgtk" ,webkitgtk) + ("xorg-server" ,xorg-server))) + (propagated-inputs + `(("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+))) -- 2.22.1 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0004-gnu-emacsy-cleanup-build.patch Content-Transfer-Encoding: quoted-printable >From b8cc0e6db1abcb395df12437e16ba39007dff33d Mon Sep 17 00:00:00 2001 From: Amar Singh Date: Wed, 10 Jul 2019 16:45:50 +0530 Subject: [PATCH 4/4] gnu: emacsy: cleanup build fix conflicts; emacsy requires guile-2.2.4 but found guile-2.2.6 in profile= etc. build: add phase 'wrap-binaries bulid: glib-or-gtk-build-system wraps binaries to work with glib or gtk propagated-inputs: remove all but glib-network and gsettings --- gnu/packages/guile-xyz.scm | 40 ++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 0fed3c6da5..d515e1ed5e 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -21,6 +21,7 @@ ;;; Copyright =C2=A9 2018 Pierre-Antoine Rouby ;;; Copyright =C2=A9 2018 Eric Bavier ;;; Copyright =C2=A9 2019 swedebugia +;;; Copyright (C) 2019 by Amar Singh ;;; ;;; This file is part of GNU Guix. ;;; @@ -2393,7 +2394,7 @@ more expressive and flexible than the traditional @co= de{format} procedure.") (sha256 (base32 "1cpb85dl1nibd34c2x2h7vfmjpkgh353p5b1w20v6cs6gmvgg4np")))) - (build-system gnu-build-system) + (build-system glib-or-gtk-build-system) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -2405,22 +2406,49 @@ 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 glib-or-gtk-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" "gu= ile-readline"))) + (scm-path (map (cut string-append <> "/share/guile/sit= e/" effective) `(,out ,@deps))) + (go-path (map (cut string-append <> "/lib/guile/" effe= ctive "/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 --=20 2.22.1 --=-=-=--