unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] Attempt at packaging guile-emacs (needs help)
@ 2015-05-10 19:35 Christopher Allan Webber
  2015-05-10 21:51 ` Mark H Weaver
  2015-05-14  0:01 ` [PATCH] Add guile-emacs! Christopher Allan Webber
  0 siblings, 2 replies; 16+ messages in thread
From: Christopher Allan Webber @ 2015-05-10 19:35 UTC (permalink / raw)
  To: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 771 bytes --]

Hello all,

I started working on an attempt to package guile-emacs, based on
  http://www.emacswiki.org/emacs/GuileEmacs

This includes both a package for guilemacs-guile and guilemacs-emacs,
both BT Templeton's WIP branches.

Unfortunately, guilemacs-guile does not complete building.  It compiles,
but then fails "make check":
  http://pamrel.lu/2aa8f/

I don't really understand why that is at present, and I don't know much
about Guile internals.  Help would be appreciated!

I think it would be really useful to have Guix packages of guile-emacs!
The Guix community's present composition has a large overlap of people
likely to try to use it, and well, I think the communities' goals are
also highly complimentary...

Anyway, help appreciated, if you can spare it!


[-- Attachment #2: 0001-guilemacs-attempt-failing-on-make-check.patch --]
[-- Type: text/x-diff, Size: 4236 bytes --]

From 4182f8c22f1ca4eea453e61a90c77b790f573d8a Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber <cwebber@dustycloud.org>
Date: Sun, 10 May 2015 09:29:54 -0500
Subject: [PATCH] guilemacs attempt, failing on "make check"

---
 gnu/packages/guile.scm     |  3 +-
 gnu/packages/guilemacs.scm | 83 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 85 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/guilemacs.scm

diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 751002f..33d5773 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -41,7 +41,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix utils)
-  #:use-module (ice-9 match))
+  #:use-module (ice-9 match)
+  #:export (guile-2.0))
 
 ;;; Commentary:
 ;;;
diff --git a/gnu/packages/guilemacs.scm b/gnu/packages/guilemacs.scm
new file mode 100644
index 0000000..c370200
--- /dev/null
+++ b/gnu/packages/guilemacs.scm
@@ -0,0 +1,83 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages guilemacs)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build utils)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages guile)
+  #:use-module (gnu packages emacs)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages texinfo))
+
+(define-public guilemacs-guile
+  (package (inherit guile-2.0)
+    (name "guilemacs-guile")
+    (version "20150212.a930be6")
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autogen
+                    (lambda _
+                      (zero? (system* "sh" "autogen.sh"))))
+         (add-before 'autogen 'patch-/bin/sh
+           (lambda _
+             (substitute* "build-aux/git-version-gen"
+               (("#!/bin/sh") (string-append "#!" (which "sh")))))))))
+    (native-inputs
+     (append
+      `(("autoconf" ,autoconf)
+        ("automake" ,automake)
+        ("libtool" ,libtool)
+        ("flex" ,flex)
+        ("texinfo" ,texinfo))
+      (package-native-inputs guile-2.0)))
+    (inputs
+     (append
+      `(("gettext" ,gnu-gettext))
+      (package-inputs guile-2.0)))
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.hcoop.net/git/bpt/guile.git")
+                    (commit "a930be6f0f0d1594873c7eb9d2316ecf926da67d")))
+              (sha256
+               (base32
+                "1l520n482cq8h8qbkp11j5xcz5vf6fnbpc24i0xmd3ngj2ga3gh7"))))))
+
+(define-public guilemacs-emacs
+  (package (inherit emacs)
+    (name "guilemacs-emacs")
+    (version "20150212.a930be6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.hcoop.net/git/bpt/emacs.git")
+                    (commit "8f2e20304cbfdc046f4e3d3fca7b844f07e65076")))
+              (sha256
+               (base32
+                "0f0i7ax0wi5q2w2kvr4bdzkcbzvcqvnbni0n8vdsrxc7ayl8zdi3"))))
+    (inputs
+     (cons
+      `("guile" ,guilemacs-guile)
+      (package-inputs emacs)))))
-- 
2.1.4


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

* Re: [PATCH] Attempt at packaging guile-emacs (needs help)
  2015-05-10 19:35 [PATCH] Attempt at packaging guile-emacs (needs help) Christopher Allan Webber
@ 2015-05-10 21:51 ` Mark H Weaver
  2015-05-11  2:29   ` Christopher Allan Webber
  2015-05-14  0:01 ` [PATCH] Add guile-emacs! Christopher Allan Webber
  1 sibling, 1 reply; 16+ messages in thread
From: Mark H Weaver @ 2015-05-10 21:51 UTC (permalink / raw)
  To: Christopher Allan Webber; +Cc: Guix-devel

Christopher Allan Webber <cwebber@dustycloud.org> writes:

> I started working on an attempt to package guile-emacs, based on
>   http://www.emacswiki.org/emacs/GuileEmacs
>
> This includes both a package for guilemacs-guile and guilemacs-emacs,
> both BT Templeton's WIP branches.

Excellent! :)

> Unfortunately, guilemacs-guile does not complete building.  It compiles,
> but then fails "make check":
>   http://pamrel.lu/2aa8f/

These are known issues.  Perhaps we should just disable tests for now.

> From 4182f8c22f1ca4eea453e61a90c77b790f573d8a Mon Sep 17 00:00:00 2001
> From: Christopher Allan Webber <cwebber@dustycloud.org>
> Date: Sun, 10 May 2015 09:29:54 -0500
> Subject: [PATCH] guilemacs attempt, failing on "make check"
>
> ---
>  gnu/packages/guile.scm     |  3 +-
>  gnu/packages/guilemacs.scm | 83 ++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 85 insertions(+), 1 deletion(-)
>  create mode 100644 gnu/packages/guilemacs.scm
>
>
> diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
> index 751002f..33d5773 100644
> --- a/gnu/packages/guile.scm
> +++ b/gnu/packages/guile.scm
> @@ -41,7 +41,8 @@
>    #:use-module (guix build-system gnu)
>    #:use-module (guix build-system trivial)
>    #:use-module (guix utils)
> -  #:use-module (ice-9 match))
> +  #:use-module (ice-9 match)
> +  #:export (guile-2.0))

No need for this, because 'define-public' is used to define guile-2.0.

> diff --git a/gnu/packages/guilemacs.scm b/gnu/packages/guilemacs.scm
> new file mode 100644
> index 0000000..c370200
> --- /dev/null
> +++ b/gnu/packages/guilemacs.scm

I believe that bipt calls it "guile-emacs", so that's what we should
call it too.

This file needs to be added to GNU_SYSTEM_MODULES in gnu-system.am.

> +(define-public guilemacs-guile

I think the main package should just be called "guile-emacs", but I'm
not sure what to name this branch of guile.  "guile-for-guile-emacs"
comes to mind, but I admit that's not great.  Maybe it doesn't matter
since users are unlikely to install it directly.

> +  (package (inherit guile-2.0)
> +    (name "guilemacs-guile")
> +    (version "20150212.a930be6")
> +    (arguments
> +     '(#:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'autogen
> +                    (lambda _
> +                      (zero? (system* "sh" "autogen.sh"))))
> +         (add-before 'autogen 'patch-/bin/sh
> +           (lambda _
> +             (substitute* "build-aux/git-version-gen"
> +               (("#!/bin/sh") (string-append "#!" (which "sh")))))))))

Phases are supposed to return a boolean indicating whether the phase
succeeded, but the return value of 'substitute*' is not specified.  In
practice it tends to work, but I'd prefer to put an explicit #t in
there, like this:

--8<---------------cut here---------------start------------->8---
           (lambda _
             (substitute* "build-aux/git-version-gen"
               (("#!/bin/sh") (string-append "#!" (which "sh"))))
             #t)))))
--8<---------------cut here---------------end--------------->8---

> +    (native-inputs
> +     (append
> +      `(("autoconf" ,autoconf)
> +        ("automake" ,automake)
> +        ("libtool" ,libtool)
> +        ("flex" ,flex)
> +        ("texinfo" ,texinfo))
> +      (package-native-inputs guile-2.0)))
> +    (inputs
> +     (append
> +      `(("gettext" ,gnu-gettext))
> +      (package-inputs guile-2.0)))

This is okay, but it would be more consistent with our usual style to
let the quasiquote do the append, like this:

--8<---------------cut here---------------start------------->8---
    (native-inputs
     `(("autoconf" ,autoconf)
       ("automake" ,automake)
       ("libtool" ,libtool)
       ("flex" ,flex)
       ("texinfo" ,texinfo)
       ,@(package-native-inputs guile-2.0)))
    (inputs
     `(("gettext" ,gnu-gettext)
       ,@(package-inputs guile-2.0)))))
--8<---------------cut here---------------end--------------->8---

> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "git://git.hcoop.net/git/bpt/guile.git")
> +                    (commit "a930be6f0f0d1594873c7eb9d2316ecf926da67d")))
> +              (sha256
> +               (base32
> +                "1l520n482cq8h8qbkp11j5xcz5vf6fnbpc24i0xmd3ngj2ga3gh7"))))))

For consistency, we usually put the 'source' field just below the
'version' field, although it's not a big deal.

> +(define-public guilemacs-emacs
> +  (package (inherit emacs)
> +    (name "guilemacs-emacs")

Let's call it "guile-emacs" (both the variable and in the 'name' field).

> +    (version "20150212.a930be6")

This should be "20150212.8f2e203".

> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "git://git.hcoop.net/git/bpt/emacs.git")
> +                    (commit "8f2e20304cbfdc046f4e3d3fca7b844f07e65076")))
> +              (sha256
> +               (base32
> +                "0f0i7ax0wi5q2w2kvr4bdzkcbzvcqvnbni0n8vdsrxc7ayl8zdi3"))))
> +    (inputs
> +     (cons
> +      `("guile" ,guilemacs-guile)
> +      (package-inputs emacs)))))

See my suggestion above about using ,@ within the quasiquote to do this.

Thanks for working on this!

      Mark

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

* Re: [PATCH] Attempt at packaging guile-emacs (needs help)
  2015-05-10 21:51 ` Mark H Weaver
@ 2015-05-11  2:29   ` Christopher Allan Webber
  0 siblings, 0 replies; 16+ messages in thread
From: Christopher Allan Webber @ 2015-05-11  2:29 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 1953 bytes --]

Thanks Mark!  I made most of these adjustments...

Mark H Weaver writes:

>> Unfortunately, guilemacs-guile does not complete building.  It compiles,
>> but then fails "make check":
>>   http://pamrel.lu/2aa8f/
>
> These are known issues.  Perhaps we should just disable tests for now.

BT Templeton fixed some issues, but I'm still hitting failures with the
popen tests.  I removed the "check" build step for now, at your suggestion.

>> diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
>> index 751002f..33d5773 100644
>> --- a/gnu/packages/guile.scm
>> +++ b/gnu/packages/guile.scm
>> @@ -41,7 +41,8 @@
>>    #:use-module (guix build-system gnu)
>>    #:use-module (guix build-system trivial)
>>    #:use-module (guix utils)
>> -  #:use-module (ice-9 match))
>> +  #:use-module (ice-9 match)
>> +  #:export (guile-2.0))
>
> No need for this, because 'define-public' is used to define guile-2.0.

Okay... it didn't seem to work without it but I'll look again tomorrow.

I incorporated the other feedback!

Unfortunately, it still doesn't build:

Loading /tmp/nix-build-guile-emacs-20150209.8f2e203.drv-3/source/lisp/progmodes/prog-mode.el (source)...
Loading /tmp/nix-build-guile-emacs-20150209.8f2e203.drv-3/source/lisp/emacs-lisp/lisp-mode.el (source)...
Scheme error: unbound-variable, (#<scheme module-lookup> #<scheme Unbound variable: ~S> (regexp-opt) #<scheme #f>)
Makefile:91: recipe for target '../../source/leim/../lisp/leim/quail/TONEPY.el' failed
make[2]: *** [../../source/leim/../lisp/leim/quail/TONEPY.el] Error 255
make[2]: Leaving directory '/tmp/nix-build-guile-emacs-20150209.8f2e203.drv-3/build/leim'
Makefile:603: recipe for target '../../source/src/../lisp/leim/leim-list.el' failed
make[1]: *** [../../source/src/../lisp/leim/leim-list.el] Error 2
make[1]: *** Waiting for unfinished jobs....

I don't really know enough to know what's going on and how to fix it.
Maybe a more seasoned Guile hacker could look....?


[-- Attachment #2: 0001-guilemacs-attempt.patch --]
[-- Type: text/x-diff, Size: 5167 bytes --]

From a9ba656c3030da8252bf8b2c3090e7489fc7551e Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber <cwebber@dustycloud.org>
Date: Sun, 10 May 2015 09:29:54 -0500
Subject: [PATCH] guilemacs attempt

 - Doesn't build emacs yet
 - Skipping make check on guile-for-guile-emacs
---
 gnu-system.am                |  1 +
 gnu/packages/guile-emacs.scm | 93 ++++++++++++++++++++++++++++++++++++++++++++
 gnu/packages/guile.scm       |  3 +-
 3 files changed, 96 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/guile-emacs.scm

diff --git a/gnu-system.am b/gnu-system.am
index 95378a7..d8117b8 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -143,6 +143,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/gstreamer.scm			\
   gnu/packages/gtk.scm				\
   gnu/packages/guile.scm			\
+  gnu/packages/guile-emacs.scm			\
   gnu/packages/guile-wm.scm			\
   gnu/packages/gv.scm				\
   gnu/packages/gxmessage.scm			\
diff --git a/gnu/packages/guile-emacs.scm b/gnu/packages/guile-emacs.scm
new file mode 100644
index 0000000..8bb6fa1
--- /dev/null
+++ b/gnu/packages/guile-emacs.scm
@@ -0,0 +1,93 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages guile-emacs)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build utils)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages guile)
+  #:use-module (gnu packages emacs)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages texinfo))
+
+(define-public guile-for-guile-emacs
+  (package (inherit guile-2.0)
+    (name "guile-for-guile-emacs")
+    (version "20150510.d8d9a8d")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.hcoop.net/git/bpt/guile.git")
+                    (commit "d8d9a8da05ec876acba81a559798eb5eeceb5a17")))
+              (sha256
+               (base32
+                "00sprsshy16y8pxjy126hr2adqcvvzzz96hjyjwgg8swva1qh6b0"))))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autogen
+                    (lambda _
+                      (zero? (system* "sh" "autogen.sh"))))
+         (add-before 'autogen 'patch-/bin/sh
+           (lambda _
+             (substitute* "build-aux/git-version-gen"
+               (("#!/bin/sh") (string-append "#!" (which "sh"))))
+             #t))
+         ;; Tests aren't passing for now.  Obviously we should re-enable this!
+         (delete 'check))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("flex" ,flex)
+       ("texinfo" ,texinfo)
+       ,@(package-native-inputs guile-2.0)))
+    (inputs
+     `(("gettext" ,gnu-gettext)
+       ,@(package-inputs guile-2.0)))))
+
+(define-public guile-emacs
+  (package (inherit emacs)
+    (name "guile-emacs")
+    (version "20150209.8f2e203")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.hcoop.net/git/bpt/emacs.git")
+                    (commit "8f2e20304cbfdc046f4e3d3fca7b844f07e65076")))
+              (sha256
+               (base32
+                "0f0i7ax0wi5q2w2kvr4bdzkcbzvcqvnbni0n8vdsrxc7ayl8zdi3"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ,@(package-native-inputs emacs)))
+    (inputs
+     `(("guile" ,guile-for-guile-emacs)
+       ,@(package-inputs emacs)))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autogen
+                    (lambda _
+                      (zero? (system* "sh" "autogen.sh")))))))))
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 751002f..33d5773 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -41,7 +41,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix utils)
-  #:use-module (ice-9 match))
+  #:use-module (ice-9 match)
+  #:export (guile-2.0))
 
 ;;; Commentary:
 ;;;
-- 
2.1.4


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

* [PATCH] Add guile-emacs!
  2015-05-10 19:35 [PATCH] Attempt at packaging guile-emacs (needs help) Christopher Allan Webber
  2015-05-10 21:51 ` Mark H Weaver
@ 2015-05-14  0:01 ` Christopher Allan Webber
  2015-05-14  8:56   ` Taylan Ulrich Kammer
  2015-05-23  7:26   ` Feng Shu
  1 sibling, 2 replies; 16+ messages in thread
From: Christopher Allan Webber @ 2015-05-14  0:01 UTC (permalink / raw)
  To: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 143 bytes --]

Okay, how about a version of guile-emacs that works and incorporates
feedback from this thread?  Yeah?  Anyone?

Whoooooooooo guile-emacs! :)


[-- Attachment #2: 0001-gnu-Add-guile-emacs-and-guile-for-guile-emacs.patch --]
[-- Type: text/x-diff, Size: 5356 bytes --]

From ca37077e1210c1473b87154d5495267520f92311 Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber <cwebber@dustycloud.org>
Date: Sun, 10 May 2015 09:29:54 -0500
Subject: [PATCH] gnu: Add guile-emacs and guile-for-guile-emacs

* gnu/packages/guile-emacs: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am                |   1 +
 gnu/packages/guile-emacs.scm | 102 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 103 insertions(+)
 create mode 100644 gnu/packages/guile-emacs.scm

diff --git a/gnu-system.am b/gnu-system.am
index 95378a7..d8117b8 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -143,6 +143,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/gstreamer.scm			\
   gnu/packages/gtk.scm				\
   gnu/packages/guile.scm			\
+  gnu/packages/guile-emacs.scm			\
   gnu/packages/guile-wm.scm			\
   gnu/packages/gv.scm				\
   gnu/packages/gxmessage.scm			\
diff --git a/gnu/packages/guile-emacs.scm b/gnu/packages/guile-emacs.scm
new file mode 100644
index 0000000..dee97df
--- /dev/null
+++ b/gnu/packages/guile-emacs.scm
@@ -0,0 +1,102 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages guile-emacs)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build utils)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages guile)
+  #:use-module (gnu packages emacs)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages texinfo))
+
+(define-public guile-for-guile-emacs
+  (package (inherit guile-2.0)
+    (name "guile-for-guile-emacs")
+    (version "20150510.d8d9a8d")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.hcoop.net/git/bpt/guile.git")
+                    (commit "d8d9a8da05ec876acba81a559798eb5eeceb5a17")))
+              (sha256
+               (base32
+                "00sprsshy16y8pxjy126hr2adqcvvzzz96hjyjwgg8swva1qh6b0"))))
+    (arguments
+     (substitute-keyword-arguments `(;; Tests aren't passing for now.
+                                     ;; Obviously we should re-enable this!
+                                     #:tests? #f
+                                     ,@(package-arguments guile-2.0))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'autogen
+                      (lambda _
+                        (zero? (system* "sh" "autogen.sh"))))
+           (add-before 'autogen 'patch-/bin/sh
+                       (lambda _
+                         (substitute* "build-aux/git-version-gen"
+                           (("#!/bin/sh") (string-append "#!" (which "sh"))))
+                         #t))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("flex" ,flex)
+       ("texinfo" ,texinfo)
+       ,@(package-native-inputs guile-2.0)))
+    (inputs
+     `(("gettext" ,gnu-gettext)
+       ,@(package-inputs guile-2.0)))))
+
+(define-public guile-emacs
+  (package (inherit emacs)
+    (name "guile-emacs")
+    (version "20150512.41120e0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.hcoop.net/git/bpt/emacs.git")
+                    (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
+              (sha256
+               (base32
+                "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ,@(package-native-inputs emacs)))
+    (inputs
+     `(("guile" ,guile-for-guile-emacs)
+       ,@(package-inputs emacs)))
+    (arguments
+     (substitute-keyword-arguments `(#:parallel-build? #f         
+                                     ;; Tests aren't passing for now.
+                                     ;; Obviously we should re-enable this!
+                                     #:tests? #f
+                                     ,@(package-arguments emacs))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'autogen
+                      (lambda _
+                        (zero? (system* "sh" "autogen.sh"))))))))))
+
-- 
2.1.4


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

* Re: [PATCH] Add guile-emacs!
  2015-05-14  0:01 ` [PATCH] Add guile-emacs! Christopher Allan Webber
@ 2015-05-14  8:56   ` Taylan Ulrich Kammer
  2015-05-14 15:53     ` Christopher Allan Webber
  2015-05-19 17:29     ` Christopher Allan Webber
  2015-05-23  7:26   ` Feng Shu
  1 sibling, 2 replies; 16+ messages in thread
From: Taylan Ulrich Kammer @ 2015-05-14  8:56 UTC (permalink / raw)
  To: Christopher Allan Webber; +Cc: Guix-devel

Christopher Allan Webber <cwebber@dustycloud.org> writes:

> Okay, how about a version of guile-emacs that works and incorporates
> feedback from this thread?  Yeah?  Anyone?
>
> Whoooooooooo guile-emacs! :)

Yay! :-)

I would have thought these would go to guile.scm and emacs.scm.  What do
others think?

> +(define-public guile-for-guile-emacs
> [...]
> +    (inputs
> +     `(("gettext" ,gnu-gettext)

Sure it shouldn't be in native-inputs?  I'm guessing autogen uses it.

> +(define-public guile-emacs
> [...]
> +     (substitute-keyword-arguments `(#:parallel-build? #f         

A comment explaining why parallel builds are disabled would be good.

> +                                     ;; Tests aren't passing for now.
> +                                     ;; Obviously we should re-enable this!
> +                                     #:tests? #f

Tests should generally always be enabled so the second line of the
comment would be redundant; just a nitpick. :-)


Otherwise looks good to me.  Thanks!

Taylan

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

* Re: [PATCH] Add guile-emacs!
  2015-05-14  8:56   ` Taylan Ulrich Kammer
@ 2015-05-14 15:53     ` Christopher Allan Webber
  2015-05-14 20:06       ` Taylan Ulrich Kammer
  2015-05-15 10:13       ` Ludovic Courtès
  2015-05-19 17:29     ` Christopher Allan Webber
  1 sibling, 2 replies; 16+ messages in thread
From: Christopher Allan Webber @ 2015-05-14 15:53 UTC (permalink / raw)
  To: Taylan Ulrich Kammer; +Cc: Guix-devel

Taylan Ulrich Kammer writes:

> Christopher Allan Webber <cwebber@dustycloud.org> writes:
>
>> Okay, how about a version of guile-emacs that works and incorporates
>> feedback from this thread?  Yeah?  Anyone?
>>
>> Whoooooooooo guile-emacs! :)
>
> Yay! :-)
>
> I would have thought these would go to guile.scm and emacs.scm.  What do
> others think?

It can be done... since guile-for-guile-emacs doesn't make sense without
guile-emacs (probably), I thought maybe bundling them together makes
sense...

>> +(define-public guile-for-guile-emacs
>> [...]
>> +    (inputs
>> +     `(("gettext" ,gnu-gettext)
>
> Sure it shouldn't be in native-inputs?  I'm guessing autogen uses it.

So, could someone describe the difference between inputs and
native-inputs?  The manual provides no clarity!  I never know where it
goes and why... I just mime what other packages are doing.

>> +(define-public guile-emacs
>> [...]
>> +     (substitute-keyword-arguments `(#:parallel-build? #f         
>
> A comment explaining why parallel builds are disabled would be good.

Good idea.

>> +                                     ;; Tests aren't passing for now.
>> +                                     ;; Obviously we should re-enable this!
>> +                                     #:tests? #f
>
> Tests should generally always be enabled so the second line of the
> comment would be redundant; just a nitpick. :-)

Yes, but this time especially!  I think it'll be a good sign for
guile-emacs when we can tear off the test disabling... :)

>
> Otherwise looks good to me.  Thanks!
>
> Taylan

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

* Re: [PATCH] Add guile-emacs!
  2015-05-14 15:53     ` Christopher Allan Webber
@ 2015-05-14 20:06       ` Taylan Ulrich Kammer
  2015-05-14 20:52         ` Taylan Ulrich Kammer
  2015-05-15 10:13       ` Ludovic Courtès
  1 sibling, 1 reply; 16+ messages in thread
From: Taylan Ulrich Kammer @ 2015-05-14 20:06 UTC (permalink / raw)
  To: Christopher Allan Webber; +Cc: Guix-devel

Christopher Allan Webber <cwebber@dustycloud.org> writes:

>>> +(define-public guile-for-guile-emacs
>>> [...]
>>> +    (inputs
>>> +     `(("gettext" ,gnu-gettext)
>>
>> Sure it shouldn't be in native-inputs?  I'm guessing autogen uses it.
>
> So, could someone describe the difference between inputs and
> native-inputs?  The manual provides no clarity!  I never know where it
> goes and why... I just mime what other packages are doing.

Perhaps a bug report should be opened about the absence of documentation
on native and propagated inputs...

When an input is in native-inputs instead of inputs, then it is ensured
during cross-compilation that the version present during the build of
the package will be for the platform on which the build is happening;
this is necessary if executables from the input will be run during the
build, such as the autotools suite, bash, gcc, etc.  (The latter are
implicit native inputs of the gnu-build-system AFAIK.)

Gettext will probably be run on the source code to extract localizable
strings; if so then it should be a native input.

If it were just a shared library like libpng, or a program that will be
used during use of the package (such as the 'git' input to 'magit'),
then it needn't be a native input since no executables from it will be
run during the build and it doesn't matter if it's for another platform.

Hope that helps!
Taylan

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

* Re: [PATCH] Add guile-emacs!
  2015-05-14 20:06       ` Taylan Ulrich Kammer
@ 2015-05-14 20:52         ` Taylan Ulrich Kammer
  0 siblings, 0 replies; 16+ messages in thread
From: Taylan Ulrich Kammer @ 2015-05-14 20:52 UTC (permalink / raw)
  To: Christopher Allan Webber; +Cc: Guix-devel

Taylan Ulrich Kammer <taylanbayirli@gmail.com> writes:

> Perhaps a bug report should be opened about the absence of documentation
> on native and propagated inputs...

FYI, instead of a bug report, I just sent a patch to add them to the
documentation.  (Hoping my documentation skills are good enough.)

Taylan

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

* Re: [PATCH] Add guile-emacs!
  2015-05-14 15:53     ` Christopher Allan Webber
  2015-05-14 20:06       ` Taylan Ulrich Kammer
@ 2015-05-15 10:13       ` Ludovic Courtès
  1 sibling, 0 replies; 16+ messages in thread
From: Ludovic Courtès @ 2015-05-15 10:13 UTC (permalink / raw)
  To: Christopher Allan Webber; +Cc: Guix-devel

Christopher Allan Webber <cwebber@dustycloud.org> skribis:

> Taylan Ulrich Kammer writes:
>
>> Christopher Allan Webber <cwebber@dustycloud.org> writes:
>>
>>> Okay, how about a version of guile-emacs that works and incorporates
>>> feedback from this thread?  Yeah?  Anyone?
>>>
>>> Whoooooooooo guile-emacs! :)
>>
>> Yay! :-)
>>
>> I would have thought these would go to guile.scm and emacs.scm.  What do
>> others think?
>
> It can be done... since guile-for-guile-emacs doesn't make sense without
> guile-emacs (probably), I thought maybe bundling them together makes
> sense...

Either way is fine with me.

I guess with this last round of comments it’s going to be in shape to
get in!

Thank you!

Ludo’.

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

* Re: [PATCH] Add guile-emacs!
  2015-05-14  8:56   ` Taylan Ulrich Kammer
  2015-05-14 15:53     ` Christopher Allan Webber
@ 2015-05-19 17:29     ` Christopher Allan Webber
  2015-05-19 18:29       ` Taylan Ulrich Bayırlı/Kammer
  1 sibling, 1 reply; 16+ messages in thread
From: Christopher Allan Webber @ 2015-05-19 17:29 UTC (permalink / raw)
  To: Taylan Ulrich Kammer; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 1127 bytes --]

Taylan Ulrich Kammer writes:

> Christopher Allan Webber <cwebber@dustycloud.org> writes:
>
>> Okay, how about a version of guile-emacs that works and incorporates
>> feedback from this thread?  Yeah?  Anyone?
>>
>> Whoooooooooo guile-emacs! :)
>
> Yay! :-)
>
> I would have thought these would go to guile.scm and emacs.scm.  What do
> others think?
>
>> +(define-public guile-for-guile-emacs
>> [...]
>> +    (inputs
>> +     `(("gettext" ,gnu-gettext)
>
> Sure it shouldn't be in native-inputs?  I'm guessing autogen uses it.
>
>> +(define-public guile-emacs
>> [...]
>> +     (substitute-keyword-arguments `(#:parallel-build? #f         
>
> A comment explaining why parallel builds are disabled would be good.
>
>> +                                     ;; Tests aren't passing for now.
>> +                                     ;; Obviously we should re-enable this!
>> +                                     #:tests? #f
>
> Tests should generally always be enabled so the second line of the
> comment would be redundant; just a nitpick. :-)
>
>
> Otherwise looks good to me.  Thanks!
>
> Taylan

Okay, integrated at last!


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-guile-emacs-and-guile-for-guile-emacs.patch --]
[-- Type: text/x-diff, Size: 4475 bytes --]

From 51edaeae907220ea1b7c8ef8187c444e897b9d09 Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber <cwebber@dustycloud.org>
Date: Sun, 10 May 2015 09:29:54 -0500
Subject: [PATCH] gnu: Add guile-emacs and guile-for-guile-emacs

* gnu/packages/guile.scm (guile-for-guile-emacs): New variable.
* gnu/packages/emacs.scm (guile-emacs): New variable.
---
 gnu/packages/emacs.scm | 33 +++++++++++++++++++++++++++++++++
 gnu/packages/guile.scm | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 8d3df36..9270376 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -23,10 +23,12 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages guile)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages ncurses)
@@ -146,6 +148,37 @@ editor (without an X toolkit)" )
     (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
                        (package-arguments emacs)))))
 
+(define-public guile-emacs
+  (package (inherit emacs)
+    (name "guile-emacs")
+    (version "20150512.41120e0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.hcoop.net/git/bpt/emacs.git")
+                    (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
+              (sha256
+               (base32
+                "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ,@(package-native-inputs emacs)))
+    (inputs
+     `(("guile" ,guile-for-guile-emacs)
+       ,@(package-inputs emacs)))
+    (arguments
+     (substitute-keyword-arguments `(;; Build fails if we allow parallel build
+                                     #:parallel-build? #f
+                                     ;; Tests aren't passing for now.
+                                     #:tests? #f
+                                     ,@(package-arguments emacs))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'autogen
+                      (lambda _
+                        (zero? (system* "sh" "autogen.sh"))))))))))
+
 \f
 ;;;
 ;;; Emacs hacking.
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 751002f..1b1cd88 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -181,6 +181,44 @@ without requiring the source code to be rewritten.")
   ;; in the `base' module, and thus changing it entails a full rebuild.
   guile-2.0)
 
+(define-public guile-for-guile-emacs
+  (package (inherit guile-2.0)
+    (name "guile-for-guile-emacs")
+    (version "20150510.d8d9a8d")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.hcoop.net/git/bpt/guile.git")
+                    (commit "d8d9a8da05ec876acba81a559798eb5eeceb5a17")))
+              (sha256
+               (base32
+                "00sprsshy16y8pxjy126hr2adqcvvzzz96hjyjwgg8swva1qh6b0"))))
+    (arguments
+     (substitute-keyword-arguments `(;; Tests aren't passing for now.
+                                     ;; Obviously we should re-enable this!
+                                     #:tests? #f
+                                     ,@(package-arguments guile-2.0))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'autogen
+                      (lambda _
+                        (zero? (system* "sh" "autogen.sh"))))
+           (add-before 'autogen 'patch-/bin/sh
+                       (lambda _
+                         (substitute* "build-aux/git-version-gen"
+                           (("#!/bin/sh") (string-append "#!" (which "sh"))))
+                         #t))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("flex" ,flex)
+       ("texinfo" ,texinfo)
+       ,@(package-native-inputs guile-2.0)))
+    (inputs
+     `(("gettext" ,gnu-gettext)
+       ,@(package-inputs guile-2.0)))))
+
 \f
 ;;;
 ;;; Extensions.
-- 
2.1.4


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

* Re: [PATCH] Add guile-emacs!
  2015-05-19 17:29     ` Christopher Allan Webber
@ 2015-05-19 18:29       ` Taylan Ulrich Bayırlı/Kammer
  2015-05-19 19:41         ` Christopher Allan Webber
  0 siblings, 1 reply; 16+ messages in thread
From: Taylan Ulrich Bayırlı/Kammer @ 2015-05-19 18:29 UTC (permalink / raw)
  To: Christopher Allan Webber; +Cc: Guix-devel

Christopher Allan Webber <cwebber@dustycloud.org> writes:

> +    (native-inputs
> +     `(("autoconf" ,autoconf)
> +       ("automake" ,automake)
> +       ,@(package-native-inputs emacs)))
> +    (inputs
> +     `(("guile" ,guile-for-guile-emacs)
> +       ,@(package-inputs emacs)))

I didn't think about this before: if Guile is used at compile-time,
e.g. to compile any .scm or .el files, then it should be in native
inputs too.  Can you verify whether it's used or not?  (In the future it
probably will be used to compile .el files, but that's still not enabled
if I remember correctly.)

> +    (arguments
> +     (substitute-keyword-arguments `(;; Build fails if we allow parallel build
> +                                     #:parallel-build? #f

Stylistic nitpick: sentence in comment should end with a period.

> +    (native-inputs
> +     `(("autoconf" ,autoconf)
> +       ("automake" ,automake)
> +       ("libtool" ,libtool)
> +       ("flex" ,flex)
> +       ("texinfo" ,texinfo)
> +       ,@(package-native-inputs guile-2.0)))
> +    (inputs
> +     `(("gettext" ,gnu-gettext)
> +       ,@(package-inputs guile-2.0)))))

I think we wanted to put Gettext in native-inputs?


I'd say OK to push with those changes, thanks! :-)

Taylan

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

* Re: [PATCH] Add guile-emacs!
  2015-05-19 18:29       ` Taylan Ulrich Bayırlı/Kammer
@ 2015-05-19 19:41         ` Christopher Allan Webber
  2015-05-19 20:24           ` Taylan Ulrich Bayırlı/Kammer
  0 siblings, 1 reply; 16+ messages in thread
From: Christopher Allan Webber @ 2015-05-19 19:41 UTC (permalink / raw)
  To: Taylan Ulrich Bayırlı/Kammer; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 1447 bytes --]

Taylan Ulrich Bayırlı/Kammer writes:

> Christopher Allan Webber <cwebber@dustycloud.org> writes:
>
>> +    (native-inputs
>> +     `(("autoconf" ,autoconf)
>> +       ("automake" ,automake)
>> +       ,@(package-native-inputs emacs)))
>> +    (inputs
>> +     `(("guile" ,guile-for-guile-emacs)
>> +       ,@(package-inputs emacs)))
>
> I didn't think about this before: if Guile is used at compile-time,
> e.g. to compile any .scm or .el files, then it should be in native
> inputs too.  Can you verify whether it's used or not?  (In the future it
> probably will be used to compile .el files, but that's still not enabled
> if I remember correctly.)

It is, moved it.

>> +    (arguments
>> +     (substitute-keyword-arguments `(;; Build fails if we allow parallel build
>> +                                     #:parallel-build? #f
>
> Stylistic nitpick: sentence in comment should end with a period.

Ok

>> +    (native-inputs
>> +     `(("autoconf" ,autoconf)
>> +       ("automake" ,automake)
>> +       ("libtool" ,libtool)
>> +       ("flex" ,flex)
>> +       ("texinfo" ,texinfo)
>> +       ,@(package-native-inputs guile-2.0)))
>> +    (inputs
>> +     `(("gettext" ,gnu-gettext)
>> +       ,@(package-inputs guile-2.0)))))
>
> I think we wanted to put Gettext in native-inputs?

Done

>
> I'd say OK to push with those changes, thanks! :-)
>
> Taylan

Great, I hope it's good now!


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-guile-emacs-and-guile-for-guile-emacs.patch --]
[-- Type: text/x-diff, Size: 4974 bytes --]

From 46d0296e4a569cab11b5f2e3c982a2db6cb58524 Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber <cwebber@dustycloud.org>
Date: Sun, 10 May 2015 09:29:54 -0500
Subject: [PATCH] gnu: Add guile-emacs and guile-for-guile-emacs

* gnu/packages/guile.scm (guile-for-guile-emacs): New variable.
* gnu/packages/emacs.scm (guile-emacs): New variable.
---
 gnu/packages/emacs.scm | 31 +++++++++++++++++++++++++++++++
 gnu/packages/guile.scm | 39 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 70 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 8d3df36..788097a 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -23,10 +23,12 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages guile)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages ncurses)
@@ -146,6 +148,35 @@ editor (without an X toolkit)" )
     (arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
                        (package-arguments emacs)))))
 
+(define-public guile-emacs
+  (package (inherit emacs)
+    (name "guile-emacs")
+    (version "20150512.41120e0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.hcoop.net/git/bpt/emacs.git")
+                    (commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
+              (sha256
+               (base32
+                "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("guile" ,guile-for-guile-emacs)
+       ,@(package-native-inputs emacs)))
+    (arguments
+     (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
+                                     #:parallel-build? #f
+                                     ;; Tests aren't passing for now.
+                                     #:tests? #f
+                                     ,@(package-arguments emacs))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'autogen
+                      (lambda _
+                        (zero? (system* "sh" "autogen.sh"))))))))))
+
 \f
 ;;;
 ;;; Emacs hacking.
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 751002f..4446ccf 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -27,6 +27,7 @@
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages multiprecision)
@@ -35,6 +36,8 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages ed)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages gettext)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -181,6 +184,42 @@ without requiring the source code to be rewritten.")
   ;; in the `base' module, and thus changing it entails a full rebuild.
   guile-2.0)
 
+(define-public guile-for-guile-emacs
+  (package (inherit guile-2.0)
+    (name "guile-for-guile-emacs")
+    (version "20150510.d8d9a8d")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.hcoop.net/git/bpt/guile.git")
+                    (commit "d8d9a8da05ec876acba81a559798eb5eeceb5a17")))
+              (sha256
+               (base32
+                "00sprsshy16y8pxjy126hr2adqcvvzzz96hjyjwgg8swva1qh6b0"))))
+    (arguments
+     (substitute-keyword-arguments `(;; Tests aren't passing for now.
+                                     ;; Obviously we should re-enable this!
+                                     #:tests? #f
+                                     ,@(package-arguments guile-2.0))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'autogen
+                      (lambda _
+                        (zero? (system* "sh" "autogen.sh"))))
+           (add-before 'autogen 'patch-/bin/sh
+                       (lambda _
+                         (substitute* "build-aux/git-version-gen"
+                           (("#!/bin/sh") (string-append "#!" (which "sh"))))
+                         #t))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("flex" ,flex)
+       ("texinfo" ,texinfo)
+       ("gettext" ,gnu-gettext)
+       ,@(package-native-inputs guile-2.0)))))
+
 \f
 ;;;
 ;;; Extensions.
-- 
2.1.4


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

* Re: [PATCH] Add guile-emacs!
  2015-05-19 19:41         ` Christopher Allan Webber
@ 2015-05-19 20:24           ` Taylan Ulrich Bayırlı/Kammer
  2015-05-20 12:22             ` Ludovic Courtès
  0 siblings, 1 reply; 16+ messages in thread
From: Taylan Ulrich Bayırlı/Kammer @ 2015-05-19 20:24 UTC (permalink / raw)
  To: Christopher Allan Webber; +Cc: Guix-devel

Christopher Allan Webber <cwebber@dustycloud.org> writes:

> Great, I hope it's good now!

I added a period to the first line of the commit message (was another
oversight on my side) and pushed it, thanks. :-)

Taylan

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

* Re: [PATCH] Add guile-emacs!
  2015-05-19 20:24           ` Taylan Ulrich Bayırlı/Kammer
@ 2015-05-20 12:22             ` Ludovic Courtès
  0 siblings, 0 replies; 16+ messages in thread
From: Ludovic Courtès @ 2015-05-20 12:22 UTC (permalink / raw)
  To: Taylan Ulrich "Bayırlı/Kammer"; +Cc: Guix-devel

Nice, thank you folks!

Ludo’.

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

* Re: [PATCH] Add guile-emacs!
  2015-05-14  0:01 ` [PATCH] Add guile-emacs! Christopher Allan Webber
  2015-05-14  8:56   ` Taylan Ulrich Kammer
@ 2015-05-23  7:26   ` Feng Shu
  2015-05-23 17:21     ` Christopher Allan Webber
  1 sibling, 1 reply; 16+ messages in thread
From: Feng Shu @ 2015-05-23  7:26 UTC (permalink / raw)
  To: guix-devel; +Cc: Feng Shu

Christopher Allan Webber <cwebber@dustycloud.org> writes:

> Okay, how about a version of guile-emacs that works and incorporates
> feedback from this thread?  Yeah?  Anyone?
>
> Whoooooooooo guile-emacs! :)
>

I suggest add  "emacs-snapshot" or "emacs-master-branch" package, 
then, define guile-emacs like this.

#+BEGIN_SRC
(define-public guile-emacs
  (package (inherit emacs-master-branch)
  ...))
#+END_SRC

This can  make package other emacs branch easier, for example: xwidget branch.

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

* Re: [PATCH] Add guile-emacs!
  2015-05-23  7:26   ` Feng Shu
@ 2015-05-23 17:21     ` Christopher Allan Webber
  0 siblings, 0 replies; 16+ messages in thread
From: Christopher Allan Webber @ 2015-05-23 17:21 UTC (permalink / raw)
  To: Feng Shu; +Cc: guix-devel

Feng Shu writes:

> Christopher Allan Webber <cwebber@dustycloud.org> writes:
>
>> Okay, how about a version of guile-emacs that works and incorporates
>> feedback from this thread?  Yeah?  Anyone?
>>
>> Whoooooooooo guile-emacs! :)
>>
>
> I suggest add  "emacs-snapshot" or "emacs-master-branch" package, 
> then, define guile-emacs like this.
>
> #+BEGIN_SRC
> (define-public guile-emacs
>   (package (inherit emacs-master-branch)
>   ...))
> #+END_SRC
>
> This can  make package other emacs branch easier, for example: xwidget branch.

It's a good idea... I'd love to be able to check out emacs master more
easily.

However I don't have time to do it right now myself.

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

end of thread, other threads:[~2015-05-23 17:21 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-10 19:35 [PATCH] Attempt at packaging guile-emacs (needs help) Christopher Allan Webber
2015-05-10 21:51 ` Mark H Weaver
2015-05-11  2:29   ` Christopher Allan Webber
2015-05-14  0:01 ` [PATCH] Add guile-emacs! Christopher Allan Webber
2015-05-14  8:56   ` Taylan Ulrich Kammer
2015-05-14 15:53     ` Christopher Allan Webber
2015-05-14 20:06       ` Taylan Ulrich Kammer
2015-05-14 20:52         ` Taylan Ulrich Kammer
2015-05-15 10:13       ` Ludovic Courtès
2015-05-19 17:29     ` Christopher Allan Webber
2015-05-19 18:29       ` Taylan Ulrich Bayırlı/Kammer
2015-05-19 19:41         ` Christopher Allan Webber
2015-05-19 20:24           ` Taylan Ulrich Bayırlı/Kammer
2015-05-20 12:22             ` Ludovic Courtès
2015-05-23  7:26   ` Feng Shu
2015-05-23 17:21     ` Christopher Allan Webber

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).