* [PATCH 1/4] build: Add more variables to (guix config).
2015-07-27 21:48 [PATCH 0/4] Emacs Interface build system Mathieu Lirzin
@ 2015-07-27 21:48 ` Mathieu Lirzin
2015-07-29 8:35 ` Alex Kost
2015-08-18 15:15 ` Ludovic Courtès
2015-07-27 21:48 ` [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks Mathieu Lirzin
` (2 subsequent siblings)
3 siblings, 2 replies; 26+ messages in thread
From: Mathieu Lirzin @ 2015-07-27 21:48 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 640 bytes --]
* 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
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-build-Add-more-variables-to-guix-config.patch --]
[-- Type: text/x-patch; name="0001-build-Add-more-variables-to-guix-config.patch", Size: 6857 bytes --]
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" != "xno"])
emacsuidir="${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])
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 © 2014 Alex Kost <alezost@gmail.com>
+;;;
+;;; 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 (at
+;;; 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 <http://www.gnu.org/licenses/>.
+
+;;; 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 ‘guix’ 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=> (or (getenv "XDG_CONFIG_HOME")
+ (and=> (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 © 2014 Alex Kost <alezost@gmail.com>
-;;;
-;;; 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 (at
-;;; 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 <http://www.gnu.org/licenses/>.
-
-;;; 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 ‘guix’ 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=> (or (getenv "XDG_CONFIG_HOME")
- (and=> (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 © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -31,7 +32,9 @@
%nix-instantiate
%gzip
%bzip2
- %xz))
+ %xz
+ %prefix
+ %guile-module-dir))
;;; Commentary:
;;;
@@ -90,4 +93,10 @@
(define %xz
"@XZ@")
+(define %prefix
+ "@prefix@")
+
+(define %guile-module-dir
+ "@guilemoduledir@")
+
;;; config.scm ends here
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 1/4] build: Add more variables to (guix config).
2015-07-27 21:48 ` [PATCH 1/4] build: Add more variables to (guix config) Mathieu Lirzin
@ 2015-07-29 8:35 ` Alex Kost
2015-08-06 17:38 ` Mathieu Lirzin
2015-08-18 15:15 ` Ludovic Courtès
1 sibling, 1 reply; 26+ messages in thread
From: Alex Kost @ 2015-07-29 8:35 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Mathieu Lirzin (2015-07-28 00:48 +0300) wrote:
> * 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.
I'm not sure about this patch. See
<http://lists.gnu.org/archive/html/guix-devel/2014-08/msg00164.html>
(search for "guix-helper" there).
It may not be reliable to use other guix modules in
"emacs/guix-helper.scm" (or in "scripts/guix") because the path of guix
modules may not be in guile %load-path. The main purpose of these files
("emacs/guix-helper.scm" and "scripts/guix") is augmenting %load-path
and %load-compiled-path, so that guix modules could be used later on.
So if (for some strange reason) guile will not know where to find guix
modules, Geiser REPL will not be started as (guix config) module will be
missing.
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 1/4] build: Add more variables to (guix config).
2015-07-27 21:48 ` [PATCH 1/4] build: Add more variables to (guix config) Mathieu Lirzin
2015-07-29 8:35 ` Alex Kost
@ 2015-08-18 15:15 ` Ludovic Courtès
2015-08-25 21:14 ` Mathieu Lirzin
1 sibling, 1 reply; 26+ messages in thread
From: Ludovic Courtès @ 2015-08-18 15:15 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Mathieu Lirzin <mthl@openmailbox.org> skribis:
> * guix/config.scm.in (%prefix, %guile-module-dir): New variables.
In general augmenting (guix config) is problematic because of the way
‘guix pull’ works: (guix config) is always preserved, so if the pulled
code expects new variables there, it may be disappointed.
Ludo’.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 1/4] build: Add more variables to (guix config).
2015-08-18 15:15 ` Ludovic Courtès
@ 2015-08-25 21:14 ` Mathieu Lirzin
0 siblings, 0 replies; 26+ messages in thread
From: Mathieu Lirzin @ 2015-08-25 21:14 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
ludo@gnu.org (Ludovic Courtès) writes:
> Mathieu Lirzin <mthl@openmailbox.org> skribis:
>
>> * guix/config.scm.in (%prefix, %guile-module-dir): New variables.
>
> In general augmenting (guix config) is problematic because of the way
> ‘guix pull’ works: (guix config) is always preserved, so if the pulled
> code expects new variables there, it may be disappointed.
Thanks for the explanation.
--
Mathieu Lirzin
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks.
2015-07-27 21:48 [PATCH 0/4] Emacs Interface build system Mathieu Lirzin
2015-07-27 21:48 ` [PATCH 1/4] build: Add more variables to (guix config) Mathieu Lirzin
@ 2015-07-27 21:48 ` Mathieu Lirzin
2015-07-27 21:56 ` Mathieu Lirzin
2015-07-29 8:35 ` Alex Kost
2015-07-27 21:48 ` [PATCH 3/4] emacs: Move guix-guile-program to 'guix-config' Mathieu Lirzin
2015-07-27 21:48 ` [PATCH 4/4] emacs: Use only one guix-load-path variable Mathieu Lirzin
3 siblings, 2 replies; 26+ messages in thread
From: Mathieu Lirzin @ 2015-07-27 21:48 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 898 bytes --]
* emacs/guix-config.el.in: New file.
* emacs/guix-{init,profiles}.el.in: Rename to ...
* emacs/guix-{init,profiles}.el: ... these. New files.
Use 'guix-config'.
* .gitignore, configure.ac: Adjust accordingly.
---
.gitignore | 3 +--
configure.ac | 19 +++++++-------
emacs/guix-config.el.in | 33 ++++++++++++++++++++++++
emacs/guix-init.el | 20 +++++++++++++++
emacs/guix-init.el.in | 19 --------------
emacs/guix-profiles.el | 65 +++++++++++++++++++++++++++++++++++++++++++++++
emacs/guix-profiles.el.in | 62 --------------------------------------------
7 files changed, 128 insertions(+), 93 deletions(-)
create mode 100644 emacs/guix-config.el.in
create mode 100644 emacs/guix-init.el
delete mode 100644 emacs/guix-init.el.in
create mode 100644 emacs/guix-profiles.el
delete mode 100644 emacs/guix-profiles.el.in
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0002-build-Produce-guix-config-instead-of-using-compile-t.patch --]
[-- Type: text/x-patch; name="0002-build-Produce-guix-config-instead-of-using-compile-t.patch", Size: 9021 bytes --]
diff --git a/.gitignore b/.gitignore
index a3bd340..db7ddb7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -119,8 +119,7 @@ GTAGS
/emacs/Makefile.in
/emacs/Makefile
/emacs/guix-autoloads.el
-/emacs/guix-init.el
-/emacs/guix-profiles.el
+/emacs/guix-config.el
/doc/os-config-bare-bones.texi
/doc/os-config-desktop.texi
/doc/*.1
diff --git a/configure.ac b/configure.ac
index c873ef3..3f625ea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -185,22 +185,21 @@ AM_MISSING_PROG([DOT], [dot])
dnl Manual pages.
AM_MISSING_PROG([HELP2MAN], [help2man])
+dnl Emacs interface.
+AM_PATH_LISPDIR
+AM_CONDITIONAL([HAVE_EMACS], [test "x$EMACS" != xno])
+
+emacsuidir="${guilemoduledir}/guix/emacs"
+AC_SUBST([emacsuidir])
+
AC_CONFIG_FILES([Makefile
po/guix/Makefile.in
po/packages/Makefile.in
- guix/config.scm])
+ guix/config.scm
+ emacs/guix-config.el])
AC_CONFIG_FILES([scripts/guix], [chmod +x scripts/guix])
AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env])
AC_CONFIG_FILES([test-env], [chmod +x test-env])
-dnl Emacs interface.
-AM_PATH_LISPDIR
-AM_CONDITIONAL([HAVE_EMACS], [test "x$EMACS" != "xno"])
-
-emacsuidir="${guilemoduledir}/guix/emacs"
-AC_SUBST([emacsuidir])
-AC_CONFIG_FILES([emacs/guix-init.el
- emacs/guix-profiles.el])
-
AC_OUTPUT
diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in
new file mode 100644
index 0000000..542de15
--- /dev/null
+++ b/emacs/guix-config.el.in
@@ -0,0 +1,33 @@
+;;; guix-config.el --- Compile-time configuration of Guix.
+
+;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
+
+;; 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
+;; (at 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(defconst guix-prefix
+ "@prefix@")
+
+(defconst guix-emacs-ui-dir
+ "@emacsuidir@")
+
+(defconst guix-local-state-dir
+ "@guix_localstatedir@"oo)
+
+(provide 'guix-config)
+
+;;; guix-config.el ends here
diff --git a/emacs/guix-init.el b/emacs/guix-init.el
new file mode 100644
index 0000000..353bb27
--- /dev/null
+++ b/emacs/guix-init.el
@@ -0,0 +1,20 @@
+(require 'guix-config)
+(require 'guix-autoloads)
+
+(defvar guix-load-path
+ (replace-regexp-in-string "${prefix}" guix-prefix guix-emacs-ui-dir)
+ "Directory with scheme files for \"guix.el\" package.")
+
+(defcustom guix-package-enable-at-startup t
+ "If non-nil, activate Emacs packages installed in a user profile.
+Set this variable to nil before requiring `guix-init' file to
+avoid loading autoloads of Emacs packages installed in
+`guix-user-profile'."
+ :type 'boolean
+ :group 'guix)
+
+(when guix-package-enable-at-startup
+ (require 'guix-emacs)
+ (guix-emacs-load-autoloads 'all))
+
+(provide 'guix-init)
diff --git a/emacs/guix-init.el.in b/emacs/guix-init.el.in
deleted file mode 100644
index 728bc37..0000000
--- a/emacs/guix-init.el.in
+++ /dev/null
@@ -1,19 +0,0 @@
-(require 'guix-autoloads)
-
-(defvar guix-load-path
- (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@")
- "Directory with scheme files for \"guix.el\" package.")
-
-(defcustom guix-package-enable-at-startup t
- "If non-nil, activate Emacs packages installed in a user profile.
-Set this variable to nil before requiring `guix-init' file to
-avoid loading autoloads of Emacs packages installed in
-`guix-user-profile'."
- :type 'boolean
- :group 'guix)
-
-(when guix-package-enable-at-startup
- (require 'guix-emacs)
- (guix-emacs-load-autoloads 'all))
-
-(provide 'guix-init)
diff --git a/emacs/guix-profiles.el b/emacs/guix-profiles.el
new file mode 100644
index 0000000..80d5d17
--- /dev/null
+++ b/emacs/guix-profiles.el
@@ -0,0 +1,65 @@
+;;; guix-profiles.el --- Guix profiles
+
+;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+
+;; 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
+;; (at 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(require 'guix-config)
+
+(defvar guix-user-profile
+ (expand-file-name "~/.guix-profile")
+ "User profile.")
+
+(defvar guix-default-profile
+ (concat (or (getenv "NIX_STATE_DIR")
+ (concat guix-local-state-dir "/guix"))
+ "/profiles/per-user/"
+ (getenv "USER")
+ "/guix-profile")
+ "Default Guix profile.")
+
+(defvar guix-current-profile guix-default-profile
+ "Current profile.")
+
+(defun guix-profile-prompt (&optional default)
+ "Prompt for profile and return it.
+Use DEFAULT as a start directory. If it is nil, use
+`guix-current-profile'."
+ (let* ((path (read-file-name "Profile: "
+ (file-name-directory
+ (or default guix-current-profile))))
+ (path (directory-file-name (expand-file-name path))))
+ (if (string= path guix-user-profile)
+ guix-default-profile
+ path)))
+
+(defun guix-set-current-profile (path)
+ "Set `guix-current-profile' to PATH.
+Interactively, prompt for PATH. With prefix, use
+`guix-default-profile'."
+ (interactive
+ (list (if current-prefix-arg
+ guix-default-profile
+ (guix-profile-prompt))))
+ (setq guix-current-profile path)
+ (message "Current profile has been set to '%s'."
+ guix-current-profile))
+
+(provide 'guix-profiles)
+
+;;; guix-profiles.el ends here
diff --git a/emacs/guix-profiles.el.in b/emacs/guix-profiles.el.in
deleted file mode 100644
index 1e43707..0000000
--- a/emacs/guix-profiles.el.in
+++ /dev/null
@@ -1,62 +0,0 @@
-;;; guix-profiles.el --- Guix profiles
-
-;; Copyright © 2014 Alex Kost <alezost@gmail.com>
-
-;; 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
-;; (at 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(defvar guix-user-profile
- (expand-file-name "~/.guix-profile")
- "User profile.")
-
-(defvar guix-default-profile
- (concat (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")
- "/profiles/per-user/"
- (getenv "USER")
- "/guix-profile")
- "Default Guix profile.")
-
-(defvar guix-current-profile guix-default-profile
- "Current profile.")
-
-(defun guix-profile-prompt (&optional default)
- "Prompt for profile and return it.
-Use DEFAULT as a start directory. If it is nil, use
-`guix-current-profile'."
- (let* ((path (read-file-name "Profile: "
- (file-name-directory
- (or default guix-current-profile))))
- (path (directory-file-name (expand-file-name path))))
- (if (string= path guix-user-profile)
- guix-default-profile
- path)))
-
-(defun guix-set-current-profile (path)
- "Set `guix-current-profile' to PATH.
-Interactively, prompt for PATH. With prefix, use
-`guix-default-profile'."
- (interactive
- (list (if current-prefix-arg
- guix-default-profile
- (guix-profile-prompt))))
- (setq guix-current-profile path)
- (message "Current profile has been set to '%s'."
- guix-current-profile))
-
-(provide 'guix-profiles)
-
-;;; guix-profiles.el ends here
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks.
2015-07-27 21:48 ` [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks Mathieu Lirzin
@ 2015-07-27 21:56 ` Mathieu Lirzin
2015-07-29 8:35 ` Alex Kost
1 sibling, 0 replies; 26+ messages in thread
From: Mathieu Lirzin @ 2015-07-27 21:56 UTC (permalink / raw)
To: guix-devel
Mathieu Lirzin <mthl@openmailbox.org> writes:
> diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in
> new file mode 100644
> index 0000000..542de15
> --- /dev/null
> +++ b/emacs/guix-config.el.in
[...]
> +(defconst guix-local-state-dir
> + "@guix_localstatedir@"oo)
^^
Oops.
--
Mathieu Lirzin
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks.
2015-07-27 21:48 ` [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks Mathieu Lirzin
2015-07-27 21:56 ` Mathieu Lirzin
@ 2015-07-29 8:35 ` Alex Kost
2015-08-06 17:50 ` Mathieu Lirzin
1 sibling, 1 reply; 26+ messages in thread
From: Alex Kost @ 2015-07-29 8:35 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Mathieu Lirzin (2015-07-28 00:48 +0300) wrote:
[...]
> +(defconst guix-prefix
> + "@prefix@")
> +
> +(defconst guix-emacs-ui-dir
> + "@emacsuidir@")
I think this constant is useless in this form since its value will be
"${prefix}/share/guile/site/2.0/guix/emacs". What about making it:
(defconst guix-emacs-ui-dir
(replace-regexp-in-string "${prefix}" guix-prefix "@emacsuidir@"))
And to leave:
(defvar guix-load-path guix-emacs-ui-dir
"Directory with scheme files for \"guix.el\" package.")
in "guix-backend.el"?
> +
> +(defconst guix-local-state-dir
> + "@guix_localstatedir@"oo)
> +
> +(provide 'guix-config)
> +
> +;;; guix-config.el ends here
> diff --git a/emacs/guix-init.el b/emacs/guix-init.el
> new file mode 100644
> index 0000000..353bb27
> --- /dev/null
> +++ b/emacs/guix-init.el
> @@ -0,0 +1,20 @@
> +(require 'guix-config)
I think requiring 'guix-config' is not needed in "guix-init.el".
The rest looks good to me.
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks.
2015-07-29 8:35 ` Alex Kost
@ 2015-08-06 17:50 ` Mathieu Lirzin
2015-08-13 8:04 ` Alex Kost
0 siblings, 1 reply; 26+ messages in thread
From: Mathieu Lirzin @ 2015-08-06 17:50 UTC (permalink / raw)
To: Alex Kost; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 831 bytes --]
Alex Kost <alezost@gmail.com> writes:
> Mathieu Lirzin (2015-07-28 00:48 +0300) wrote:
>
> [...]
>> +(defconst guix-prefix
>> + "@prefix@")
>> +
>> +(defconst guix-emacs-ui-dir
>> + "@emacsuidir@")
>
> I think this constant is useless in this form since its value will be
> "${prefix}/share/guile/site/2.0/guix/emacs". What about making it:
>
> (defconst guix-emacs-ui-dir
> (replace-regexp-in-string "${prefix}" guix-prefix "@emacsuidir@"))
>
That makes sense. I have gone further in the way of what you suggested,
by mimicking what has been done in "guix/config.scm".
> And to leave:
>
> (defvar guix-load-path guix-emacs-ui-dir
> "Directory with scheme files for \"guix.el\" package.")
>
> in "guix-backend.el"?
I would prefer to keep this change separated. See last updated patch of
this batch.
--
Mathieu Lirzin
[-- Attachment #2: 0001-build-Produce-guix-config-instead-of-using-compile-t.patch --]
[-- Type: text/x-diff, Size: 9565 bytes --]
From 4ed6955bf3edf2b3979e47958412ad41d2bc191e Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin <mthl@openmailbox.org>
Date: Thu, 6 Aug 2015 11:36:53 +0200
Subject: [PATCH 1/3] build: Produce 'guix-config' instead of using
compile-time tricks.
* emacs/guix-config.el.in: New file.
* emacs/guix-{init,profiles}.el.in: Rename to ...
* emacs/guix-{init,profiles}.el: ... these. New files.
Use 'guix-config'.
* .gitignore, configure.ac: Adjust accordingly.
---
.gitignore | 3 +--
configure.ac | 3 +--
emacs/guix-config.el.in | 31 +++++++++++++++++++++++
emacs/guix-init.el | 19 ++++++++++++++
emacs/guix-init.el.in | 19 --------------
emacs/guix-profiles.el | 64 +++++++++++++++++++++++++++++++++++++++++++++++
emacs/guix-profiles.el.in | 62 ---------------------------------------------
7 files changed, 116 insertions(+), 85 deletions(-)
create mode 100644 emacs/guix-config.el.in
create mode 100644 emacs/guix-init.el
delete mode 100644 emacs/guix-init.el.in
create mode 100644 emacs/guix-profiles.el
delete mode 100644 emacs/guix-profiles.el.in
diff --git a/.gitignore b/.gitignore
index c7a6cdd..657c2b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -120,8 +120,7 @@ GTAGS
/emacs/Makefile
/emacs/guix-autoloads.el
/emacs/guix-helper.scm
-/emacs/guix-init.el
-/emacs/guix-profiles.el
+/emacs/guix-config.el
/doc/os-config-bare-bones.texi
/doc/os-config-desktop.texi
/doc/*.1
diff --git a/configure.ac b/configure.ac
index 2c8b9f0..bc1714e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -200,8 +200,7 @@ AM_CONDITIONAL([HAVE_EMACS], [test "x$EMACS" != "xno"])
emacsuidir="${guilemoduledir}/guix/emacs"
AC_SUBST([emacsuidir])
-AC_CONFIG_FILES([emacs/guix-init.el
- emacs/guix-profiles.el
+AC_CONFIG_FILES([emacs/guix-config.el
emacs/guix-helper.scm])
AC_OUTPUT
diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in
new file mode 100644
index 0000000..8804f72
--- /dev/null
+++ b/emacs/guix-config.el.in
@@ -0,0 +1,31 @@
+;;; guix-config.el --- Compile-time configuration of Guix.
+
+;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
+
+;; 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
+;; (at 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(defconst guix-emacs-interface-directory
+ (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@"))
+
+(defconst guix-state-directory
+ ;; This must match `NIX_STATE_DIR' as defined in `daemon.am'.
+ (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
+
+(provide 'guix-config)
+
+;;; guix-config.el ends here
diff --git a/emacs/guix-init.el b/emacs/guix-init.el
new file mode 100644
index 0000000..6ea6fcd
--- /dev/null
+++ b/emacs/guix-init.el
@@ -0,0 +1,19 @@
+(require 'guix-config)
+(require 'guix-autoloads)
+
+(defvar guix-load-path guix-emacs-interface-directory
+ "Directory with scheme files for \"guix.el\" package.")
+
+(defcustom guix-package-enable-at-startup t
+ "If non-nil, activate Emacs packages installed in a user profile.
+Set this variable to nil before requiring `guix-init' file to
+avoid loading autoloads of Emacs packages installed in
+`guix-user-profile'."
+ :type 'boolean
+ :group 'guix)
+
+(when guix-package-enable-at-startup
+ (require 'guix-emacs)
+ (guix-emacs-load-autoloads 'all))
+
+(provide 'guix-init)
diff --git a/emacs/guix-init.el.in b/emacs/guix-init.el.in
deleted file mode 100644
index 728bc37..0000000
--- a/emacs/guix-init.el.in
+++ /dev/null
@@ -1,19 +0,0 @@
-(require 'guix-autoloads)
-
-(defvar guix-load-path
- (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@")
- "Directory with scheme files for \"guix.el\" package.")
-
-(defcustom guix-package-enable-at-startup t
- "If non-nil, activate Emacs packages installed in a user profile.
-Set this variable to nil before requiring `guix-init' file to
-avoid loading autoloads of Emacs packages installed in
-`guix-user-profile'."
- :type 'boolean
- :group 'guix)
-
-(when guix-package-enable-at-startup
- (require 'guix-emacs)
- (guix-emacs-load-autoloads 'all))
-
-(provide 'guix-init)
diff --git a/emacs/guix-profiles.el b/emacs/guix-profiles.el
new file mode 100644
index 0000000..1a41745
--- /dev/null
+++ b/emacs/guix-profiles.el
@@ -0,0 +1,64 @@
+;;; guix-profiles.el --- Guix profiles
+
+;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+
+;; 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
+;; (at 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(require 'guix-config)
+
+(defvar guix-user-profile
+ (expand-file-name "~/.guix-profile")
+ "User profile.")
+
+(defvar guix-default-profile
+ (concat guix-state-directory
+ "/profiles/per-user/"
+ (getenv "USER")
+ "/guix-profile")
+ "Default Guix profile.")
+
+(defvar guix-current-profile guix-default-profile
+ "Current profile.")
+
+(defun guix-profile-prompt (&optional default)
+ "Prompt for profile and return it.
+Use DEFAULT as a start directory. If it is nil, use
+`guix-current-profile'."
+ (let* ((path (read-file-name "Profile: "
+ (file-name-directory
+ (or default guix-current-profile))))
+ (path (directory-file-name (expand-file-name path))))
+ (if (string= path guix-user-profile)
+ guix-default-profile
+ path)))
+
+(defun guix-set-current-profile (path)
+ "Set `guix-current-profile' to PATH.
+Interactively, prompt for PATH. With prefix, use
+`guix-default-profile'."
+ (interactive
+ (list (if current-prefix-arg
+ guix-default-profile
+ (guix-profile-prompt))))
+ (setq guix-current-profile path)
+ (message "Current profile has been set to '%s'."
+ guix-current-profile))
+
+(provide 'guix-profiles)
+
+;;; guix-profiles.el ends here
diff --git a/emacs/guix-profiles.el.in b/emacs/guix-profiles.el.in
deleted file mode 100644
index 1e43707..0000000
--- a/emacs/guix-profiles.el.in
+++ /dev/null
@@ -1,62 +0,0 @@
-;;; guix-profiles.el --- Guix profiles
-
-;; Copyright © 2014 Alex Kost <alezost@gmail.com>
-
-;; 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
-;; (at 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(defvar guix-user-profile
- (expand-file-name "~/.guix-profile")
- "User profile.")
-
-(defvar guix-default-profile
- (concat (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")
- "/profiles/per-user/"
- (getenv "USER")
- "/guix-profile")
- "Default Guix profile.")
-
-(defvar guix-current-profile guix-default-profile
- "Current profile.")
-
-(defun guix-profile-prompt (&optional default)
- "Prompt for profile and return it.
-Use DEFAULT as a start directory. If it is nil, use
-`guix-current-profile'."
- (let* ((path (read-file-name "Profile: "
- (file-name-directory
- (or default guix-current-profile))))
- (path (directory-file-name (expand-file-name path))))
- (if (string= path guix-user-profile)
- guix-default-profile
- path)))
-
-(defun guix-set-current-profile (path)
- "Set `guix-current-profile' to PATH.
-Interactively, prompt for PATH. With prefix, use
-`guix-default-profile'."
- (interactive
- (list (if current-prefix-arg
- guix-default-profile
- (guix-profile-prompt))))
- (setq guix-current-profile path)
- (message "Current profile has been set to '%s'."
- guix-current-profile))
-
-(provide 'guix-profiles)
-
-;;; guix-profiles.el ends here
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks.
2015-08-06 17:50 ` Mathieu Lirzin
@ 2015-08-13 8:04 ` Alex Kost
2015-08-25 21:16 ` Mathieu Lirzin
0 siblings, 1 reply; 26+ messages in thread
From: Alex Kost @ 2015-08-13 8:04 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Mathieu Lirzin (2015-08-06 20:50 +0300) wrote:
> From 4ed6955bf3edf2b3979e47958412ad41d2bc191e Mon Sep 17 00:00:00 2001
> From: Mathieu Lirzin <mthl@openmailbox.org>
> Date: Thu, 6 Aug 2015 11:36:53 +0200
> Subject: [PATCH 1/3] build: Produce 'guix-config' instead of using
> compile-time tricks.
>
> * emacs/guix-config.el.in: New file.
> * emacs/guix-{init,profiles}.el.in: Rename to ...
> * emacs/guix-{init,profiles}.el: ... these. New files.
> Use 'guix-config'.
> * .gitignore, configure.ac: Adjust accordingly.
> ---
> .gitignore | 3 +--
> configure.ac | 3 +--
> emacs/guix-config.el.in | 31 +++++++++++++++++++++++
> emacs/guix-init.el | 19 ++++++++++++++
> emacs/guix-init.el.in | 19 --------------
> emacs/guix-profiles.el | 64 +++++++++++++++++++++++++++++++++++++++++++++++
> emacs/guix-profiles.el.in | 62 ---------------------------------------------
> 7 files changed, 116 insertions(+), 85 deletions(-)
> create mode 100644 emacs/guix-config.el.in
> create mode 100644 emacs/guix-init.el
> delete mode 100644 emacs/guix-init.el.in
> create mode 100644 emacs/guix-profiles.el
> delete mode 100644 emacs/guix-profiles.el.in
I forgot one thing. There is also "emacs.am" file, which should be
adjusted accordingly: i.e., to move "guix-init.el" and "guix-profiles.el"
into ELFILES and to add "guix-config.el" to nodist_lisp_DATA.
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks.
2015-08-13 8:04 ` Alex Kost
@ 2015-08-25 21:16 ` Mathieu Lirzin
2015-08-26 10:51 ` Alex Kost
0 siblings, 1 reply; 26+ messages in thread
From: Mathieu Lirzin @ 2015-08-25 21:16 UTC (permalink / raw)
To: Alex Kost; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 297 bytes --]
Alex Kost <alezost@gmail.com> writes:
> I forgot one thing. There is also "emacs.am" file, which should be
> adjusted accordingly: i.e., to move "guix-init.el" and "guix-profiles.el"
> into ELFILES and to add "guix-config.el" to nodist_lisp_DATA.
Here is the updated patch.
--
Mathieu Lirzin
[-- Attachment #2: 0001-build-Produce-guix-config-instead-of-using-compile-t.patch --]
[-- Type: text/x-diff, Size: 10408 bytes --]
From cfee4565b5b573cf12bea716079160c0276e3b81 Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin <mthl@openmailbox.org>
Date: Thu, 6 Aug 2015 11:36:53 +0200
Subject: [PATCH 1/3] build: Produce 'guix-config' instead of using
compile-time tricks.
* emacs/guix-{init,profiles}.el.in: Rename to ...
* emacs/guix-{init,profiles}.el: ... these. New files.
Use 'guix-config'.
* emacs/guix-config.el.in: New file.
* emacs.am (nodist_lisp_DATA): Add it. Move them to ...
(ELFILES): ... here.
* .gitignore, configure.ac: Adjust accordingly.
---
.gitignore | 3 +--
configure.ac | 3 +--
emacs.am | 6 ++---
emacs/guix-config.el.in | 31 +++++++++++++++++++++++
emacs/guix-init.el | 19 ++++++++++++++
emacs/guix-init.el.in | 19 --------------
emacs/guix-profiles.el | 64 +++++++++++++++++++++++++++++++++++++++++++++++
emacs/guix-profiles.el.in | 62 ---------------------------------------------
8 files changed, 119 insertions(+), 88 deletions(-)
create mode 100644 emacs/guix-config.el.in
create mode 100644 emacs/guix-init.el
delete mode 100644 emacs/guix-init.el.in
create mode 100644 emacs/guix-profiles.el
delete mode 100644 emacs/guix-profiles.el.in
diff --git a/.gitignore b/.gitignore
index c7a6cdd..657c2b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -120,8 +120,7 @@ GTAGS
/emacs/Makefile
/emacs/guix-autoloads.el
/emacs/guix-helper.scm
-/emacs/guix-init.el
-/emacs/guix-profiles.el
+/emacs/guix-config.el
/doc/os-config-bare-bones.texi
/doc/os-config-desktop.texi
/doc/*.1
diff --git a/configure.ac b/configure.ac
index 2c8b9f0..bc1714e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -200,8 +200,7 @@ AM_CONDITIONAL([HAVE_EMACS], [test "x$EMACS" != "xno"])
emacsuidir="${guilemoduledir}/guix/emacs"
AC_SUBST([emacsuidir])
-AC_CONFIG_FILES([emacs/guix-init.el
- emacs/guix-profiles.el
+AC_CONFIG_FILES([emacs/guix-config.el
emacs/guix-helper.scm])
AC_OUTPUT
diff --git a/emacs.am b/emacs.am
index 372b33e..e135ce4 100644
--- a/emacs.am
+++ b/emacs.am
@@ -24,10 +24,12 @@ ELFILES = \
emacs/guix-emacs.el \
emacs/guix-history.el \
emacs/guix-info.el \
+ emacs/guix-init.el \
emacs/guix-list.el \
emacs/guix-messages.el \
emacs/guix-pcomplete.el \
emacs/guix-prettify.el \
+ emacs/guix-profiles.el \
emacs/guix-utils.el \
emacs/guix.el
@@ -37,9 +39,7 @@ dist_lisp_DATA = \
$(ELFILES) \
$(AUTOLOADS)
-nodist_lisp_DATA = \
- emacs/guix-init.el \
- emacs/guix-profiles.el
+nodist_lisp_DATA = emacs/guix-config.el
$(AUTOLOADS): $(ELFILES)
$(EMACS) --batch --eval \
diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in
new file mode 100644
index 0000000..8804f72
--- /dev/null
+++ b/emacs/guix-config.el.in
@@ -0,0 +1,31 @@
+;;; guix-config.el --- Compile-time configuration of Guix.
+
+;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
+
+;; 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
+;; (at 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(defconst guix-emacs-interface-directory
+ (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@"))
+
+(defconst guix-state-directory
+ ;; This must match `NIX_STATE_DIR' as defined in `daemon.am'.
+ (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
+
+(provide 'guix-config)
+
+;;; guix-config.el ends here
diff --git a/emacs/guix-init.el b/emacs/guix-init.el
new file mode 100644
index 0000000..6ea6fcd
--- /dev/null
+++ b/emacs/guix-init.el
@@ -0,0 +1,19 @@
+(require 'guix-config)
+(require 'guix-autoloads)
+
+(defvar guix-load-path guix-emacs-interface-directory
+ "Directory with scheme files for \"guix.el\" package.")
+
+(defcustom guix-package-enable-at-startup t
+ "If non-nil, activate Emacs packages installed in a user profile.
+Set this variable to nil before requiring `guix-init' file to
+avoid loading autoloads of Emacs packages installed in
+`guix-user-profile'."
+ :type 'boolean
+ :group 'guix)
+
+(when guix-package-enable-at-startup
+ (require 'guix-emacs)
+ (guix-emacs-load-autoloads 'all))
+
+(provide 'guix-init)
diff --git a/emacs/guix-init.el.in b/emacs/guix-init.el.in
deleted file mode 100644
index 728bc37..0000000
--- a/emacs/guix-init.el.in
+++ /dev/null
@@ -1,19 +0,0 @@
-(require 'guix-autoloads)
-
-(defvar guix-load-path
- (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@")
- "Directory with scheme files for \"guix.el\" package.")
-
-(defcustom guix-package-enable-at-startup t
- "If non-nil, activate Emacs packages installed in a user profile.
-Set this variable to nil before requiring `guix-init' file to
-avoid loading autoloads of Emacs packages installed in
-`guix-user-profile'."
- :type 'boolean
- :group 'guix)
-
-(when guix-package-enable-at-startup
- (require 'guix-emacs)
- (guix-emacs-load-autoloads 'all))
-
-(provide 'guix-init)
diff --git a/emacs/guix-profiles.el b/emacs/guix-profiles.el
new file mode 100644
index 0000000..1a41745
--- /dev/null
+++ b/emacs/guix-profiles.el
@@ -0,0 +1,64 @@
+;;; guix-profiles.el --- Guix profiles
+
+;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+
+;; 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
+;; (at 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(require 'guix-config)
+
+(defvar guix-user-profile
+ (expand-file-name "~/.guix-profile")
+ "User profile.")
+
+(defvar guix-default-profile
+ (concat guix-state-directory
+ "/profiles/per-user/"
+ (getenv "USER")
+ "/guix-profile")
+ "Default Guix profile.")
+
+(defvar guix-current-profile guix-default-profile
+ "Current profile.")
+
+(defun guix-profile-prompt (&optional default)
+ "Prompt for profile and return it.
+Use DEFAULT as a start directory. If it is nil, use
+`guix-current-profile'."
+ (let* ((path (read-file-name "Profile: "
+ (file-name-directory
+ (or default guix-current-profile))))
+ (path (directory-file-name (expand-file-name path))))
+ (if (string= path guix-user-profile)
+ guix-default-profile
+ path)))
+
+(defun guix-set-current-profile (path)
+ "Set `guix-current-profile' to PATH.
+Interactively, prompt for PATH. With prefix, use
+`guix-default-profile'."
+ (interactive
+ (list (if current-prefix-arg
+ guix-default-profile
+ (guix-profile-prompt))))
+ (setq guix-current-profile path)
+ (message "Current profile has been set to '%s'."
+ guix-current-profile))
+
+(provide 'guix-profiles)
+
+;;; guix-profiles.el ends here
diff --git a/emacs/guix-profiles.el.in b/emacs/guix-profiles.el.in
deleted file mode 100644
index 1e43707..0000000
--- a/emacs/guix-profiles.el.in
+++ /dev/null
@@ -1,62 +0,0 @@
-;;; guix-profiles.el --- Guix profiles
-
-;; Copyright © 2014 Alex Kost <alezost@gmail.com>
-
-;; 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
-;; (at 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(defvar guix-user-profile
- (expand-file-name "~/.guix-profile")
- "User profile.")
-
-(defvar guix-default-profile
- (concat (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")
- "/profiles/per-user/"
- (getenv "USER")
- "/guix-profile")
- "Default Guix profile.")
-
-(defvar guix-current-profile guix-default-profile
- "Current profile.")
-
-(defun guix-profile-prompt (&optional default)
- "Prompt for profile and return it.
-Use DEFAULT as a start directory. If it is nil, use
-`guix-current-profile'."
- (let* ((path (read-file-name "Profile: "
- (file-name-directory
- (or default guix-current-profile))))
- (path (directory-file-name (expand-file-name path))))
- (if (string= path guix-user-profile)
- guix-default-profile
- path)))
-
-(defun guix-set-current-profile (path)
- "Set `guix-current-profile' to PATH.
-Interactively, prompt for PATH. With prefix, use
-`guix-default-profile'."
- (interactive
- (list (if current-prefix-arg
- guix-default-profile
- (guix-profile-prompt))))
- (setq guix-current-profile path)
- (message "Current profile has been set to '%s'."
- guix-current-profile))
-
-(provide 'guix-profiles)
-
-;;; guix-profiles.el ends here
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks.
2015-08-25 21:16 ` Mathieu Lirzin
@ 2015-08-26 10:51 ` Alex Kost
2015-08-30 17:55 ` Mathieu Lirzin
0 siblings, 1 reply; 26+ messages in thread
From: Alex Kost @ 2015-08-26 10:51 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Mathieu Lirzin (2015-08-26 00:16 +0300) wrote:
> Alex Kost <alezost@gmail.com> writes:
>
>> I forgot one thing. There is also "emacs.am" file, which should be
>> adjusted accordingly: i.e., to move "guix-init.el" and "guix-profiles.el"
>> into ELFILES and to add "guix-config.el" to nodist_lisp_DATA.
>
> Here is the updated patch.
Both updated patches look good to me. Thank you.
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks.
2015-08-26 10:51 ` Alex Kost
@ 2015-08-30 17:55 ` Mathieu Lirzin
2015-08-30 19:03 ` Alex Kost
0 siblings, 1 reply; 26+ messages in thread
From: Mathieu Lirzin @ 2015-08-30 17:55 UTC (permalink / raw)
To: Alex Kost; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 222 bytes --]
Alex Kost <alezost@gmail.com> writes:
> Both updated patches look good to me. Thank you.
I have rebased those patches upon the current master branch. There was
only a slight merge conflict in "emacs.am" for this one.
[-- Attachment #2: 0001-build-Produce-guix-config-instead-of-using-compile-t.patch --]
[-- Type: text/x-diff, Size: 10465 bytes --]
From bd6163d13f6445b9a1ec0f85e4a19b9f73ab74ea Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin <mthl@openmailbox.org>
Date: Thu, 6 Aug 2015 11:36:53 +0200
Subject: [PATCH 1/3] build: Produce 'guix-config' instead of using
compile-time tricks.
* emacs/guix-{init,profiles}.el.in: Rename to ...
* emacs/guix-{init,profiles}.el: ... these. New files.
Use 'guix-config'.
* emacs/guix-config.el.in: New file.
* emacs.am (nodist_lisp_DATA): Add it. Move them to ...
(ELFILES): ... here.
* .gitignore, configure.ac: Adjust accordingly.
---
.gitignore | 3 +--
configure.ac | 3 +--
emacs.am | 6 ++---
emacs/guix-config.el.in | 31 +++++++++++++++++++++++
emacs/guix-init.el | 19 ++++++++++++++
emacs/guix-init.el.in | 19 --------------
emacs/guix-profiles.el | 64 +++++++++++++++++++++++++++++++++++++++++++++++
emacs/guix-profiles.el.in | 62 ---------------------------------------------
8 files changed, 119 insertions(+), 88 deletions(-)
create mode 100644 emacs/guix-config.el.in
create mode 100644 emacs/guix-init.el
delete mode 100644 emacs/guix-init.el.in
create mode 100644 emacs/guix-profiles.el
delete mode 100644 emacs/guix-profiles.el.in
diff --git a/.gitignore b/.gitignore
index 4547557..a363c07 100644
--- a/.gitignore
+++ b/.gitignore
@@ -120,8 +120,7 @@ GTAGS
/emacs/Makefile
/emacs/guix-autoloads.el
/emacs/guix-helper.scm
-/emacs/guix-init.el
-/emacs/guix-profiles.el
+/emacs/guix-config.el
/doc/os-config-bare-bones.texi
/doc/os-config-desktop.texi
/doc/*.1
diff --git a/configure.ac b/configure.ac
index 247a9d5..cbe5dfb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -205,8 +205,7 @@ AM_CONDITIONAL([HAVE_EMACS], [test "x$EMACS" != "xno"])
emacsuidir="${guilemoduledir}/guix/emacs"
AC_SUBST([emacsuidir])
-AC_CONFIG_FILES([emacs/guix-init.el
- emacs/guix-profiles.el
+AC_CONFIG_FILES([emacs/guix-config.el
emacs/guix-helper.scm])
AC_OUTPUT
diff --git a/emacs.am b/emacs.am
index bf91cca..0f1ac94 100644
--- a/emacs.am
+++ b/emacs.am
@@ -26,11 +26,13 @@ ELFILES = \
emacs/guix-help-vars.el \
emacs/guix-history.el \
emacs/guix-info.el \
+ emacs/guix-init.el \
emacs/guix-list.el \
emacs/guix-messages.el \
emacs/guix-pcomplete.el \
emacs/guix-popup.el \
emacs/guix-prettify.el \
+ emacs/guix-profiles.el \
emacs/guix-read.el \
emacs/guix-utils.el \
emacs/guix.el
@@ -41,9 +43,7 @@ dist_lisp_DATA = \
$(ELFILES) \
$(AUTOLOADS)
-nodist_lisp_DATA = \
- emacs/guix-init.el \
- emacs/guix-profiles.el
+nodist_lisp_DATA = emacs/guix-config.el
$(AUTOLOADS): $(ELFILES)
$(EMACS) --batch --eval \
diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in
new file mode 100644
index 0000000..8804f72
--- /dev/null
+++ b/emacs/guix-config.el.in
@@ -0,0 +1,31 @@
+;;; guix-config.el --- Compile-time configuration of Guix.
+
+;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
+
+;; 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
+;; (at 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(defconst guix-emacs-interface-directory
+ (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@"))
+
+(defconst guix-state-directory
+ ;; This must match `NIX_STATE_DIR' as defined in `daemon.am'.
+ (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
+
+(provide 'guix-config)
+
+;;; guix-config.el ends here
diff --git a/emacs/guix-init.el b/emacs/guix-init.el
new file mode 100644
index 0000000..6ea6fcd
--- /dev/null
+++ b/emacs/guix-init.el
@@ -0,0 +1,19 @@
+(require 'guix-config)
+(require 'guix-autoloads)
+
+(defvar guix-load-path guix-emacs-interface-directory
+ "Directory with scheme files for \"guix.el\" package.")
+
+(defcustom guix-package-enable-at-startup t
+ "If non-nil, activate Emacs packages installed in a user profile.
+Set this variable to nil before requiring `guix-init' file to
+avoid loading autoloads of Emacs packages installed in
+`guix-user-profile'."
+ :type 'boolean
+ :group 'guix)
+
+(when guix-package-enable-at-startup
+ (require 'guix-emacs)
+ (guix-emacs-load-autoloads 'all))
+
+(provide 'guix-init)
diff --git a/emacs/guix-init.el.in b/emacs/guix-init.el.in
deleted file mode 100644
index 728bc37..0000000
--- a/emacs/guix-init.el.in
+++ /dev/null
@@ -1,19 +0,0 @@
-(require 'guix-autoloads)
-
-(defvar guix-load-path
- (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@")
- "Directory with scheme files for \"guix.el\" package.")
-
-(defcustom guix-package-enable-at-startup t
- "If non-nil, activate Emacs packages installed in a user profile.
-Set this variable to nil before requiring `guix-init' file to
-avoid loading autoloads of Emacs packages installed in
-`guix-user-profile'."
- :type 'boolean
- :group 'guix)
-
-(when guix-package-enable-at-startup
- (require 'guix-emacs)
- (guix-emacs-load-autoloads 'all))
-
-(provide 'guix-init)
diff --git a/emacs/guix-profiles.el b/emacs/guix-profiles.el
new file mode 100644
index 0000000..1a41745
--- /dev/null
+++ b/emacs/guix-profiles.el
@@ -0,0 +1,64 @@
+;;; guix-profiles.el --- Guix profiles
+
+;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+
+;; 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
+;; (at 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(require 'guix-config)
+
+(defvar guix-user-profile
+ (expand-file-name "~/.guix-profile")
+ "User profile.")
+
+(defvar guix-default-profile
+ (concat guix-state-directory
+ "/profiles/per-user/"
+ (getenv "USER")
+ "/guix-profile")
+ "Default Guix profile.")
+
+(defvar guix-current-profile guix-default-profile
+ "Current profile.")
+
+(defun guix-profile-prompt (&optional default)
+ "Prompt for profile and return it.
+Use DEFAULT as a start directory. If it is nil, use
+`guix-current-profile'."
+ (let* ((path (read-file-name "Profile: "
+ (file-name-directory
+ (or default guix-current-profile))))
+ (path (directory-file-name (expand-file-name path))))
+ (if (string= path guix-user-profile)
+ guix-default-profile
+ path)))
+
+(defun guix-set-current-profile (path)
+ "Set `guix-current-profile' to PATH.
+Interactively, prompt for PATH. With prefix, use
+`guix-default-profile'."
+ (interactive
+ (list (if current-prefix-arg
+ guix-default-profile
+ (guix-profile-prompt))))
+ (setq guix-current-profile path)
+ (message "Current profile has been set to '%s'."
+ guix-current-profile))
+
+(provide 'guix-profiles)
+
+;;; guix-profiles.el ends here
diff --git a/emacs/guix-profiles.el.in b/emacs/guix-profiles.el.in
deleted file mode 100644
index 1e43707..0000000
--- a/emacs/guix-profiles.el.in
+++ /dev/null
@@ -1,62 +0,0 @@
-;;; guix-profiles.el --- Guix profiles
-
-;; Copyright © 2014 Alex Kost <alezost@gmail.com>
-
-;; 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
-;; (at 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(defvar guix-user-profile
- (expand-file-name "~/.guix-profile")
- "User profile.")
-
-(defvar guix-default-profile
- (concat (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")
- "/profiles/per-user/"
- (getenv "USER")
- "/guix-profile")
- "Default Guix profile.")
-
-(defvar guix-current-profile guix-default-profile
- "Current profile.")
-
-(defun guix-profile-prompt (&optional default)
- "Prompt for profile and return it.
-Use DEFAULT as a start directory. If it is nil, use
-`guix-current-profile'."
- (let* ((path (read-file-name "Profile: "
- (file-name-directory
- (or default guix-current-profile))))
- (path (directory-file-name (expand-file-name path))))
- (if (string= path guix-user-profile)
- guix-default-profile
- path)))
-
-(defun guix-set-current-profile (path)
- "Set `guix-current-profile' to PATH.
-Interactively, prompt for PATH. With prefix, use
-`guix-default-profile'."
- (interactive
- (list (if current-prefix-arg
- guix-default-profile
- (guix-profile-prompt))))
- (setq guix-current-profile path)
- (message "Current profile has been set to '%s'."
- guix-current-profile))
-
-(provide 'guix-profiles)
-
-;;; guix-profiles.el ends here
--
2.5.0
[-- Attachment #3: Type: text/plain, Size: 19 bytes --]
--
Mathieu Lirzin
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks.
2015-08-30 17:55 ` Mathieu Lirzin
@ 2015-08-30 19:03 ` Alex Kost
0 siblings, 0 replies; 26+ messages in thread
From: Alex Kost @ 2015-08-30 19:03 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Mathieu Lirzin (2015-08-30 20:55 +0300) wrote:
> Alex Kost <alezost@gmail.com> writes:
>
>> Both updated patches look good to me. Thank you.
>
> I have rebased those patches upon the current master branch. There was
> only a slight merge conflict in "emacs.am" for this one.
I can only repeat that this patch LGTM.
(If you'll wait more, you'll have to rebase it again :))
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH 3/4] emacs: Move guix-guile-program to 'guix-config'.
2015-07-27 21:48 [PATCH 0/4] Emacs Interface build system Mathieu Lirzin
2015-07-27 21:48 ` [PATCH 1/4] build: Add more variables to (guix config) Mathieu Lirzin
2015-07-27 21:48 ` [PATCH 2/4] build: Produce 'guix-config' instead of using compile-time tricks Mathieu Lirzin
@ 2015-07-27 21:48 ` Mathieu Lirzin
2015-07-29 8:36 ` Alex Kost
2015-07-27 21:48 ` [PATCH 4/4] emacs: Use only one guix-load-path variable Mathieu Lirzin
3 siblings, 1 reply; 26+ messages in thread
From: Mathieu Lirzin @ 2015-07-27 21:48 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 358 bytes --]
* emacs/guix-backend.el (guix-guile-program): Move to ...
* emacs/guix-config.el.in (guix-guile-program): ... here. Use Guile
program file name from compile-time instead of depending on
PATH. (Bug#21127)
---
emacs/guix-backend.el | 10 +---------
emacs/guix-config.el.in | 9 +++++++++
2 files changed, 10 insertions(+), 9 deletions(-)
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0003-emacs-Move-guix-guile-program-to-guix-config.patch --]
[-- Type: text/x-patch; name="0003-emacs-Move-guix-guile-program-to-guix-config.patch", Size: 1227 bytes --]
diff --git a/emacs/guix-backend.el b/emacs/guix-backend.el
index 73a429b..3fafae4 100644
--- a/emacs/guix-backend.el
+++ b/emacs/guix-backend.el
@@ -52,6 +52,7 @@
;;; Code:
(require 'geiser-mode)
+(require 'guix-config)
(require 'guix-emacs)
(defvar guix-load-path
@@ -63,15 +64,6 @@
(expand-file-name "guix-helper.scm" guix-load-path)
"Auxiliary scheme file for loading.")
-(defvar guix-guile-program (or geiser-guile-binary "guile")
- "Name of the guile executable used for Guix REPL.
-May be either a string (the name of the executable) or a list of
-strings of the form:
-
- (NAME . ARGS)
-
-Where ARGS is a list of arguments to the guile program.")
-
\f
;;; REPL
diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in
index 542de15..ed2e846 100644
--- a/emacs/guix-config.el.in
+++ b/emacs/guix-config.el.in
@@ -19,6 +19,15 @@
;;; Code:
+(defconst guix-guile-program "@GUILE@"
+ "Name of the guile executable used for Guix REPL.
+May be either a string (the name of the executable) or a list of
+strings of the form:
+
+ (NAME . ARGS)
+
+Where ARGS is a list of arguments to the guile program.")
+
(defconst guix-prefix
"@prefix@")
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 3/4] emacs: Move guix-guile-program to 'guix-config'.
2015-07-27 21:48 ` [PATCH 3/4] emacs: Move guix-guile-program to 'guix-config' Mathieu Lirzin
@ 2015-07-29 8:36 ` Alex Kost
2015-08-06 17:55 ` Mathieu Lirzin
0 siblings, 1 reply; 26+ messages in thread
From: Alex Kost @ 2015-07-29 8:36 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Mathieu Lirzin (2015-07-28 00:48 +0300) wrote:
[...]
> diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in
> index 542de15..ed2e846 100644
> --- a/emacs/guix-config.el.in
> +++ b/emacs/guix-config.el.in
> @@ -19,6 +19,15 @@
>
> ;;; Code:
>
> +(defconst guix-guile-program "@GUILE@"
> + "Name of the guile executable used for Guix REPL.
> +May be either a string (the name of the executable) or a list of
> +strings of the form:
> +
> + (NAME . ARGS)
> +
> +Where ARGS is a list of arguments to the guile program.")
The potential problem with 'defconst', is that it overrides the current
value if it already exists. For example, evaluate the following:
(setq a 1)
(defconst a 2)
(setq b 1)
(defvar b 2)
As you can see the value of 'a' is 2, while the value of 'b' is 1. So
if a user sets 'guix-guile-program' before (require 'guix-init), the
final value will be what is defined by 'defconst', not what is set by a
user. That's why I think it is better to use 'defvar' for
'guix-guile-program'.
--
Alex, who hates 'defconst's and 'defsubst's.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 3/4] emacs: Move guix-guile-program to 'guix-config'.
2015-07-29 8:36 ` Alex Kost
@ 2015-08-06 17:55 ` Mathieu Lirzin
2015-08-07 7:21 ` Alex Kost
0 siblings, 1 reply; 26+ messages in thread
From: Mathieu Lirzin @ 2015-08-06 17:55 UTC (permalink / raw)
To: Alex Kost; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 321 bytes --]
Alex Kost <alezost@gmail.com> writes:
> The potential problem with 'defconst', is that it overrides the
> current value if it already exists. [...] That's why I think it is
> better to use 'defvar' for 'guix-guile-program'.
Done. Otherwise I've renamed this patch to better describe the intention.
--
Mathieu Lirzin
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0002-emacs-Fix-guix-guile-program-default-value.patch --]
[-- Type: text/x-diff, Size: 1992 bytes --]
From 07deba1e666befaedf1367f388fb7a16c6f992e7 Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin <mthl@openmailbox.org>
Date: Mon, 27 Jul 2015 22:55:28 +0200
Subject: [PATCH 2/3] emacs: Fix guix-guile-program default value.
* emacs/guix-backend.el: Use guix-config.
(guix-guile-program): Move to ...
* emacs/guix-config.el.in (guix-guile-program): ... here. Use Guile
program file name from compile-time instead of depending on
PATH. (Bug#21127)
---
emacs/guix-backend.el | 10 +---------
emacs/guix-config.el.in | 9 +++++++++
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/emacs/guix-backend.el b/emacs/guix-backend.el
index 73a429b..3fafae4 100644
--- a/emacs/guix-backend.el
+++ b/emacs/guix-backend.el
@@ -52,6 +52,7 @@
;;; Code:
(require 'geiser-mode)
+(require 'guix-config)
(require 'guix-emacs)
(defvar guix-load-path
@@ -63,15 +64,6 @@
(expand-file-name "guix-helper.scm" guix-load-path)
"Auxiliary scheme file for loading.")
-(defvar guix-guile-program (or geiser-guile-binary "guile")
- "Name of the guile executable used for Guix REPL.
-May be either a string (the name of the executable) or a list of
-strings of the form:
-
- (NAME . ARGS)
-
-Where ARGS is a list of arguments to the guile program.")
-
\f
;;; REPL
diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in
index 8804f72..0ab97e2 100644
--- a/emacs/guix-config.el.in
+++ b/emacs/guix-config.el.in
@@ -22,6 +22,15 @@
(defconst guix-emacs-interface-directory
(replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@"))
+(defvar guix-guile-program "@GUILE@"
+ "Name of the guile executable used for Guix REPL.
+May be either a string (the name of the executable) or a list of
+strings of the form:
+
+ (NAME . ARGS)
+
+Where ARGS is a list of arguments to the guile program.")
+
(defconst guix-state-directory
;; This must match `NIX_STATE_DIR' as defined in `daemon.am'.
(or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 3/4] emacs: Move guix-guile-program to 'guix-config'.
2015-08-06 17:55 ` Mathieu Lirzin
@ 2015-08-07 7:21 ` Alex Kost
2015-08-25 21:18 ` Mathieu Lirzin
0 siblings, 1 reply; 26+ messages in thread
From: Alex Kost @ 2015-08-07 7:21 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Thank you, all 3 patches look good to me. I think you can commit them.
Mathieu Lirzin (2015-08-06 20:55 +0300) wrote:
> diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in
> index 8804f72..0ab97e2 100644
> --- a/emacs/guix-config.el.in
> +++ b/emacs/guix-config.el.in
> @@ -22,6 +22,15 @@
> (defconst guix-emacs-interface-directory
> (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@"))
>
> +(defvar guix-guile-program "@GUILE@"
> + "Name of the guile executable used for Guix REPL.
> +May be either a string (the name of the executable) or a list of
> +strings of the form:
> +
> + (NAME . ARGS)
> +
> +Where ARGS is a list of arguments to the guile program.")
> +
> (defconst guix-state-directory
> ;; This must match `NIX_STATE_DIR' as defined in `daemon.am'.
> (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
I would rather add 'guix-guile-program' after both 'guix-…-directory'
constants, but it doesn't really matter.
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 3/4] emacs: Move guix-guile-program to 'guix-config'.
2015-08-07 7:21 ` Alex Kost
@ 2015-08-25 21:18 ` Mathieu Lirzin
2015-08-30 17:32 ` Ludovic Courtès
0 siblings, 1 reply; 26+ messages in thread
From: Mathieu Lirzin @ 2015-08-25 21:18 UTC (permalink / raw)
To: Alex Kost; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 232 bytes --]
Alex Kost <alezost@gmail.com> writes:
> I would rather add 'guix-guile-program' after both 'guix-…-directory'
> constants, but it doesn't really matter.
I'm OK with that. Here is the updated patch.
--
Mathieu Lirzin
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0002-emacs-Fix-guix-guile-program-default-value.patch --]
[-- Type: text/x-diff, Size: 1905 bytes --]
From 65f22b2dfc5c7e3b799399f5d10a1afba5416f3b Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin <mthl@openmailbox.org>
Date: Mon, 27 Jul 2015 22:55:28 +0200
Subject: [PATCH 2/3] emacs: Fix guix-guile-program default value.
* emacs/guix-backend.el: Use guix-config.
(guix-guile-program): Move to ...
* emacs/guix-config.el.in (guix-guile-program): ... here. Use Guile
program file name from compile-time instead of depending on
PATH. (Bug#21127)
---
emacs/guix-backend.el | 10 +---------
emacs/guix-config.el.in | 9 +++++++++
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/emacs/guix-backend.el b/emacs/guix-backend.el
index 73a429b..3fafae4 100644
--- a/emacs/guix-backend.el
+++ b/emacs/guix-backend.el
@@ -52,6 +52,7 @@
;;; Code:
(require 'geiser-mode)
+(require 'guix-config)
(require 'guix-emacs)
(defvar guix-load-path
@@ -63,15 +64,6 @@
(expand-file-name "guix-helper.scm" guix-load-path)
"Auxiliary scheme file for loading.")
-(defvar guix-guile-program (or geiser-guile-binary "guile")
- "Name of the guile executable used for Guix REPL.
-May be either a string (the name of the executable) or a list of
-strings of the form:
-
- (NAME . ARGS)
-
-Where ARGS is a list of arguments to the guile program.")
-
\f
;;; REPL
diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in
index 8804f72..16434ce 100644
--- a/emacs/guix-config.el.in
+++ b/emacs/guix-config.el.in
@@ -26,6 +26,15 @@
;; This must match `NIX_STATE_DIR' as defined in `daemon.am'.
(or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
+(defvar guix-guile-program "@GUILE@"
+ "Name of the guile executable used for Guix REPL.
+May be either a string (the name of the executable) or a list of
+strings of the form:
+
+ (NAME . ARGS)
+
+Where ARGS is a list of arguments to the guile program.")
+
(provide 'guix-config)
;;; guix-config.el ends here
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 3/4] emacs: Move guix-guile-program to 'guix-config'.
2015-08-25 21:18 ` Mathieu Lirzin
@ 2015-08-30 17:32 ` Ludovic Courtès
2015-08-30 19:03 ` Alex Kost
0 siblings, 1 reply; 26+ messages in thread
From: Ludovic Courtès @ 2015-08-30 17:32 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel, Alex Kost
Mathieu Lirzin <mthl@openmailbox.org> skribis:
> Alex Kost <alezost@gmail.com> writes:
>
>> I would rather add 'guix-guile-program' after both 'guix-…-directory'
>> constants, but it doesn't really matter.
>
> I'm OK with that. Here is the updated patch.
[...]
> From 65f22b2dfc5c7e3b799399f5d10a1afba5416f3b Mon Sep 17 00:00:00 2001
> From: Mathieu Lirzin <mthl@openmailbox.org>
> Date: Mon, 27 Jul 2015 22:55:28 +0200
> Subject: [PATCH 2/3] emacs: Fix guix-guile-program default value.
>
> * emacs/guix-backend.el: Use guix-config.
> (guix-guile-program): Move to ...
> * emacs/guix-config.el.in (guix-guile-program): ... here. Use Guile
> program file name from compile-time instead of depending on
> PATH. (Bug#21127)
Please replace “(Bug#21127)” with a line like this below the subject
line (see previous commits for examples):
Fixes <http://bugs.gnu.org/21127>.
Otherwise LGTM. Alex, OK?
Ludo’.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 3/4] emacs: Move guix-guile-program to 'guix-config'.
2015-08-30 17:32 ` Ludovic Courtès
@ 2015-08-30 19:03 ` Alex Kost
2015-08-30 20:54 ` Mathieu Lirzin
0 siblings, 1 reply; 26+ messages in thread
From: Alex Kost @ 2015-08-30 19:03 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
Ludovic Courtès (2015-08-30 20:32 +0300) wrote:
> Mathieu Lirzin <mthl@openmailbox.org> skribis:
>
>> Alex Kost <alezost@gmail.com> writes:
>>
>>> I would rather add 'guix-guile-program' after both 'guix-…-directory'
>>> constants, but it doesn't really matter.
>>
>> I'm OK with that. Here is the updated patch.
>
> [...]
>
>> From 65f22b2dfc5c7e3b799399f5d10a1afba5416f3b Mon Sep 17 00:00:00 2001
>> From: Mathieu Lirzin <mthl@openmailbox.org>
>> Date: Mon, 27 Jul 2015 22:55:28 +0200
>> Subject: [PATCH 2/3] emacs: Fix guix-guile-program default value.
>>
>> * emacs/guix-backend.el: Use guix-config.
>> (guix-guile-program): Move to ...
>> * emacs/guix-config.el.in (guix-guile-program): ... here. Use Guile
>> program file name from compile-time instead of depending on
>> PATH. (Bug#21127)
>
> Please replace “(Bug#21127)” with a line like this below the subject
> line (see previous commits for examples):
>
> Fixes <http://bugs.gnu.org/21127>.
>
> Otherwise LGTM. Alex, OK?
Yes, I said OK several times for this patchset :-)
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 3/4] emacs: Move guix-guile-program to 'guix-config'.
2015-08-30 19:03 ` Alex Kost
@ 2015-08-30 20:54 ` Mathieu Lirzin
0 siblings, 0 replies; 26+ messages in thread
From: Mathieu Lirzin @ 2015-08-30 20:54 UTC (permalink / raw)
To: Alex Kost; +Cc: guix-devel
Alex Kost <alezost@gmail.com> writes:
> Ludovic Courtès (2015-08-30 20:32 +0300) wrote:
>>> From 65f22b2dfc5c7e3b799399f5d10a1afba5416f3b Mon Sep 17 00:00:00 2001
>>> From: Mathieu Lirzin <mthl@openmailbox.org>
>>> Date: Mon, 27 Jul 2015 22:55:28 +0200
>>> Subject: [PATCH 2/3] emacs: Fix guix-guile-program default value.
>>>
>>> * emacs/guix-backend.el: Use guix-config.
>>> (guix-guile-program): Move to ...
>>> * emacs/guix-config.el.in (guix-guile-program): ... here. Use Guile
>>> program file name from compile-time instead of depending on
>>> PATH. (Bug#21127)
>>
>> Please replace “(Bug#21127)” with a line like this below the subject
>> line (see previous commits for examples):
>>
>> Fixes <http://bugs.gnu.org/21127>.
>>
>> Otherwise LGTM. Alex, OK?
>
> Yes, I said OK several times for this patchset :-)
pushed in commits 9a479bc, 7061938, and bd6163d. Thanks for the reviews!
--
Mathieu Lirzin
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH 4/4] emacs: Use only one guix-load-path variable.
2015-07-27 21:48 [PATCH 0/4] Emacs Interface build system Mathieu Lirzin
` (2 preceding siblings ...)
2015-07-27 21:48 ` [PATCH 3/4] emacs: Move guix-guile-program to 'guix-config' Mathieu Lirzin
@ 2015-07-27 21:48 ` Mathieu Lirzin
2015-07-29 8:36 ` Alex Kost
3 siblings, 1 reply; 26+ messages in thread
From: Mathieu Lirzin @ 2015-07-27 21:48 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 355 bytes --]
emacs/guix-init.el (guix-load-path): Move to ...
emacs/guix-config.el.in (guix-load-path): ... Here.
emacs/guix-backend.el (guix-load-path): Remove it. Use the one from
'guix-config'.
---
emacs/guix-backend.el | 5 -----
emacs/guix-config.el.in | 4 ++++
emacs/guix-init.el | 4 ----
3 files changed, 4 insertions(+), 9 deletions(-)
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0004-emacs-Use-only-one-guix-load-path-variable.patch --]
[-- Type: text/x-patch; name="0004-emacs-Use-only-one-guix-load-path-variable.patch", Size: 1606 bytes --]
diff --git a/emacs/guix-backend.el b/emacs/guix-backend.el
index 3fafae4..457dd44 100644
--- a/emacs/guix-backend.el
+++ b/emacs/guix-backend.el
@@ -55,11 +55,6 @@
(require 'guix-config)
(require 'guix-emacs)
-(defvar guix-load-path
- (file-name-directory (or load-file-name
- (locate-library "guix")))
- "Directory with scheme files for \"guix.el\" package.")
-
(defvar guix-helper-file
(expand-file-name "guix-helper.scm" guix-load-path)
"Auxiliary scheme file for loading.")
diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in
index ed2e846..6ac6051 100644
--- a/emacs/guix-config.el.in
+++ b/emacs/guix-config.el.in
@@ -37,6 +37,10 @@ Where ARGS is a list of arguments to the guile program.")
(defconst guix-local-state-dir
"@guix_localstatedir@"oo)
+(defvar guix-load-path
+ (replace-regexp-in-string "${prefix}" guix-prefix guix-emacs-ui-dir)
+ "Directory with scheme files for \"guix.el\" package.")
+
(provide 'guix-config)
;;; guix-config.el ends here
diff --git a/emacs/guix-init.el b/emacs/guix-init.el
index 353bb27..ff147f9 100644
--- a/emacs/guix-init.el
+++ b/emacs/guix-init.el
@@ -1,10 +1,6 @@
(require 'guix-config)
(require 'guix-autoloads)
-(defvar guix-load-path
- (replace-regexp-in-string "${prefix}" guix-prefix guix-emacs-ui-dir)
- "Directory with scheme files for \"guix.el\" package.")
-
(defcustom guix-package-enable-at-startup t
"If non-nil, activate Emacs packages installed in a user profile.
Set this variable to nil before requiring `guix-init' file to
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 4/4] emacs: Use only one guix-load-path variable.
2015-07-27 21:48 ` [PATCH 4/4] emacs: Use only one guix-load-path variable Mathieu Lirzin
@ 2015-07-29 8:36 ` Alex Kost
2015-08-06 17:58 ` Mathieu Lirzin
0 siblings, 1 reply; 26+ messages in thread
From: Alex Kost @ 2015-07-29 8:36 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Mathieu Lirzin (2015-07-28 00:48 +0300) wrote:
> emacs/guix-init.el (guix-load-path): Move to ...
> emacs/guix-config.el.in (guix-load-path): ... Here.
> emacs/guix-backend.el (guix-load-path): Remove it. Use the one from
> 'guix-config'.
As I wrote in another message, I would leave 'guix-load-path' in
"guix-backend.el" with 'guix-emacs-ui-dir' as the value, and just remove
it from "guix-init.el". Do you have other ideas?
--
Alex
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 4/4] emacs: Use only one guix-load-path variable.
2015-07-29 8:36 ` Alex Kost
@ 2015-08-06 17:58 ` Mathieu Lirzin
0 siblings, 0 replies; 26+ messages in thread
From: Mathieu Lirzin @ 2015-08-06 17:58 UTC (permalink / raw)
To: Alex Kost; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 344 bytes --]
Alex Kost <alezost@gmail.com> writes:
> As I wrote in another message, I would leave 'guix-load-path' in
> "guix-backend.el" with 'guix-emacs-ui-dir' as the value, and just remove
> it from "guix-init.el". Do you have other ideas?
You are the elisp expert :). I trust your judgement.
Thank you very much for the review!
--
Mathieu Lirzin
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0003-emacs-Use-only-one-guix-load-path-variable.patch --]
[-- Type: text/x-diff, Size: 1431 bytes --]
From d73122381955ea25d05eff9b54f5f72ed5b37d87 Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin <mthl@openmailbox.org>
Date: Mon, 27 Jul 2015 23:20:09 +0200
Subject: [PATCH 3/3] emacs: Use only one guix-load-path variable.
emacs/guix-init.el (guix-load-path): Move to ...
emacs/guix-backend.el (guix-load-path): ... Here. Redefine it.
---
emacs/guix-backend.el | 4 +---
emacs/guix-init.el | 4 ----
2 files changed, 1 insertion(+), 7 deletions(-)
diff --git a/emacs/guix-backend.el b/emacs/guix-backend.el
index 3fafae4..7db1daa 100644
--- a/emacs/guix-backend.el
+++ b/emacs/guix-backend.el
@@ -55,9 +55,7 @@
(require 'guix-config)
(require 'guix-emacs)
-(defvar guix-load-path
- (file-name-directory (or load-file-name
- (locate-library "guix")))
+(defvar guix-load-path guix-emacs-interface-directory
"Directory with scheme files for \"guix.el\" package.")
(defvar guix-helper-file
diff --git a/emacs/guix-init.el b/emacs/guix-init.el
index 6ea6fcd..3a727c7 100644
--- a/emacs/guix-init.el
+++ b/emacs/guix-init.el
@@ -1,9 +1,5 @@
-(require 'guix-config)
(require 'guix-autoloads)
-(defvar guix-load-path guix-emacs-interface-directory
- "Directory with scheme files for \"guix.el\" package.")
-
(defcustom guix-package-enable-at-startup t
"If non-nil, activate Emacs packages installed in a user profile.
Set this variable to nil before requiring `guix-init' file to
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread