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 © 2018 Pierre-Antoine Rouby ;;; Copyright © 2018 Eric Bavier ;;; Copyright © 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 @code{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" "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 -- 2.22.1