From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42292) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePmQV-0003Ao-GV for guix-patches@gnu.org; Fri, 15 Dec 2017 04:37:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePmQQ-0004aj-GV for guix-patches@gnu.org; Fri, 15 Dec 2017 04:37:05 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:54172) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePmQQ-0004Zn-BY for guix-patches@gnu.org; Fri, 15 Dec 2017 04:37:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ePmQP-00039P-VW for guix-patches@gnu.org; Fri, 15 Dec 2017 04:37:01 -0500 Subject: [bug#28832] [PATCH 1/3] gnu: Add emacs-json-reformat. Resent-Message-ID: From: Oleg Pykhalov References: <87lgke3vlz.fsf@gmail.com> <20171014102915.11778-1-go.wigust@gmail.com> <87y3o6uheo.fsf@gnu.org> <87d13yiw6w.fsf@gnu.org> <87609cluzf.fsf@gmail.com> <87zi6os3u3.fsf@gnu.org> <87fu8famhm.fsf@gmail.com> Date: Fri, 15 Dec 2017 12:36:28 +0300 In-Reply-To: <87fu8famhm.fsf@gmail.com> (Alex Kost's message of "Tue, 12 Dec 2017 20:23:49 +0300") Message-ID: <877etofi3n.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" 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: Alex Kost Cc: 28832@debbugs.gnu.org --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-emacs-build-system-Add-EMACSLOADPATH.patch Content-Transfer-Encoding: quoted-printable Content-Description: [PATCH] emacs-build-system: Add EMACSLOADPATH. From=20adda59022a61dfcf2add1d9f01d02df4be90a0f1 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Wed, 13 Dec 2017 08:10:21 +0300 Subject: [PATCH] emacs-build-system: Add EMACSLOADPATH. * guix/build/emacs-build-system.scm: Add EMACSLOADPATH. =2D-- guix/build/emacs-build-system.scm | 47 +++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 47 insertions(+) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-sys= tem.scm index bd0d2e026..06479bf6b 100644 =2D-- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -2,6 +2,7 @@ ;;; Copyright =C2=A9 2015 Federico Beffa ;;; Copyright =C2=A9 2016 David Thompson ;;; Copyright =C2=A9 2016 Alex Kost +;;; Copyright =C2=A9 2017 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -183,6 +184,10 @@ store in '.el' files." "Check if NAME correspond to the name of an Emacs package." (string-prefix? "emacs-" name)) =20 +(define (string-drop-emacs value) + "Drops `emacs-' from a string." + (string-drop value 6)) + (define (emacs-inputs inputs) "Retrieve the list of Emacs packages from INPUTS." (filter (match-lambda @@ -222,6 +227,47 @@ second hyphen. This corresponds to 'name-version' as = used in ELPA packages." strip-store-file-name) store-dir)) =20 +(define (store-directory->package-name store-dir) + "Extract package name from STORE-DIR." + (let-values (((name _) ((compose package-name->name+version + strip-store-file-name) + store-dir))) + name)) + +(define (store-directory->package-version store-dir) + "Extract package version from STORE-DIR." + (let-values (((_ version) ((compose package-name->name+version + strip-store-file-name) + store-dir))) + version)) + +(define* (setup-environment #:key inputs #:allow-other-keys) + "Export the variable EMACSLOADPATH, which are based on INPUTS respective= ly." + (let* ((filtered-inputs (emacs-inputs inputs)) + (emacs-input-dir (cdr (assoc "emacs" filtered-inputs))) + (inputs-dirs (cdr filtered-inputs))) + ;; EMACSLOADPATH is where Emacs looks for the source code of the build= 's + ;; dependencies. + (setenv "EMACSLOADPATH" + (string-append emacs-input-dir "/share/emacs/" + (store-directory->package-version emacs-input-d= ir) + "/lisp")) + (for-each + (lambda (input) + (let ((store-item (cdr input))) + (setenv "EMACSLOADPATH" + (string-append + (or (getenv "EMACSLOADPATH") "") + ":" store-item %install-suffix "/" + ((compose string-drop-emacs store-directory->package-nam= e) + store-item))))) + ((compose (lambda (inputs) (alist-delete "emacs" inputs)) + (lambda (inputs) (alist-delete "source" inputs))) + (delete-duplicates inputs-dirs))) + (format #t "environment variable EMACSLOADPATH set to `~a'~%" + (getenv "EMACSLOADPATH")) + #t)) + (define %standard-phases (modify-phases gnu:%standard-phases (replace 'unpack unpack) @@ -229,6 +275,7 @@ second hyphen. This corresponds to 'name-version' as u= sed in ELPA packages." (delete 'check) (delete 'install) (replace 'build build) + (add-before 'build 'setup-environment setup-environment) (add-before 'build 'install install) (add-after 'install 'make-autoloads make-autoloads) (add-after 'make-autoloads 'patch-el-files patch-el-files) =2D-=20 2.15.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEc+OyAXw1EaDPCmAPckbhHGm3lWkFAlozl5wACgkQckbhHGm3 lWloIQ//X4kbK+twWgLdXeak2kskM0WpxxGLu4dwl0TRGJ+Sn2UH67FAVvVXGV/4 qR+m4xg74FAo2Ksrk11GiwuDJEoHDhMHE/VK6YhBzflFc8vpll1jpslRC68uGgcC vuUdF8a0z7RSSOeq2rkmoO+3+BHZoVcL5m09mHad1aMbc+Sk01XAFnbc2Qt6r/j2 X9jmnFiHZNg3EYaMBUJw1IjbvXShy4kqH5Zzq4oV5AIPwUlsIbBrt0NEJxRfnG9X i4ysKVSV7AzR9EVcRhzxoZ/2EYYTZneOEO145jIJhlPjJIG8eZ46OTqsZjaf+3Lg UrwbkOjm7GECXLprBSBTuqNqv2BP0Hm7/+NXs/olXeRWTijEnMZ3462eoHfkX7rY YwYHXnNxAKKrFp34MLkaVqXkdDzOF7P4WdrKYlHPCMI+XL5XAp3vlEpmnFHwIeB+ 9TT6MLsKEjqfEY3/dSnanb0V7sEeH/rt4CvXT/Wqz+jzDmUYX+KKLgqVeDkZZ1MI B24LUDJ/DM/Fuk3CQmVxlTS+WpK9boosvlekaIMfLRR9hzYuVsY72H6Vc0KGfEUI KiV2xANKPj8yeIlGfo1hziDHoGqk9rsdGwfcAr/8Oqv+x/4xyGvcrqUuSSuozIhT uuGDVKaPFs66aSjhjaAj+LCzvQtreS7aM3VUhmvhgBO0bxAJrHg= =gHQw -----END PGP SIGNATURE----- --==-=-=--