From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathieu Lirzin Subject: [PATCH 1/4] build: Add more variables to (guix config). Date: Mon, 27 Jul 2015 23:48:37 +0200 Message-ID: <1438033720-30958-2-git-send-email-mthl@openmailbox.org> References: <1438033720-30958-1-git-send-email-mthl@openmailbox.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2.4.3" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:35460) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZJqIw-0007ex-BU for guix-devel@gnu.org; Mon, 27 Jul 2015 17:51:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZJqIr-00062V-Pk for guix-devel@gnu.org; Mon, 27 Jul 2015 17:51:26 -0400 Received: from smtp23.openmailbox.org ([62.4.1.57]:35787) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZJqIr-000611-Gs for guix-devel@gnu.org; Mon, 27 Jul 2015 17:51:21 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.openmailbox.org (Postfix) with ESMTP id B32592E0490 for ; Mon, 27 Jul 2015 23:51:20 +0200 (CEST) In-Reply-To: <1438033720-30958-1-git-send-email-mthl@openmailbox.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org This is a multi-part message in MIME format. --------------2.4.3 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: quoted-printable * guix/config.scm.in (%prefix, %guile-module-dir): New variables. * emacs/guix-helper.scm.in: Rename to ... * emacs/guix-helper.scm: ... this. New file. Use them. * .gitignore, configure.ac: Adjust accordingly. --- .gitignore | 1 - configure.ac | 3 +-- emacs/guix-helper.scm | 66 ++++++++++++++++++++++++++++++++++++++++++= ++++++ emacs/guix-helper.scm.in | 65 ------------------------------------------= ----- guix/config.scm.in | 11 +++++++- 5 files changed, 77 insertions(+), 69 deletions(-) create mode 100644 emacs/guix-helper.scm delete mode 100644 emacs/guix-helper.scm.in --------------2.4.3 Content-Type: text/x-patch; name="0001-build-Add-more-variables-to-guix-config.patch" Content-Disposition: inline; filename="0001-build-Add-more-variables-to-guix-config.patch" Content-Transfer-Encoding: quoted-printable diff --git a/.gitignore b/.gitignore index c7a6cdd..a3bd340 100644 --- a/.gitignore +++ b/.gitignore @@ -119,7 +119,6 @@ GTAGS /emacs/Makefile.in /emacs/Makefile /emacs/guix-autoloads.el -/emacs/guix-helper.scm /emacs/guix-init.el /emacs/guix-profiles.el /doc/os-config-bare-bones.texi diff --git a/configure.ac b/configure.ac index 2c8b9f0..c873ef3 100644 --- a/configure.ac +++ b/configure.ac @@ -201,7 +201,6 @@ AM_CONDITIONAL([HAVE_EMACS], [test "x$EMACS" !=3D "xn= o"]) emacsuidir=3D"${guilemoduledir}/guix/emacs" AC_SUBST([emacsuidir]) AC_CONFIG_FILES([emacs/guix-init.el - emacs/guix-profiles.el - emacs/guix-helper.scm]) + emacs/guix-profiles.el]) =20 AC_OUTPUT diff --git a/emacs/guix-helper.scm b/emacs/guix-helper.scm new file mode 100644 index 0000000..5aa7d0e --- /dev/null +++ b/emacs/guix-helper.scm @@ -0,0 +1,66 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2014 Alex Kost +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (a= t +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +;;; Commentary: + +;; This is an auxiliary file for the Emacs UI. It is used to add Guix +;; directories to path variables and to load the main code. + +;;; Code: + +(use-modules (ice-9 regex) + (srfi srfi-26) + (guix config)) + +(define %guix-dir) + +;; The code is taken from =E2=80=98guix=E2=80=99 executable script +(define (set-paths!) + (define-syntax-rule (push! elt v) (set! v (cons elt v))) + + (define config-lookup + (let ((config '(("prefix" . %prefix) + ("guilemoduledir" . %guile-module-dir))) + (var-ref-regexp (make-regexp "\\$\\{([a-z]+)\\}"))) + (define (expand-var-ref match) + (lookup (match:substring match 1))) + (define (expand str) + (regexp-substitute/global #f var-ref-regexp str + 'pre expand-var-ref 'post)) + (define (lookup name) + (expand (assoc-ref config name))) + lookup)) + + (let ((module-dir (config-lookup "guilemoduledir")) + (updates-dir (and=3D> (or (getenv "XDG_CONFIG_HOME") + (and=3D> (getenv "HOME") + (cut string-append <> "/.config")= )) + (cut string-append <> "/guix/latest")))) + (push! module-dir %load-path) + (push! module-dir %load-compiled-path) + (if (and updates-dir (file-exists? updates-dir)) + (begin + (set! %guix-dir updates-dir) + (push! updates-dir %load-path) + (push! updates-dir %load-compiled-path)) + (set! %guix-dir module-dir)))) + +(set-paths!) + +(load-from-path "guix-main") + diff --git a/emacs/guix-helper.scm.in b/emacs/guix-helper.scm.in deleted file mode 100644 index 0bbd36b..0000000 --- a/emacs/guix-helper.scm.in +++ /dev/null @@ -1,65 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright =C2=A9 2014 Alex Kost -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (a= t -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -;;; Commentary: - -;; This is an auxiliary file for the Emacs UI. It is used to add Guix -;; directories to path variables and to load the main code. - -;;; Code: - -(use-modules (ice-9 regex) - (srfi srfi-26)) - -(define %guix-dir) - -;; The code is taken from =E2=80=98guix=E2=80=99 executable script -(define (set-paths!) - (define-syntax-rule (push! elt v) (set! v (cons elt v))) - - (define config-lookup - (let ((config '(("prefix" . "@prefix@") - ("guilemoduledir" . "@guilemoduledir@"))) - (var-ref-regexp (make-regexp "\\$\\{([a-z]+)\\}"))) - (define (expand-var-ref match) - (lookup (match:substring match 1))) - (define (expand str) - (regexp-substitute/global #f var-ref-regexp str - 'pre expand-var-ref 'post)) - (define (lookup name) - (expand (assoc-ref config name))) - lookup)) - - (let ((module-dir (config-lookup "guilemoduledir")) - (updates-dir (and=3D> (or (getenv "XDG_CONFIG_HOME") - (and=3D> (getenv "HOME") - (cut string-append <> "/.config")= )) - (cut string-append <> "/guix/latest")))) - (push! module-dir %load-path) - (push! module-dir %load-compiled-path) - (if (and updates-dir (file-exists? updates-dir)) - (begin - (set! %guix-dir updates-dir) - (push! updates-dir %load-path) - (push! updates-dir %load-compiled-path)) - (set! %guix-dir module-dir)))) - -(set-paths!) - -(load-from-path "guix-main") - diff --git a/guix/config.scm.in b/guix/config.scm.in index eaadae9..4032ee8 100644 --- a/guix/config.scm.in +++ b/guix/config.scm.in @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2012, 2013, 2014 Ludovic Court=C3=A8s +;;; Copyright =C2=A9 2015 Mathieu Lirzin ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,7 +32,9 @@ %nix-instantiate %gzip %bzip2 - %xz)) + %xz + %prefix + %guile-module-dir)) =20 ;;; Commentary: ;;; @@ -90,4 +93,10 @@ (define %xz "@XZ@") =20 +(define %prefix + "@prefix@") + +(define %guile-module-dir + "@guilemoduledir@") + ;;; config.scm ends here --------------2.4.3--