unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH 0/6] Modifications in building emacs packages.
@ 2016-05-16 18:20 Alex Kost
  2016-05-16 18:20 ` [PATCH 1/6] gnu: Add emacs-minimal Alex Kost
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Alex Kost @ 2016-05-16 18:20 UTC (permalink / raw)
  To: guix-devel

Hello, currently we use either 'emacs' or 'emacs-no-x' to build
(byte-compile) emacs packages.  What about making a really minimal emacs
to use for this task?

Most of the times it should be enough.  AFAICT the only case where a
full-featured emacs is needed is auctex; and for this particular case,
'emacs-build-system' uses 'emacs'.  Instead I suggest to use
'emacs-minimal' by default; and when a full 'emacs' will be needed, it
can be specified in native-inputs.  WDYT?

Another change made by this patchset is moving all "emacs" inputs to
'native-inputs'.  There is no point to use 'inputs' because this emacs
is used only to make *.elc files and to generate autoloads; you will use
emacs from your profile anyway.

[PATCH 1/6] gnu: Add emacs-minimal.
[PATCH 2/6] build-system/emacs: Use "emacs" from native-inputs if specified.
[PATCH 3/6] build-system/emacs: Use 'emacs-minimal' as default emacs for building.
[PATCH 4/6] gnu: emacs-auctex: Use 'emacs' for byte-compiling.
[PATCH 5/6] gnu: Move emacs for building from inputs to native-inputs.
[PATCH 6/6] gnu: Use 'emacs-minimal' instead of 'emacs-no-x'.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/6] gnu: Add emacs-minimal.
  2016-05-16 18:20 [PATCH 0/6] Modifications in building emacs packages Alex Kost
@ 2016-05-16 18:20 ` Alex Kost
  2016-05-19 11:52   ` Ludovic Courtès
  2016-05-16 18:20 ` [PATCH 2/6] build-system/emacs: Use "emacs" from native-inputs if specified Alex Kost
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Alex Kost @ 2016-05-16 18:20 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/emacs.scm (emacs-minimal): New variable.
---
 gnu/packages/emacs.scm | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 11010b2..d31aa73 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -165,10 +165,25 @@ large Lisp programs.  It has full Unicode support for nearly all human
 languages.")
     (license license:gpl3+)))
 
-(define-public emacs-no-x
+(define-public emacs-minimal
   ;; This is the version that you should use as an input to packages that just
   ;; need to byte-compile .el files.
   (package (inherit emacs)
+    (name "emacs-minimal")
+    (synopsis "The extensible text editor (used only for byte-compilation)")
+    (build-system gnu-build-system)
+    (arguments
+     (substitute-keyword-arguments (package-arguments emacs)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (delete 'install-site-start)))))
+    (inputs
+     `(("ncurses" ,ncurses)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))))
+
+(define-public emacs-no-x
+  (package (inherit emacs)
     (name "emacs-no-x")
     (synopsis "The extensible, customizable, self-documenting text
 editor (console only)")
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/6] build-system/emacs: Use "emacs" from native-inputs if specified.
  2016-05-16 18:20 [PATCH 0/6] Modifications in building emacs packages Alex Kost
  2016-05-16 18:20 ` [PATCH 1/6] gnu: Add emacs-minimal Alex Kost
@ 2016-05-16 18:20 ` Alex Kost
  2016-05-19 11:54   ` Ludovic Courtès
  2016-05-16 18:20 ` [PATCH 3/6] build-system/emacs: Use 'emacs-minimal' as default emacs for building Alex Kost
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Alex Kost @ 2016-05-16 18:20 UTC (permalink / raw)
  To: guix-devel

* guix/build-system/emacs.scm (lower): Do not add "emacs" to
  build-inputs if it is already specified in the native-inputs.
---
 guix/build-system/emacs.scm | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm
index 03c1eb2..017e6ef 100644
--- a/guix/build-system/emacs.scm
+++ b/guix/build-system/emacs.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
+;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,7 @@
   #:use-module (guix build-system)
   #:use-module (guix build-system gnu)
   #:use-module (ice-9 match)
+  #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:export (%emacs-build-system-modules
             emacs-build
@@ -73,8 +75,16 @@
 
                         ;; Keep the standard inputs of 'gnu-build-system'.
                         ,@(standard-packages)))
-         (build-inputs `(("emacs" ,emacs)
-                         ,@native-inputs))
+         ;; Add emacs to build-inputs only if native-inputs do not contain
+         ;; emacs already.  This allows us to use non-default emacs for
+         ;; building.
+         (build-inputs (if (find (match-lambda
+                                   (("emacs" _ ...) #t)
+                                   (_ #f))
+                                 native-inputs)
+                           native-inputs
+                           `(("emacs" ,emacs)
+                             ,@native-inputs)))
          (outputs outputs)
          (build emacs-build)
          (arguments (strip-keyword-arguments private-keywords arguments)))))
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 3/6] build-system/emacs: Use 'emacs-minimal' as default emacs for building.
  2016-05-16 18:20 [PATCH 0/6] Modifications in building emacs packages Alex Kost
  2016-05-16 18:20 ` [PATCH 1/6] gnu: Add emacs-minimal Alex Kost
  2016-05-16 18:20 ` [PATCH 2/6] build-system/emacs: Use "emacs" from native-inputs if specified Alex Kost
@ 2016-05-16 18:20 ` Alex Kost
  2016-05-19 11:55   ` Ludovic Courtès
  2016-05-16 18:20 ` [PATCH 4/6] gnu: emacs-auctex: Use 'emacs' for byte-compiling Alex Kost
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Alex Kost @ 2016-05-16 18:20 UTC (permalink / raw)
  To: guix-devel

* guix/build-system/emacs.scm (default-emacs): Use 'emacs-minimal'.
---
 guix/build-system/emacs.scm | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm
index 017e6ef..995fce7 100644
--- a/guix/build-system/emacs.scm
+++ b/guix/build-system/emacs.scm
@@ -49,11 +49,7 @@
   "Return the default Emacs package."
   ;; Lazily resolve the binding to avoid a circular dependency.
   (let ((emacs-mod (resolve-interface '(gnu packages emacs))))
-    ;; we use 'emacs' instead of 'emacs-no-x' because the latter appears not
-    ;; to be loading some macros and causes problems to some packages.  For
-    ;; example, with the latter AUCTeX gives the error message:
-    ;; "(invalid-function dbus-ignore-errors)".
-    (module-ref emacs-mod 'emacs)))
+    (module-ref emacs-mod 'emacs-minimal)))
 
 (define* (lower name
                 #:key source inputs native-inputs outputs system target
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 4/6] gnu: emacs-auctex: Use 'emacs' for byte-compiling.
  2016-05-16 18:20 [PATCH 0/6] Modifications in building emacs packages Alex Kost
                   ` (2 preceding siblings ...)
  2016-05-16 18:20 ` [PATCH 3/6] build-system/emacs: Use 'emacs-minimal' as default emacs for building Alex Kost
@ 2016-05-16 18:20 ` Alex Kost
  2016-05-19 11:56   ` Ludovic Courtès
  2016-05-16 18:20 ` [PATCH 5/6] gnu: Move emacs for building from inputs to native-inputs Alex Kost
  2016-05-16 18:20 ` [PATCH 6/6] gnu: Use 'emacs-minimal' instead of 'emacs-no-x' Alex Kost
  5 siblings, 1 reply; 15+ messages in thread
From: Alex Kost @ 2016-05-16 18:20 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/emacs.scm (emacs-auctex)[native-inputs]: Add 'emacs'.
---
 gnu/packages/emacs.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index d31aa73..32e24a4 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -975,7 +975,10 @@ as a library for other Emacs packages.")
          "1pmki8hdjjikxlvip3pzi350bln3gcimr27yjf0xfwjvnp5hh9nc"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     ;; We use 'emacs' because AUCTeX requires dbus at compile time
+     ;; ('emacs-minimal' does not provide dbus).
+     `(("emacs" ,emacs)
+       ("perl" ,perl)))
     (home-page "http://www.gnu.org/software/auctex/")
     (synopsis "Integrated environment for TeX")
     (description
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 5/6] gnu: Move emacs for building from inputs to native-inputs.
  2016-05-16 18:20 [PATCH 0/6] Modifications in building emacs packages Alex Kost
                   ` (3 preceding siblings ...)
  2016-05-16 18:20 ` [PATCH 4/6] gnu: emacs-auctex: Use 'emacs' for byte-compiling Alex Kost
@ 2016-05-16 18:20 ` Alex Kost
  2016-05-19 11:57   ` Ludovic Courtès
  2016-05-16 18:20 ` [PATCH 6/6] gnu: Use 'emacs-minimal' instead of 'emacs-no-x' Alex Kost
  5 siblings, 1 reply; 15+ messages in thread
From: Alex Kost @ 2016-05-16 18:20 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/emacs.scm (geiser): Move "emacs" from inputs to native-inputs.
(paredit): Likewise.
(haskell-mode): Likewise.
(emacs-w3m): Likewise.
(emacs-wget): Likewise.
* gnu/packages/mail.scm (mu): Likewise.
* gnu/packages/scheme.scm (scmutils): Likewise.
* gnu/packages/version-control.scm (vc-dwim): Likewise.
---
 gnu/packages/emacs.scm           | 20 ++++++++++----------
 gnu/packages/mail.scm            |  2 +-
 gnu/packages/scheme.scm          |  4 ++--
 gnu/packages/version-control.scm |  4 ++--
 4 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 32e24a4..077d9af 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -262,8 +262,8 @@ editor (without an X toolkit)" )
                                            "/share/emacs/site-lisp/"
                                            "geiser-autoloads.el")))
                  %standard-phases)))
-    (inputs `(("guile" ,guile-2.0)
-              ("emacs" ,emacs-no-x)))
+    (inputs `(("guile" ,guile-2.0)))
+    (native-inputs `(("emacs" ,emacs-no-x)))
     (home-page "http://nongnu.org/geiser/")
     (synopsis "Collection of Emacs modes for Guile and Racket hacking")
     (description
@@ -287,7 +287,7 @@ metadata.")
                (base32
                 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
     (build-system trivial-build-system)
-    (inputs `(("emacs" ,emacs-no-x)))
+    (native-inputs `(("emacs" ,emacs-no-x)))
     (arguments
      `(#:modules ((guix build utils)
                   (guix build emacs-utils))
@@ -525,9 +525,9 @@ support for Git-SVN.")
                     version ".tar.gz"))
               (sha256
                (base32 "1kxc2yj8vb122dv91r68h7c5ladcryx963fr16plfhg71fv7f9av"))))
-    (inputs `(("emacs" ,emacs-no-x)))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     `(("emacs" ,emacs-no-x)
+       ("texinfo" ,texinfo)))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list (string-append "EMACS="
@@ -666,10 +666,10 @@ provides an optional IDE-like error list.")
               (base32
                "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y"))))
     (build-system gnu-build-system)
-    (native-inputs `(("autoconf" ,autoconf)))
+    (native-inputs `(("autoconf" ,autoconf)
+                     ("emacs" ,emacs-no-x)))
     (inputs `(("w3m" ,w3m)
-              ("imagemagick" ,imagemagick)
-              ("emacs" ,emacs-no-x)))
+              ("imagemagick" ,imagemagick)))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
@@ -738,8 +738,8 @@ provides an optional IDE-like error list.")
              (sha256
               (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
     (build-system gnu-build-system)
-    (inputs `(("wget" ,wget)
-              ("emacs" ,emacs-no-x)))
+    (inputs `(("wget" ,wget)))
+    (native-inputs `(("emacs" ,emacs-no-x)))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index e86afb2..0f476eb 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -344,12 +344,12 @@ repository and Maildir/IMAP as LOCAL repository.")
        ("glib" ,glib "bin")             ; for gtester
        ("autoconf" ,autoconf)
        ("automake" ,automake)
+       ("emacs" ,emacs-no-x)
        ("libtool" ,libtool)
        ("texinfo" ,texinfo)))
     ;; TODO: Add webkit and gtk to build the mug GUI.
     (inputs
      `(("xapian" ,xapian)
-       ("emacs" ,emacs-no-x)
        ("guile" ,guile-2.0)
        ("glib" ,glib)
        ("gmime" ,gmime)
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 6cf75c2..452de17 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -571,8 +571,8 @@ threads.")
           (base32 "10cnbm7nh78m5mrl1di85s29gny81jb1am9zd9f9yx725xb6dnfg"))))
       (build-system gnu-build-system)
       (inputs
-       `(("mit-scheme" ,mit-scheme)
-         ("emacs" ,emacs-no-x)))
+       `(("mit-scheme" ,mit-scheme)))
+      (native-inputs `(("emacs" ,emacs-no-x)))
       (arguments
        `(#:tests? #f ;; no tests-suite
          #:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index d47b3e8..3e0f5b8 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -851,8 +851,8 @@ masters from remote CVS hosts.")
                "094pjwshvazlgagc254in2xvrp93vhcj0kb5ms17qs7sch99x9z2"))))
     (build-system gnu-build-system)
     (inputs `(("perl" ,perl)
-              ("inetutils" ,inetutils)     ; for `hostname', used in the tests
-              ("emacs" ,emacs-no-x)))      ; for `ctags'
+              ("inetutils" ,inetutils))) ; for `hostname', used in the tests
+    (native-inputs `(("emacs" ,emacs-no-x))) ; for `ctags'
     (home-page "http://www.gnu.org/software/vc-dwim/")
     (synopsis "Version-control-agnostic ChangeLog diff and commit tool")
     (description
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 6/6] gnu: Use 'emacs-minimal' instead of 'emacs-no-x'.
  2016-05-16 18:20 [PATCH 0/6] Modifications in building emacs packages Alex Kost
                   ` (4 preceding siblings ...)
  2016-05-16 18:20 ` [PATCH 5/6] gnu: Move emacs for building from inputs to native-inputs Alex Kost
@ 2016-05-16 18:20 ` Alex Kost
  2016-05-19 11:58   ` Ludovic Courtès
  5 siblings, 1 reply; 15+ messages in thread
From: Alex Kost @ 2016-05-16 18:20 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/code.scm (cflow)[native-inputs]: Use 'emacs-minimal'
  instead of 'emacs-no-x'.
* gnu/packages/databases.scm (recutils): Likewise.
* gnu/packages/finance.scm (ledger): Likewise
* gnu/packages/idutils.scm (idutils): Likewise.
* gnu/packages/mail.scm (mu): Likewise.
* gnu/packages/ocaml.scm (proof-general): Likewise.
* gnu/packages/package-management.scm (guix-0.10.0): Likewise.
* gnu/packages/plotutils.scm (asymptote): Likewise.
* gnu/packages/scheme.scm (scmutils): Likewise.
* gnu/packages/version-control.scm (vc-dwim): Likewise.
* gnu/packages/emacs.scm (geiser): Likewise.
(paredit): Likewise.
(git-modes): Likewise.
(magit): Likewise.
(magit-svn): Likewise.
(haskell-mode): Likewise.
(let-alist): Likewise.
(emacs-w3m): Likewise.
(emacs-wget): Likewise.
(emms): Likewise.
(bbdb): Likewise.
(emacs-mmm-mode): Likewise.
(emacs-pdf-tools): Likewise.
(emacs-popup)[native-inputs]: Remove (as 'emacs-minimal' is the default).
(emacs-rfcview): Likewise.
(emacs-ffap-rfc-space): Likewise.
---
 gnu/packages/code.scm               |  2 +-
 gnu/packages/databases.scm          |  2 +-
 gnu/packages/emacs.scm              | 32 +++++++++++++-------------------
 gnu/packages/finance.scm            |  2 +-
 gnu/packages/idutils.scm            |  2 +-
 gnu/packages/mail.scm               |  2 +-
 gnu/packages/ocaml.scm              |  2 +-
 gnu/packages/package-management.scm |  2 +-
 gnu/packages/plotutils.scm          |  2 +-
 gnu/packages/scheme.scm             |  2 +-
 gnu/packages/version-control.scm    |  4 ++--
 11 files changed, 24 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index af671d5..e0d1f83 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -54,7 +54,7 @@
     (build-system gnu-build-system)
 
     ;; Needed to have cflow-mode.el installed.
-    (native-inputs `(("emacs" ,emacs-no-x)))
+    (native-inputs `(("emacs" ,emacs-minimal)))
 
     (home-page "http://www.gnu.org/software/cflow/")
     (synopsis "Create a graph of control flow within a program")
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 57181f6..bd535a3 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -381,7 +381,7 @@ pictures, sounds, or video.")
                                       (assoc-ref %build-inputs "bash:include")
                                       "/include/bash"))))
 
-    (native-inputs `(("emacs" ,emacs-no-x)
+    (native-inputs `(("emacs" ,emacs-minimal)
                      ("bc" ,bc)
                      ("bash:include" ,bash "include")
                      ("libuuid" ,util-linux)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 077d9af..d3f10db 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -263,7 +263,7 @@ editor (without an X toolkit)" )
                                            "geiser-autoloads.el")))
                  %standard-phases)))
     (inputs `(("guile" ,guile-2.0)))
-    (native-inputs `(("emacs" ,emacs-no-x)))
+    (native-inputs `(("emacs" ,emacs-minimal)))
     (home-page "http://nongnu.org/geiser/")
     (synopsis "Collection of Emacs modes for Guile and Racket hacking")
     (description
@@ -287,7 +287,7 @@ metadata.")
                (base32
                 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
     (build-system trivial-build-system)
-    (native-inputs `(("emacs" ,emacs-no-x)))
+    (native-inputs `(("emacs" ,emacs-minimal)))
     (arguments
      `(#:modules ((guix build utils)
                   (guix build emacs-utils))
@@ -358,7 +358,7 @@ when typing parentheses directly or commenting out code line by line.")
                                       (lisp (string-append
                                              out "/share/emacs/site-lisp/")))
                                  (emacs-generate-autoloads ,name lisp)))))))
-    (native-inputs `(("emacs" ,emacs-no-x)))
+    (native-inputs `(("emacs" ,emacs-minimal)))
     (home-page "https://github.com/magit/git-modes")
     (synopsis "Emacs major modes for Git configuration files")
     (description
@@ -405,7 +405,7 @@ on stdout instead of using a socket as the Emacsclient does.")
                "0im1jrqw29g5anrrjflj6b2gpyqkvpghnq8zvywxyhmjwzar4rn7"))))
     (build-system gnu-build-system)
     (native-inputs `(("texinfo" ,texinfo)
-                     ("emacs" ,emacs-no-x)))
+                     ("emacs" ,emacs-minimal)))
     (inputs `(("git" ,git)))
     (propagated-inputs
      `(("dash" ,emacs-dash)
@@ -467,7 +467,7 @@ operations.")
                (base32
                 "04y88j7q9h8xjbx5dbick6n5nr1522sn9i1znp0qwk3vjb4b5mzz"))))
     (build-system trivial-build-system)
-    (native-inputs `(("emacs" ,emacs-no-x)
+    (native-inputs `(("emacs" ,emacs-minimal)
                      ("tar" ,tar)
                      ("gzip" ,gzip)))
     (propagated-inputs `(("dash" ,emacs-dash)
@@ -526,7 +526,7 @@ support for Git-SVN.")
               (sha256
                (base32 "1kxc2yj8vb122dv91r68h7c5ladcryx963fr16plfhg71fv7f9av"))))
     (native-inputs
-     `(("emacs" ,emacs-no-x)
+     `(("emacs" ,emacs-minimal)
        ("texinfo" ,texinfo)))
     (build-system gnu-build-system)
     (arguments
@@ -607,7 +607,7 @@ programs.")
                      (setenv "PATH" (string-append emacs "/bin"))
                      (emacs-byte-compile-directory lispdir)
                      #t))))
-    (native-inputs `(("emacs" ,emacs-no-x)))
+    (native-inputs `(("emacs" ,emacs-minimal)))
     (home-page "http://elpa.gnu.org/packages/let-alist.html")
     (synopsis "Easily let-bind values of an assoc-list by their names")
     (description
@@ -667,7 +667,7 @@ provides an optional IDE-like error list.")
                "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y"))))
     (build-system gnu-build-system)
     (native-inputs `(("autoconf" ,autoconf)
-                     ("emacs" ,emacs-no-x)))
+                     ("emacs" ,emacs-minimal)))
     (inputs `(("w3m" ,w3m)
               ("imagemagick" ,imagemagick)))
     (arguments
@@ -739,7 +739,7 @@ provides an optional IDE-like error list.")
               (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
     (build-system gnu-build-system)
     (inputs `(("wget" ,wget)))
-    (native-inputs `(("emacs" ,emacs-no-x)))
+    (native-inputs `(("emacs" ,emacs-minimal)))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
@@ -878,7 +878,7 @@ provides an optional IDE-like error list.")
                        (chmod target #o555)))
                    %standard-phases)))
        #:tests? #f))
-    (native-inputs `(("emacs" ,emacs-no-x)       ;for (guix build emacs-utils)
+    (native-inputs `(("emacs" ,emacs-minimal)    ;for (guix build emacs-utils)
                      ("texinfo" ,texinfo)))
     (inputs `(("alsa-utils" ,alsa-utils)
               ("vorbis-tools" ,vorbis-tools)
@@ -928,7 +928,7 @@ light user interface.")
                      (with-directory-excursion site
                        (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el"))))
                  %standard-phases)))
-    (native-inputs `(("emacs" ,emacs-no-x)))
+    (native-inputs `(("emacs" ,emacs-minimal)))
     (home-page "http://savannah.nongnu.org/projects/bbdb/")
     (synopsis "Contact management utility for Emacs")
     (description
@@ -1011,7 +1011,7 @@ or XEmacs.")
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
-       ("emacs" ,emacs-no-x)
+       ("emacs" ,emacs-minimal)
        ("texinfo" ,texinfo)))
     (home-page "https://github.com/purcell/mmm-mode")
     (synopsis "Allow multiple major modes in an Emacs buffer")
@@ -1075,7 +1075,7 @@ single buffer.")
     (native-inputs `(("autoconf" ,autoconf)
                      ("automake" ,automake)
                      ("pkg-config" ,pkg-config)
-                     ("emacs" ,emacs-no-x)))
+                     ("emacs" ,emacs-minimal)))
     (propagated-inputs
      `(("let-alist" ,let-alist)))
     (inputs `(("poppler" ,poppler)
@@ -1489,8 +1489,6 @@ debugging, documentation lookup, and so on.")
                (base32
                 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
     (build-system emacs-build-system)
-    (native-inputs
-     `(("emacs" ,emacs-no-x)))
     (home-page "https://github.com/auto-complete/popup-el")
     (synopsis "Visual Popup User Interface for Emacs")
     (description
@@ -1538,8 +1536,6 @@ insertion mode.  When enabled all keys are implicitly prefixed with
                (base32
                 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
     (build-system emacs-build-system)
-    (native-inputs
-     `(("emacs" ,emacs-no-x)))
     (synopsis "Prettify Request for Comments (RFC) documents")
     (description "The Internet Engineering Task Force (IETF) and the Internet
 Society (ISOC) publish various Internet-related protocols and specifications
@@ -1564,8 +1560,6 @@ local directories.")
                (base32
                 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
     (build-system emacs-build-system)
-    (native-inputs
-     `(("emacs" ,emacs-no-x)))
     (synopsis "Make ffap recognize an RFC with a space before its number")
     (description "The Internet Engineering Task Force (IETF) and the
 Internet Society (ISOC) publish various Internet-related protocols and
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index b511d2c..23faead 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -158,7 +158,7 @@ line client and a client based on Qt.")
        ("tzdata" ,tzdata)
        ("utfcpp" ,utfcpp)))
     (native-inputs
-     `(("emacs" ,emacs-no-x)
+     `(("emacs" ,emacs-minimal)
        ("groff" ,groff)
        ("texinfo" ,texinfo)))
     (home-page "http://ledger-cli.org/")
diff --git a/gnu/packages/idutils.scm b/gnu/packages/idutils.scm
index 7a8e1c6..63760c8 100644
--- a/gnu/packages/idutils.scm
+++ b/gnu/packages/idutils.scm
@@ -37,7 +37,7 @@
                "1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1"))
              (patches (search-patches "diffutils-gets-undeclared.patch"))))
     (build-system gnu-build-system)
-    (native-inputs `(("emacs" ,emacs-no-x)))
+    (native-inputs `(("emacs" ,emacs-minimal)))
     (home-page "http://www.gnu.org/software/idutils/")
     (synopsis "Identifier database utilities")
     (description
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 0f476eb..39133fc 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -344,7 +344,7 @@ repository and Maildir/IMAP as LOCAL repository.")
        ("glib" ,glib "bin")             ; for gtester
        ("autoconf" ,autoconf)
        ("automake" ,automake)
-       ("emacs" ,emacs-no-x)
+       ("emacs" ,emacs-minimal)
        ("libtool" ,libtool)
        ("texinfo" ,texinfo)))
     ;; TODO: Add webkit and gtk to build the mug GUI.
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 434fb13..aafae51 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -386,7 +386,7 @@ It is developed using Objective Caml and Camlp5.")
     (build-system gnu-build-system)
     (native-inputs
      `(("which" ,which)
-       ("emacs" ,emacs-no-x)
+       ("emacs" ,emacs-minimal)
        ("texinfo" ,texinfo)))
     (inputs
      `(("host-emacs" ,emacs)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 314dc90..993808f 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -152,7 +152,7 @@
 
                        #t))))))
     (native-inputs `(("pkg-config" ,pkg-config)
-                     ("emacs" ,emacs-no-x)))      ;for guix.el
+                     ("emacs" ,emacs-minimal)))   ;for guix.el
     (inputs
      (let ((boot-guile (lambda (arch hash)
                          (origin
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index ef61239..5871fb0 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -189,7 +189,7 @@ colors, styles, options and details.")
      `(("gs" ,ghostscript)              ;For tests
        ("texinfo" ,texinfo)             ;For generating documentation
        ("texlive" ,texlive)             ;For tests and documentation
-       ("emacs" ,emacs-no-x)
+       ("emacs" ,emacs-minimal)
        ("perl" ,perl)))
     (inputs
      `(("fftw" ,fftw)
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 452de17..13427c5 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -572,7 +572,7 @@ threads.")
       (build-system gnu-build-system)
       (inputs
        `(("mit-scheme" ,mit-scheme)))
-      (native-inputs `(("emacs" ,emacs-no-x)))
+      (native-inputs `(("emacs" ,emacs-minimal)))
       (arguments
        `(#:tests? #f ;; no tests-suite
          #:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 3e0f5b8..7d58d55 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -851,8 +851,8 @@ masters from remote CVS hosts.")
                "094pjwshvazlgagc254in2xvrp93vhcj0kb5ms17qs7sch99x9z2"))))
     (build-system gnu-build-system)
     (inputs `(("perl" ,perl)
-              ("inetutils" ,inetutils))) ; for `hostname', used in the tests
-    (native-inputs `(("emacs" ,emacs-no-x))) ; for `ctags'
+              ("inetutils" ,inetutils)))     ; for `hostname', used in the tests
+    (native-inputs `(("emacs" ,emacs-minimal))) ; for `ctags'
     (home-page "http://www.gnu.org/software/vc-dwim/")
     (synopsis "Version-control-agnostic ChangeLog diff and commit tool")
     (description
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/6] gnu: Add emacs-minimal.
  2016-05-16 18:20 ` [PATCH 1/6] gnu: Add emacs-minimal Alex Kost
@ 2016-05-19 11:52   ` Ludovic Courtès
  0 siblings, 0 replies; 15+ messages in thread
From: Ludovic Courtès @ 2016-05-19 11:52 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel

Alex Kost <alezost@gmail.com> skribis:

> * gnu/packages/emacs.scm (emacs-minimal): New variable.

Good idea, LGTM!

Ludo’.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/6] build-system/emacs: Use "emacs" from native-inputs if specified.
  2016-05-16 18:20 ` [PATCH 2/6] build-system/emacs: Use "emacs" from native-inputs if specified Alex Kost
@ 2016-05-19 11:54   ` Ludovic Courtès
  2016-05-20 21:21     ` Alex Kost
  0 siblings, 1 reply; 15+ messages in thread
From: Ludovic Courtès @ 2016-05-19 11:54 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel

Alex Kost <alezost@gmail.com> skribis:

> * guix/build-system/emacs.scm (lower): Do not add "emacs" to
>   build-inputs if it is already specified in the native-inputs.

In theory, one could want to have Emacs both in ‘native-inputs’ (to
build .elc files, for instance) and in ‘inputs’ (for instance because
the program embeds a reference to the ‘emacs’ program.)

So I’m rather reluctant about this approach.

Did you find packages where Emacs wrongfully appears twice in the
inputs?  It might be best to fix those packages instead.

WDYT?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/6] build-system/emacs: Use 'emacs-minimal' as default emacs for building.
  2016-05-16 18:20 ` [PATCH 3/6] build-system/emacs: Use 'emacs-minimal' as default emacs for building Alex Kost
@ 2016-05-19 11:55   ` Ludovic Courtès
  0 siblings, 0 replies; 15+ messages in thread
From: Ludovic Courtès @ 2016-05-19 11:55 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel

Alex Kost <alezost@gmail.com> skribis:

> * guix/build-system/emacs.scm (default-emacs): Use 'emacs-minimal'.
> ---
>  guix/build-system/emacs.scm | 6 +-----
>  1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm
> index 017e6ef..995fce7 100644
> --- a/guix/build-system/emacs.scm
> +++ b/guix/build-system/emacs.scm
> @@ -49,11 +49,7 @@
>    "Return the default Emacs package."
>    ;; Lazily resolve the binding to avoid a circular dependency.
>    (let ((emacs-mod (resolve-interface '(gnu packages emacs))))
> -    ;; we use 'emacs' instead of 'emacs-no-x' because the latter appears not
> -    ;; to be loading some macros and causes problems to some packages.  For
> -    ;; example, with the latter AUCTeX gives the error message:
> -    ;; "(invalid-function dbus-ignore-errors)".
> -    (module-ref emacs-mod 'emacs)))
> +    (module-ref emacs-mod 'emacs-minimal)))

Can you confirm that AUCTeX is happy with this patch?

If yes, then OK for me.

Ludo’.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4/6] gnu: emacs-auctex: Use 'emacs' for byte-compiling.
  2016-05-16 18:20 ` [PATCH 4/6] gnu: emacs-auctex: Use 'emacs' for byte-compiling Alex Kost
@ 2016-05-19 11:56   ` Ludovic Courtès
  0 siblings, 0 replies; 15+ messages in thread
From: Ludovic Courtès @ 2016-05-19 11:56 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel

Alex Kost <alezost@gmail.com> skribis:

> * gnu/packages/emacs.scm (emacs-auctex)[native-inputs]: Add 'emacs'.
> ---
>  gnu/packages/emacs.scm | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index d31aa73..32e24a4 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -975,7 +975,10 @@ as a library for other Emacs packages.")
>           "1pmki8hdjjikxlvip3pzi350bln3gcimr27yjf0xfwjvnp5hh9nc"))))
>      (build-system emacs-build-system)
>      (native-inputs
> -     `(("perl" ,perl)))
> +     ;; We use 'emacs' because AUCTeX requires dbus at compile time
> +     ;; ('emacs-minimal' does not provide dbus).
> +     `(("emacs" ,emacs)
> +       ("perl" ,perl)))

Oh I see, maybe this one should come before patch #3.

LGTM.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 5/6] gnu: Move emacs for building from inputs to native-inputs.
  2016-05-16 18:20 ` [PATCH 5/6] gnu: Move emacs for building from inputs to native-inputs Alex Kost
@ 2016-05-19 11:57   ` Ludovic Courtès
  2016-05-21 11:08     ` Alex Kost
  0 siblings, 1 reply; 15+ messages in thread
From: Ludovic Courtès @ 2016-05-19 11:57 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel

Alex Kost <alezost@gmail.com> skribis:

> * gnu/packages/emacs.scm (geiser): Move "emacs" from inputs to native-inputs.
> (paredit): Likewise.
> (haskell-mode): Likewise.
> (emacs-w3m): Likewise.
> (emacs-wget): Likewise.
> * gnu/packages/mail.scm (mu): Likewise.
> * gnu/packages/scheme.scm (scmutils): Likewise.
> * gnu/packages/version-control.scm (vc-dwim): Likewise.

LGTM.

To be clear, this patch is valid if and only if the packages in question
do not contain Emacs among their run-time references (that is, ‘guix gc
-R the-package | grep emacs | wc -l’ is zero.)

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 6/6] gnu: Use 'emacs-minimal' instead of 'emacs-no-x'.
  2016-05-16 18:20 ` [PATCH 6/6] gnu: Use 'emacs-minimal' instead of 'emacs-no-x' Alex Kost
@ 2016-05-19 11:58   ` Ludovic Courtès
  0 siblings, 0 replies; 15+ messages in thread
From: Ludovic Courtès @ 2016-05-19 11:58 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel

Alex Kost <alezost@gmail.com> skribis:

> * gnu/packages/code.scm (cflow)[native-inputs]: Use 'emacs-minimal'
>   instead of 'emacs-no-x'.
> * gnu/packages/databases.scm (recutils): Likewise.
> * gnu/packages/finance.scm (ledger): Likewise
> * gnu/packages/idutils.scm (idutils): Likewise.
> * gnu/packages/mail.scm (mu): Likewise.
> * gnu/packages/ocaml.scm (proof-general): Likewise.
> * gnu/packages/package-management.scm (guix-0.10.0): Likewise.
> * gnu/packages/plotutils.scm (asymptote): Likewise.
> * gnu/packages/scheme.scm (scmutils): Likewise.
> * gnu/packages/version-control.scm (vc-dwim): Likewise.
> * gnu/packages/emacs.scm (geiser): Likewise.
> (paredit): Likewise.
> (git-modes): Likewise.
> (magit): Likewise.
> (magit-svn): Likewise.
> (haskell-mode): Likewise.
> (let-alist): Likewise.
> (emacs-w3m): Likewise.
> (emacs-wget): Likewise.
> (emms): Likewise.
> (bbdb): Likewise.
> (emacs-mmm-mode): Likewise.
> (emacs-pdf-tools): Likewise.
> (emacs-popup)[native-inputs]: Remove (as 'emacs-minimal' is the default).
> (emacs-rfcview): Likewise.
> (emacs-ffap-rfc-space): Likewise.

LGTM.

Thanks!

Ludo'.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/6] build-system/emacs: Use "emacs" from native-inputs if specified.
  2016-05-19 11:54   ` Ludovic Courtès
@ 2016-05-20 21:21     ` Alex Kost
  0 siblings, 0 replies; 15+ messages in thread
From: Alex Kost @ 2016-05-20 21:21 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Ludovic Courtès (2016-05-19 14:54 +0300) wrote:

> Alex Kost <alezost@gmail.com> skribis:
>
>> * guix/build-system/emacs.scm (lower): Do not add "emacs" to
>>   build-inputs if it is already specified in the native-inputs.
>
> In theory, one could want to have Emacs both in ‘native-inputs’ (to
> build .elc files, for instance) and in ‘inputs’ (for instance because
> the program embeds a reference to the ‘emacs’ program.)

I don't see a problem here, if "emacs" should be added to inputs, it may
just go there.  Nothing prohibits it.

> So I’m rather reluctant about this approach.
>
> Did you find packages where Emacs wrongfully appears twice in the
> inputs?  It might be best to fix those packages instead.

Do you mean: appears both in "inputs" and "native-inputs"?  If so, then
no, there are no such packages.

But I don't understand how this concerns.  The purpose of this patch is
to allow us to use a different "emacs" to build emacs packages.  I
would say this is the core patch of the whole patchset.  I didn't like
the fact that emacs-build-system uses a full-featured (and heavy on
dependencies) "emacs" package, and I would like to use "emacs-minimal"
instead.  But for some rare cases (currently only for auctex),
"emacs-minimal" (or "emacs-no-x") is not enough, so it should be
substituted somehow.  That's why I made this patch.

-- 
Alex

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 5/6] gnu: Move emacs for building from inputs to native-inputs.
  2016-05-19 11:57   ` Ludovic Courtès
@ 2016-05-21 11:08     ` Alex Kost
  0 siblings, 0 replies; 15+ messages in thread
From: Alex Kost @ 2016-05-21 11:08 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Ludovic Courtès (2016-05-19 14:57 +0300) wrote:

> Alex Kost <alezost@gmail.com> skribis:
>
>> * gnu/packages/emacs.scm (geiser): Move "emacs" from inputs to native-inputs.
>> (paredit): Likewise.
>> (haskell-mode): Likewise.
>> (emacs-w3m): Likewise.
>> (emacs-wget): Likewise.
>> * gnu/packages/mail.scm (mu): Likewise.
>> * gnu/packages/scheme.scm (scmutils): Likewise.
>> * gnu/packages/version-control.scm (vc-dwim): Likewise.
>
> LGTM.
>
> To be clear, this patch is valid if and only if the packages in question
> do not contain Emacs among their run-time references (that is, ‘guix gc
> -R the-package | grep emacs | wc -l’ is zero.)

Right, none of these packages has Emacs as the run-time dependency.

-- 
Alex

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2016-05-21 11:08 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-16 18:20 [PATCH 0/6] Modifications in building emacs packages Alex Kost
2016-05-16 18:20 ` [PATCH 1/6] gnu: Add emacs-minimal Alex Kost
2016-05-19 11:52   ` Ludovic Courtès
2016-05-16 18:20 ` [PATCH 2/6] build-system/emacs: Use "emacs" from native-inputs if specified Alex Kost
2016-05-19 11:54   ` Ludovic Courtès
2016-05-20 21:21     ` Alex Kost
2016-05-16 18:20 ` [PATCH 3/6] build-system/emacs: Use 'emacs-minimal' as default emacs for building Alex Kost
2016-05-19 11:55   ` Ludovic Courtès
2016-05-16 18:20 ` [PATCH 4/6] gnu: emacs-auctex: Use 'emacs' for byte-compiling Alex Kost
2016-05-19 11:56   ` Ludovic Courtès
2016-05-16 18:20 ` [PATCH 5/6] gnu: Move emacs for building from inputs to native-inputs Alex Kost
2016-05-19 11:57   ` Ludovic Courtès
2016-05-21 11:08     ` Alex Kost
2016-05-16 18:20 ` [PATCH 6/6] gnu: Use 'emacs-minimal' instead of 'emacs-no-x' Alex Kost
2016-05-19 11:58   ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).