Re: Why do we use ".../share/emacs/site-lisp/guix.d/"?

2016-05-16 Thread Ludovic Courtès
Alex Kost  skribis:

> Federico Beffa (2016-05-09 09:42 +0300) wrote:
>
>> On Sun, May 8, 2016 at 9:51 PM, Alex Kost  wrote:

[...]

>> * It also makes it obvious that packages into that directory are
>> installed in a guix specific way. Therefore, if you try to use them
>> with an emacs from a foreign distro, you know that you have to do
>> something to make them work.
>
> You don't have to do anything to make them work if you use emacs from
> Guix.  Also I don't think that making it obvious that this is a guix
> specific directory is needed.  Moreover it may be confusing (see [1]).
> I would wonder why there is this an additional layer in elisp hierarchy,
> and I actually wonder… I mean I don't like it.
>
>> I'm therefore in favor of keeping "guix.d".
>
> OK, I see.  So it's 1 for keeping "guix.d" part and 1 for removing it.
> Please people give your opinions!

Let’s make sure we understand each other before we vote.  :-)

Federico suggests above that having “guix.d” makes it clear that a
non-Guix-installed Emacs on a foreign distro may not be able to use
those packages.

I think that’s a reasonable concern, and probably a sufficient reason
for the status quo.

WDYT?

Ludo’.



Re: FIXUP: [PATCH 01/10] gnu: cross: Use CROSS_*_INCLUDE_PATH for system headers.

2016-05-16 Thread Ludovic Courtès
Jan Nieuwenhuizen  skribis:

> I would still like to explore getting rid of the patched gcc and all
> the environment variables and use a --sysroot instead; but I would
> need some help/inspiration to get that experiment going.

I’m not sure this is doable or desirable.  AIUI --sysroot is pretty much
biased towards FHS.

My 2¢,
Ludo’.



Re: [PATCH] gnu: pulseaudio: Enable support for Bluetooth.

2016-05-16 Thread Ludovic Courtès
Ricardo Wurmus  skribis:

> * gnu/packages/pulseaudio.scm (pulseaudio)[arguments]: Add
> "--enable-bluez5" to configure flags.
> [inputs]: Add "bluez" and "sbc".

I think it’s a reasonable change.

Ideally a ‘pulseaudio-updates’ branch would be the right thing.
However, if it builds and works as expected on master (at least make
sure ‘guix gc --references’ shows bluez and SBC), then it’s OK to commit
to ‘core-updates’ since it looks like a non-disruptive change.

Thanks!

Ludo’.



Re: Timestamps in ...-autoloads.el files

2016-05-16 Thread Alex Kost
Ludovic Courtès (2016-05-16 15:45 +0300) wrote:

> Alex Kost  skribis:
[...]
>> I looked at the compiled "autoload.elc" file and if I understood it
>> correctly, it was compiled using the unpatched version of "autoload.el"
>> (because there is no mention of SOURCE_DATE_EPOCH there).
>
> Indeed.
>
>> But I don't understand how it could happen since patching is performed
>> before building.  Any ideas?
>
> I think I have one:
>
> $ git describe
> v0.10.0-798-g8a7680a
> $ tar tvf $(./pre-inst-env guix build -S emacs) |grep 'autoload\.el'
> -rw-r--r-- root/root 37292 1970-01-01 01:00 
> emacs-24.5/lisp/emacs-lisp/autoload.el
> -rw-r--r-- root/root 37127 1970-01-01 01:00 
> emacs-24.5/lisp/emacs-lisp/autoload.el.orig
> -rw-r--r-- root/root 22624 1970-01-01 01:00 
> emacs-24.5/lisp/emacs-lisp/autoload.elc
>
> Upstream’s tarball already includes those three files.

IIUC this source is after applying our patches (including
"emacs-source-date-epoch.patch"):

- “autoload.el.orig” is the original file from the upstream;

- “autoload.el” is the patched one;

- “autoload.elc” is the compiled file also from the upstream (obviously
  it doesn't honor SOURCE_DATE_EPOCH).

Thanks, the mystery is solved now.  This is an unpleasant surprise, I
didn't know that emacs release comes with the compiled files.

> Ideally, we
> should remove all the .elc files and rebuild them, but maybe there are
> bootstrapping issues.
>
> Would you be willing to give it a try?  :-)

I'll see what I can do here.

-- 
Alex



constants.el 2.2 no longer available

2016-05-16 Thread Ludovic Courtès
Hello!

The ‘constants.el’ file that ‘emacs-constants’ refers to is no longer
available:

currently provides version 2.6 (was 2.2), and
‘emacs-constants-elisp.patch’ no longer applies.

Could you look into it?

Thanks in advance.  :-)

Ludo’.



Re: [PATCH] gnu: Add geiser-next.

2016-05-16 Thread Christopher Allan Webber
Ludovic Courtès writes:

> Leo Famulari  skribis:
>
>> On Fri, Apr 29, 2016 at 06:35:43PM -0500, Christopher Allan Webber wrote:
>>> * gnu/packages/emacs.scm (geiser-next): New variable.
>>
>>> +(version "20160428.4c8b3de")
>>
>> Looks good, but can you make the version string in the style described
>> in 7.6.3 Version Numbers?
>>
>> https://www.gnu.org/software/guix/manual/guix.html#Version-Numbers
>
> With this change, LGTM!
>
> We should make sure to remove it when the next Geiser comes out.
>
> Thanks,
> Ludo’.

Done.  Sorry it took so long!  Life got in the way! :)
 - Chris



Re: Cross-Origin Request blocked when browing non-www of packages page and mixed content

2016-05-16 Thread Roel Janssen

Roel Janssen writes:

> Ludovic Courtès writes:
>
>> Hello!
>>
>> Roel Janssen  skribis:
>>
>>> I noticed that the build status icons don't work when browing:
>>>   https://gnu.org/software/guix/packages/ (Notice the lack of 'www.')
>>>
>>> The reason:
>>> CORS header 'Access-Control-Allow-Origin' does not match
>>> 'https://www.gnu.org'.
>>>
>>> So, could we either add 'https://gnu.org' to the Hydra nginx config, or
>>> add a redirect to the www-variant on gnu.org?
>>
>> I don’t know how to fix it: there can be only one CORS header and it
>> can contain only one URL.  Thoughts?
>>
>> Regarding www.gnu.org, it’s something to ask webmast...@gnu.org.  Would
>> you like to email them?
>
> I e-mailed them.

They have changed the behavior so it always redirects to the www
variant.  You can try it:
  https://gnu.org/s/guix/ => https://www.gnu.org/software/guix/

So this has been fixed now.

Kind regards,
Roel Janssen



Re: [PATCH 2/3] gnu: Add ledger.

2016-05-16 Thread Leo Famulari
On Mon, May 16, 2016 at 02:06:51PM -0400, Leo Famulari wrote:
> On Mon, May 16, 2016 at 12:45:57PM -0500, Christopher Allan Webber wrote:
> > Leo Famulari writes:
> > > My opinion is that 3 or 4 GB is not a very small amount of RAM for a
> > > personal computer.
> > >
> > > I think that allowing users with "only" 4 GB RAM to build our ledger
> > > package is worth it taking twice as long for the rest of us.
> > >
> > > Or, users with ≤ 4 GB RAM could make a private variant of ledger that
> > > disables parallel building. We sometimes suggest that users with
> > > esoteric requirements or restrictions do something like this, but I
> > > don't think this is one of those cases.
> > >
> > > Thoughts?
> > 
> > I guess I'm of a different view... it was only very recently that I
> > upgraded to a machine that had > 4GB ram.  And not too long ago I had a
> > machine with 2GB of ram for a long time.
> 
> Don't we agree? I think we should not parellelize the tests, since 4 GB
> RAM is too high to be a minimum requirement.

I mean the entire build, not just the tests.



Re: [PATCH] gnu: Add wmbattery

2016-05-16 Thread Kei Yamashita
On Fri, 13 May 2016 12:25:07 +0200
Danny Milosavljevic  wrote:

> On Mon, 4 Apr 2016 17:04:51 -0400
> Kei Yamashita  wrote:
> 
> > The source tarball comes from Debian.   
> 
> The wmbattery version
> 
> that we use in Guix has a memory leak. It's been eating up all memory
> of my laptop for some time now, so I tracked it down.
> 
> The fix would be:
> 
> diff -ur orig/dockapps-30b9edb/upower.c dockapps-30b9edb/upower.c
> --- orig/dockapps-30b9edb/upower.c2015-08-31
> 01:58:13.0 +0200 +++ dockapps-30b9edb/upower.c
> 2016-05-12 07:21:27.550374114 +0200 @@ -56,7 +56,8 @@
>  
>  int upower_supported(void)
>  {
> - up = up_client_new();
> + if (!up)
> + up = up_client_new();
>  
>   if (!up) {
>   return 0;
> @@ -78,7 +79,8 @@
>   GPtrArray *devices = NULL;
>   static int retries = 0;
>  
> - up = up_client_new();
> + if (!up)
> + up = up_client_new();
>  
>   if (!up)
>   return -1;
> 
> I added Joey Hess, the author of the program, to Cc.
> 
> @Joey Hess: what do you think?

Until the patch is applied upstream, this patch should keep things in
order within Guix.
From e07912c6b5ea2ff45d5b923dccad26fef3ca932d Mon Sep 17 00:00:00 2001
From: Kei Yamashita 
Date: Sat, 14 May 2016 22:27:15 -0400
Subject: [PATCH] gnu: wmbattery: Add `patch-upower' phase.

* gnu/packages/gnustep.scm (wmbattery): Add `patch-upower' phase.
---
 gnu/packages/gnustep.scm | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm
index 31fca5b..961df0e 100644
--- a/gnu/packages/gnustep.scm
+++ b/gnu/packages/gnustep.scm
@@ -108,7 +108,13 @@ interface.  It is fast, feature rich, easy to configure, 
and easy to use.")
#:phases
(modify-phases %standard-phases
  (add-after 'unpack 'autoconf
-   (lambda _ (zero? (system* "autoreconf" "-vfi")))
+   (lambda _ (zero? (system* "autoreconf" "-vfi"
+ (add-before 'configure 'patch-upower
+   (lambda _
+ (substitute* "upower.c"
+   (("up = up_client_new\\(\\);")
+(string-append "if (!up)\n"
+   "up = up_client_new();"
 (inputs
  `(("glib" ,glib)
("libx11" ,libx11)
-- 
2.7.4



pgpWr41SkmPb1.pgp
Description: OpenPGP digital signature


[PATCH 4/4] gnu: Add default gcc-objc++.

2016-05-16 Thread Ricardo Wurmus
* gnu/packages/gcc.scm (gcc-objc++): New variable.
---
 gnu/packages/gcc.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 53b6c54..233a20b 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -644,6 +644,8 @@ as the 'native-search-paths' field."
  (variable "LIBRARY_PATH")
  (files '("lib" "lib64"))
 
+(define-public gcc-objc++ gcc-objc++-4.9)
+
 (define (make-libstdc++-doc gcc)
   "Return a package with the libstdc++ documentation for GCC."
   (package
-- 
2.7.3





[PATCH 2/4] gnu: Add default gcc-objc.

2016-05-16 Thread Ricardo Wurmus
* gnu/packages/gcc.scm (gcc-objc): New variable.
---
 gnu/packages/gcc.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 64035b3..d8b96c7 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -624,6 +624,8 @@ as the 'native-search-paths' field."
  (variable "LIBRARY_PATH")
  (files '("lib" "lib64"))
 
+(define-public gcc-objc gcc-objc-4.9)
+
 (define-public gcc-objc++-4.8
   (custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++")
   (list (search-path-specification
-- 
2.7.3





Re: [PATCH] gnu: Add gnome-calendar.

2016-05-16 Thread Kei Yamashita
On Sat, 14 May 2016 03:27:04 -0400
Mark H Weaver  wrote:

> Kei Yamashita  writes:
> 
> > From 29033622d9490d299d2409b73f9e21862ca939ec Mon Sep 17 00:00:00
> > 2001 From: Kei Yamashita 
> > Date: Tue, 10 May 2016 00:16:46 -0400
> > Subject: [PATCH] gnu: Add gnome-calendar.  
> 
> Thank you!
> 
> > +(define-public gnome-calendar
> > +  (package
> > +(name "gnome-calendar")
> > +(version "3.18.3")  
> 
> About 32 hours ago we merged the 'gnome-updates' branch, which brought
> us GNOME 3.20.  Would you like to update this package to 3.20.2?
> 
>  Mark

Sure thing!
From 808876836894ee2ccc4e6ac2f8447859230f7b7e Mon Sep 17 00:00:00 2001
From: Kei Yamashita 
Date: Sat, 14 May 2016 21:27:08 -0400
Subject: [PATCH] gnu: Add gnome-calendar.

* gnu/packages/gnome.scm (gnome-calendar): New variable.
---
 gnu/packages/gnome.scm | 28 
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 83e4f83..8e09696 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5022,3 +5022,31 @@ specified duration and save it as a GIF encoded animated 
image file.")
  "Libzapojit is a GLib-based library for accessing online service APIs of
 Microsoft SkyDrive and Hotmail, using their REST protocols.")
 (license license:lgpl2.1+)))
+
+(define-public gnome-calendar
+  (package
+(name "gnome-calendar")
+(version "3.20.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "mirror://gnome/sources/" name "/"
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"1vny8fclwglapdyxd2g9fbwdlk5hhnb993k2hvq3rf0hcgswycpi"
+(build-system glib-or-gtk-build-system)
+(native-inputs
+ `(("intltool" ,intltool)
+   ("pkg-config" ,pkg-config)))
+(inputs
+ `(("bdb" ,bdb)
+   ("desktop-file-utils" ,desktop-file-utils)
+   ("evolution-data-server" ,evolution-data-server)
+   ("gnome-online-accounts" ,gnome-online-accounts)))
+(home-page "https://wiki.gnome.org/Apps/Calendar";)
+(synopsis "GNOME's calendar application")
+(description
+ "GNOME Calendar is a simple calendar application designed to fit the GNOME
+desktop. It supports multiple calendars, monthly view and yearly view.")
+(license license:gpl3+)))
-- 
2.7.4



pgpMpfCuJIl3y.pgp
Description: OpenPGP digital signature


Re: [PATCH 2/3] gnu: Add ledger.

2016-05-16 Thread Efraim Flashner
On Mon, May 16, 2016 at 12:45:57PM -0500, Christopher Allan Webber wrote:
> Leo Famulari writes:
> 
> > On Fri, May 13, 2016 at 10:16:29PM +0300, Alex Kost wrote:
> >> Alex Griffin (2016-05-12 19:31 +0300) wrote:
> >> > Yes, it builds fine for me. It looks like the important line in your
> >> > build log is "c++: internal compiler error: Killed (program cc1plus)",
> >> > which could be from running out of memory. Does it still happen if you
> >> > add `#:parallel-build? #f` to the build system arguments?
> >> 
> >> Oh indeed, if parallel-build is disabled, it is built successfully.
> >> Thank you (and Leo)!
> >> 
> >> So I don't know, should ‘#:parallel-build? #f’ be used in the final
> >> package recipe?  I guess not, as it looks like a problem on my side (not
> >> enough memory for parallel-build).
> >
> > My opinion is that 3 or 4 GB is not a very small amount of RAM for a
> > personal computer.
> >
> > I think that allowing users with "only" 4 GB RAM to build our ledger
> > package is worth it taking twice as long for the rest of us.
> >
> > Or, users with ≤ 4 GB RAM could make a private variant of ledger that
> > disables parallel building. We sometimes suggest that users with
> > esoteric requirements or restrictions do something like this, but I
> > don't think this is one of those cases.
> >
> > Thoughts?
> 
> I guess I'm of a different view... it was only very recently that I
> upgraded to a machine that had > 4GB ram.  And not too long ago I had a
> machine with 2GB of ram for a long time.
> 
> Which, yes maybe that's living in the past... I dunno :)
> 

I wish I could remember, but we do have another build that has a test
disabled because it uses ~4GB of memory.

-- 
Efraim Flashner  אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


Re: [PATCH] envstore-2.1

2016-05-16 Thread Efraim Flashner
On Sun, May 15, 2016 at 07:16:33AM -0400, Matthew Jordan wrote:
> 
> Good day Mark H Weaver,
> 
> I have updated the patch in accordance with your suggestions. And thank
> you for the feed back you provided in your previous email. This only the
> second package I have submitted so far.
> 
> Also I renamed to the source file to shellutils.scm, let me know if this
> is acceptable. As I didn't find any other files with general names
> implying a reference to command line utilities.
> 

> From 7c85692c7e844d84c568fc779846b5492a98bc2b Mon Sep 17 00:00:00 2001
> From: Matthew Jordan 
> Date: Thu, 12 May 2016 14:57:34 -0400
> Subject: [PATCH] gnu: Add shellutils.
> 
> * gnu/package/shellutils.scm: New file.

Don't forget to register the file in gnu/local.mk

> ---
>  gnu/packages/shellutils.scm | 50 
> +
>  1 file changed, 50 insertions(+)
>  create mode 100644 gnu/packages/shellutils.scm
> 
> diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
> new file mode 100644
> index 000..2c60607
> --- /dev/null
> +++ b/gnu/packages/shellutils.scm
> @@ -0,0 +1,50 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer 
^^^
One of the fun bits of getting your patches into guix is putting _your_
name (and the current year) in the header ;)

> +;;;
> +;;; 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 .
> +
> +(define-module (gnu packages shellutils)
> +  #:use-module (guix licenses)
> +  #:use-module (guix packages)
> +  #:use-module (guix download)
> +  #:use-module (guix utils)
> +  #:use-module (guix build-system gnu))
> +
> +(define-public envstore
> +  (package
> +(name "envstore")
> +(version "2.1")
> +(source
> + (origin
> +   (method url-fetch)
> +   (uri (string-append "https://finalrewind.org/projects/";
> +   name "/" name "-" version ".tar.bz2"))
> +   (sha256
> +(base32 "1x97lxad80m5blhdfanl5v2qzjwcgbij2i23701bn8mpyxsrqszi"
> +(build-system gnu-build-system)
> +(arguments
> + `(#:test-target "test"
> +   #:make-flags (list "CC=gcc"
> +  (string-append "PREFIX=" (assoc-ref %outputs 
> "out")))
> +   #:phases
> +   (modify-phases %standard-phases
> + (delete 'configure
> +(home-page "https://finalrewind.org/projects/envstore/";)
> +(synopsis "Save and restore environment variables")
> +(description "Envstore is a program for sharing environment variables
> +between various shells or commands.")
> +(license
> + (non-copyleft "http://www.wtfpl.net/txt/copying/";
> -- 
> 2.7.4
> 

> 
> Sincerely,
> 
> -- 
> Matthew Jordan
> Sent with my mu4e
> 
> 
> Mark H Weaver writes:
> 
> > Hi,
> >
> > Matthew Jordan  writes:
> >
> >> From 8de06b6e26d9e1eb7bb7ef6df163f54a46db3d89 Mon Sep 17 00:00:00 2001
> >> From: Matthew Jordan 
> >> Date: Thu, 12 May 2016 14:57:34 -0400
> >> Subject: [PATCH] gnu: Added envstore package.
> >
> > The summary line should be "gnu: Add envstore."
> >
> >>
> >> * gnu/package/enstore.scm: New file.
> >
> > You misspelled "envstore.scm", but it would be better to find an
> > existing file in gnu/package/*.scm that would be appropriate for this.
> >
> >> diff --git a/gnu/packages/envstore.scm b/gnu/packages/envstore.scm
> >> new file mode 100644
> >> index 000..e3ec99d
> >> --- /dev/null
> >> +++ b/gnu/packages/envstore.scm
> >> @@ -0,0 +1,42 @@
> >> +(define-module (gnu packages envstore)
> >
> > When adding a new *.scm file, it needs to contain a copyright notice and
> > header at the top, as with our other source files.
> >
> >> +  #:use-module (guix)
> >> +  #:use-module (guix packages)
> >> +  #:use-module (guix build-system gnu)
> >> +  #:use-module (gnu packages)
> >> +  #:use-module (guix download)
> >> +  #:use-module (guix utils)
> >> +  #:use-module (guix licenses))
> >> +
> >> +(define-public envstore
> >> +  (package
> >> +(name "envstore")
> >> +(version "2.1")
> >> +(source
> >> + (origin
> >> +   (method url-fetch)
> >> +   (uri (string-append "https://github.com/derf/"; name "/archive/"
> >> +   version ".tar.gz"))
> >
> > How about using
> >
> >   https://finalrewind.org/projects/envstor

[PATCH 3/4] gnu: Add gcc-objc++-4.9.

2016-05-16 Thread Ricardo Wurmus
* gnu/packages/gcc.scm (gcc-objc++-4.9): New variable.
---
 gnu/packages/gcc.scm | 9 +
 1 file changed, 9 insertions(+)

diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index d8b96c7..53b6c54 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -635,6 +635,15 @@ as the 'native-search-paths' field."
  (variable "LIBRARY_PATH")
  (files '("lib" "lib64"))
 
+(define-public gcc-objc++-4.9
+  (custom-gcc gcc-4.9 "gcc-objc++" '("obj-c++")
+  (list (search-path-specification
+ (variable "OBJCPLUS_INCLUDE_PATH")
+ (files '("include")))
+(search-path-specification
+ (variable "LIBRARY_PATH")
+ (files '("lib" "lib64"))
+
 (define (make-libstdc++-doc gcc)
   "Return a package with the libstdc++ documentation for GCC."
   (package
-- 
2.7.3





[PATCH 1/6] gnu: Add emacs-minimal.

2016-05-16 Thread Alex Kost
* 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




[PATCH 3/6] build-system/emacs: Use 'emacs-minimal' as default emacs for building.

2016-05-16 Thread Alex Kost
* 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




[PATCH 6/6] gnu: Use 'emacs-minimal' instead of 'emacs-no-x'.

2016-05-16 Thread Alex Kost
* 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

[PATCH 0/6] Modifications in building emacs packages.

2016-05-16 Thread Alex Kost
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'.



[PATCH 5/6] gnu: Move emacs for building from inputs to native-inputs.

2016-05-16 Thread Alex Kost
* 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.o

[PATCH 2/6] build-system/emacs: Use "emacs" from native-inputs if specified.

2016-05-16 Thread Alex Kost
* 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 
+;;; Copyright © 2016 Alex Kost 
 ;;;
 ;;; 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




[PATCH 4/6] gnu: emacs-auctex: Use 'emacs' for byte-compiling.

2016-05-16 Thread Alex Kost
* 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




[PATCH] gnu: wxmaxima: Wrap with GSETTINGS_SCHEMA_DIR and XDG_DATA_DIRS

2016-05-16 Thread 宋文武

Hi, this is a patch for wxmaxima to hardcode gschemas and icons:

>From 67256140dc416c927795db7b01f33a7d3b47a07a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= 
Date: Sun, 15 May 2016 15:26:46 +0800
Subject: [PATCH] gnu: wxmaxima: Wrap with GSETTINGS_SCHEMA_DIR and
 XDG_DATA_DIRS.

Fixes  and .

* gnu/packages/math.scm (wxmaxima)[arguments]: Wrap with
GSETTINGS_SCHEMA_DIR and XDG_DATA_DIRS.
---
 gnu/packages/maths.scm | 19 +--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 73104a3..3da6e35 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1600,7 +1600,11 @@ point numbers.")
 (build-system gnu-build-system)
 (inputs
  `(("wxwidgets" ,wxwidgets)
-   ("maxima" ,maxima)))
+   ("maxima" ,maxima)
+   ;; Runtime support.
+   ("adwaita-icon-theme" ,adwaita-icon-theme)
+   ("gtk+" ,gtk+)
+   ("shared-mime-info" ,shared-mime-info)))
 (arguments
  `(#:phases (modify-phases %standard-phases
   (add-after
@@ -1610,7 +1614,18 @@ point numbers.")
   "/bin/wxmaxima")
`("PATH" ":" prefix
  (,(string-append (assoc-ref inputs "maxima")
-  "/bin"
+  "/bin")))
+   ;; For GtkFileChooserDialog.
+   `("GSETTINGS_SCHEMA_DIR" =
+ (,(string-append (assoc-ref inputs "gtk+")
+  "/share/glib-2.0/schemas")))
+   `("XDG_DATA_DIRS" ":" prefix
+ (;; Needed by gdk-pixbuf to know supported icon formats.
+  ,(string-append
+(assoc-ref inputs "shared-mime-info") "/share")
+  ;; The default icon theme of GTK+.
+  ,(string-append
+(assoc-ref inputs "adwaita-icon-theme") "/share"
  #t)
 (home-page "https://andrejv.github.io/wxmaxima/";)
 (synopsis "Graphical user interface for the Maxima computer algebra system")
-- 
2.6.3



[PATCH] gnu: Add wiredtiger

2016-05-16 Thread 宋文武
Hi, here is a patch for WiredTiger, a NoSQL data engine:

>From 7fda129fb863b6bb4a0d0f752c2c369fd30a50b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= 
Date: Sun, 15 May 2016 10:20:05 +0800
Subject: [PATCH] gnu: Add wiredtiger.

* gnu/packages/database.scm (wiredtiger): New variable.
---
 gnu/packages/databases.scm | 33 -
 1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index a8998d8..2a93de2 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -55,7 +55,7 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages jemalloc)
   #:use-module ((guix licenses)
-#:select (gpl2 gpl3+ lgpl2.1+ lgpl3+ x11-style non-copyleft
+#:select (gpl2 gpl3 gpl3+ lgpl2.1+ lgpl3+ x11-style non-copyleft
   bsd-2 bsd-3 public-domain))
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -913,3 +913,34 @@ sets, bitmaps and hyperloglogs.")
 and B+ Tree data storage models.  It is a fast key-value lightweight
 database and supports many programming languages.  It is a NoSQL database.")
 (license gpl3+)))
+
+(define-public wiredtiger
+  (package
+(name "wiredtiger")
+(version "2.8.0")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"http://source.wiredtiger.com/releases/wiredtiger-";
+version ".tar.bz2"))
+  (sha256
+   (base32
+"1qh7y5paisdxq19jgg81ld7i32lz920n5k30hdpxnr8ll9c4hgjr"
+(build-system gnu-build-system)
+(arguments
+ '(#:tests? #f ; XXX: timeout
+   #:configure-flags '("--enable-lz4" "--enable-zlib")))
+(inputs
+ `(("lz4" ,lz4)
+   ("zlib" ,zlib)))
+(home-page "http://source.wiredtiger.com/";)
+(synopsis "NoSQL data engine")
+(description
+ "WiredTiger is an extensible platform for data management.  It supports
+row-oriented storage (where all columns of a row are stored together),
+column-oriented storage (where columns are stored in groups, allowing for
+more efficient access and storage of column subsets) and log-structured merge
+trees (LSM), for sustained throughput under random insert workloads.")
+(license gpl3) ; or GPL-2
+;; WiredTiger requires a 64-bit build.
+(supported-systems '("x86_64-linux" "mips64el-linux"
-- 
2.6.3


It supports 64-bit systems (only tested on my x86_64-linux),
and tests are disabled due to timeout.


[PATCH 1/4] gnu: Add gcc-objc-4.9.

2016-05-16 Thread Ricardo Wurmus
* gnu/packages/gcc.scm (gcc-objc-4.9): New variable.
---
 gnu/packages/gcc.scm | 9 +
 1 file changed, 9 insertions(+)

diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 740ed51..64035b3 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -615,6 +615,15 @@ as the 'native-search-paths' field."
  (variable "LIBRARY_PATH")
  (files '("lib" "lib64"))
 
+(define-public gcc-objc-4.9
+  (custom-gcc gcc-4.9 "gcc-objc" '("objc")
+  (list (search-path-specification
+ (variable "OBJC_INCLUDE_PATH")
+ (files '("include")))
+(search-path-specification
+ (variable "LIBRARY_PATH")
+ (files '("lib" "lib64"))
+
 (define-public gcc-objc++-4.8
   (custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++")
   (list (search-path-specification
-- 
2.7.3





Re: [PATCH 2/3] gnu: Add ledger.

2016-05-16 Thread Leo Famulari
On Mon, May 16, 2016 at 12:45:57PM -0500, Christopher Allan Webber wrote:
> Leo Famulari writes:
> > My opinion is that 3 or 4 GB is not a very small amount of RAM for a
> > personal computer.
> >
> > I think that allowing users with "only" 4 GB RAM to build our ledger
> > package is worth it taking twice as long for the rest of us.
> >
> > Or, users with ≤ 4 GB RAM could make a private variant of ledger that
> > disables parallel building. We sometimes suggest that users with
> > esoteric requirements or restrictions do something like this, but I
> > don't think this is one of those cases.
> >
> > Thoughts?
> 
> I guess I'm of a different view... it was only very recently that I
> upgraded to a machine that had > 4GB ram.  And not too long ago I had a
> machine with 2GB of ram for a long time.

Don't we agree? I think we should not parellelize the tests, since 4 GB
RAM is too high to be a minimum requirement.



Re: [PATCH 2/3] gnu: Add ledger.

2016-05-16 Thread Christopher Allan Webber
Leo Famulari writes:

> On Fri, May 13, 2016 at 10:16:29PM +0300, Alex Kost wrote:
>> Alex Griffin (2016-05-12 19:31 +0300) wrote:
>> > Yes, it builds fine for me. It looks like the important line in your
>> > build log is "c++: internal compiler error: Killed (program cc1plus)",
>> > which could be from running out of memory. Does it still happen if you
>> > add `#:parallel-build? #f` to the build system arguments?
>> 
>> Oh indeed, if parallel-build is disabled, it is built successfully.
>> Thank you (and Leo)!
>> 
>> So I don't know, should ‘#:parallel-build? #f’ be used in the final
>> package recipe?  I guess not, as it looks like a problem on my side (not
>> enough memory for parallel-build).
>
> My opinion is that 3 or 4 GB is not a very small amount of RAM for a
> personal computer.
>
> I think that allowing users with "only" 4 GB RAM to build our ledger
> package is worth it taking twice as long for the rest of us.
>
> Or, users with ≤ 4 GB RAM could make a private variant of ledger that
> disables parallel building. We sometimes suggest that users with
> esoteric requirements or restrictions do something like this, but I
> don't think this is one of those cases.
>
> Thoughts?

I guess I'm of a different view... it was only very recently that I
upgraded to a machine that had > 4GB ram.  And not too long ago I had a
machine with 2GB of ram for a long time.

Which, yes maybe that's living in the past... I dunno :)



[PATCH] gnu: wxmaxima: Wrap with GSETTINGS_SCHEMA_DIR and XDG_DATA_DIRS.

2016-05-16 Thread 宋文武
Fixes  and .

* gnu/packages/math.scm (wxmaxima)[arguments]: Wrap with
GSETTINGS_SCHEMA_DIR and XDG_DATA_DIRS.
---
 gnu/packages/maths.scm | 19 +--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 73104a3..3da6e35 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1600,7 +1600,11 @@ point numbers.")
 (build-system gnu-build-system)
 (inputs
  `(("wxwidgets" ,wxwidgets)
-   ("maxima" ,maxima)))
+   ("maxima" ,maxima)
+   ;; Runtime support.
+   ("adwaita-icon-theme" ,adwaita-icon-theme)
+   ("gtk+" ,gtk+)
+   ("shared-mime-info" ,shared-mime-info)))
 (arguments
  `(#:phases (modify-phases %standard-phases
   (add-after
@@ -1610,7 +1614,18 @@ point numbers.")
   "/bin/wxmaxima")
`("PATH" ":" prefix
  (,(string-append (assoc-ref inputs "maxima")
-  "/bin"
+  "/bin")))
+   ;; For GtkFileChooserDialog.
+   `("GSETTINGS_SCHEMA_DIR" =
+ (,(string-append (assoc-ref inputs "gtk+")
+  "/share/glib-2.0/schemas")))
+   `("XDG_DATA_DIRS" ":" prefix
+ (;; Needed by gdk-pixbuf to know supported icon 
formats.
+  ,(string-append
+(assoc-ref inputs "shared-mime-info") "/share")
+  ;; The default icon theme of GTK+.
+  ,(string-append
+(assoc-ref inputs "adwaita-icon-theme") 
"/share"
  #t)
 (home-page "https://andrejv.github.io/wxmaxima/";)
 (synopsis "Graphical user interface for the Maxima computer algebra 
system")
-- 
2.6.3




[PATCH] gnu: Add wiredtiger.

2016-05-16 Thread 宋文武
* gnu/packages/database.scm (wiredtiger): New variable.
---
 gnu/packages/databases.scm | 33 -
 1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index a8998d8..2a93de2 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -55,7 +55,7 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages jemalloc)
   #:use-module ((guix licenses)
-#:select (gpl2 gpl3+ lgpl2.1+ lgpl3+ x11-style non-copyleft
+#:select (gpl2 gpl3 gpl3+ lgpl2.1+ lgpl3+ x11-style 
non-copyleft
   bsd-2 bsd-3 public-domain))
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -913,3 +913,34 @@ sets, bitmaps and hyperloglogs.")
 and B+ Tree data storage models.  It is a fast key-value lightweight
 database and supports many programming languages.  It is a NoSQL database.")
 (license gpl3+)))
+
+(define-public wiredtiger
+  (package
+(name "wiredtiger")
+(version "2.8.0")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"http://source.wiredtiger.com/releases/wiredtiger-";
+version ".tar.bz2"))
+  (sha256
+   (base32
+"1qh7y5paisdxq19jgg81ld7i32lz920n5k30hdpxnr8ll9c4hgjr"
+(build-system gnu-build-system)
+(arguments
+ '(#:tests? #f ; XXX: timeout
+   #:configure-flags '("--enable-lz4" "--enable-zlib")))
+(inputs
+ `(("lz4" ,lz4)
+   ("zlib" ,zlib)))
+(home-page "http://source.wiredtiger.com/";)
+(synopsis "NoSQL data engine")
+(description
+ "WiredTiger is an extensible platform for data management.  It supports
+row-oriented storage (where all columns of a row are stored together),
+column-oriented storage (where columns are stored in groups, allowing for
+more efficient access and storage of column subsets) and log-structured merge
+trees (LSM), for sustained throughput under random insert workloads.")
+(license gpl3) ; or GPL-2
+;; WiredTiger requires a 64-bit build.
+(supported-systems '("x86_64-linux" "mips64el-linux"
-- 
2.6.3




Re: [PATCH] Add Bluetooth support to Pulseaudio.

2016-05-16 Thread Efraim Flashner
On Sun, May 15, 2016 at 11:27:39AM +0300, Alex Kost wrote:
> Efraim Flashner (2016-05-14 22:59 +0300) wrote:
> 
> > On Sat, May 14, 2016 at 07:54:57PM +0300, Alex Kost wrote:
> >> Ricardo Wurmus (2016-05-14 12:43 +0300) wrote:
> >>
> >> > Hello Guix,
> >> >
> >> > this patch adds Bluetooth support to pulseaudio.  (Since bluez5 there
> >> > is no native support for the ALSA backend any more.)  This adds very
> >> > little to the pulseaudio closure as you can see below.
> >> >
> >> > Note that this depends on the previous patch adding SBC.
> >> >
> >> > More than 100 packages would need to be rebuilt.  Among those are big
> >> > packages like GNOME, Blender, and conkeror.  Should I push this to
> >> > core-updates then?
> >>
> >> Conkeror is not the big one; it's a rather small wrapper around icecat
> >> (in our case).  I don't know why "guix refresh -l pulseaudio" shows
> >> conkeror and not icecat, but icecat is a really big and important one,
> >> so I think it's better to commit this to core-updates, indeed.  Although
> >> ISTR Ludovic told that core-updates is only for the real core packages
> >> (that rebuild the whole world).
> >
> > conkeror depends on iceweasel, `guix refresh -l foo' only shows the
> > leafs that need to be rebuilt.
> 
> Iceweasel?  I see that conkeror depends only on icecat.  Anyway I don't
> understand: icecat depends on pulseaudio so it should probably be
> displayed after "guix refresh -l pulseaudio", or did I miss your point?
> 

Ah I meant icecat. 5+ years of Debian, I see ice and think iceweasel.

Pulseaudio -> Icecat -> Conkeror, Icecat is the "unimportant" dependancy
of Conkeror here.

> >> BTW do you still have problems with using guix repo through ssh?  I do,
> >> I mean I can't push or fetch.  And as I see that other people commit to
> >> the guix repo, I begin to think that it's only me who have this problem.
> >
> > if you change your url in .git/config to:
> >
> > url = http://git.savannah.gnu.org/r/guix.git
> >
> > you should be able to fetch/pull as before
> 
> Thanks, I know that http works, but I need ssh to be able to push :-)
> Apparently admins know about this problem:
> http://savannah.gnu.org/forum/forum.php?forum_id=8542
> 
> BTW, I didn't change .git/config manually; I just added another (http)
> remote using magit (by pressing "M a" in the magit status).
> 
> -- 
> Alex

-- 
Efraim Flashner  אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


Re: [PATCH] gnu: Add wmbattery

2016-05-16 Thread Danny Milosavljevic
On Mon, 4 Apr 2016 17:04:51 -0400
Kei Yamashita  wrote:

> The source tarball comes from Debian. 

The wmbattery version 

 that we use in Guix has a memory leak. It's been eating up all memory of my 
laptop for some time now, so I tracked it down.

The fix would be:

diff -ur orig/dockapps-30b9edb/upower.c dockapps-30b9edb/upower.c
--- orig/dockapps-30b9edb/upower.c  2015-08-31 01:58:13.0 +0200
+++ dockapps-30b9edb/upower.c   2016-05-12 07:21:27.550374114 +0200
@@ -56,7 +56,8 @@
 
 int upower_supported(void)
 {
-   up = up_client_new();
+   if (!up)
+   up = up_client_new();
 
if (!up) {
return 0;
@@ -78,7 +79,8 @@
GPtrArray *devices = NULL;
static int retries = 0;
 
-   up = up_client_new();
+   if (!up)
+   up = up_client_new();
 
if (!up)
return -1;

I added Joey Hess, the author of the program, to Cc.

@Joey Hess: what do you think?



Re: [PATCH] gnu: Add libytnef.

2016-05-16 Thread Kei Yamashita
On Wed, 11 May 2016 09:24:25 -0500
Eric Bavier  wrote:

> On Tue, 10 May 2016 22:14:27 -0400
> Kei Yamashita  wrote:
> 
> > * gnu/packages/mail.scm (libytnef): New variable.
> > ---
> >  gnu/packages/mail.scm | 22 ++
> >  1 file changed, 22 insertions(+)
> > 
> > diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> > index 2d95753..a8e8716 100644
> > --- a/gnu/packages/mail.scm
> > +++ b/gnu/packages/mail.scm
> > @@ -1232,3 +1232,25 @@ the 64 bit Outlook 2003 pst files.
> > Utilities are supplied to convert email messages to both mbox and
> > MH mailbox formats.  Contacts can be converted to a simple list, to
> > vcard format, or to ldif format for import to an LDAP server.")
> > (license gpl2+))) +
> > +(define-public libytnef
> > +  (package
> > +(name "libytnef")
> > +(version "1.5")  
> 
> The latest git source at https://github.com/Yeraze/ytnef has fixes for
> several bugs, segfaults, and memory leaks.  The configure.ac there
> notes version 1.7, but I don't see any release tarballs.  Could you
> maybe pester the maintainer to make a release?
> 
> > +(source (origin
> > +  (method url-fetch)
> > +  (uri (string-append "mirror://sourceforge/ytnef/"
> > +  name "/" version "/" name
> > +  "-" version ".tar.gz"))
> > +  (sha256
> > +   (base32
> > +
> > "0bkmw5sypwbyrawbb66pkc7d6crck529bs0p36j42z045vja28hv"
> > +(build-system gnu-build-system)
> > +(home-page "https://github.com/Yeraze/ytnef";)
> > +(synopsis "Decodes TNEF streams")  
> 
> How about "Mail stream decoder" instead?  See section "Synopses and
> Descriptions" in the manual.
> 
> > +(description
> > + "ytnef is a program to decode TNEF streams (winmail.dat).
> > Unlike other +similar programs, it can also decode meeting requests
> > and create VCal entries +for easy import.  It can also create vCard
> > entries from contact cards and vTodo +entries from task entries.")
> > +(license gpl2)))  
> 
> This should be gpl2+, since the source headers contain the "or later"
> verbiage.
> 
> Otherwise LGTM.  Could you send an updated patch?
> `~Eric

Updated as requested. Also, I'll see about building libytnef from
within the github tree if possible.
From 1b6f995092a144b20698b0b24911f06b352cab50 Mon Sep 17 00:00:00 2001
From: Kei Yamashita 
Date: Thu, 12 May 2016 00:44:48 -0400
Subject: [PATCH] gnu: Add libytnef.

* gnu/packages/mail.scm (libytnef): New variable.
---
 gnu/packages/mail.scm | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 13749aa..da8e8df 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2016 Al McElrath 
 ;;; Copyright © 2016 Leo Famulari 
 ;;; Copyright © 2016 Lukas Gradl 
+;;; Copyright © 2016 Kei Yamashita 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1203,3 +1204,25 @@ synchronizing with a remote address book, 
@command{vdirsyncer} is recommended.
 Khard can also be used from within the email client @command{mutt}.")
 (home-page "https://github.com/scheibler/khard";)
 (license gpl3+)))
+
+(define-public libytnef
+  (package
+(name "libytnef")
+(version "1.5")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "mirror://sourceforge/ytnef/"
+  name "/" version "/" name
+  "-" version ".tar.gz"))
+  (sha256
+   (base32
+"0bkmw5sypwbyrawbb66pkc7d6crck529bs0p36j42z045vja28hv"
+(build-system gnu-build-system)
+(home-page "https://github.com/Yeraze/ytnef";)
+(synopsis "Mail stream decoder")
+(description
+ "ytnef is a program to decode TNEF streams (winmail.dat).  Unlike other
+similar programs, it can also decode meeting requests and create VCal entries
+for easy import.  It can also create vCard entries from contact cards and vTodo
+entries from task entries.")
+(license gpl2+)))
-- 
2.7.4



pgpG9e8Hsd2Sn.pgp
Description: OpenPGP digital signature


Re: [PATCH 2/3] gnu: Add ledger.

2016-05-16 Thread Alex Kost
Leo Famulari (2016-05-14 05:49 +0300) wrote:

> On Fri, May 13, 2016 at 10:16:29PM +0300, Alex Kost wrote:
>> Alex Griffin (2016-05-12 19:31 +0300) wrote:
>> > Yes, it builds fine for me. It looks like the important line in your
>> > build log is "c++: internal compiler error: Killed (program cc1plus)",
>> > which could be from running out of memory. Does it still happen if you
>> > add `#:parallel-build? #f` to the build system arguments?
>> 
>> Oh indeed, if parallel-build is disabled, it is built successfully.
>> Thank you (and Leo)!
>> 
>> So I don't know, should ‘#:parallel-build? #f’ be used in the final
>> package recipe?  I guess not, as it looks like a problem on my side (not
>> enough memory for parallel-build).
>
> My opinion is that 3 or 4 GB is not a very small amount of RAM for a
> personal computer.
>
> I think that allowing users with "only" 4 GB RAM to build our ledger
> package is worth it taking twice as long for the rest of us.
>
> Or, users with ≤ 4 GB RAM could make a private variant of ledger that
> disables parallel building. We sometimes suggest that users with
> esoteric requirements or restrictions do something like this, but I
> don't think this is one of those cases.

I have commited this patch without ‘#:parallel-build? #f’.  Let's see if
hydra can build it or not :-)

-- 
Alex



Re: [PATCH] Emacs Smartparens

2016-05-16 Thread Alex Kost
Catonano (2016-05-16 16:32 +0300) wrote:

> Ok this is my second attempt
>
> This time it's Smartparens

Thanks!

> I used the emacs build system this time and I payied a bit more
> attention to the propagated inputs. I'm not sure about the native
> input though

There is no need to specify emacs in native-inputs if emacs-build-system
is used.

I have the same comments as for the zenburn patch (especially about the
way you attach it; I can't really do anything when it is attached like
this), so let's deal with that patch at first and then you can update
this patch accordingly, if you don't mind.

Sorry for the inconvenience :-)

> From 2e15843c941fc470cfe20275c4343c300b9dc8de Mon Sep 17 00:00:00
> 2001
> From: humanitiesNerd 
> Date: Sun, 15 May 2016 20:40:14 +0200
> Subject: [PATCH] package definition for Smartparens appended to
>  gnu/packages/emacs.scm
>
> ---
>  gnu/packages/emacs.scm | 43
> +++
>  1 file changed, 43 insertions(+)
>
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index 11010b2..a311635 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -1559,3 +1559,46 @@ to recognize a name like \"RFC 1234\".  This
> package enhances ffap so
>  that it correctly finds RFCs even when a space appears before the
>  number.")
>  (license license:gpl3+)))
> +
> +
> +
> +(define-public emacs-smartparens
> +(package
> +  (name "emacs-smartparens")
> +  (version "1.7.1")
> +  (source
> +    (origin
> +  (method url-fetch)
> +  (uri (string-append
> + "http://stable.melpa.org/packages/smartparens-";
> + version
> + ".tar"))
> +  (sha256
> +    (base32
> +  "04dvavsvmdf6fljv30csfkqkglvaw421irlq89v6zf93p0ak0vg6"
> +  (build-system emacs-build-system)
> +  (propagated-inputs `(("emacs-dash" ,emacs-dash))) ; what about
> cl-lib 0.3 ?

cl-lib is not needed as it is a part of Emacs now.  On MELPA, it is
specified as the package dependency because in the previous versions of
Emacs (< 24) there were no cl-lib library, so if a user have an old
emacs and installs a package that requires cl-lib, it should also be
installed.

> +  (native-inputs `(("emacs" ,emacs-no-x)))
> +  (home-page "https://github.com/Fuco1/smartparens";)
> +  (synopsis
> +    "Automatic insertion, wrapping and paredit-like navigation with
> user defined pairs.")

Synopsis shouldn't end with ".".  Did you check your package with "guix
lint"?  It should report about such things.

> +  (description
> +    "Smartparens is minor mode for Emacs that deals with parens
> pairs
> +and tries to be smart about it.  It started as a unification effort
> +to combine functionality of several existing packages in a single,
> +compatible and extensible way to deal with parentheses, delimiters,
> +tags and the like.  Some of these packages include autopair,
> +textmate, wrap-region, electric-pair-mode, paredit and others.  With
> +the basic features found in other packages it also brings many
> +improvements as well as completely new features

I don't think we need the text below in the description.

> +For a basic overview, see github readme at
> +https://github.com/Fuco1/smartparens
> +
> +For the complete documentation visit the documentation wiki located
> +at https://github.com/Fuco1/smartparens/wiki
> +
> +If you like this project, you can donate here:
> +https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id
> =CEYP5YVHDRX8C
> +")
> +  (license license:gpl3+)))
>
>

-- 
Alex



Re: [PATCH] Emacs Zenburn

2016-05-16 Thread Alex Kost
Catonano (2016-05-15 17:50 +0300) wrote:

> Hello,

Hello and welcome!

Could you attach the whole patch to your message or use "git send-email"
(to make this work, you need to do "guix package -i git:send-email")
please?  I don't understand how you include the patch to this message,
but it is hard to work with it.

> this is my first attempt at importing a package into Guix. My first attempt
> ever.
>
> It's trivial: the Zenburn theme for Emacs.
>
> The linter claims that lines 44 and 45 are too long. I didn't choose myself
> to make them so long. It was the automatic identation on the Emacs Scheme
> mode. Did it do the wrong thing ?

The lines are so long, because the indentation of
'with-directory-excursion' is not correct.  The guix git checkout
contains ".dir-locals.el" file which sets the proper indentation.  So if
you worked with the git checkout, emacs should have asked you something
about safe local variables.  If you accept it, it means this
".dir-locals.el" is loaded, and the proper indentation is set up.

Alternatively you can configure emacs interface that comes with guix as
described in the manual (info "(guix) Emacs Initial Setup").  In short
this can be done by "guix package -i guix".  Along with the mentioned
guix-specific indentation, it provides many "M-x guix-..." commands.

> It also filled my lines with tabs rather than spaces. I removed them by
> hand !

'indent-tabs-mode' variable is also handled by .dir-locals.

> From a8e28699e4cc02e6213047de1caae00edde06ccb Mon Sep 17 00:00:00 2001
> From: humanitiesNerd 

BTW are you going to use "humanitiesNerd" to identify yourself?  It's
OK, I'm just asking in case you want to use some other name.

> Date: Sun, 15 May 2016 14:55:28 +0200
> Subject: [PATCH] appended the package definition for the Emacs Zenburn theme
>  to the gnu/packages/emacs.scm file

Our convention is to use the following commit message:

--8<---cut here---start->8---
gnu: Add emacs-zenburn-theme.

* gnu/packages/emacs.scm (emacs-zenburn-theme): New variable.
--8<---cut here---end--->8---

> ---
>  gnu/packages/emacs.scm | 48
> 
>  1 file changed, 48 insertions(+)
>
>
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index 11010b2..e3eeaf4 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -1559,3 +1559,51 @@ to recognize a name like \"RFC 1234\".  This package
> enhances ffap so
>  that it correctly finds RFCs even when a space appears before the
>  number.")
>  (license license:gpl3+)))
> +
> +(define-public emacs-zenburn-theme
> +  (package
> +(name "emacs-zenburn-theme")
> +(version "2.4")
> +(source
> + (origin
> +   (method url-fetch)
> +   (uri (string-append
> + "http://stable.melpa.org/packages/zenburn-theme-";
> + version
> + ".el"))

We prefer to use the code directly from the upstream.  In this case:
.

> +   (sha256
> +(base32
> +"1a65hfkrrlm8ryr2x9zja0h1n8nzk4rnsyzjacqlv4k79yal1fxg"
> +(build-system trivial-build-system)

It is better to use emacs-build-system.  Most likely this is all that
will be required, and you don't have to write 'arguments' at all.

> +(inputs `(("emacs" ,emacs-no-x)))

With emacs-build-system, this line will not be needed.

> +(arguments
> + `(#:modules ((guix build utils)
> +  (guix build emacs-utils))
> +   #:builder
> +   (begin
> + (use-modules (guix build utils))
> + (use-modules (guix build emacs-utils))
> +
> + (let* ((emacs(string-append (assoc-ref %build-inputs "emacs")
> + "/bin/emacs"))
> +(source   (assoc-ref %build-inputs "source"))
> +(lisp-dir (string-append %output
> + "/share/emacs/site-lisp"))
> +(target   (string-append lisp-dir "/zenburn-theme.el")))
> +   (mkdir-p lisp-dir)
> +   (copy-file source target)
> +   (with-directory-excursion lisp-dir
> + (parameterize ((%emacs emacs))
> +
> (emacs-generate-autoloads "zenburn-theme" lisp-dir)
> +   (emacs-batch-eval
> '(byte-compile-file "zenburn-theme.el"
> +
> +(home-page
> + "http://github.com/bbatsov/zenburn-emacs";)

I think it's more good-looking to put this (home-page "...") one a
single line.

> +(synopsis
> + "Low contrast color theme for Emacs")
> +(description
> + "Port of the popular Vim theme Zenburn for Emacs 24, built on top
> +of the new built-in theme support in Emacs 24.
> +")

I don't think we need to specify Emacs version like this.  When Emacs 25
will be out, zenburn theme will work anyway, so this description may be

Re: [PATCH] Emacs Smartparens

2016-05-16 Thread Catonano
ahem

this is the same patch, only with a better log line



* gnu/packages/emacs.scm (emacs-smartparens): New variable.
---
 gnu/packages/emacs.scm | 43 +++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 11010b2..a311635 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1559,3 +1559,46 @@ to recognize a name like \"RFC 1234\".  This package
enhances ffap so
 that it correctly finds RFCs even when a space appears before the
 number.")
 (license license:gpl3+)))
+
+
+
+(define-public emacs-smartparens
+(package
+  (name "emacs-smartparens")
+  (version "1.7.1")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "http://stable.melpa.org/packages/smartparens-";
+ version
+ ".tar"))
+  (sha256
+(base32
+  "04dvavsvmdf6fljv30csfkqkglvaw421irlq89v6zf93p0ak0vg6"
+  (build-system emacs-build-system)
+  (propagated-inputs `(("emacs-dash" ,emacs-dash))) ; what about cl-lib
0.3 ?
+  (native-inputs `(("emacs" ,emacs-no-x)))
+  (home-page "https://github.com/Fuco1/smartparens";)
+  (synopsis
+"Automatic insertion, wrapping and paredit-like navigation with user
defined pairs.")
+  (description
+"Smartparens is minor mode for Emacs that deals with parens pairs
+and tries to be smart about it.  It started as a unification effort
+to combine functionality of several existing packages in a single,
+compatible and extensible way to deal with parentheses, delimiters,
+tags and the like.  Some of these packages include autopair,
+textmate, wrap-region, electric-pair-mode, paredit and others.  With
+the basic features found in other packages it also brings many
+improvements as well as completely new features
+
+For a basic overview, see github readme at
+https://github.com/Fuco1/smartparens
+
+For the complete documentation visit the documentation wiki located
+at https://github.com/Fuco1/smartparens/wiki
+
+If you like this project, you can donate here:
+
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=CEYP5YVHDRX8C
+")
+  (license license:gpl3+)))
-- 
2.5.5


[PATCH] Emacs Smartparens

2016-05-16 Thread Catonano
Ok this is my second attempt

This time it's Smartparens

I used the emacs build system this time and I payied a bit more attention
to the propagated inputs. I'm not sure about the native input though

>From 2e15843c941fc470cfe20275c4343c300b9dc8de Mon Sep 17 00:00:00 2001
From: humanitiesNerd 
Date: Sun, 15 May 2016 20:40:14 +0200
Subject: [PATCH] package definition for Smartparens appended to
 gnu/packages/emacs.scm

---
 gnu/packages/emacs.scm | 43 +++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 11010b2..a311635 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1559,3 +1559,46 @@ to recognize a name like \"RFC 1234\".  This package
enhances ffap so
 that it correctly finds RFCs even when a space appears before the
 number.")
 (license license:gpl3+)))
+
+
+
+(define-public emacs-smartparens
+(package
+  (name "emacs-smartparens")
+  (version "1.7.1")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "http://stable.melpa.org/packages/smartparens-";
+ version
+ ".tar"))
+  (sha256
+(base32
+  "04dvavsvmdf6fljv30csfkqkglvaw421irlq89v6zf93p0ak0vg6"
+  (build-system emacs-build-system)
+  (propagated-inputs `(("emacs-dash" ,emacs-dash))) ; what about cl-lib
0.3 ?
+  (native-inputs `(("emacs" ,emacs-no-x)))
+  (home-page "https://github.com/Fuco1/smartparens";)
+  (synopsis
+"Automatic insertion, wrapping and paredit-like navigation with user
defined pairs.")
+  (description
+"Smartparens is minor mode for Emacs that deals with parens pairs
+and tries to be smart about it.  It started as a unification effort
+to combine functionality of several existing packages in a single,
+compatible and extensible way to deal with parentheses, delimiters,
+tags and the like.  Some of these packages include autopair,
+textmate, wrap-region, electric-pair-mode, paredit and others.  With
+the basic features found in other packages it also brings many
+improvements as well as completely new features
+
+For a basic overview, see github readme at
+https://github.com/Fuco1/smartparens
+
+For the complete documentation visit the documentation wiki located
+at https://github.com/Fuco1/smartparens/wiki
+
+If you like this project, you can donate here:
+
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=CEYP5YVHDRX8C
+")
+  (license license:gpl3+)))


Re: Timestamps in ...-autoloads.el files

2016-05-16 Thread Ludovic Courtès
Hi!

Alex Kost  skribis:

> To recap: we use "gnu/packages/patches/emacs-source-date-epoch.patch" to
> modify 'autoload-insert-section-header' function, and it should work,
> but it doesn't.  IIUC this happens because "autoload.elc" file was
> compiled using the unpatched "autoload.el", but first things first.  Try
> the following recipe in Emacs (installed with Guix):
>
> 1. M-: (setenv "SOURCE_DATE_EPOCH" "1")
>
> 2. Generate autoloads for any file with autoload cookies.  If you don't
>have such a file at hand, make "/tmp/f1.el" file with this single
>line:
>
>;;;###autoload(defun f1 nil)
>
>Then: "M-x update-file-autoloads  "
>
> Now open "/tmp/auto1.el" and you'll see a "bad" timestamp like this one:
> (22323 17532 313464 85000).
>
> But!  If you reevaluate 'autoload-insert-section-header' and try again
> the timestamp will be "good":
>
> 3. M-x find-function autoload-insert-section-header
>
> 4. Reevaluate it: C-M-x
>
> 5. M-x update-file-autoloads  
>
> Now look at "/tmp/auto2.el": it contains (0 1 0 0) timestamp as
> expected.

Weird!

> I looked at the compiled "autoload.elc" file and if I understood it
> correctly, it was compiled using the unpatched version of "autoload.el"
> (because there is no mention of SOURCE_DATE_EPOCH there).

Indeed.

> But I don't understand how it could happen since patching is performed
> before building.  Any ideas?

I think I have one:

--8<---cut here---start->8---
$ git describe 
v0.10.0-798-g8a7680a
$ tar tvf $(./pre-inst-env guix build -S emacs) |grep 'autoload\.el'
-rw-r--r-- root/root 37292 1970-01-01 01:00 
emacs-24.5/lisp/emacs-lisp/autoload.el
-rw-r--r-- root/root 37127 1970-01-01 01:00 
emacs-24.5/lisp/emacs-lisp/autoload.el.orig
-rw-r--r-- root/root 22624 1970-01-01 01:00 
emacs-24.5/lisp/emacs-lisp/autoload.elc
--8<---cut here---end--->8---

Upstream’s tarball already includes those three files.  Ideally, we
should remove all the .elc files and rebuild them, but maybe there are
bootstrapping issues.

Would you be willing to give it a try?  :-)

Thanks,
Ludo’.



Re: Content-addressed mirrors for tarballs

2016-05-16 Thread Ludovic Courtès
"Thompson, David"  skribis:

> On Sun, May 15, 2016 at 5:56 PM, Ludovic Courtès  wrote:
>> Hello Guix!
>>
>> Commit cd436bf05a8344acf4462f3602e7d360821a902a allows source tarballs
>> to be fetched from content-addressed mirrors, such as tarballs.nixos.org
>> (I expect other mirrors will be added soon.)
>>
>> By default, URLs of the style http://tarballs.nixos.org/sha256/XYZ are
>> automatically appended to the list of URLs that’s explicitly specified.
>
> This is a really cool feature!

It would be nice to have ‘guix publish’ publish such URLs, but there’s
currently no RPC to query a store item by hash.

Alternately, we could have a tool that produces the files to be
published statically (by traversing the package DAG and collecting
‘origin’s, for instance.)

Ludo’.



Re: [PATCH 2/2] gnu: netpbm: Fix location of X color name database.

2016-05-16 Thread Federico Beffa
On Sun, May 15, 2016 at 10:04 PM, Ludovic Courtès  wrote:
> Alex Kost  skribis:
>
>> I think it would also be good to add #t to the end of all these phases
>> to make sure that when the phases succeed, they return non-false value.
>
> Agreed.
>
> Federico: Please commit to ‘core-updates’, since many many things depend
> on netpbm.

I noticed ;-)



Re: [PATCH 2/2] gnu: netpbm: Fix location of X color name database.

2016-05-16 Thread Federico Beffa
On Sat, May 14, 2016 at 6:25 PM, Alex Kost  wrote:
> Federico Beffa (2016-05-13 21:44 +0300) wrote:
>
>> On Fri, May 13, 2016 at 7:10 PM, Andreas Enge  wrote:
>>> Hello,
>>>
>>> On Fri, May 13, 2016 at 06:51:27PM +0200, Federico Beffa wrote:
 This fixes some of the provided programs like, e.g. 'pamtogif'.
>>>
>>> I think the common practice is to separate the switch to the %modify-phases
>>> syntax and the real change into two commits; right now, the diff looks big,
>>> but I imagine it must be rather trivial.
>>
>> Indeed the change is trivial.
>>
>> Regards,
>> Fede
>>
>> From be37669b50c000ad45eb85075f32d4f23c26489d Mon Sep 17 00:00:00 2001
>> From: Federico Beffa 
>> Date: Fri, 13 May 2016 15:32:49 +0200
>> Subject: [PATCH 2/3] gnu: netpbm: Use 'modify-phases' syntax.
>>
>> * gnu/packages/netpbm.scm (netpbm)[arguments]: Do it.
>> ---
>>  gnu/packages/netpbm.scm | 86 
>> -
>>  1 file changed, 42 insertions(+), 44 deletions(-)
>>
>> diff --git a/gnu/packages/netpbm.scm b/gnu/packages/netpbm.scm
>> index 475635e..d7d8576 100644
>> --- a/gnu/packages/netpbm.scm
>> +++ b/gnu/packages/netpbm.scm
>> @@ -99,50 +99,48 @@
>> ("python" ,python-wrapper)))
>> (arguments
>>  `(#:phases
>> -  (alist-replace
>> -   'configure
>> -   (lambda _
>> -(copy-file "config.mk.in" "config.mk")
>> -(chmod "config.mk" #o664)
>> -(let ((f (open-file "config.mk" "a")))
>> - (display "CC=gcc\n" f)
>> - (display "CFLAGS_SHLIB += -fPIC\n" f)
>> - (display "TIFFLIB = libtiff.so\n" f)
>> - (display "JPEGLIB = libjpeg.so\n" f)
>> - (display "ZLIB = libz.so\n" f)
>> - (display (string-append "LDFLAGS += -Wl,-rpath=" %output "/lib") f)
>> - (close-port f)))
>> -  (alist-cons-before
>> -   'check 'setup-check
>> -   (lambda _
>> - ;; install temporarily into /tmp/netpbm
>> - (system* "make" "package")
>> - ;; remove test requiring X
>> - (substitute* "test/all-in-place.test" (("pamx") ""))
>> - ;; do not worry about non-existing file
>> - (substitute* "test/all-in-place.test" (("^rm ") "rm -f "))
>> - ;; remove four tests that fail for unknown reasons
>> - (substitute* "test/Test-Order"
>> -   (("all-in-place.test") "")
>> -   (("pnmpsnr.test") "")
>> -   (("pnmremap1.test") "")
>> -   (("gif-roundtrip.test") "")))
>> -  (alist-replace
>> -   'install
>> -   (lambda* (#:key outputs make-flags #:allow-other-keys)
>> -(let ((out (assoc-ref outputs "out")))
>> - (apply system* "make" "package"
>> -(string-append "pkgdir=" out) make-flags)
>> - ;; copy static library
>> - (copy-file (string-append out "/link/libnetpbm.a")
>> -(string-append out "/lib/libnetpbm.a"))
>> - ;; remove superfluous folders and files
>> - (system* "rm" "-r" (string-append out "/link"))
>> - (system* "rm" "-r" (string-append out "/misc"))
>> - (with-directory-excursion out
>> -   (for-each delete-file
>> - '("config_template" "pkginfo" "README" "VERSION")
>> -  %standard-phases)
>> +  (modify-phases %standard-phases
>> +   (replace 'configure
>> + (lambda* (#:key inputs outputs #:allow-other-keys)
>> +   (copy-file "config.mk.in" "config.mk")
>> +   (chmod "config.mk" #o664)
>> +   (let ((f (open-file "config.mk" "a")))
>> + (display "CC=gcc\n" f)
>> + (display "CFLAGS_SHLIB += -fPIC\n" f)
>> + (display "TIFFLIB = libtiff.so\n" f)
>> + (display "JPEGLIB = libjpeg.so\n" f)
>> + (display "ZLIB = libz.so\n" f)
>> + (display (string-append "LDFLAGS += -Wl,-rpath=" %output 
>> "/lib") f)
>> + (close-port f
>> +   (add-before 'check 'setup-check
>> + (lambda _
>> +   ;; install temporarily into /tmp/netpbm
>> +   (system* "make" "package")
>> +   ;; remove test requiring X
>> +   (substitute* "test/all-in-place.test" (("pamx") ""))
>> +   ;; do not worry about non-existing file
>> +   (substitute* "test/all-in-place.test" (("^rm ") "rm -f "))
>> +   ;; remove four tests that fail for unknown reasons
>> +   (substitute* "test/Test-Order"
>> + (("all-in-place.test") "")
>> + (("pnmpsnr.test") "")
>> + (("pnmremap1.test") "")
>> + (("gif-roundtrip.test") ""
>> +   (replace 'install
>> + (lambda* (#:key outputs make-flags #:allow-other-keys)
>> +   (let ((out (assoc-ref outputs "out")))
>> + (apply system* "make" "package"
>> +(string-append "pkgdir=" out) make-flags)
>> + ;; copy static library
>> + (copy-file (string-append out "/l

Re: Workflow management with GNU Guix

2016-05-16 Thread Ricardo Wurmus
(Resending this as it could not be delivered.)

Ricardo Wurmus  writes:

> Hi Roel,
>
>> With GNU Guix we are able to install programs to our machines with an amazing
>> level of control over the dependency graph of the programs.  We can now know
>> what code will run when we invoke a program.  We can now know what the impact
>> of an upgrade will be.  And we can now safely roll-back to previous states.
>>
>> What seems to be a common practice in research involving data analysis, is
>> running multiple programs in a chain to transform data from raw to specific. 
>> This is often referred to as a "pipeline" or a "workflow".  Because data sets
>> can be quite large in comparison to the computing power of our laptops, the
>> data analysis is performed on computing clusters instead of single machines.
>>
>> The usage of a pipeline/workflow is somewhat different from the package
>> construction, because we want to run the sequence of commands on different 
>> data
>> sets (as opposed to running it on the same source code).  Plus, I would like 
>> to
>> integrate it with existing computing clusters that have a job scheduling 
>> system
>> in place.  
>>
>> The reason I think this should be possible with Guix is that it has
>> everything in place to do software deployment and run-time isolation
>> (containers).  From there it is a small step to executing programs in an
>> automated way.
>>
>> So, I would like to propose a new Guix subcommand and an extension to
>> the package management language to add workflow management features.
>
> I probably don’t understand your idea well enough, but from what I
> understand it doesn’t really have much to do with packages (other than
> using them) and store manipulation per se (produced artifacts are not
> added to the store).  Exactly what features of Guix do you want to build
> on?
>
> My perspective on pipelines is that they should be developed like any
> other software package, treating individual tools as you would treat
> libraries.  This means that a pipeline would have a configuration step
> in which it checks for the paths of all tools it needs internally, and
> then use the full paths rather than assume all tools to be in a
> directory listed in the PATH variable.
>
> Distributing jobs to clusters would be the responsibility of the
> pipeline, e.g. by using DRMMA, which supports several resource
> management backends and has bindings for a wide range of programming
> languages.
>
>> Would this be a feature you are interested in adding to GNU Guix?
>
> Even if it wasn’t part of Guix itself, you could develop it separately
> and still add it as a Guix command, much like it is currently done for
> “guix web” (which I think should eventually be part of Guix).
>
>> I'm currently working on a proof-of-concept implementation that has three
>> record types/levels of abstraction:
>> :  Describes which es should be run, and concerns itself 
>> with
>>  the order of execution.
>>
>> :   Describes what packages are needed to run the programs involved,
>>  and its relationship to other processes.  Processes take input 
>> and
>>  generate output much like the package construction process.
>>
>> 

Re: Content-addressed mirrors for tarballs

2016-05-16 Thread Pjotr Prins
Excellent :)

On Sun, May 15, 2016 at 06:34:59PM -0400, Thompson, David wrote:
> On Sun, May 15, 2016 at 5:56 PM, Ludovic Courtès  wrote:
> > Hello Guix!
> >
> > Commit cd436bf05a8344acf4462f3602e7d360821a902a allows source tarballs
> > to be fetched from content-addressed mirrors, such as tarballs.nixos.org
> > (I expect other mirrors will be added soon.)
> >
> > By default, URLs of the style http://tarballs.nixos.org/sha256/XYZ are
> > automatically appended to the list of URLs that’s explicitly specified.
> 
> This is a really cool feature!
> 
> - Dave
> 

--