Re: FOSDEM 2016 was awesome! Let's do FOSDEM 2017

2016-08-29 Thread Alex Sassmannshausen
Hi,

Wow, how time flies!  Last year was definitely amazing, and I'd love to
be involved to make that happen again.

I'd be very happy to help out organizing stuff on the day if we still
need volunteers for that.  Alternatively, I could also help with the
proposal for the event.  I'm afraid I've been a little slow on my
response this year.  What's the status with that?  Do you need someone
to make a first draft or are we past that already?

Thanks for taking the initiative here!

Alex

Pjotr Prins writes:

> FOSDEM 2017 call for proposals has started:
>
>   https://fosdem.org/2017/news/2016-07-20-call-for-participation/
>
> We need help with writing the proposal (we can build on last years
> this time), we need help on selecting talks and we need help creating
> the schedule. Finally, if we get a slot, we need help to organise the
> day.
>
> Who wants to be part of this exciting day? 
>
> Pj.
>
> On Tue, Feb 02, 2016 at 11:35:45AM -0800, Christopher Allan Webber wrote:
>> Alex Sassmannshausen writes:
>> 
>> > Hello,
>> >
>> > Ludovic Courtès writes:
>> >
>> >> Hi there!
>> >>
>> >> I just came back from FOSDEM where we had an awesome Guile devroom with
>> >> nice people and great talks!
>> >
>> > I really want to echo Ludo's sentiments.  I had a great time in our dev
>> > room and it was really nice to put faces to the names I see popping up
>> > in IRC and on the mailing list. I really hope we'll be able to do this
>> > again next year!
>> 
>> An extra echo from me.
>> 
>> >> The room of 80 seats was full pretty much all the time, and I think we
>> >> were all excited to see so many people stop by the devroom.  Many shared
>> >> the impression that we were at an important moment of Guile’s history.
>> >> The transition with the Lua track that followed was also insightful and
>> >> a pleasant experience.
>> 
>> I was optimistic about this being a big moment in Guile's history, but
>> after this FOSDEM, my enthusiasm and excitement has doubled, maybe
>> tripled!  I can't wait to see what's happening in the year ahead!
>> 
>> >> I would like to send a big Thank You to Pjotr Prins who took the
>> >> initiative and organized all this masterfully, from applying for the
>> >> devroom, to contacting potential speakers (dozens and dozens of
>> >> messages!), to getting up early on Saturday to make sure everything
>> >> would be fine in the devroom…  Pjotr, you did an awesome job!
>> >>
>> >> Thanks to Paul van der Walt who also woke up early to help out with
>> >> video in the devroom, and obviously, thanks to all the speakers and
>> >> attendees!
>> >
>> > +1 for sure.  Thank you very much for the commitment in time and energy!
>> >
>> > Alex
>> 
>> Yes, thank you! :)




Re: [PATCH 00/31] KDE Tier 3 Packages

2016-08-29 Thread Hartmut Goebel
Am 26.08.2016 um 23:52 schrieb David Craven:
> kio, kservice, kxmlgui, kemoticons, kiconthemes, plasma-frameworks,
> krunner, ktexteditor and knewstuff have tests disabled

Thanks for this great work!

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/warum-sie-nicht-perl-programmiern-sollten
Kolumne: http://www.cissp-gefluester.de/2010-08-scheingefechte-um-rim



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [PATCH 3/4] gnu: node: Do not use bundled dependencies.

2016-08-29 Thread Alex Kost
Jelle Licht (2016-08-28 22:38 +0300) wrote:

> I probably put the wrong things together when rebasing. Should I
> provide updated
> patches in these threads, or should I just send in a new patch
> series?

I think a new patch series is better (especially since there may be
another number of patches).  Also please answer why prefixing
'compression' and 'tls' modules is needed, thanks.

-- 
Alex



Re: [PATCH 3/4] gnu: Add German Aspell dictionary.

2016-08-29 Thread Alex Kost
John Darrington (2016-08-28 15:41 +0300) wrote:

> On Sun, Aug 28, 2016 at 12:20:45PM +0300, Efraim Flashner wrote:
>  > +(define-public aspell-dict-de
>  > +  (aspell-dictionary "de" "German"
>  > + #:version "20030222-1"
>  > + #:sha256
>  > + (base32
>  > +  
> "01p92qj66cqb346gk7hjfynaap5sbcn85xz07kjfdq623ghr8v5s")))
>  don't forget your copyright line. Otherwise looks good.
>
> I didn't forget.  But I don't consider these 6 lines to be in any respect
> novel, creative or original.  The FSF guidelines for what is regarded as
> "legally significant" for copyright purposes mentions the limit of 15 lines.
>
> In fact, I challenge anyone to offer a definition of aspell-dict-de which
> works in Guix AND satisfies our rather strict coding style, and does not
> differ from the above, except in whitespace.
>
> In other words, there is nothing novel or creative in what I have written.
> Thus, is would be dishonest (perhaps illegal?) for me to claim copyright on
> this work.

I think this patch deserves it.  My understanding is we just don't have
a policy on adding copyright lines: some people add a copyright line
even for a simple package update.

-- 
Alex



Re: Rationale for gpgme using gnupg-2.0?

2016-08-29 Thread Ludovic Courtès
Hi Mark,

Mark H Weaver  skribis:

> What was the rationale for commit ae3bded, which downgraded the gnupg
> version used by gpgme from gnupg-2.1 to gnupg-2.0?

2.1 was labeled as “modern”, which I thought meant “experimental”;
probably that was that sort of rationale…

> My reading of gpgme's NEWS makes me suspect that gnupg-2.1.x is not only
> supported, but likely to be a superior choice.  NEWS includes:
>
>  * More precise error codes are returned if GnuPG >= 2.1.8 is used.
>  * Fixed regression for GPGSM use with GnuPG < 2.1.
>
> If there's a reason to stick with gnupg-2.0 for gpgme, it might be good
> to add a comment to explain why.
>
> What do you think?

I think you agree: we should upgrade to 2.1 here and elsewhere (though
some external programs such as Pius cannot deal yet with 2.1, so we need
to be careful.)

Thanks,
Ludo’.



Re: [PATCH] gnu: Add emacs-flx.

2016-08-29 Thread Alex Kost
ng0 (2016-08-29 03:30 +0300) wrote:

> From c16f7200c00a5203614d6aa6c8b4ddec76545b93 Mon Sep 17 00:00:00 2001
> From: ng0 
> Date: Sun, 28 Aug 2016 23:25:53 +
> Subject: [PATCH 1/4] gnu: Add emacs-flx.
>
> * gnu/packages/emacs.scm (emacs-flx): New variable.
> ---
>  gnu/packages/emacs.scm | 27 +++
>  1 file changed, 27 insertions(+)
>
>
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index 4fe9a8a..e7989a0 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -3002,3 +3002,30 @@ lists, and project planning with a fast and effective 
> plain-text system.  It
>  also is an authoring system with unique support for literate programming and
>  reproducible research.")
>  (license license:gpl3+)))
> +
> +(define-public emacs-flx
> +  (let ((upstream-name "flx"))

This is not done for the other packages (except commit 5698b8b82ce which
is very unusual by itself), and I don't think it is needed.  If you
insist, it's probably better to move this 'let' inside origin uri, but I
would just remove it, and write the name inside uri in a usual manner.

> +(package
> +  (name "emacs-flx")
> +  (version "0.6.1")
> +  (source
> +   (origin
> + (method url-fetch)
> + (uri (string-append "https://github.com/lewang/";
> + upstream-name "/archive/v" version ".tar.gz"))
> + (sha256
> +  (base32
> +   "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
> + (file-name (string-append name "-" version ".tar.gz"
> +  (build-system emacs-build-system)
> +  (native-inputs
> +   `(("emacs-async" ,emacs-async)))

This library is not needed.  You probably added it to make
"tests/flx-test.el" compiled, but don't bother about it.  This tests dir
is not a part of this emacs package.  Ideally such files should be
removed by emacs-build-system, but currently it just leaves everything
from the original source (including .gitignore, .travis.yml, etc.).

> +  (home-page "https://github.com/lewang/flx";)
> +  (synopsis "Fuzzy matching for Emacs")
> +  (description
> +   "Flx provides fuzzy matching for emacs a la sublime text.
> +The sorting algorithm is a balance between word beginnings (abbreviation)
> +and contiguous matches (substring).  The longer the substring match,
> +the higher it scores. This maps well to how we think about matching.
> +Flx has support for ido (interactively do things) through flx-ido.")
> +  (license license:gpl3+
> -- 
>
> 2.9.3

-- 
Alex



Re: [PATCH] gnu: Add emacs-auto-complete

2016-08-29 Thread Alex Kost
ng0 (2016-08-29 03:32 +0300) wrote:

> From a415af4e28055c98737aec967921a04390180c57 Mon Sep 17 00:00:00 2001
> From: ng0 
> Date: Mon, 29 Aug 2016 00:16:52 +
> Subject: [PATCH 4/4] gnu: Add emacs-auto-complete.
>
> * gnu/packages/emacs.scm (emacs-auto-complete): New variable.
> ---
>  gnu/packages/emacs.scm | 29 +
>  1 file changed, 29 insertions(+)
>
>
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index 311f484..c6d2333 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -3051,3 +3051,32 @@ Flx has support for ido (interactively do things) 
> through flx-ido.")
> "Cyberpunk color theme for the emacs 24+ built-in color theme support
>  known loosely as deftheme.  Many mode-specific customizations are included.")
>(license license:gpl3+
> +
> +(define-public emacs-auto-complete
> +  (let ((upstream-name "auto-complete"))
> +(package
> +  (name "emacs-auto-complete")
> +  (version "1.5.1")
> +  (source
> +   (origin
> + (method url-fetch)
> + (uri (string-append "https://github.com/"; upstream-name "/"
> + upstream-name "/archive/v" version ".tar.gz"))
> + (sha256
> +  (base32
> +   "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
> + (file-name (string-append name "-" version ".tar.gz"
> +  (build-system emacs-build-system)
> +  (propagated-inputs
> +   `(("emacs-popup" ,emacs-popup)))
> +  (native-inputs
> +   `(("emacs" ,emacs-minimal)))

This is not needed: emacs-minimal will be used by emacs-build-system
anyway.

> +  (home-page "https://github.com/auto-complete/auto-complete";)
> +  (synopsis "Intelligent auto-completion extension for Emacs")
> +  (description
> +   "Auto-Complete is an intelligent auto-completion extension for Emacs.
> +It extends the standard Emacs completion interface and provides an 
> environment
> +that allows users to concentrate more on their own work. Its features are:

Just to follow a convention: 2 spaces here ^

> +a visual interface, reduce overhead of completion by using statistic method,
> +extensibility.")
> +  (license license:gpl3+
> -- 
>
> 2.9.3

-- 
Alex



Guix with U-Boot

2016-08-29 Thread Danny Milosavljevic
Hi,

On Sun, 28 Aug 2016 14:28:31 +0200
David Craven  wrote:

> Thanks for your suggestions. I pushed the packages.
> 
> Is there a git repo somewhere I can pull your uboot stuff from? I'd
> like to test it =) 

There's no such repo right now.

I'd prefer merging into master soon to creating a fork.

For what it's worth, the changes I sent to the mailing list were tested on my 
machines, including that the Grub support still works.

If merging is deemed too risky, would it be possible to create a "wip-u-boot" 
branch on Savannah instead? - it seems that is how these bigger changes are 
handled. Then I could push the U-Boot parts there.

I've attached the UNFINISHED u-boot-install program which installs the U-Boot 
bootloader (comparable to grub-install). I plan to upstream it into the U-Boot 
main repository eventually. The other parts required for u-boot support were 
all already posted to our mailing list here.

gnu/packages/u-boot.scm could be merged now - it shouldn't affect anything 
because it's unused by master.

Other than that, it's mostly renaming "grub" -> "bootloader" in the Guix main 
source code that it creating a massive amount of noise in the patches I sent 
before. The actual functional change is a small part.

> I'm interested in starting a riscv port of guixsd at some point.

Nice! I think RISC-V is quite important to have.
/** u-boot-install.

SPDX GPLv3+

Installation methods are:

A20:
	/proc/cpuinfo:
		Processor	: ARMv7 Processor rev 4 (v7l)
		Hardware: sun7i   "platform"; check the U-Boot config for this.
	U-Boot [def]config:
		CONFIG_ARCH_SUNXI=y
		CONFIG_MACH_SUN7I=y
		CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-olinuxino-lime2"
	Installer for Allwinner:
		dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8 ; can be done by parted. ped_device_write, ped_device_sync, ...

Novena:
	"We ship a simple script called novena-install-spl. This simply does a dd of the file to the specified disk."
	disk=/dev/disk/by-path/platform-2198000.usdhc
	file=/boot/u-boot.spl
	if ! dd if="${file}" of="${disk}" bs=1024 seek=1 conv=notrunc 2> /dev/null

Raspberry Pi:
	mount /dev/sdb1 /mnt/tmp
	cp u-boot.bin /mnt/tmp/kernel.img
	umount /mnt/tmp

STMicroelectronics:
	http://www.stlinux.com/u-boot/install [from the U-Boot prompt]

Sheevaplug:
	http://www.cyrius.com/debian/kirkwood/sheevaplug/uboot-upgrade/

Xilinx:
	Downloading U-Boot to MicroBlaze

	http://www.wiki.xilinx.com/Build+U-Boot */
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

/** skip_overlay_long_line: given a FILE, skips forward until the next '\n'. It also skips the '\n'.
  * @param f File to read */
static void skip_overly_long_line(FILE* f) {
	char buf[200];
	/* skip overly long lines */
	while (fgets(buf, sizeof(buf), f) != NULL && strchr(buf, '\n') == NULL)
		;
}

/** read_value_of_key_value_file: Read the value of a = file with the given key and return it.
 * @param separator separator between key and value
 * @param filename of file to read. File will be opened and closed automatically.
 * @param key key to search for. Whitespace after key in file is ignored.
 * @param value buffer to store value in. Will be NUL terminated if result != NULL.
 * @param valuesize size of buffer, including the NUL terminator.
 * @return value if successful, NULL otherwise.
 *
 * Cannot return values from lines which are longer than 399 Byte.
 */
static const char* read_value_of_key_value_file(char separator, const char* filename, const char* key, char* value, size_t valuesize) {
	char buf[400];
	char* result = NULL;
	FILE* f = fopen(filename, "r");
	if (f == NULL)
		return NULL;
	while (fgets(buf, sizeof(buf), f) != NULL) {
		if (strchr(buf, '\n') == NULL) {
			fprintf(stderr, "Warning: skipping overly long line that starts with \"%s\".\n", buf);
			skip_overly_long_line(f);
		} else {
			const char* xkey = buf;
			char* sep = strchr(buf, separator);
			if (sep != NULL) { /* we have key and value */
*sep = 0; /* just in case separator is ' ' */
const char* xvalue = sep + 1;
/* strip leading whitespace from xvalue */
while (*xvalue == ' ' || *xvalue == '\t')
	++xvalue;
/* strip trailing whitespace from key */
for (--sep; sep >= xkey; --sep) {
	if (*sep != ' ' && *sep != '\t')
		break;
	*sep = 0;
}
if (strcmp(key, xkey) == 0 && valuesize >= 1) {
	/* Note: be careful about '\n' in value */
	strncpy(value, xvalue, valuesize);
	if (value[valuesize - 1] == '\n')
		value[valuesize - 1] = 0;
	if (value[valuesize - 1] != 0) {
		fprintf(stderr, "Warning: skipping overly long value for entry that starts with %s=\"%s\".\n", xkey, xvalue);
	} else {
		result = strchr(value, '\n');
		if (result != NULL)
			*result = 0;
		result = value;
		break;
	}
}
			}
		}
	}
	(void) fclose(f);
	return result;
}

static const char* read_proc_cpuinfo_hardware_platform(char* value, size_t valuesize) {
	return read_value_of_key_v

Re: [PATCH 04/31] gnu: Add baloo.

2016-08-29 Thread David Craven
If the project is dual licensed or tripple licensed do I have to add a
comment to each package? Or can we assume that that's the default?



Re: Guix with U-Boot

2016-08-29 Thread David Craven
> If merging is deemed too risky, would it be possible to create a
> "wip-u-boot" branch on Savannah instead? - it seems that is
> how these bigger changes are handled. Then I could push the
> U-Boot parts there.

I'll collect your patches and do that. That should make it easier
to test. (I'm not qualified to merge your patches ;-)



GHM debriefing

2016-08-29 Thread Ludovic Courtès
Hello!

The GNU Hackers Meeting (GHM) took place last week, with ~50 people
including 4 Guix hackers (less than at FOSDEM!).  I found myself talking
3 times (!) about Guix, hoping the audience would not saturate. ;-)

  https://www.gnu.org/ghm/program.html

Slides online, and hopefully videos will follow:

  https://www.gnu.org/software/guix/help/#talks

The first talk was the usual status update in which I also talked about
challenges that we face to scale up, how we address them and what
remains to be done.

On that topic, I had an interesting discussion with Nicolas Petton of
Emacs about patch tracking.  Nicolas explained that Gitlab (free
software) doesn’t have some of the technical defects that GitHub has; in
particular it can rebase instead of merging, thereby helping preserve a
linear history, and it can be dealt with “mostly” by email.  Perhaps we
could try running an instance and see what it’s like.

For the second talk, I replaced Mathieu who could not make it to the
event.  Essentially, I demoed most of the guix.el features described in
the manual, and expressed all my gratitude to Alex.  ;-)

For the last talk, I rehashed the basics since the audience wasn’t too
familiar I suppose, and then wrote a GuixSD service for OpenSSH’s ‘sshd’
(attached).  Hopefully a useful starting point and tutorial.

That’s it!

Ludo’.

(define-module (gnu services openssh)
  #:use-module (gnu)
  #:use-module (gnu services shepherd)
  #:use-module (gnu packages ssh)
  #:use-module (guix)
  #:export (openssh-service-type))

(define (ssh-shepherd-service config-file)
  (list (shepherd-service
 (provision '(ssh-daemon))
 (requirement '(networking))
 (start #~(make-forkexec-constructor
   (list (string-append #$openssh "/sbin/sshd")
 "-f" #$config-file)
   #:pid-file "/etc/sshd.pid"))
 (stop #~(make-kill-destructor)

(define %sshd-accounts
  (list (user-account
 (name "sshd")
 (comment "OpenSSH privilege separation user")
 (home-directory "/var/empty")
 (system? #t)
 (group "nogroup"

(define %sshd-keygen
  #~(system* (string-append #$openssh "/bin/ssh-keygen")
 "-t" "ed25519" "-N" "" "-f"
 "/etc/ssh_host_ed25519_key"))

(define openssh-service-type
  (service-type
   (name 'openssh)
   (extensions (list (service-extension shepherd-root-service-type
ssh-shepherd-service)
 (service-extension account-service-type
(const %sshd-accounts))
 (service-extension activation-service-type
(const %sshd-keygen))


signature.asc
Description: PGP signature


Re: [PATCH] gnu: Add emacs-flx.

2016-08-29 Thread ng0
>From ec5296693f6e8e9287fc32099c8a2fc8038fc204 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Sun, 28 Aug 2016 23:25:53 +
Subject: [PATCH 1/4] gnu: Add emacs-flx.

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

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 4fe9a8a..885a1ca 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -3002,3 +3002,27 @@ lists, and project planning with a fast and effective plain-text system.  It
 also is an authoring system with unique support for literate programming and
 reproducible research.")
 (license license:gpl3+)))
+
+(define-public emacs-flx
+  (package
+(name "emacs-flx")
+(version "0.6.1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/lewang/";
+   "flx/archive/v" version ".tar.gz"))
+   (sha256
+(base32
+ "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
+   (file-name (string-append name "-" version ".tar.gz"
+(build-system emacs-build-system)
+(home-page "https://github.com/lewang/flx";)
+(synopsis "Fuzzy matching for Emacs")
+(description
+ "Flx provides fuzzy matching for emacs a la sublime text.
+The sorting algorithm is a balance between word beginnings (abbreviation)
+and contiguous matches (substring).  The longer the substring match,
+the higher it scores. This maps well to how we think about matching.
+Flx has support for ido (interactively do things) through flx-ido.")
+(license license:gpl3+)))
-- 
2.9.3


-- 
ng0
For non-prism friendly talk find me on http://www.psyced.org


Re: [PATCH] gnu: Add emacs-auto-complete

2016-08-29 Thread ng0
>From 14ad2ea653e3b4a2a0feed98728db4f7b1eea104 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Mon, 29 Aug 2016 00:16:52 +
Subject: [PATCH 4/4] gnu: Add emacs-auto-complete.

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

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 3088c0a..ad51634 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -3047,3 +3047,29 @@ Flx has support for ido (interactively do things) through flx-ido.")
  "Cyberpunk color theme for the emacs 24+ built-in color theme support
 known loosely as deftheme.  Many mode-specific customizations are included.")
 (license license:gpl3+)))
+
+(define-public emacs-auto-complete
+  (package
+(name "emacs-auto-complete")
+(version "1.5.1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/auto-complete/";
+   "auto-complete/archive/v" version ".tar.gz"))
+   (sha256
+(base32
+ "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
+   (file-name (string-append name "-" version ".tar.gz"
+(build-system emacs-build-system)
+(propagated-inputs
+ `(("emacs-popup" ,emacs-popup)))
+(home-page "https://github.com/auto-complete/auto-complete";)
+(synopsis "Intelligent auto-completion extension for Emacs")
+(description
+ "Auto-Complete is an intelligent auto-completion extension for Emacs.
+It extends the standard Emacs completion interface and provides an environment
+that allows users to concentrate more on their own work.  Its features are:
+a visual interface, reduce overhead of completion by using statistic method,
+extensibility.")
+(license license:gpl3+)))
-- 
2.9.3


-- 
ng0
For non-prism friendly talk find me on http://www.psyced.org


Re: [PATCH] gnu: Add emacs-cyberpunk-theme

2016-08-29 Thread ng0
>From b340dd80d1e072a1eda40ae195a29b863836c401 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Sun, 28 Aug 2016 23:46:57 +
Subject: [PATCH 3/4] gnu: Add emacs-cyberpunk-theme.

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

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 6485bee..3088c0a 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -3026,3 +3026,24 @@ and contiguous matches (substring).  The longer the substring match,
 the higher it scores. This maps well to how we think about matching.
 Flx has support for ido (interactively do things) through flx-ido.")
 (license license:gpl3+)))
+
+(define-public emacs-cyberpunk-theme
+  (package
+(name "emacs-cyberpunk-theme")
+(version "1.17")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/";
+   "archive/" version ".tar.gz"))
+   (sha256
+(base32
+ "068jcn4g1bvwgpcvyfqygzw6ahill51c1sqzyyvj2paxckbd7h51"))
+   (file-name (string-append name "-" version ".tar.gz"
+(build-system emacs-build-system)
+(home-page "https://github.com/n3mo/cyberpunk-theme.el";)
+(synopsis "Cyberpunk theme for emacs built-in color theme support")
+(description
+ "Cyberpunk color theme for the emacs 24+ built-in color theme support
+known loosely as deftheme.  Many mode-specific customizations are included.")
+(license license:gpl3+)))
-- 
2.9.3


-- 
ng0
For non-prism friendly talk find me on http://www.psyced.org


Re: [PATCH] gnu: emacs-neotree: Fix downloaded source file

2016-08-29 Thread ng0
>From 41ffa4aa523921f0b8b722badee44dc34e570433 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Sun, 28 Aug 2016 23:29:19 +
Subject: [PATCH 2/4] gnu: emacs-neotree: Keep downloaded source file format.

* gnu/packages/emacs.scm (emacs-neotree)[source]: Keep downloaded file format.
---
 gnu/packages/emacs.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 885a1ca..6485bee 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -2977,7 +2977,7 @@ passive voice.")
   (sha256
(base32
 "0cr37pdkwjgfijfws5bjskfh1rq9rfngxblcj6v5383vpmn83q7s"))
-  (file-name (string-append name "-" version
+  (file-name (string-append name "-" version ".tar.gz"
 (build-system emacs-build-system)
 (synopsis "Folder tree view for Emacs")
 (description "This Emacs package provides a folder tree view.")
-- 
2.9.3


-- 
ng0
For non-prism friendly talk find me on http://www.psyced.org


Re: GHM debriefing

2016-08-29 Thread David Craven
> Slides online, and hopefully videos will follow:
>
>   https://www.gnu.org/software/guix/help/#talks

Nice slides!

> On that topic, I had an interesting discussion with Nicolas Petton of
> Emacs about patch tracking.  Nicolas explained that Gitlab (free
> software) doesn’t have some of the technical defects that GitHub has; in
> particular it can rebase instead of merging, thereby helping preserve a
> linear history, and it can be dealt with “mostly” by email.  Perhaps we
> could try running an instance and see what it’s like.

Calling it a technical defect is a little harsh... ;-) Gitlab is going to be an
improvement over the existing state of affairs. Just spent an hour fixing
the u-boot [0] patch manually to apply to a fresh tree. (Line wrapping mostly,
removing some hunks and adding a newline at the end)

[0] http://lists.gnu.org/archive/html/guix-devel/2016-07/msg01414.html



Re: [PATCH] Fix compiling on CentOS 7.

2016-08-29 Thread Ludovic Courtès
Hi Roel,

Roel Janssen  skribis:

> Ludovic Courtès writes:

[...]

>> Use of %D% was discussed here:
>>
>>   https://lists.gnu.org/archive/html/guix-devel/2016-05/msg00641.html
>>
>> In general, I’m in favor of using the latest build tools available (the
>> autotools), because I think it’s reasonable to ask developers to have
>> the latest available.  If needed, they can install the Guix binary
>> tarball and get the latest tools from there.
>
> So, for CentOS 7 users you suggest that to compile GNU Guix, people need
> to first install the GNU Guix binary?  Is that really easier than
> applying and maintaining this change?  I think that we should support
> the version of Automake shipped with CentOS 7.

We can do that if it doesn’t cost us much, I agree.

What about this: you revert the %D% patch (with a comment somewhere
explaining which Automake version we’re targeting), and then merge
master into core-updates and wip-python?  How good of a deal is it?  :-)

Thanks, and apologies for making it sound like I was strongly objecting
the change!

Ludo’.



Re: Offloading to a VM

2016-08-29 Thread Ludovic Courtès
David Craven  skribis:

>> --8<---cut here---start->8---
>> $ qemu-arm $(guix build coreutils -s armhf-linux |grep -v debug)/bin/uname -a
>> Linux pluto 4.7.0-gnu #1 SMP 1 armv7l GNU/Linux
>> $ uname -a
>> Linux pluto 4.7.0-gnu #1 SMP 1 x86_64 GNU/Linux
>> --8<---cut here---end--->8---
>
> If I understand correctly this only works when there is a substitute
> already. If it's a new package for example that would fail with "not
> an armhf system" right?

The “build hook” is the mechanism by which the daemon asks an external
program whether it can build a derivation for some system.

Our (guix scripts offload) is such a program; it replies positively if
there’s a machine that matches the target system.

What I was suggesting is to have another build hook that would reply
positively as long as the target system can be emulated by QEMU.

Does that makes sense?

Thanks,
Ludo’.



Re: Offloading to a VM

2016-08-29 Thread David Craven
Yep, thanks! =)



[PATCH] gnu: service: Add git-service.

2016-08-29 Thread ng0
I'd be happy to take review comments and changes to apply.
The service runs, but due to limitations of our guix system vm
(https://lists.gnu.org/archive/html/guix-devel/2016-08/msg01816.html)
I was not able to test a situation where I add a pubkey to $HOME/.ssh/
of user "git", export a repository, clone it from VM to HOST and push
some changes to the git daemon running on the VM.
I know I should add a section about it to documentation, but first I
want to get comments for the service as it currently is.

>From e84e27862683fcb42be50e0b74b868e89cfb2dbc Mon Sep 17 00:00:00 2001
From: ng0 
Date: Fri, 8 Jul 2016 15:42:55 +
Subject: [PATCH] gnu: services: Add git-service.

* gnu/services/version-control.scm: New file, create it.
(git-service): New Procedures.
(git-service-type): New variable.
---
 gnu/local.mk |   1 +
 gnu/services/version-control.scm | 116 +++
 2 files changed, 117 insertions(+)
 create mode 100644 gnu/services/version-control.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 7ce8ad0..3bedd97 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -390,6 +390,7 @@ GNU_SYSTEM_MODULES =\
   %D%/services/herd.scm\
   %D%/services/spice.scm\
   %D%/services/ssh.scm\
+  %D%/services/version-control.scm  \
   %D%/services/web.scm\
   %D%/services/xorg.scm\
 		\
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
new file mode 100644
index 000..f32a592
--- /dev/null
+++ b/gnu/services/version-control.scm
@@ -0,0 +1,116 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 ng0 
+;;;
+;;; 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 services version-control)
+  #:use-module (gnu services)
+  #:use-module (gnu services base)
+  #:use-module (gnu services shepherd)
+  #:use-module (gnu system shadow)
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages admin)
+  #:use-module (guix records)
+  #:use-module (guix gexp)
+  #:use-module (srfi srfi-1)
+  #:use-module (ice-9 match)
+  #:export (git-service
+git-service-type
+git-configuration
+git-configuration?
+git-configuration-git
+git-configuration-port
+git-configuration-base-path))
+
+;;; Commentary:
+;;;
+;;; Version Control related services.
+;;;
+;;; Code:
+
+
+;;;
+;;; git
+;;;
+
+(define-record-type*  git-configuration
+  make-git-configuration
+  git-configuration?
+  (git   git-configuration-git  ;package
+ (default git))
+  (base-path git-configuration-base-path) ;string
+  (port  git-configuration-port)) ;number
+
+(define (git-shepherd-service config)
+  "Return a  for git with CONFIG."
+  (define git (git-configuration-git config))
+
+  (define git-command
+#~(list
+   (string-append #$git "/bin/git") "daemon" "--syslog"
+   "--informative-errors"
+   (string-append "--port=" #$(number->string (git-configuration-port config)))
+   (string-append "--base-path=" #$(git-configuration-base-path config
+
+  (define requires
+'(networking syslogd))
+
+  (list (shepherd-service
+ (documentation "Git daemon server for git repositories")
+ (requirement requires)
+ (provision '(git))
+ (start #~(make-forkexec-constructor #$git-command))
+ (stop #~(make-kill-destructor)
+
+(define %git-accounts
+  ;; User account and groups for git-daemon.
+  ;; We can give it git-shell for now, otherwise we can switch to /bin/sh.
+  (list (user-group (name "git") (system? #t))
+(user-account
+ (name "git")
+ (group "git")
+ (system? #t)
+ (comment "git-daemon user")
+ (home-directory "/var/git")
+ (shell #~(string-append #$shadow "/bin/git-shell")
+
+(define (git-activation config)
+  "Return the activation gexp for CONFIG."
+  #~(begin (use-modules (guix build utils))
+   ;; Create the default base-path (where the repositories are).
+   (mkdir-p "/var/git/repositories")))
+
+(define git-service-type
+  (service-type (name 'git)
+   (extensions
+(list (service-extension shepherd-root-service-type
+ git-shepherd-service)
+  (service-extension activation-service-

Re: GHM debriefing

2016-08-29 Thread Vincent Legoll
>  (home-directory "/var/empty")

Argh, nooo !

;-)

-- 
Vincent Legoll



Re: Guix with U-Boot

2016-08-29 Thread David Craven
Mhmm so I'm trying your patches and I get a no code for gnu system
u-boot. The file seems to be missing from the patches?



Re: [PATCH] gnu: service: Add git-service.

2016-08-29 Thread Andy Wingo
On Mon 29 Aug 2016 15:04, ng0  writes:

> I know I should add a section about it to documentation, but first I
> want to get comments for the service as it currently is.

No real comments until I know how it's supposed to work, which the
documentation will tell me :)

A



Re: Guix with U-Boot

2016-08-29 Thread Danny Milosavljevic
On Mon, 29 Aug 2016 16:12:00 +0200
David Craven  wrote:

> Mhmm so I'm trying your patches and I get a no code for gnu system
> u-boot. The file seems to be missing from the patches?

Attached gnu/system/u-boot.scm . (Don't worry, once the branch is up, I'll diff 
with what I have here :) )
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès 
;;; Copyright © 2016 Danny Milosavljevic 
;;;
;;; 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 system u-boot)
  #:use-module (guix store)
  #:use-module (guix packages)
  #:use-module (guix derivations)
  #:use-module (guix records)
  #:use-module (guix monads)
  #:use-module (guix gexp)
  #:use-module (guix download)
  #:use-module (gnu artwork)
  #:use-module (gnu system file-systems)
  #:autoload   (gnu packages u-boot) (make-u-boot-package)
  #:use-module (gnu system grub) ; 
  #:use-module (ice-9 match)
  #:use-module (ice-9 regex)
  #:use-module (srfi srfi-1)
  #:export (u-boot-configuration
u-boot-configuration?
u-boot-configuration-board
u-boot-configuration-u-boot
u-boot-configuration-device
u-boot-configuration-file))

;;; Commentary:
;;;
;;; Configuration of U-Boot.
;;;
;;; Code:

(define-record-type* 
  u-boot-configuration make-u-boot-configuration
  u-boot-configuration?
  (board   u-boot-configuration-board)   ; string ; not optional!
  (u-boot  u-boot-configuration-u-boot   ; package
   (default #f)) ; will actually default to (make-u-boot-package board)
  (device  u-boot-configuration-device); string
  (menu-entriesu-boot-configuration-menu-entries   ; list
   (default '()))
  (default-entry   u-boot-configuration-default-entry  ; integer
   (default 0))
  (timeout u-boot-configuration-timeout; integer
   (default 5)))



;;;
;;; Configuration file.
;;;

(define* (u-boot-configuration-file config store-fs entries
  #:key
  (system (%current-system))
  (old-entries '()))
  "Return the U-Boot configuration file corresponding to CONFIG, a
 object, and where the store is available at STORE-FS, a
 object.  OLD-ENTRIES is taken to be a list of menu entries
corresponding to old generations of the system."
  (define linux-image-name
(if (string-prefix? "mips" system)
"vmlinuz"
"bzImage"))

  (define all-entries
(append entries (u-boot-configuration-menu-entries config)))

  (define entry->gexp
(match-lambda
 (($  label linux arguments initrd)
  #~(format port "LABEL ~s
  MENU LABEL ~a
  LINUX ~a/~a ~a
  INITRD ~a
  FDTDIR .
  APPEND ~a
~%"
#$label
#$linux #$linux-image-name
#$initrd
(string-join (list #$@arguments))

  (define builder
  #~(call-with-output-file #$output
  (lambda (port)
(format port "
ui menu.c32
DEFAULT ~a
TIMEOUT ~a~%"
#$(u-boot-configuration-default-entry config)
#$(u-boot-configuration-timeout config))
#$@(map entry->gexp all-entries)

#$@(if (pair? old-entries)
   #~((format port "~%")
  #$@(map entry->gexp old-entries)
  (format port "~%"))
   #~()

(gexp->derivation "extlinux.conf" builder))

;;; u-boot.scm ends here


Re: [PATCH] gnu: service: Add git-service.

2016-08-29 Thread ng0
Andy Wingo  writes:

> On Mon 29 Aug 2016 15:04, ng0  writes:
>
>> I know I should add a section about it to documentation, but first I
>> want to get comments for the service as it currently is.
>
> No real comments until I know how it's supposed to work, which the
> documentation will tell me :)
>
> A

Oh. Sorry, my testvm was just run with this in
(services cons* (git-service)

as I was not able to try otherwise, the guix system vm lacked HOST -> VM
network, the only thing I could make sure is that the process with the
default parameters I gave it runs.
This is my first service, so I have no idea if it is correct or how to
do it, etc... I lack references.

I'll add documentation later.
-- 
ng0
For non-prism friendly talk find me on http://www.psyced.org



[PATCH] gnu: Add dtc.

2016-08-29 Thread David Craven
From: Danny Milosavljevic 

* gnu/packages/u-boot.scm (dtc): New variable.

Co-authored-by: David Craven 
---
 gnu/packages/u-boot.scm | 60 +
 1 file changed, 60 insertions(+)
 create mode 100644 gnu/packages/u-boot.scm

diff --git a/gnu/packages/u-boot.scm b/gnu/packages/u-boot.scm
new file mode 100644
index 000..e9376a4
--- /dev/null
+++ b/gnu/packages/u-boot.scm
@@ -0,0 +1,60 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Danny Milosavljevic 
+;;; Copyright © 2016 David Craven 
+;;;
+;;; 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 u-boot)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix packages)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages flex))
+
+(define-public dtc
+  (package
+(name "dtc")
+(version "1.4.1")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://www.kernel.org/pub/software/utils/dtc/";
+"dtc-" version ".tar.xz"))
+  (sha256
+   (base32
+"155v52palf5fwfcnq696s41whjk0a5dqx98b7maqzdn7xbc2m6bp"
+(build-system gnu-build-system)
+(native-inputs
+ `(("bison" ,bison)
+   ("flex" ,flex)))
+(arguments
+ `(#:make-flags
+   (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out")))
+   #:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+   (lambda _
+ (substitute* "Makefile"
+   (("/usr/bin/install") "install"))
+ (substitute* "Makefile"
+   (("PREFIX = \\$\\(HOME\\)") ""
+ (delete 'configure
+(home-page "https://www.devicetree.org";)
+(synopsis "Compiles Device Tree Source Files (.dts)")
+(description "dtc compiles Device Tree Source Files to Device Tree Binary 
Files.
+These are hardware (board) description files (used by Linux and BSD).")
+(license license:gpl2+)))
-- 
2.9.0



Re: [PATCH] gnu: Add dtc.

2016-08-29 Thread David Craven
I made some stylistic changes, updated the license, updated to 1.4.1,
removed the patches (checked the arch package and the nixos package,
both don't patch dtc)

I forgot to add u-boot.scm to local.mk...

Danny, WDYT? Is it an improvement?



Re: [PATCH] openssh service

2016-08-29 Thread Ludovic Courtès
Hi Julien,

I just discovered this patch as I go through my backlog, which is fun
because I used sshd as an example to illustrate how GuixSD services work
just a week ago.  :-)

Julien Lepiller  skribis:

> +@deffn {Scheme Procedure} openssh-service [#:pidfile "/var/run/sshd.pid"] @

#:pid-file

> +   [#:port-number 22] [#:root-login "without-password"] @
> +   [#:allow-empty-passwords #f] [#:password-authentication? #t] @
> +   [#:pubkey-authentication? #t] [#:rsa-authentication? #t] @
> +   [#:x11-forwarding? #f] [#:protocol-number "2"]

I agree with Andy’s latest comments regarding naming.

Also, make sure to consistently use question marks for Boolean options,
as in #:allow-empty-passwords?.

Last thing, I would prefer to expose and document
, as is done for Dropbear.  We should encourage
this style now, IMO.

(In commit 39012aab868d5ab3b39c95682f95212437e2 I enabled PAM
support in OpenSSH, though it’s off by default; maybe in a future patch
we can add #:pam-support?.)

> --- a/gnu/packages/ssh.scm
> +++ b/gnu/packages/ssh.scm
> @@ -142,7 +142,8 @@ a server that supports the SSH-2 protocol.")
>   ("zlib" ,zlib)
>   ("xauth" ,xauth)))   ;for 'ssh -X' and 'ssh -Y'
> (arguments
> -`(#:test-target "tests"
> +`(#:configure-flags `("--sysconfdir=/etc/ssh")
> +  #:test-target "tests"

I committed this part independently as
af493726ce16483bd09ed7f73028bab3294131e2.  :-)

> +When @var{x11-forwarding} is true, @command{ssh} options -X and -Y will 
> work."

@option{-X} and @option{-Y}.

These are all cosmetic details.  If you prefer I can do it on your
behalf, just let me know; otherwise, please send an updated patch.

Thank you for your work!

Ludo’.



Re: [PATCH 3/7] import cran: description->package: Also return package dependencies.

2016-08-29 Thread Ludovic Courtès
Ricardo Wurmus  skribis:

> Ricardo Wurmus  writes:
>
>> Ludovic Courtès  writes:
>>
>>> Ricardo Wurmus  skribis:
>>>
 * guix/import/cran.scm (description->package): Return package
   dependencies in addition to generated package expression.
>>>
>>> What would you think of making it return a SRFI-41 stream of packages
>>> instead?  Or maybe two values: the package asked for, and the stream
>>> containing its dependencies.  That would hide the package lookup
>>> machinery.
>>
>> That’s a very good idea!  I’ll play around with this and submit a new
>> patch.
>
> I’ve been playing with this for a while and although it looks prettier
> to a user it has some disadvantages to use streams here.  The first is
> that it becomes more difficult to avoid duplicate work.  The second is
> that we can no longer easily generate an order of package expressions
> from leaf nodes to the root.
>
> Consider this case where “plotly” should be imported.  The new inputs
> look like this:
>
>  plotly  : (ggplot2 digest)
>  ggplot2 : (digest mass)
>  digest  : ()
>  mass: ()
>
> The generated stream may look like this:
>
>   (plotly ggplot2 digest mass digest)
>
> This happens because we only know about the next set of inputs upon
> evaluation of the stream elements.  Of course there are ways to fix
> this, but they involve extending or wrapping “cran->guix-package” to
> make sure that we keep track of top-level dependencies as we traverse
> the list of dependencies recursively.
>
> Maybe I’m doing this wrong?
>
>
> I rewrote description->package to essentially do this:
>
> (stream-cons the-package-expression
>  (stream-concat
>   (let ((unpackaged (unpackaged-dependencies
>  propagate guix-name)))
> (stream-map (cran->guix-package name repository)
> (list->stream unpackaged)
>
> I.e. the first element of the stream is the imported package expression;
> the tail is a concatenation of streams of packages with their
> dependencies just like this one.  Here’s the stream before
> concatenation:
>
>   (plotly (ggplot2 (digest ()) (mass ()))
>   (digest ()))
>
> To render this in the correct order we’d have to turn this tree inside
> out.  Maybe this isn’t so well-suited to a representation as a stream
> after all.  To turn it inside out we have to evaluate the whole tree
> anyway.
>
> What do you think?  Is it worth expressing this as a stream?  If so, do
> you have any recommendations on how to approach this?
>
> Or would it be okay to let “description->package” return two values: a
> package expression and a list of unpackaged package names, which can
> then be processed by a separate procedure?  (That’s what I submitted
> earlier.)

I think you should go ahead with what you proposed if the other option
sounds like a headache.  Sorry for blocking you for this long!

In theory it would be possible to do something like:

  (define (description->package repo meta)
(stream-cons `(package …)
 (stream-unfold (lambda (state)
  (description->package
   repo
   (first-dependency state)))
(lambda (state)
  (done? state))
(lambda (state)
  (next-dependency state))
(make-state propagate (setq)

… where the state is roughly a pair containing the list of next
dependencies and the set of already visited dependencies (to avoid
duplicates).

But again, this is probably easier said than done, so no problem with
keeping the initial option.

Thanks!

Ludo’.



Re: GHM debriefing

2016-08-29 Thread Christopher Allan Webber
All good news!  One comment:

Ludovic Courtès writes:

> For the last talk, I rehashed the basics since the audience wasn’t too
> familiar I suppose, and then wrote a GuixSD service for OpenSSH’s ‘sshd’
> (attached).  Hopefully a useful starting point and tutorial.

It looks like a good tutorial in its simplicity!  Maybe it could be
added as an "example" section at the end of the Defining Services
chapter?

You might have also seen that, as a non-tutorial, Julien Lepiller has
been working on getting an openssh-service into GuixSD.  It might be
good for someone to look if there are any overlaps or things that should
be joined between both definitions, as in terms of getting it really
into Guix :)

(Unfortunately, I'm still in crunchmode, so I'm not volunteering
myself!)

 - Chris

> That’s it!
>
> Ludo’.
>
> (define-module (gnu services openssh)
>   #:use-module (gnu)
>   #:use-module (gnu services shepherd)
>   #:use-module (gnu packages ssh)
>   #:use-module (guix)
>   #:export (openssh-service-type))
>
> (define (ssh-shepherd-service config-file)
>   (list (shepherd-service
>  (provision '(ssh-daemon))
>  (requirement '(networking))
>  (start #~(make-forkexec-constructor
>(list (string-append #$openssh "/sbin/sshd")
>  "-f" #$config-file)
>#:pid-file "/etc/sshd.pid"))
>  (stop #~(make-kill-destructor)
>
> (define %sshd-accounts
>   (list (user-account
>  (name "sshd")
>  (comment "OpenSSH privilege separation user")
>  (home-directory "/var/empty")
>  (system? #t)
>  (group "nogroup"
>
> (define %sshd-keygen
>   #~(system* (string-append #$openssh "/bin/ssh-keygen")
>  "-t" "ed25519" "-N" "" "-f"
>  "/etc/ssh_host_ed25519_key"))
>
> (define openssh-service-type
>   (service-type
>(name 'openssh)
>(extensions (list (service-extension shepherd-root-service-type
> ssh-shepherd-service)
>  (service-extension account-service-type
> (const %sshd-accounts))
>  (service-extension activation-service-type
> (const %sshd-keygen))




Re: GCC bootstrap failure on ARM

2016-08-29 Thread Ludovic Courtès
Mark H Weaver  skribis:

> David Craven  writes:
>
>> I can help fixing package regressions if someone gets the ball
>> rolling. Is there a reason to upgrade to gcc 5 or does it make sense
>> to jump to gcc 6 directly? If I understand correctly most of the work
>> required for an update to gcc 5 has already been done?
>
> Until the bootstrapping problem on ARM is fixed, we can't do any of
> this.  At the moment, that's blocking us from even updating to 4.9.4,
> nevermind 5 or 6.  If you want to help us upgrade our default GCC,
> investigating that problem would be the best way.

It might be that fixing bootstrap with GCC 5 (or 6) or ARM wouldn’t be
much harder than with 4.9.

For the record, this is how far I got with GCC 5:

  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71399

It’s intimidating, but if several of us give it a try, we may get better
ideas.

Cheers,
Ludo’.



Re: [PATCH 0/3] Fix ldc.

2016-08-29 Thread Ludovic Courtès
Hi!

Danny Milosavljevic  skribis:

> Any news on this?

Sorry to ask this, but could you resend them with ‘git send-email’, but
without making the actual patch an attachment?  Somehow I’m failing to
apply them in their current form.  :-/

> Meanwhile, I have a new patch to provide ldc-1.1.0-beta2. What should I do 
> with it? Make a new patch series and refer to this one as prerequisite? 

In general we do not provide betas, so this patch series is probably
still OK.

Ludo’.



Re: bug#24145: [PATCH] gnu: asciidoc: Use local docbook-xsl package.

2016-08-29 Thread Ludovic Courtès
Hello,

Tomáš Čech  skribis:

> * gnu/packages/documentation.scm(asciidoc): New input docbook-xsl,
>   replace use of online source and prefer docbook-xsl package.

Rather:

* gnu/packages/documentation (asciidoc)[inputs]: Add PYTHON-2 and
DOCBOOK-XSL.
(arguments): Add 'make-local-docbook-xsl' phase.

> diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
> index 72af708..98d30e7 100644
> --- a/gnu/packages/documentation.scm
> +++ b/gnu/packages/documentation.scm
> @@ -49,8 +49,22 @@
> (base32
>  "1w71nk527lq504njmaf0vzr93pgahkgzzxzglrq6bay8cw2rvnvq"
>  (build-system gnu-build-system)
> -(arguments '(#:tests? #f)); no 'check' target
> -(inputs `(("python" ,python-2)))
> +(arguments
> + `(#:tests? #f ; no 'check' target
> +   #:phases
> +   (modify-phases %standard-phases
> + (add-before
> + 'install 'make-local-docbook-xsl
> +   (lambda* (#:key inputs #:allow-other-keys)
> + (substitute* (find-files "docbook-xsl" ".*\\.xsl$")
> +   (("xsl:import 
> href=\"http://docbook.sourceforge.net/release/xsl/current";)
> +(string-append
> + "xsl:import href=\""
> + (string-append (assoc-ref inputs "docbook-xsl")
> +"/xml/xsl/docbook-xsl-"
> +,(package-version docbook-xsl))
> +(inputs `(("python" ,python-2)
> +  ("docbook-xsl" ,docbook-xsl)))

Otherwise LGTM, please push!

Ludo’.



Re: Mysterious error while refactoring guix/scripts/system.scm

2016-08-29 Thread Ludovic Courtès
Hi Chris, and sorry for the delay!

Chris Marusich  skribis:

> Backtrace:
> In ice-9/boot-9.scm:
>  157: 15 [catch #t # ...]
> In unknown file:
>?: 14 [apply-smob/1 #]
> In ice-9/boot-9.scm:
>   63: 13 [call-with-prompt prompt0 ...]
> In ice-9/eval.scm:
>  432: 12 [eval # #]
> In ice-9/boot-9.scm:
> 2401: 11 [save-module-excursion # ice-9/boot-9.scm:4045:3 ()>]
> 4050: 10 [#]
> 1724: 9 [%start-stack load-stack ...]
> 1729: 8 [#]
> In unknown file:
>?: 7 [primitive-load "/root/guix/scripts/guix"]
> In guix/ui.scm:
> 1209: 6 [run-guix-command system "list-generations"]
> In ice-9/boot-9.scm:
>  157: 5 [catch srfi-34 # ...]
>  157: 4 [catch system-error ...]
> In guix/scripts/system.scm:
>  884: 3 [#]
>  818: 2 [process-command list-generations () ...]
> In guix/store.scm:
> 1182: 1 [run-with-store # ...]
> In unknown file:
>?: 0 [# #]
>
> ERROR: In procedure #:
> ERROR: Wrong type to apply: #

This means that we’re trying to invoke #, but
# is not a procedure.

Note that this is from within ‘run-to-store’, which is the procedure to
“run” a monadic value.  So in effect, what happened is equivalent to:

--8<---cut here---start->8---
scheme@(guile-user)> ,use(guix monads)
scheme@(guile-user)> ,use(guix store)
scheme@(guile-user)> (with-store s
   (run-with-store s *unspecified*))
ERROR: In procedure #:
ERROR: Wrong type to apply: #
--8<---cut here---end--->8---

The bug here is in fact a type error: ‘run-with-store’ expect a monadic
value, but what we have here is a regular value.

To “fix” it, we need:

--8<---cut here---start->8---
scheme@(guile-user)> (with-store s
   (run-with-store s
 (with-monad %store-monad (return *unspecified*
--8<---cut here---end--->8---

… where ‘return’ procedure a monadic value from a normal value.

In your case, ‘list-generations’ is not a monadic procedure (a procedure
that returns a monadic value), so in this patch:

  (run-with-store store
…
(list-generations))

… triggers this very type error.

I imagine this may be more than you wanted to learn.  ;-)
Monads in a dynamically typed setting are kinda annoying because of
this.

>  (define (process-command command args opts)
>"Process COMMAND, one of the 'guix system' sub-commands.  ARGS is its
>  argument list and OPTS is the option alist."
> -  (case command
> -((list-generations)
> - ;; List generations.  No need to connect to the daemon, etc.
> - (let ((pattern (match args
> -  (() "")
> -  ((pattern) pattern)
> -  (x (leave (_ "wrong number of arguments~%"))
> -   (list-generations pattern)))
> -(else
> - (process-action command args opts
> +  (with-store store
> +(set-build-options-from-command-line store opts)
> +
> +(run-with-store store
> +  (mbegin %store-monad
> +(set-guile-for-build (default-guile))
> +(case command
> +  ((list-generations)
> +   (let ((pattern (match args
> +(() "")
> +((pattern) pattern)
> +(x (leave (_ "wrong number of arguments~%"))
> + (list-generations pattern)))
> +  (else
> +   (process-action command args opts
> +  #:system (assoc-ref opts 'system

As the comment above suggests, the idea here was to avoid connecting to
the daemon for operations that do not need it, such as
‘list-generations’.  I think we should preserve this property.

Thanks for your work!  I’m sorry this is more painful than I thought.
:-/

Ludo’.



Re: [PATCH 1/5] gnu: gtk+: Add "bin" output.

2016-08-29 Thread Ludovic Courtès
宋文武  skribis:

> * gnu/packages/gtk.scm (gtk+)[outputs]: New field.
> ---
>  gnu/packages/gtk.scm | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
> index 21365b9..5c42053 100644
> --- a/gnu/packages/gtk.scm
> +++ b/gnu/packages/gtk.scm
> @@ -624,6 +624,7 @@ application suites.")
>   (base32
>"157nh9gg0p2avw765hrnkvr8lsh2w811397yxgjv6q5j4fzz6d1q"))
>  (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
> +   (outputs '("out" "bin" "doc"))

I suppose the intent was to reduce the closure size; do you have
figures?  I like to put them as a comment next to the ‘outputs’ field.

Thanks!

Ludo’.



Re: guix pull avoidance

2016-08-29 Thread Ludovic Courtès
Vincent Legoll  skribis:

> Hello,
>
>> How's the following totally untested, probably buggy patch ?
>
> After painful testing (I have to remove the .config/guix/latest symlink
> each time, make it point back to ~/guix_git with my modifications, and
> it recompiles a whole bunch of scm files...)
>
> Any idea how to improve that ?
>
>> it's in RFC, to show the intended effects...
>
> I fixed a few silly mistakes...
>
>> What's inside:
>>
>> - create a symlink /gnu/store/latest pointing to the last installed
>> /gnu/store/*-guix-latest
>
> This is failing with :
>
> guix pull: error: symlink: Read-only file system: "/gnu/store/latest.new"

/gnu/store is read-only, except for guix-daemon, so ‘guix pull’ cannot
write to it.

> * I don't think I fully understand that, as the "->" in the mlet* for
> instance, I
> couldn't find explanations in guile's refman nor guix's...

  (mlet %store-monad ((x -> foo)) (bar))

is equivalent to:

  (let ((x foo)) (bar))

Ludo’.



Re: [PATCH 1/2] daemon: Fix '--version'.

2016-08-29 Thread Ludovic Courtès
Hi!

Alex Vong  skribis:

> This one and the next patch fix '--version' of guix-daemon and
> guix-register. Currently, they are not working, which is the reason why
> help2man gives error when building from source.

How are they not working exactly?  :-)

It definitely works for me:

--8<---cut here---start->8---
$ ./guix-daemon --version
guix-daemon (GNU Guix) 0.11.0
$ ./guix-register --version
guix-register (GNU Guix) 0.11.0
--8<---cut here---end--->8---

Ludo’.



Re: Store on separate partition

2016-08-29 Thread Ludovic Courtès
Hello,

Alex Kost  skribis:

> Carlos Sánchez de La Lama (2016-08-24 10:06 +0300) wrote:
>
>> Hi all,
>>
>> my (not very big) root partition is almost full, even after
>> garbage-collecting. I am trying to move the store to a separate
>> partition, but this is problematic as you need the store at boot time
>> for the system utilities (and to mount partitions, actually).
>>
>> Is there a known way to achieve this?
>
> I tried to do it recently but failed.  My understanding is that it's
> impossible, but I may be wrong.

It would be interesting to fix it.  In theory there’s no reason why it
shouldn’t work (you need to mark the /gnu/store file system as
‘needed-for-boot?’.)

If you or Carlos could try it and report details to bug-g...@gnu.org, we
could start from there.

Thanks!

Ludo’.



[PATCH] gnu: Add u-boot.

2016-08-29 Thread David Craven
From: Danny Milosavljevic 

* gnu/packages/u-boot.scm (u-boot, make-u-boot-package,
  u-boot-vexpress_ca9x4, u-boot-malta armhf-linux-uboot,
  mips64el-linux-uboot): New variables.

Co-authored-by: David Craven 
---
 gnu/packages/u-boot.scm | 83 -
 1 file changed, 82 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/u-boot.scm b/gnu/packages/u-boot.scm
index e9376a4..fd69bc1 100644
--- a/gnu/packages/u-boot.scm
+++ b/gnu/packages/u-boot.scm
@@ -22,8 +22,12 @@
   #:use-module (guix download)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages)
+  #:use-module ((gnu packages algebra) #:select (bc))
   #:use-module (gnu packages bison)
-  #:use-module (gnu packages flex))
+  #:use-module (gnu packages cross-base)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages python))
 
 (define-public dtc
   (package
@@ -58,3 +62,80 @@
 (description "dtc compiles Device Tree Source Files to Device Tree Binary 
Files.
 These are hardware (board) description files (used by Linux and BSD).")
 (license license:gpl2+)))
+
+(define u-boot
+  (package
+(name "u-boot")
+(version "2016.07")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"ftp://ftp.denx.de/pub/u-boot/";
+"u-boot-" version ".tar.bz2"))
+  (sha256
+   (base32
+"0lqj4ckmfqiap8mc6z2d5albs3g2h5mzccbn60hsgxhabhibfkwp"
+(native-inputs
+ `(("bc" ,bc)
+   ("dtc" ,dtc)
+   ("python-2" ,python-2)))
+(build-system  gnu-build-system)
+(home-page "http://www.denx.de/wiki/U-Boot/";)
+(synopsis "ARM Universal Bootloader")
+(description "U-Boot is an universal bootloader mostly used for ARM boards.
+It also initializes the boards (RAM etc).")
+(license license:gpl2+)))
+
+(define (make-u-boot-package board triplet xgcc)
+  (package
+(inherit u-boot)
+(name (string-append "u-boot-" (string-downcase board)))
+(native-inputs
+ `(("cross-gcc" ,xgcc)
+   ("cross-binutils" ,(cross-binutils triplet))
+   ,@(package-native-inputs u-boot)))
+(arguments
+ `(#:test-target "test"
+   #:make-flags
+   (list "HOSTCC=gcc" (string-append "CROSS_COMPILE=" ,triplet "-"))
+   #:phases
+   (modify-phases %standard-phases
+ (replace 'configure
+   (lambda* (#:key outputs make-flags #:allow-other-keys)
+ (let ((configname (string-append ,board "_defconfig")))
+   (if (file-exists? (string-append "configs/" configname))
+   (zero? (apply system* "make" `(,@make-flags ,configname)))
+   (begin
+ (display "Invalid boardname. Valid boardnames would have 
been:")
+ (newline)
+ (system* "ls" "-1" "configs")
+ #f)
+ (replace 'install
+   (lambda* (#:key outputs make-flags #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+(libexec (string-append out "/libexec"))
+(uboot-files (find-files "." ".*\\.(bin|efi)$")))
+   (mkdir-p libexec)
+   (for-each
+(lambda (file-path)
+  (let ((target-file-path (string-append libexec "/" 
file-path)))
+(mkdir-p (dirname target-file-path))
+(copy-file file-path target-file-path)))
+uboot-files)
+
+(define-public u-boot-vexpress_ca9x4
+  (make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf" xgcc-armhf))
+
+(define-public u-boot-malta
+  (make-u-boot-package "malta" "mips64el-linux-gnuabi64" xgcc-mips64el))
+
+(define-public armhf-linux-uboot
+  u-boot-vexpress_ca9x4)
+
+(define-public mips64el-linux-uboot
+  u-boot-malta)
+
+;; Something should:
+;; - create extlinux.conf and put it on the first bootable partition
+;;   (the one with the Active flag)
+;; - install the u-boot bootloader
-- 
2.9.0



Re: Display diffs between generations.

2016-08-29 Thread Ludovic Courtès
Hi Roel,

I’ve just tried the patch and I think it’s awesome!  I’ve also always
been dissatisfied with what ‘--list-generations’ provides—it’s
inconvenient as soon as you have more than a handful packages.

Perhaps we could add an optional argument to --list-generations where:

  --list-generations

would be equivalent to:

  --list-generations=diff

and:

  --list-generations=full

would restore the previous behavior.  It doesn’t cost much to do that.

WDYT?

I have only minor stylistic comments:

Roel Janssen  skribis:

> +(define (display-profile-content-diff profile number)

Or just ‘display-profile-diff’?

> +  "Display the changed packages in PROFILE with generation specified by 
> NUMBER."

“… compared to generation NUMBER”?

> +  (define (equal-entry? first second)
> +(string= (manifest-entry-item first)
> + (manifest-entry-item second)))
> +
> +  (define* (display-entries entries #:optional (prefix " "))
> +(for-each
> + (match-lambda
> +   (($  name version output location _)
> +(format #t "  ~a ~a\t~a\t~a\t~a~%"
> +prefix name version output location)))
> + entries))

In general, I find it clearer to define the singular form and inline the
‘for-each’:

  (define display-entry
(match-lambda …))

  …

  (for-each display-entry entries)

Otherwise LGTM!

Thank you for addressing this!

Ludo’.



Re: [PATCH] gnu: Add libnfsidmap

2016-08-29 Thread Ludovic Courtès
Hi John!

John Darrington  skribis:

> * gnu/packages/linux.scm (libnfsidmap): New variable.

[...]

> +(synopsis
> + "A library for mapping between names and ids; Mainly intended for 
> NFSv4")

Rather something like “NFSv4 support library for name/ID mapping”?

> +(description "Libnfsidmap is a library holding mulitiple methods of
> +mapping names to ids and visa versa, mainly for NFSv4.  It provides an
> +extensible array of mapping functions, currently consisting of two choices;

Should be colon instead of semicolon.

> +the default nsswitch and the experimental umich_ldap.")
   ^ ^
Probably @code here.

> +(license (license:non-copyleft "file://COPYING"
> +   "See COPYING in the distribution."

OK with these changes, thank you!

Ludo’.



[PATCH] gnu: Add telepathy-idle.

2016-08-29 Thread Kei Kebreau

Seeing if Polari will build on Guix. This is a dependent package.

From 0cf2fce4c9b89f8258e2a2240bfecc5b3abc875c Mon Sep 17 00:00:00 2001
From: Kei Kebreau 
Date: Mon, 29 Aug 2016 12:42:51 -0400
Subject: [PATCH] gnu: Add telepathy-idle.

* gnu/packages/freedesktop.scm (telepathy-idle): New variable.
---
 gnu/packages/freedesktop.scm | 29 +
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 67f1e1a..ac98769 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2015 Ricardo Wurmus 
 ;;; Copyright © 2015 David Hashe 
 ;;; Copyright © 2016 Efraim Flashner 
+;;; Copyright © 2016 Kei Kebreau 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -618,6 +619,34 @@ received by the Telepathy framework.  It features 
pluggable backends to log
 different sorts of messages in different formats.")
 (license license:lgpl2.1+)))
 
+(define-public telepathy-idle
+  (package
+(name "telepathy-idle")
+(version "0.2.0")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "https://telepathy.freedesktop.org/releases/";
+  name "/" name "-" version ".tar.bz2"))
+  (sha256
+   (base32
+"1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh"
+(build-system gnu-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)))
+(inputs
+ `(("xsltproc" ,libxslt)
+   ("python" ,python-2)
+   ("python-dbus" ,python2-dbus)))
+(propagated-inputs
+ `(("telepathy-glib" ,telepathy-glib)))
+(home-page "http://telepathy.freedesktop.org/";)
+(synopsis "Telepathy IRC connection manager")
+(description
+ "Idle is an IRC connection manager for the Telepathy framework.  This
+package enables usage of IRC channels and private messages in Telepathy instant
+messaging clients such as Empathy, GNOME Shell or KDE Telepathy.")
+(license (list license:lgpl2.1 license:lgpl2.1+
+
 (define-public colord-gtk
   (package
 (name "colord-gtk")
-- 
2.9.3



signature.asc
Description: PGP signature


Re: [PATCH 3/4] gnu: Add German Aspell dictionary.

2016-08-29 Thread Ludovic Courtès
Alex Kost  skribis:

> John Darrington (2016-08-28 15:41 +0300) wrote:
>
>> On Sun, Aug 28, 2016 at 12:20:45PM +0300, Efraim Flashner wrote:
>>  > +(define-public aspell-dict-de
>>  > +  (aspell-dictionary "de" "German"
>>  > + #:version "20030222-1"
>>  > + #:sha256
>>  > + (base32
>>  > +  
>> "01p92qj66cqb346gk7hjfynaap5sbcn85xz07kjfdq623ghr8v5s")))
>>  don't forget your copyright line. Otherwise looks good.
>>
>> I didn't forget.  But I don't consider these 6 lines to be in any respect
>> novel, creative or original.  The FSF guidelines for what is regarded as
>> "legally significant" for copyright purposes mentions the limit of 15 lines.
>>
>> In fact, I challenge anyone to offer a definition of aspell-dict-de which
>> works in Guix AND satisfies our rather strict coding style, and does not
>> differ from the above, except in whitespace.
>>
>> In other words, there is nothing novel or creative in what I have written.
>> Thus, is would be dishonest (perhaps illegal?) for me to claim copyright on
>> this work.
>
> I think this patch deserves it.  My understanding is we just don't have
> a policy on adding copyright lines: some people add a copyright line
> even for a simple package update.

John is right; simple package updates are not legally significant
either.  But then I think “too many” copyright lines is better than not
enough, and it’s not worth bothering.

Ludo’.




Re: Guix with U-Boot

2016-08-29 Thread David Craven
So I think that dtc and uboot are good now, I'll give it a few days
before merging...

I'm getting an Unbound variable:  error :/

Here's my bootloader configuration. Any suggestions? =)

  (bootloader (u-boot-configuration
   (board "vexpress_ca9x4")
   (device "/dev/sdX")
   (u-boot armhf-linux-uboot)))

Thank you,
David



Re: [PATCH 4/4] gnu: libtirpc: Remove the --disable-gssapi configure flag.

2016-08-29 Thread Ludovic Courtès
John Darrington  skribis:

> On Sun, Aug 28, 2016 at 12:43:00PM +0300, Efraim Flashner wrote:
>  On Sat, Aug 27, 2016 at 08:19:39PM +0200, John Darrington wrote:
>  > From: John Darrington 
>  > 
>  > * gnu/packages/onc-rpc.scm (libtirpc)[arguments]: Remove the 
> --disable-gssapi
>  > configure flag.
>  > [inputs]: Add mit-krb5
>  > ---
>  >  gnu/packages/onc-rpc.scm | 7 +++
>  >  1 file changed, 3 insertions(+), 4 deletions(-)
>  > 
>  > diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm
>  > index d9b2f9d..d5858e8 100644
>  > --- a/gnu/packages/onc-rpc.scm
>  > +++ b/gnu/packages/onc-rpc.scm
>  > @@ -20,6 +20,7 @@
>  >#:use-module (guix licenses)
>  >#:use-module (guix packages)
>  >#:use-module (guix download)
>  > +  #:use-module (gnu packages mit-krb5)
>  >#:use-module (guix build-system gnu))
>  >  
>  >  (define-public libtirpc
>  > @@ -36,16 +37,14 @@
>  >  
> "18a337wa4amf0k21wnimp3yzs5l3cxqndz4x3x8bm993zhfy5hs5"
>  >  (build-system gnu-build-system)
>  >  (arguments
>  > - '(;; Doesn't work with GNU GSS.
>  > -   #:configure-flags '("--disable-gssapi")
>  > -
>  > -   #:phases (alist-cons-after
>  > + '(#:phases (alist-cons-after
>  >   'unpack 'remote-dangling-symlink
>  >   (lambda _
>  > ;; Remote the dangling symlinks since it breaks the
>  > ;; 'patch-source-shebangs' file tree traversal.
>  > (delete-file "INSTALL"))
>  >   %standard-phases)))
>  > +(inputs `(("mit-krb5" ,mit-krb5)))
>  >  (home-page "http://sourceforge.net/projects/libtirpc/";)
>  >  (synopsis "Transport-independent Sun/ONC RPC implementation")
>  >  (description
>  > -- 
>  > 2.1.4
>  > 
>  
>  Has the issue with GNU GSS been fixed? Also, this would be a good time
>  to switch to modify-phases while you're already touching the package.
>
> I'm not aware of any issue with GNU GSS which needs to be fixed.  It is not
> an input to this package.  I don't think there is any connection.

It’s preferable to use GNU GSS rather than mit-krb5 if that’s possible,
which maybe it isn’t.

> I'll have a look to see if modify-phases makes things simpler.

Regardless, the patch LGTM.

Thanks,
Ludo’.



Re: [PATCH] gnu: Add dtc.

2016-08-29 Thread Danny Milosavljevic
On Mon, 29 Aug 2016 16:53:10 +0200
David Craven  wrote:

> I made some stylistic changes, updated the license, updated to 1.4.1,
> removed the patches (checked the arch package and the nixos package,
> both don't patch dtc)
> 
> I forgot to add u-boot.scm to local.mk...
> 
> Danny, WDYT? Is it an improvement?

Back then, I cut it down to two patches only: one to build the documentation 
(just nice to have) and one to add "fdt_first_subnode" and "fdt_next_subnode" 
to the exports so you can actually traverse device trees yourself. That's 
necessary because they use a version script that defaults everything to local 
(exports nothing but their listed symbols).

While I almost always look up documentation online, the latter patch is kinda 
important. Debian patches it still.

So I'd include these two patches only. I'm not sure why they don't make a new 
release with this fix.

The name "device-tree-compiler" was also from Debian - they renamed it from 
"dtc" due to naming conflict. There's also a dtc bundled with the Linux kernel. 
So I'm fine with either name.



Re: Guix with U-Boot

2016-08-29 Thread Danny Milosavljevic
On Mon, 29 Aug 2016 18:51:45 +0200
David Craven  wrote:

> So I think that dtc and uboot are good now, I'll give it a few days
> before merging...
> 
> I'm getting an Unbound variable:  error :/
> 
> Here's my bootloader configuration. Any suggestions? =)
> 
>   (bootloader (u-boot-configuration
>(board "vexpress_ca9x4")
>(device "/dev/sdX")
>(u-boot armhf-linux-uboot)))

(use-modules ...
 (gnu system u-boot))
 ^^^ Add this




Re: Guix with U-Boot

2016-08-29 Thread Danny Milosavljevic
On Mon, 29 Aug 2016 18:51:45 +0200
David Craven  wrote:

> So I think that dtc and uboot are good now, I'll give it a few days
> before merging...
> 
> I'm getting an Unbound variable:  error :/
> 
> Here's my bootloader configuration. Any suggestions? =)
> 
>   (bootloader (u-boot-configuration
>(board "vexpress_ca9x4")
>(device "/dev/sdX")
>(u-boot armhf-linux-uboot)))
> 
> Thank you,
> David

Try the attached gnu/system.scm . I also attached a patch so you could apply it 
to most other versions instead if you want to.
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès 
;;; Copyright © 2015 Mark H Weaver 
;;; Copyright © 2015, 2016 Alex Kost 
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (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 system)
  #:use-module (guix store)
  #:use-module (guix monads)
  #:use-module (guix gexp)
  #:use-module (guix records)
  #:use-module (guix packages)
  #:use-module (guix derivations)
  #:use-module (guix profiles)
  #:use-module (guix ui)
  #:use-module (gnu packages base)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages guile)
  #:use-module (gnu packages admin)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages pciutils)
  #:use-module (gnu packages package-management)
  #:use-module (gnu packages less)
  #:use-module (gnu packages zile)
  #:use-module (gnu packages nano)
  #:use-module (gnu packages lsof)
  #:use-module (gnu packages gawk)
  #:use-module (gnu packages man)
  #:use-module (gnu packages texinfo)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages firmware)
  #:use-module (gnu services)
  #:use-module (gnu services shepherd)
  #:use-module (gnu services base)
  #:use-module (gnu system grub)
  #:use-module (gnu system u-boot)
  #:use-module (gnu system shadow)
  #:use-module (gnu system nss)
  #:use-module (gnu system locale)
  #:use-module (gnu system pam)
  #:use-module (gnu system linux-initrd)
  #:use-module (gnu system file-systems)
  #:use-module (gnu system mapped-devices)
  #:use-module (ice-9 match)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-26)
  #:use-module (srfi srfi-34)
  #:use-module (srfi srfi-35)
  #:export (operating-system
operating-system?

operating-system-bootloader
operating-system-services
operating-system-user-services
operating-system-packages
operating-system-host-name
operating-system-hosts-file
operating-system-kernel
operating-system-kernel-arguments
operating-system-initrd
operating-system-users
operating-system-groups
operating-system-issue
operating-system-timezone
operating-system-locale
operating-system-locale-definitions
operating-system-locale-libcs
operating-system-mapped-devices
operating-system-file-systems
operating-system-store-file-system
operating-system-user-mapped-devices
operating-system-boot-mapped-devices
operating-system-activation-script
operating-system-user-accounts
operating-system-shepherd-service-names

operating-system-derivation
operating-system-profile
operating-system-bootloader-configuration-file
operating-system-etc-directory
operating-system-locale-directory
operating-system-boot-script

bootloader-configuration-device

boot-parameters
boot-parameters?
boot-parameters-label
boot-parameters-root-device
boot-parameters-kernel
boot-parameters-kernel-arguments
read-boot-parameters

local-host-aliases
%setuid-programs
%base-packages
%base-firmware))

;;; Commentary:
;;;
;;; This module supports whole-system configuration.
;;;
;;; Code:

;; System-wide configuration.
;; TODO: Add per-field docstrings/stexi.
(define-record-type*  operating-system
  make-operating-system
  operating-system?
  (kernel operating-system-kernel ; package
  (default linux-libre))
  (kernel-arguments operating-system-ker

Re: Guix with U-Boot

2016-08-29 Thread Danny Milosavljevic
> >   (bootloader (u-boot-configuration
> >(board "vexpress_ca9x4")
> >(device "/dev/sdX")
> >(u-boot armhf-linux-uboot)))  

Note: It should infer the correct u-boot to use on its own - at least that's 
the intention with the whole make-u-boot-package thing.



Re: Guix with U-Boot

2016-08-29 Thread Danny Milosavljevic
On Mon, 29 Aug 2016 19:52:23 +0200
Danny Milosavljevic  wrote:

> > >   (bootloader (u-boot-configuration
> > >(board "vexpress_ca9x4")
> > >(device "/dev/sdX")
> > >(u-boot armhf-linux-uboot)))
> 
> Note: It should infer the correct u-boot to use on its own - at least that's 
> the intention with the whole make-u-boot-package thing.

Aaaand... this part is not implemented yet because I can't find in which 
package gnu/build/install.scm's install-grub finds the executable 
"grub-install" that it invokes (and how it finds it at all O_o).



Re: Guix with U-Boot

2016-08-29 Thread Danny Milosavljevic
If I forgot any other things, see my working copy 
http://www.scratchpost.org/software/Guix/guix.tar.gz - warning: there be 
dragons.

The existing files that I touched for U-Boot are:

./gnu/build/vm.scm ; initialize-hard-disk has a key #:grub.cfg
./gnu/build/install.scm ; actual invocation of grub-install is here
./gnu/system/vm.scm ; qemu-image has a key #:grub-configuration; source file 
hardcodes grub package (?)
./gnu/system/install.scm ; references grub package "mostly so xrefs to its 
manual work"
./gnu/system.scm ; needs to be adapted
./guix/scripts/system.scm ; install-grub* needs to be generalized
./gnu.scm ; %public-modules grub for grub-configuration

Probably not:

./tests/system.scm ; harmless, just uses grub-configuration
./build-aux/hydra/demo-os.scm ; harmless, just uses grub-configuration

And the new files are called u-boot*

I also did this - although usually I'm against magically appearing symbols:

diff --git a/gnu.scm b/gnu.scm
index 932e4cd..9207e38 100644
--- a/gnu.scm
+++ b/gnu.scm
@@ -35,6 +35,7 @@
 (gnu system mapped-devices)
 (gnu system file-systems)
 (gnu system grub) ; 'grub-configuration'
+(gnu system u-boot)   ; 'u-boot-configuration'
 (gnu system pam)
 (gnu system shadow)   ; 'user-account'
 (gnu system linux-initrd)




Re: Guix with U-Boot

2016-08-29 Thread David Craven
> Note: It should infer the correct u-boot to use on its own - at least that's 
> the intention with the whole make-u-boot-package thing.

Did you see the updated u-boot patch? It includes support for
cross-compilation, so make-u-boot-package takes a xgcc package and a
target triplet as arguments. So it probably broke the inference.



Re: [PATCH] gnu: Add u-boot.

2016-08-29 Thread Danny Milosavljevic
> +(define (make-u-boot-package board triplet xgcc)
...
> +   (begin
> + (display "Invalid boardname. Valid boardnames would 
> have been:")
> + (newline)
> + (system* "ls" "-1" "configs")
> + #f)

I've improved the error message if the board name is unknown:

   #:phases
(modify-phases %standard-phases
 (replace
  'configure
   (lambda* (#:key outputs make-flags #:allow-other-keys)
 (let ((configname (string-append ,board "_defconfig")))
   (if (zero? (system* "ls" (string-append "configs/" configname)))
  (zero? (apply system* "make" `(,@make-flags ,configname)))
  (begin
(use-modules (ice-9 match) (ice-9 format))
(display "Invalid boardname. Valid boardnames would have 
been:")
(newline)
(let ((dir (opendir "configs")))
  (do ((filename (readdir dir) (readdir dir)))
  ((eof-object? filename))
(if (string-suffix? "_defconfig" filename)
  (format #t
  "- ~A\n"
  (string-drop-right filename
 (string-length 
"_defconfig")
  (closedir dir))
#f)
 (replace 'install
   (lambda* (#:key outputs make-flags #:allow-other-keys)
 (let ((out (string-append (assoc-ref outputs "out") "/libexec")))
   (mkdir-p out)
   (for-each (lambda (name)
   (let ((outname (string-append out "/" name)))
 (mkdir-p (dirname outname))
 (copy-file name outname)))
 (find-files "." ".*\\.(bin|efi)$"))



Re: [PATCH] gnu: Add u-boot.

2016-08-29 Thread Danny Milosavljevic
On Mon, 29 Aug 2016 20:27:52 +0200
Danny Milosavljevic  wrote:

>  (find-files "." ".*\\.(bin|efi)$"))

Also in order to support Novena it should be 

  (find-files "." ".*\\.(bin|efi|spl)$"))



Re: Guix with U-Boot

2016-08-29 Thread David Craven
FYI your editor is using dos style /n/r newlines. Don't know if that
is your intention. Are you on windows? O.O xD

On Mon, Aug 29, 2016 at 8:20 PM, David Craven  wrote:
>> Note: It should infer the correct u-boot to use on its own - at least that's 
>> the intention with the whole make-u-boot-package thing.
>
> Did you see the updated u-boot patch? It includes support for
> cross-compilation, so make-u-boot-package takes a xgcc package and a
> target triplet as arguments. So it probably broke the inference.



How does install-grub work?

2016-08-29 Thread Danny Milosavljevic
On Mon, 29 Aug 2016 20:20:30 +0200
David Craven  wrote:

> > Note: It should infer the correct u-boot to use on its own - at least 
> > that's the intention with the whole make-u-boot-package thing.  
> 
> Did you see the updated u-boot patch? It includes support for
> cross-compilation,

Nice!

> so make-u-boot-package takes a xgcc package and a
> target triplet as arguments. So it probably broke the inference.

No, I think I didn't make it work yet.

I've modeled along the lines of what was already there for Grub. But I've got 
no idea where gnu/build/install.scm's install-grub finds "grub-install" - so 
the u-boot part doesn't work either since I don't know where to put the package 
reference in the first place (or how in the world it works for Grub to begin 
with).

Also, there's a few mysterious things with install-grub.

For example the documentation in the function header there says

  "Install Grub with GRUB.CFG on DEVICE, which is assumed to be
mounted on MOUNT-POINT."

I really doubt that it actually does what it says since usually grub is 
installed on the drive MBR and not inside a partition. And MOUNT-POINT is a 
mounted filesystem on a partition, right? So the whole drive is certainly not 
mounted at MOUNT-POINT.

MOUNT-POINT originally comes from guix/scripts/system.scm - process-action. And 
that is called by process-command. And that is called by guix-system which is 
used when invoking "guix system" "reconfigure". But I've never specified a 
mountpoint when invoking that...



Re: Guix with U-Boot

2016-08-29 Thread Danny Milosavljevic
On Mon, 29 Aug 2016 20:56:53 +0200
David Craven  wrote:

> FYI your editor is using dos style /n/r newlines. Don't know if that
> is your intention. Are you on windows? O.O xD

Thanks for the heads-up!

No, it's nano on GuixSD. (Guile emacs on Guix broke a long time ago and while 
there was a workaround - that broke by now, too)



Re: Display diffs between generations.

2016-08-29 Thread Roel Janssen

Ludovic Courtès writes:

> Hi Roel,
>
> I’ve just tried the patch and I think it’s awesome!  I’ve also always
> been dissatisfied with what ‘--list-generations’ provides—it’s
> inconvenient as soon as you have more than a handful packages.
>
> Perhaps we could add an optional argument to --list-generations where:
>
>   --list-generations
>
> would be equivalent to:
>
>   --list-generations=diff
>
> and:
>
>   --list-generations=full
>
> would restore the previous behavior.  It doesn’t cost much to do that.
>
> WDYT?

That would be great.  Currently, the --list-generations already takes a
generation number.  How would we deal with the situation where we want
to view the differences between generation 2 and 3 only?

  --list-generations=3,diff

That doesn't look appealing to me.

Maybe we could do this instead?:

  --list-generations-diff

> I have only minor stylistic comments:
>
> Roel Janssen  skribis:
>
>> +(define (display-profile-content-diff profile number)
>
> Or just ‘display-profile-diff’?
>
>> +  "Display the changed packages in PROFILE with generation specified by 
>> NUMBER."
>
> “… compared to generation NUMBER”?
>
>> +  (define (equal-entry? first second)
>> +(string= (manifest-entry-item first)
>> + (manifest-entry-item second)))
>> +
>> +  (define* (display-entries entries #:optional (prefix " "))
>> +(for-each
>> + (match-lambda
>> +   (($  name version output location _)
>> +(format #t "  ~a ~a\t~a\t~a\t~a~%"
>> +prefix name version output location)))
>> + entries))
>
> In general, I find it clearer to define the singular form and inline the
> ‘for-each’:
>
>   (define display-entry
> (match-lambda …))
>
>   …
>
>   (for-each display-entry entries)
>
> Otherwise LGTM!

Right.  That does look clearer.  I refactored the function further to
the following:

--- BEGIN ---
(define (display-profile-content-diff profile number)
  "Display the changed packages in PROFILE compared to generation NUMBER."

  (define (equal-entry? first second)
(string= (manifest-entry-item first)
 (manifest-entry-item second)))

  (define display-entry
(match-lambda
   (($  name version output location _)
(format #f "~a\t~a\t~a\t~a~%" name version output location

  (define (display-entries entries prefix)
(for-each (lambda (entry)
(format #t "  ~a ~a" prefix (display-entry entry))) entries))

  (define (list-entries input)
(manifest-entries (profile-manifest (generation-file-name profile input

  (define (display-diff profile older newer)
(if (= older 0)
(display-profile-content profile newer)
(begin
  ;; List newly installed packages.
  (display-entries (lset-difference equal-entry?
(list-entries newer)
(list-entries older)) "+")
  ;; List newly removed packages.
  (display-entries (lset-difference equal-entry?
(list-entries older)
(list-entries newer)) "-"

  (display-diff profile (previous-generation-number profile number) number))
--- END ---

The thing with `display-entries' is because I cannot pass two arguments
in the function used in the `for-each', and the prefix for `installed'
or `removed' differs, I cannot remove it that easily :-).

Kind regards,
Roel Janssen



Re: [PATCH 4/4] gnu: libtirpc: Remove the --disable-gssapi configure flag.

2016-08-29 Thread John Darrington
On Mon, Aug 29, 2016 at 06:52:41PM +0200, Ludovic Court??s wrote:
 John Darrington  skribis:
 
 > On Sun, Aug 28, 2016 at 12:43:00PM +0300, Efraim Flashner wrote:
 >  On Sat, Aug 27, 2016 at 08:19:39PM +0200, John Darrington wrote:
 >  > From: John Darrington 
 >  > 
 >  > * gnu/packages/onc-rpc.scm (libtirpc)[arguments]: Remove the 
--disable-gssapi
 >  > configure flag.
 >  > [inputs]: Add mit-krb5
 >  > ---
 >  >  gnu/packages/onc-rpc.scm | 7 +++
 >  >  1 file changed, 3 insertions(+), 4 deletions(-)
 >  > 
 >  > diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm
 >  > index d9b2f9d..d5858e8 100644
 >  > --- a/gnu/packages/onc-rpc.scm
 >  > +++ b/gnu/packages/onc-rpc.scm
 >  > @@ -20,6 +20,7 @@
 >  >#:use-module (guix licenses)
 >  >#:use-module (guix packages)
 >  >#:use-module (guix download)
 >  > +  #:use-module (gnu packages mit-krb5)
 >  >#:use-module (guix build-system gnu))
 >  >  
 >  >  (define-public libtirpc
 >  > @@ -36,16 +37,14 @@
 >  >  
"18a337wa4amf0k21wnimp3yzs5l3cxqndz4x3x8bm993zhfy5hs5"
 >  >  (build-system gnu-build-system)
 >  >  (arguments
 >  > - '(;; Doesn't work with GNU GSS.
 >  > -   #:configure-flags '("--disable-gssapi")
 >  > -
 >  > -   #:phases (alist-cons-after
 >  > + '(#:phases (alist-cons-after
 >  >   'unpack 'remote-dangling-symlink
 >  >   (lambda _
 >  > ;; Remote the dangling symlinks since it 
breaks the
 >  > ;; 'patch-source-shebangs' file tree 
traversal.
 >  > (delete-file "INSTALL"))
 >  >   %standard-phases)))
 >  > +(inputs `(("mit-krb5" ,mit-krb5)))
 >  >  (home-page "http://sourceforge.net/projects/libtirpc/";)
 >  >  (synopsis "Transport-independent Sun/ONC RPC implementation")
 >  >  (description
 >  > -- 
 >  > 2.1.4
 >  > 
 >  
 >  Has the issue with GNU GSS been fixed? Also, this would be a good 
time
 >  to switch to modify-phases while you're already touching the 
package.
 >
 > I'm not aware of any issue with GNU GSS which needs to be fixed.  It is 
not
 > an input to this package.  I don't think there is any connection.
 
 It???s preferable to use GNU GSS rather than mit-krb5 if that???s possible,
 which maybe it isn???t.

I don't think it is possible, for the simple reason that this is not what 
GSS is intended to do.  If however it transpires that GNU GSS does somehow
eventually do it, the  we can change it then.

-- 
Avoid eavesdropping.  Send strong encryted email.
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.



signature.asc
Description: Digital signature


[PATCH] gnu: Add bind

2016-08-29 Thread John Darrington
From: John Darrington 

* gnu/packages/networking.scm (bind): New variable.
---
 gnu/build/install.scm  |  6 +++-
 gnu/local.mk   |  1 -
 gnu/packages/crypto.scm| 40 ++
 gnu/packages/gnunet.scm|  4 +--
 gnu/packages/linux.scm | 40 +-
 .../patches/xf86-video-openchrome-glibc-2.20.patch | 15 
 gnu/packages/video.scm |  4 +--
 gnu/packages/xorg.scm  | 19 +-
 gnu/tests/base.scm | 36 +++
 guix/scripts/lint.scm  | 13 +++
 tests/guix-environment-container.sh|  2 +-
 tests/lint.scm | 16 -
 12 files changed, 162 insertions(+), 34 deletions(-)
 delete mode 100644 gnu/packages/patches/xf86-video-openchrome-glibc-2.20.patch

diff --git a/gnu/build/install.scm b/gnu/build/install.scm
index aebf38c..7431a09 100644
--- a/gnu/build/install.scm
+++ b/gnu/build/install.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015 Ludovic Courtès 
+;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -118,6 +118,10 @@ STORE."
 ("/var/guix/gcroots/booted-system" -> "/run/booted-system")
 ("/var/guix/gcroots/current-system" -> "/run/current-system")
 
+;; XXX: 'guix-register' creates this symlink with a wrong target, so
+;; create it upfront to be sure.
+("/var/guix/gcroots/profiles" -> "/var/guix/profiles")
+
 (directory "/bin")
 (directory "/tmp" 0 0 #o1777) ; sticky bit
 (directory "/var/tmp" 0 0 #o1777)
diff --git a/gnu/local.mk b/gnu/local.mk
index 98c8848..7ce8ad0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -857,7 +857,6 @@ dist_patch_DATA =   
\
   %D%/packages/patches/xf86-video-intel-glibc-2.20.patch   \
   %D%/packages/patches/xf86-video-mach64-glibc-2.20.patch  \
   %D%/packages/patches/xf86-video-nv-remove-mibstore.patch \
-  %D%/packages/patches/xf86-video-openchrome-glibc-2.20.patch  \
   %D%/packages/patches/xf86-video-tga-remove-mibstore.patch\
   %D%/packages/patches/xfce4-panel-plugins.patch   \
   %D%/packages/patches/xfce4-session-fix-xflock4.patch \
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index b982b61..73681b2 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -223,3 +223,43 @@ to provide security against off-line attacks, such as a 
drive falling into
 the wrong hands.")
 (license (list license:lgpl3+ ;encfs library
license:gpl3+  ;command-line tools
+
+(define-public keyutils
+  (package
+(name "keyutils")
+(version "1.5.9")
+(source
+ (origin
+   (method url-fetch)
+   (uri
+(string-append "https://people.redhat.com/dhowells/keyutils/keyutils-";
+   version ".tar.bz2"))
+   (sha256
+(base32
+ "1bl3w03ygxhc0hz69klfdlwqn33jvzxl1zfl2jmnb2v85iawb8jd"))
+   (modules '((guix build utils)))
+   ;; Create relative symbolic links instead of absolute ones to /lib/*
+   (snippet '(substitute* "Makefile" (("\\$\\(LNS\\) \\$\\(LIBDIR\\)/")
+  "$(LNS) ")
+(build-system gnu-build-system)
+(arguments
+ `(#:phases (modify-phases %standard-phases
+  (delete 'configure))  ; no configure script
+   #:make-flags (list "CC=gcc"
+  "RPATH=-Wl,-rpath,$(DESTDIR)$(LIBDIR)"
+  (string-append "DESTDIR="
+ (assoc-ref %outputs "out"))
+  "INCLUDEDIR=/include"
+  "LIBDIR=/lib"
+  "MANDIR=/share/man"
+  "SHAREDIR=/share/keyutils")
+   #:test-target "test"))
+(home-page "https://people.redhat.com/dhowells/keyutils/";)
+(synopsis "Linux key managament utilities")
+(description
+ "Keyutils is a set of utilities for managing the key retention facility in
+the Linux kernel, which can be used by file systems, block devices, and more to
+gain and retain the authorization and encryption keys required to perform
+secure operations. ")
+(license (list license:lgpl2.1+ ; the files keyutils.*
+   license:gpl2+; the rest
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index b08ba74..525cddc 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -126,14 +126,14 @@ tool to extract metadata from a file and print the 
results.")
 (define-public libmicrohttpd
   (package
(name "libmicrohttpd")

Re: [PATCH] gnu: service: Add git-service.

2016-08-29 Thread ng0
First try with added documentation.

>From d796e150183d15b8ce639051f202138970153a9e Mon Sep 17 00:00:00 2001
From: ng0 
Date: Fri, 8 Jul 2016 15:42:55 +
Subject: [PATCH] gnu: services: Add git-service.

* gnu/services/version-control.scm: New file, create it.
(git-service): New Procedures.
(git-service-type): New variable.
* doc/guix.texi: Add documentation.
---
 doc/guix.texi|  24 
 gnu/local.mk |   1 +
 gnu/services/version-control.scm | 116 +++
 3 files changed, 141 insertions(+)
 create mode 100644 gnu/services/version-control.scm

diff --git a/doc/guix.texi b/doc/guix.texi
index e25cf58..33fa4c6 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -7494,6 +7494,7 @@ declaration.
 * Database Services::   SQL databases.
 * Mail Services::   IMAP, POP3, SMTP, and all that.
 * Web Services::Web servers.
+* Version Control:: Git and others.
 * Various Services::Other services.
 @end menu
 
@@ -9910,6 +9911,29 @@ directories are created when the service is activated.
 
 @end deffn
 
+@node Version Control
+@subsubsection Version Control
+
+The @code{(gnu services version-control)} module provides the following services:
+
+@deffn {Scheme Procedure} git-service [git @var{git}] @
+   [base-path ``/var/git/repositories''] @
+   [port ``9418'']
+
+Return a service to run the @uref{https://git-scm.com, git} daemon version control
+daemon.
+The git daemon runs as the @code{git} unprivileged user.  It is started with
+the fixed parameters @code{--informative-errors} and @code{--syslog}.  You can
+pass the parameter @var{base-path}, which remaps all the pathrequests as
+relative to the given path.  If you run git daemon with
+@var{base-path /var/git/repositories} on example.com, then if you later try
+to pull @code{git://example.com/hello.git}, git daemon will interpret the path
+as /var/git/repositories/hello.git.
+Furthermore it takes the parameter @var{port} which defaults to 9418.
+Run @command{man git daemon} for information about the options.
+
+@end deffn
+
 @node Various Services
 @subsubsection Various Services
 
diff --git a/gnu/local.mk b/gnu/local.mk
index 7ce8ad0..3bedd97 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -390,6 +390,7 @@ GNU_SYSTEM_MODULES =\
   %D%/services/herd.scm\
   %D%/services/spice.scm\
   %D%/services/ssh.scm\
+  %D%/services/version-control.scm  \
   %D%/services/web.scm\
   %D%/services/xorg.scm\
 		\
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
new file mode 100644
index 000..f32a592
--- /dev/null
+++ b/gnu/services/version-control.scm
@@ -0,0 +1,116 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 ng0 
+;;;
+;;; 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 services version-control)
+  #:use-module (gnu services)
+  #:use-module (gnu services base)
+  #:use-module (gnu services shepherd)
+  #:use-module (gnu system shadow)
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages admin)
+  #:use-module (guix records)
+  #:use-module (guix gexp)
+  #:use-module (srfi srfi-1)
+  #:use-module (ice-9 match)
+  #:export (git-service
+git-service-type
+git-configuration
+git-configuration?
+git-configuration-git
+git-configuration-port
+git-configuration-base-path))
+
+;;; Commentary:
+;;;
+;;; Version Control related services.
+;;;
+;;; Code:
+
+
+;;;
+;;; git
+;;;
+
+(define-record-type*  git-configuration
+  make-git-configuration
+  git-configuration?
+  (git   git-configuration-git  ;package
+ (default git))
+  (base-path git-configuration-base-path) ;string
+  (port  git-configuration-port)) ;number
+
+(define (git-shepherd-service config)
+  "Return a  for git with CONFIG."
+  (define git (git-configuration-git config))
+
+  (define git-command
+#~(list
+   (string-append #$git "/bin/git") "daemon" "--syslog"
+   "--informative-errors"
+   (string-append "--port=" #$(number->string (git-configuration-port config)))
+   (string-append "--base-path=" #$(git-configuration-base-path config
+
+  (define requires
+'(networki

Re: [PATCH] gnu: Add bind

2016-08-29 Thread John Darrington
Sorry.  

Somehow this patch ended up with a whole lot of other stuff I didn't intend.

Forget it for now.  I'll send another patch for review when I've figured out
what happened.

J'

On Mon, Aug 29, 2016 at 09:56:53PM +0200, John Darrington wrote:
 From: John Darrington 
 
 * gnu/packages/networking.scm (bind): New variable.
 ---
  gnu/build/install.scm  |  6 +++-
  gnu/local.mk   |  1 -
  gnu/packages/crypto.scm| 40 
++
  gnu/packages/gnunet.scm|  4 +--
  gnu/packages/linux.scm | 40 
+-
  .../patches/xf86-video-openchrome-glibc-2.20.patch | 15 
  gnu/packages/video.scm |  4 +--
  gnu/packages/xorg.scm  | 19 +-
  gnu/tests/base.scm | 36 
+++
  guix/scripts/lint.scm  | 13 +++
  tests/guix-environment-container.sh|  2 +-
  tests/lint.scm | 16 -
  12 files changed, 162 insertions(+), 34 deletions(-)
  delete mode 100644 
gnu/packages/patches/xf86-video-openchrome-glibc-2.20.patch
 
 diff --git a/gnu/build/install.scm b/gnu/build/install.scm
 index aebf38c..7431a09 100644
 --- a/gnu/build/install.scm
 +++ b/gnu/build/install.scm
 @@ -1,5 +1,5 @@
  ;;; GNU Guix --- Functional package management for GNU
 -;;; Copyright ?? 2013, 2014, 2015 Ludovic Court??s 
 +;;; Copyright ?? 2013, 2014, 2015, 2016 Ludovic Court??s 
  ;;;
  ;;; This file is part of GNU Guix.
  ;;;
 @@ -118,6 +118,10 @@ STORE."
  ("/var/guix/gcroots/booted-system" -> "/run/booted-system")
  ("/var/guix/gcroots/current-system" -> "/run/current-system")
  
 +;; XXX: 'guix-register' creates this symlink with a wrong target, so
 +;; create it upfront to be sure.
 +("/var/guix/gcroots/profiles" -> "/var/guix/profiles")
 +
  (directory "/bin")
  (directory "/tmp" 0 0 #o1777) ; sticky bit
  (directory "/var/tmp" 0 0 #o1777)
 diff --git a/gnu/local.mk b/gnu/local.mk
 index 98c8848..7ce8ad0 100644
 --- a/gnu/local.mk
 +++ b/gnu/local.mk
 @@ -857,7 +857,6 @@ dist_patch_DATA =  
\
%D%/packages/patches/xf86-video-intel-glibc-2.20.patch  \
%D%/packages/patches/xf86-video-mach64-glibc-2.20.patch \
%D%/packages/patches/xf86-video-nv-remove-mibstore.patch\
 -  %D%/packages/patches/xf86-video-openchrome-glibc-2.20.patch \
%D%/packages/patches/xf86-video-tga-remove-mibstore.patch   \
%D%/packages/patches/xfce4-panel-plugins.patch  \
%D%/packages/patches/xfce4-session-fix-xflock4.patch\
 diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
 index b982b61..73681b2 100644
 --- a/gnu/packages/crypto.scm
 +++ b/gnu/packages/crypto.scm
 @@ -223,3 +223,43 @@ to provide security against off-line attacks, such as 
a drive falling into
  the wrong hands.")
  (license (list license:lgpl3+ ;encfs library
 license:gpl3+  ;command-line tools
 +
 +(define-public keyutils
 +  (package
 +(name "keyutils")
 +(version "1.5.9")
 +(source
 + (origin
 +   (method url-fetch)
 +   (uri
 +(string-append 
"https://people.redhat.com/dhowells/keyutils/keyutils-";
 +   version ".tar.bz2"))
 +   (sha256
 +(base32
 + "1bl3w03ygxhc0hz69klfdlwqn33jvzxl1zfl2jmnb2v85iawb8jd"))
 +   (modules '((guix build utils)))
 +   ;; Create relative symbolic links instead of absolute ones to 
/lib/*
 +   (snippet '(substitute* "Makefile" (("\\$\\(LNS\\) 
\\$\\(LIBDIR\\)/")
 +  "$(LNS) ")
 +(build-system gnu-build-system)
 +(arguments
 + `(#:phases (modify-phases %standard-phases
 +  (delete 'configure))  ; no configure script
 +   #:make-flags (list "CC=gcc"
 +  "RPATH=-Wl,-rpath,$(DESTDIR)$(LIBDIR)"
 +  (string-append "DESTDIR="
 + (assoc-ref %outputs "out"))
 +  "INCLUDEDIR=/include"
 +  "LIBDIR=/lib"
 +  "MANDIR=/share/man"
 +  "SHAREDIR=/share/keyutils")
 +   #:test-target "test"))
 +(home-page "https://people.redhat.com/dhowells/keyutils/";)
 +(synopsis "Linux key managamen

Re: How does install-grub work?

2016-08-29 Thread David Craven
I have some questions too... So for booting a vm we don't actually
need a boot loader, since it passes the kernel image through the
-kernel flag. I don't think it's relevant that grub is installed in
the MBR. So getting guix system vm --system=armhf-linux to boot
doesn't actually require uboot... It just needs to make sure that grub
isn't pulled in as a dependency (since there isn't a substitute for
grub on arm/mips).

@Danny: Did you write install-uboot.c? I don't have a clue what it's
doing =P I don't really know anything about filesystems or
bootloaders...



Re: How does install-grub work?

2016-08-29 Thread Danny Milosavljevic
On Mon, 29 Aug 2016 22:29:40 +0200
David Craven  wrote:

>So for booting a vm we don't actually need a boot loader, since it passes the 
>kernel image through the -kernel flag. 

Huh, that appears to be the case. Back when I used VMs the first time they 
simulated the entire PC, BIOS and all and there you would need the partition 
table, bootloader etc just as you would on a real PC. But it seems to have 
changed now...

> @Danny: Did you write install-uboot.c? I don't have a clue what it's
> doing =P

Yes, I wrote it. It makes sure it's safe to write to an unclaimed 
fixed-position section of a drive and then writes to it.

Essentially it does

$ dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8 
^^^^^^
depends on board   depends on board

but only after making sure that this doesn't clobber anything (payload data on 
parititons, the partition table etcetc).

It's supposed to be analogous to grub-install, just for u-boot.



Re: How does install-grub work?

2016-08-29 Thread David Craven
>>So for booting a vm we don't actually need a boot loader, since it passes the 
>>kernel image through the -kernel flag.
>
> Huh, that appears to be the case. Back when I used VMs the first time they 
> simulated the entire PC, BIOS and all and there you would need the partition 
> table, bootloader etc just as you would on a real PC. But it seems to have 
> changed now...

Does the u-boot bootloader routine have to do anything other than
generating the extlinux.conf file? That would be enough so that there
is an alternative to grub-install for the qemu use case and for actual
boards, isn't uboot usually written to flash instead of to a MBR?

> Yes, I wrote it. It makes sure it's safe to write to an unclaimed 
> fixed-position section of a drive and then writes to it.
>
> Essentially it does
>
> $ dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8
> ^^^^^^
> depends on board   depends on board
>
> but only after making sure that this doesn't clobber anything (payload data 
> on parititons, the partition table etcetc).
>
> It's supposed to be analogous to grub-install, just for u-boot.

Nice!



Re: How does install-grub work?

2016-08-29 Thread David Craven
> Does the u-boot bootloader routine have to do anything other than
> generating the extlinux.conf file? That would be enough so that there
> is an alternative to grub-install for the qemu use case and for actual
> boards, isn't uboot usually written to flash instead of to a MBR?

So I'd say the next steps are:

1. Pick out your changes that are related to renaming grub to
bootloader and add a shim for the uboot parts. That should be enough
to get vm's booting.

2. Add your extlinux.conf generation/install code.

3. We can still add an install uboot to MBR procedure if it's necessary.

This would break the changes down into easy to review patches and subgoals...



Re: How does install-grub work?

2016-08-29 Thread Danny Milosavljevic
On Mon, 29 Aug 2016 22:54:27 +0200
David Craven  wrote:

> for actual boards, isn't uboot usually written to flash instead of to a MBR?

That depends on the board - sometimes it's written to flash.

For Allwinner hardware, it's written to a fixed section (fixed sectors) on 
either a SD card or NAND flash or eMMC. It's not in the MBR but after it and 
before the first partition.

Many pieces of hardware have U-Boot as something like a BIOS - it's not meant 
to be updated. And if you do want to update it, you go to the U-Boot prompt and 
update it from within itself.

I think that's why the extlinux.conf exists in the first place - you just put 
it somewhere where the [potentially immutable forever] U-Boot can find it and 
it will pick it up (at least when the partition is marked Active).

Interestingly enough, the situation is similar with Libreboot and its 
integrated Grub. That's why I added comment in the source code that asks 
whether it makes sense to seperate the config storing part from the bootloader 
installation part - the latter can be unnecessary while the former can be very 
necessary at the same time.



Re: How does install-grub work?

2016-08-29 Thread Danny Milosavljevic
Hi,

On Mon, 29 Aug 2016 23:19:30 +0200
David Craven  wrote:

> So I'd say the next steps are:
> 
> 1. Pick out your changes that are related to renaming grub to
> bootloader and add a shim for the uboot parts. That should be enough
> to get vm's booting.

Yes. Note that Ludo said that it might make sense to separate the build side 
(gnu/build/install.scm and gnu/build/vm.sc) from the host side (other stuff) 
also for the patches.

> 2. Add your extlinux.conf generation/install code.

Yes. This one is the most important part.

On the other hand, Part 3 below is actually not that important even for actual 
ARM hardware. Usually U-Boot is there when you buy it anyway - usually there's 
no need to fiddle with it directly.

> 3. We can still add an install uboot to MBR procedure if it's necessary.

Sometimes MBR, sometimes random location in the middle of nowhere with a 
magical sector number.

There's still a "FIXME" in gnu/build/install.scm install-bootloader about how 
to detect on the build side which bootloader to use and then call either 
install-grub or install-u-boot. I don't know how to do that. I've asked before 
about whether it's (1) possible and (2) desireable to just compare the 
config-filename to "extlinux.conf" and hardcode u-boot then. But *which* u-boot 
package does it use? How would it know?

This is a very important part that is both missing and necessary - and I've not 
found an answer to that so far.

> This would break the changes down into easy to review patches and subgoals...

Yes, I agree that that would be good.



Re: How does install-grub work?

2016-08-29 Thread David Craven
>> 1. Pick out your changes that are related to renaming grub to
>> bootloader and add a shim for the uboot parts. That should be enough
>> to get vm's booting.

> Yes. Note that Ludo said that it might make sense to separate the build side 
> (gnu/build/install.scm and gnu/build/vm.sc) from the host side (other stuff) 
> also for the patches.

So do you want me to take a stab at it or do you want to do it? =)

For parts two and three I'd have to rely on you, since I don't have
access to hardware to actually test it...



Re: How does install-grub work?

2016-08-29 Thread Danny Milosavljevic
Before I forget it again - maybe it makes sense to always generate and install 
both the U-Boot and the Grub configuration file. While the bootloaders are 
[probably] mutually exclusive, I don't think that the config files are!



Re: How does install-grub work?

2016-08-29 Thread Danny Milosavljevic
On Tue, 30 Aug 2016 00:00:35 +0200
David Craven  wrote:

> >> 1. Pick out your changes that are related to renaming grub to
> >> bootloader and add a shim for the uboot parts. That should be enough
> >> to get vm's booting.  
> 
> > Yes. Note that Ludo said that it might make sense to separate the build 
> > side (gnu/build/install.scm and gnu/build/vm.sc) from the host side (other 
> > stuff) also for the patches.  
> 
> So do you want me to take a stab at it or do you want to do it? =)

If possible, it would be great if you took care about the first part. I've done 
all that I know how to do there and I think it should be mostly fine already. 
Also, most of the renaming should be straightforward anyway. Looking back, 
maybe I *shouldn't* have renamed anything - it's just cosmetic and makes the 
patch look scary :)

The functionally important parts are the build-side procedure (install-u-boot), 
the config data objects (u-boot-configuration) and the selection logic in 
gnu/system.scm (*bootloader-configuration-*). It's actually no big deal.

> For parts two and three I'd have to rely on you, since I don't have
> access to hardware to actually test it...

No problem. I have 3 ARM boards here that I can test it on. They are quite slow 
- so testing means ~ 3 days of waiting-for-it-to-finish-compiling. But I don't 
have to sit next to it and wait :)

I do think that the extlinux.conf generation is finished as well. I will test 
it, though.



Re: update khal

2016-08-29 Thread Leo Famulari
On Sun, Aug 28, 2016 at 11:32:48PM -0400, Troy Sankey wrote:
> Builds don't seem to be deterministic when I use --check.  Not sure where to
> start looking in order to fix that.

I use the diffoscope program to inspect the differences.

Currently, all of our Python 3 packages embed timestamps in the Python
bytecode [0], and our Sphinx also embeds timestamps in man pages [1].
So, you should at least see these differences.

[0]
https://bugs.gnu.org/22533

[1] I am trying to update the whole set of core Python packages on the
wip-python branch. This will fix the Sphinx problem. I took a little
time off from this, but I'm going to dive back in soon. Feel free to
jump in!

> From 2538d47347ea2ca04eb116e762e3bf4dec575d31 Mon Sep 17 00:00:00 2001
> From: Troy Sankey 
> Date: Sun, 14 Aug 2016 13:38:20 -0400
> Subject: [PATCH 1/3] gnu: Add python-freezegun.
> 
> * gnu/packages/python.scm (python-freezegun): New variable.
> (python2-freezegun): New variable.
 
> Subject: [PATCH 2/3] gnu: python-icalendar: Update to 3.10.
> 
> * gnu/packages/python.scm (python-icalendar): Update to 3.10.

> Subject: [PATCH 3/3] gnu: khal: Update to 0.8.3.
> 
> * gnu/packages/calendar.scm (khal): Update to 0.8.3.

Thanks, pushed as bc8273d0c!


signature.asc
Description: PGP signature


[PATCH] gnu: Add mtd-utils.

2016-08-29 Thread Danny Milosavljevic

* gnu/packages/linux.scm (mtd-utils): New variable.
---
 gnu/packages/linux.scm | 35 +++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 07fd6e5..7ab9b3c 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -32,6 +32,7 @@
 
 (define-module (gnu packages linux)
   #:use-module (gnu packages)
+  #:use-module (gnu packages acl)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages attr)
@@ -2898,3 +2899,37 @@ native Linux file system, and has been part of the Linux kernel since version
 ;; The files src/key_mod/ecryptfs_key_mod_{openssl,pkcs11_helper,tspi}.c
 ;; grant additional permission to link with OpenSSL.
 (license license:gpl2+)))
+
+(define-public mtd-utils
+  (package
+(name "mtd-utils")
+(version "1.5.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-"; version ".tar.bz2"))
+  (sha256
+   (base32
+"007lhsd8yb34l899r4m37whhzdw815cz4fnjbpnblfha524p7dax"))
+  (file-name (string-append "mtd-utils-" version
+(inputs
+ `(("acl" ,acl)
+   ("libuuid" ,util-linux)
+   ("lzo", lzo)
+   ("zlib" ,zlib)))
+(build-system gnu-build-system)
+(arguments
+ `(#:test-target "tests"
+   #:phases (modify-phases %standard-phases
+ (add-before 'build 'patch-installation-prefix
+   (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+   (substitute* '("common.mk")
+ (("PREFIX=/usr") (string-append "PREFIX=" out))
+ (delete 'configure
+(synopsis "MTD Flash Storage Utilities")
+(description
+ "@code{mtd-utils} provides utilities for testing, partitioning
+etc of flash storage.")
+(home-page "http://www.linux-mtd.infradead.org/";)
+(license (list license:gpl2 license:mpl1.1 license:bsd-3


Re: libtiff security update (multiple CVEs)

2016-08-29 Thread Leo Famulari
On Thu, Aug 25, 2016 at 06:29:19PM +0200, David Craven wrote:
> LGTM. I didn't look at the patches, but adding a libtiff/fixed package
> and using the replacement field in libtiff is my understanding of how
> security updates should be done.

Thanks!

Pushed as ed5940b617, along with another fix for CVE-2016-5314 as
4e9d5055f.



Re: [PATCH 1/3] guix: ruby-build-system: Build compiled gems reproducibly.

2016-08-29 Thread Ben Woodcroft

On 18/08/16 20:06, Ricardo Wurmus wrote:

Ben Woodcroft  writes:


* guix/build/ruby-build-system.scm (log-file-deletion): New procedure.
(install): Remove files containing non-reproducible elements.  Print when each
file is deleted.

Thank you, this looks good to me.  Good job on making even more Ruby
gems build reproducibly!


Great, thanks Ricardo. I just pushed this series.

ben



Re: [PATCH] use prefix: license in gnu/packages/version-control. [PATCH] Add stagit.

2016-08-29 Thread Leo Famulari
On Fri, Aug 26, 2016 at 09:59:44AM +, ng0 wrote:
> Patches to use prefix license: in gnu packages version-control, adding
> stagit in a second patch requiring the license: prefix.

Thanks, pushed as 1062f2451f!



Re: [PATCH] gnu: node: Update to 6.4.0.

2016-08-29 Thread Leo Famulari
On Fri, Aug 26, 2016 at 07:55:59PM +0200, Jelle Licht wrote:
> 
> This patch builds reproducible, although that was also the case for me
> with the previous Node 6.3.1. patch. It would be great if someone could
> verify this.
> 
> This patch supercedes the 'gnu: node: Update to 6.3.1.' patch at [0].

The tests fail for me on x86_64:

Running main() from gtest_main.cc
[==] Running 22 tests from 2 test cases.
[--] Global test environment set-up.
[--] 4 tests from UtilTest
[ RUN  ] UtilTest.ListHead
[   OK ] UtilTest.ListHead (0 ms)
[ RUN  ] UtilTest.StringEqualNoCase
[   OK ] UtilTest.StringEqualNoCase (0 ms)
[ RUN  ] UtilTest.StringEqualNoCaseN
[   OK ] UtilTest.StringEqualNoCaseN (0 ms)
[ RUN  ] UtilTest.ToLower
[   OK ] UtilTest.ToLower (0 ms)
[--] 4 tests from UtilTest (0 ms total)

[--] 18 tests from InspectorSocketTest
[ RUN  ] InspectorSocketTest.ReadsAndWritesInspectorMessage
../test/cctest/test_inspector_socket.cc:342: Failure
Value of: (!connect.data || !connected)
  Actual: true
Expected: false
make[1]: *** [Makefile:111: cctest] Segmentation fault
make[1]: Leaving directory '/tmp/guix-build-node-6.4.0.drv-0/node-v6.4.0'
make: *** [Makefile:119: test] Error 2
phase `check' failed after 24.3 seconds
builder for `/gnu/store/k0n9p9p2jm174rjqbz63znv16m1anm2y-node-6.4.0.drv' failed 
with exit code 1



Re: [PATCH 7/7] gnu: Add prosody.

2016-08-29 Thread Leo Famulari
On Sun, Aug 28, 2016 at 12:37:42PM +0200, Ricardo Wurmus wrote:
> LuaSec is found by “util/dependencies.lua” or else we would see a
> complaint printed to stdout upon application start.
> 
> Archlinux users also reported problems with latest prosody and latest
> luasec: https://bugs.archlinux.org/task/48480
> 
> This makes me think that this is not a problem with this package per se,
> but with Prosody.

Okay, hopefully there is a fix available soon!



Re: Python 3.5 start of update

2016-08-29 Thread Leo Famulari
On Sun, Aug 21, 2016 at 01:58:51PM -0400, Leo Famulari wrote:
> I picked this up. I've attached two patches. They upgrade python-3.4 to
> 3.4.5, and then upgrade python-3 to 3.5.2 while preserving a python-3.4.
> These are the latest releases in their respective series.
> 
> I had to split part of the python-fix-tests.patch into 3.4 and 3.5
> specific patches, since those packages' codebases have diverged.
> 
> python@3.4.5 and python@3.5.2 both build on master and wip-python.
> python-setuptools builds with python@3.5.2 on master.
> 
> I'd like to put these on core-updates. The wip-python branch will take a
> while to get ready. I found this saga about what Nix had to do to
> upgrade setuptools:
> https://github.com/NixOS/nixpkgs/pull/12552

I went ahead and pushed to core-updates, bringing the branch to
72df66806.


signature.asc
Description: PGP signature


Re: [PATCH 2/4] CoC: Correct punctuation

2016-08-29 Thread Leo Famulari
On Sun, Aug 28, 2016 at 11:52:52AM +0200, John Darrington wrote:
> On Sun, Aug 28, 2016 at 12:19:15PM +0300, Efraim Flashner wrote:
>  On Sat, Aug 27, 2016 at 08:19:37PM +0200, John Darrington wrote:
>  > +++ b/CODE-OF-CONDUCT
>  > @@ -21,7 +21,7 @@ Examples of unacceptable behavior by participants 
> include:
>  >  * Personal attacks
>  >  * Trolling or insulting/derogatory comments
>  >  * Public or private harassment
>  > -* Publishing other's private information, such as physical or 
> electronic
>  > +* Publishing others' private information, such as physical or 
> electronic
>  >  addresses, without explicit permission
>  >  * Other unethical or unprofessional conduct
>  
>  This Code of Conduct is adapted from the Contributor Covenant
>  (http://contributor-covenant.org), version 1.3.0, available at
>  http://contributor-covenant.org/version/1/3/0/
>  
>  I would rather see what they have to saw about it upstream.
>  ...actually, upstream has "other's"
> 
> "other's" would imply that publishing one person's details is unacceptable,
> but publishing many persons' is ok.  Whereas, "others'" means that publishing
> anybody's details is unacceptable.

The current wording is, at best, awkward. But, I think this patch should
be sent upstream so all adopters of the Contributor Covenant can benefit
from the clarification.

https://github.com/ContributorCovenant/contributor_covenant


signature.asc
Description: PGP signature


Re: GuixSD 0.11.0 Install

2016-08-29 Thread Marc Dunivan
David,

That was the problem...I changed the user name to all lowercase, and 
successfully booted into the installed system.

Re: [PATCH 1/2] daemon: Fix '--version'.

2016-08-29 Thread Alex Vong
Hello,

l...@gnu.org (Ludovic Courtès) writes:

> Hi!
>
> Alex Vong  skribis:
>
>> This one and the next patch fix '--version' of guix-daemon and
>> guix-register. Currently, they are not working, which is the reason why
>> help2man gives error when building from source.
>
> How are they not working exactly?  :-)
>
> It definitely works for me:
>
> $ ./guix-daemon --version
> guix-daemon (GNU Guix) 0.11.0
> $ ./guix-register --version
> guix-register (GNU Guix) 0.11.0
>
I get this output instead:

$ LC_ALL=C ./guix-daemon --version
./guix-daemon: unrecognized option '--version'
Try `guix-daemon --help' or `guix-daemon --usage' for more information.

This is werid, but I think it is because I build guix with lto.

Here is how I build guix:

$ ./bootstrap && ./configure CFLAGS='-O2 -flto' CXXFLAGS='-O2 -flto' 
LDFLAGS='-O2 -flto' && make -j`nproc` AR=gcc-ar NM=gcc-nm RANLIB=gcc-ranlib

So, perhaps this is a gcc bug! (not guix's one, we can forget about the
patch)

Could you reproduce it?

> Ludo’.

Thanks,
Alex



Re: [PATCH] gnu: Add telepathy-idle.

2016-08-29 Thread Leo Famulari
On Mon, Aug 29, 2016 at 12:45:44PM -0400, Kei Kebreau wrote:
> Subject: [PATCH] gnu: Add telepathy-idle.
> 
> * gnu/packages/freedesktop.scm (telepathy-idle): New variable.

> +(version "0.2.0")

Looks good, but why use this release when there appears to be a newer
version, 0.99.11?

https://telepathy.freedesktop.org/releases/telepathy-idle/


signature.asc
Description: PGP signature


[PATCH v2 3/3] gnu: update ldc to 0.17.1.

2016-08-29 Thread Danny Milosavljevic
* gnu/packages/ldc.scm (ldc): Update to 0.17.1.
* gnu/packages/patches/ldc-0.17.1-disable-tests.patch: New patch.
* gnu/local.mk: Added reference to patch.
---
 gnu/packages/ldc.scm   | 39 +-
 .../patches/ldc-0.17.1-disable-tests.patch | 84 ++
 2 files changed, 107 insertions(+), 16 deletions(-)
 create mode 100644 gnu/packages/patches/ldc-0.17.1-disable-tests.patch

diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm
index 601804a..6b073b8 100644
--- a/gnu/packages/ldc.scm
+++ b/gnu/packages/ldc.scm
@@ -29,7 +29,9 @@
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages textutils)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages zip)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages compression))
 
 (define-public rdmd
   (let ((commit "da0a2e0a379b08294015eec9d531f1e5dd4226f0"))
@@ -75,7 +77,7 @@ and freshness without requiring additional information from 
the user.")
 (define-public ldc
   (package
 (name "ldc")
-(version "0.16.1")
+(version "0.17.1")
 (source (origin
   (method url-fetch)
   (uri (string-append
@@ -84,7 +86,7 @@ and freshness without requiring additional information from 
the user.")
   (file-name (string-append name "-" version ".tar.gz"))
   (sha256
(base32
-"1jvilxx0rpqmkbja4m69fhd5g09697xq7vyqp2hz4hvxmmmv4j40"
+"0rwggnbr60jbajfdw11kx058llmwljiss8rrv8df07vaygiv845i"
 (build-system cmake-build-system)
 ;; LDC currently only supports the x86_64 and i686 architectures.
 (supported-systems '("x86_64-linux" "i686-linux"))
@@ -101,12 +103,6 @@ and freshness without requiring additional information 
from the user.")
(and (unpack "phobos-src" "runtime/phobos")
 (unpack "druntime-src" "runtime/druntime")
 (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")
- (add-after 'unpack-submodule-sources 'patch-dmd2
-   (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "dmd2/root/port.c"
-   ((" ::isnan") " isnan")
-   ((" ::isinf") " isinf"))
- #t))
  (add-after 'unpack-submodule-sources 'patch-phobos
(lambda* (#:key inputs #:allow-other-keys)
  (substitute* "runtime/phobos/std/process.d"
@@ -117,14 +113,25 @@ and freshness without requiring additional information 
from the user.")
 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo")))
  (substitute* "tests/d2/dmd-testsuite/Makefile"
(("/bin/bash") (which "bash")))
- #t)
+ #t))
+ (add-after 'unpack-submodule-sources 'patch-dmd2
+   (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "dmd2/root/port.c"
+   ((" ::isnan") " isnan")
+   ((" ::isinf") " isinf"))
+ #t))
+ (add-before 'check 'prepare-unittests
+   (lambda* (#:key inputs #:allow-other-keys)
+ (zero? (system* "ctest" "--verbose" "-R" 
"build-phobos2-ldc-unittest")))
 (inputs
  `(("libconfig" ,libconfig)
("libedit" ,libedit)
-   ("tzdata" ,tzdata)))
+   ("tzdata" ,tzdata)
+   ("zlib" ,zlib)))
 (native-inputs
  `(("llvm" ,llvm)
-   ("clang" ,clang)
+   ("python-wrapper", python-wrapper) ; for tests
+   ("python-lit", python-lit) ; for tests
("unzip" ,unzip)
("phobos-src"
 ,(origin
@@ -134,8 +141,8 @@ and freshness without requiring additional information from 
the user.")
  version ".tar.gz"))
(sha256
 (base32
- "0sgdj0536c4nb118yiw1f8lqy5d3g3lpg9l99l165lk9xy45l9z4"))
-   (patches (search-patches "ldc-disable-tests.patch"
+ "17nb1yvqblqj3q42c8nlnwvy823fw6kna28n2b48j4m6kd2w0nan"))
+   (patches (search-patches "ldc-0.17.1-disable-tests.patch"
("druntime-src"
 ,(origin
(method url-fetch)
@@ -144,7 +151,7 @@ and freshness without requiring additional information from 
the user.")
  version ".tar.gz"))
(sha256
 (base32
- "0z4mkyddx6c4sy1vqgqvavz55083dsxws681qkh93jh1rpby9yg6"
+ "129j7mfd0vnzaw7i6hr5waxm5cb0qcm8gyawy2xy5avlv8hrw5m4"
("dmd-testsuite-src"
 ,(origin
(method url-fetch)
@@ -153,7 +160,7 @@ and freshness without requiring additional information from 
the user.")
  version ".tar.gz"))
(sha256
 (base32
- "0yc6miidzgl9k33ygk7xcppmfd6kivqj02cvv4fmkbs3qz4yy3z1"))
+ "18h16lwwmr3k9dh7mcip17il72mz680wnygv9d0mdnivczn80zyv"))
 (home-page "http://wiki.dlang.org/LDC";)
 (synopsis "LLVM compiler for the D programming 

[PATCH v2 0/3] Fix ldc.

2016-08-29 Thread Danny Milosavljevic
This patch series fixes ldc up so it works again and updates it to the newest 
C++-bootstrappable version.

Danny Milosavljevic (3):
  gnu: ldc: make isnan and isinf work.
  gnu: Add python-lit, python2-lit.
  gnu: update ldc to 0.17.1.

 gnu/packages/ldc.scm   | 33 ++---
 .../patches/ldc-0.17.1-disable-tests.patch | 84 ++
 gnu/packages/python.scm| 26 +++
 3 files changed, 133 insertions(+), 10 deletions(-)
 create mode 100644 gnu/packages/patches/ldc-0.17.1-disable-tests.patch




[PATCH v2 2/3] gnu: Add python-lit, python2-lit.

2016-08-29 Thread Danny Milosavljevic
* gnu/packages/python.scm (python-lit, python2-lit): New variables.
---
 gnu/packages/python.scm | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 77bb8a4..070bef4 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -10224,3 +10224,29 @@ List.  Forked from and using the same API as the 
publicsuffix package.")
   (native-inputs
`(("python2-setuptools" ,python2-setuptools)
  ,@(package-native-inputs base))
+
+(define-public python-lit
+  (package
+(name "python-lit")
+(version "0.5.0")
+(source
+  (origin
+(method url-fetch)
+(uri (pypi-uri "lit" version))
+(sha256
+  (base32
+"135m2b9cwih85g66rjggavck328z7lj37srgpq3jxszbg0g2b91y"
+   (build-system python-build-system)
+(home-page "http://llvm.org/";)
+(synopsis "LLVM Software Testing Tool")
+(description "@code{lit} is a LLVM software testing tool.")
+(license license:bsd-3)
+(properties `((python2-variant . ,(delay python2-lit))
+
+(define-public python2-lit
+  (let ((base (package-with-python2 (strip-python2-variant python-lit
+(package
+  (inherit base)
+  (native-inputs
+   `(("python2-setuptools" ,python2-setuptools)
+ ,@(package-native-inputs base))



[PATCH v2 1/3] gnu: ldc: make isnan and isinf work.

2016-08-29 Thread Danny Milosavljevic
* gnu/packages/ldc.scm (ldc): Added substitution.
---
 gnu/packages/ldc.scm | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm
index 1709f59..601804a 100644
--- a/gnu/packages/ldc.scm
+++ b/gnu/packages/ldc.scm
@@ -101,6 +101,12 @@ and freshness without requiring additional information 
from the user.")
(and (unpack "phobos-src" "runtime/phobos")
 (unpack "druntime-src" "runtime/druntime")
 (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")
+ (add-after 'unpack-submodule-sources 'patch-dmd2
+   (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "dmd2/root/port.c"
+   ((" ::isnan") " isnan")
+   ((" ::isinf") " isinf"))
+ #t))
  (add-after 'unpack-submodule-sources 'patch-phobos
(lambda* (#:key inputs #:allow-other-keys)
  (substitute* "runtime/phobos/std/process.d"



Re: [PATCH] refresh nss-certs

2016-08-29 Thread Leo Famulari
On Wed, Aug 24, 2016 at 01:08:33PM +0200, Vincent Legoll wrote:
> The attached patch updates nss-certs to latest 3.26
> 
> WDYT?

Looks good, but can you send a revised patch that also updates NSS?

nss-certs used to inherit from nss, but we stopped doing that for the
reasons described here:
http://lists.gnu.org/archive/html/guix-devel/2016-06/msg00648.html



Re: No package from hydra

2016-08-29 Thread Danny Milosavljevic
On Fri, 19 Aug 2016 14:19:03 +0200
Pjotr Prins  wrote:

> On Fri, Aug 19, 2016 at 02:15:19PM +0200, Pjotr Prins wrote:
> > ldc is broken since May 2016.
> > 
> > http://hydra.gnu.org/job/gnu/master/ldc-0.16.1.x86_64-linux
> > 
> > hmmm.  
> 
> Include file gone missing:

I've posted a patch to fix this on 08. Aug 2016, subject "Fix ldc".

>I am not so much interested in the error. I am interested how we can keep 
>track of these failures and notify relevant people.

Good question. Maybe, when hydra fails, git blame the package (the block that 
guix edit would have edited) and find the authors that way? Then automatically 
e-mail them all? Or is that too extreme?



Re: [PATCH 1/7] gnu: lua: Build with support for dynamic libraries.

2016-08-29 Thread Leo Famulari
On Tue, Aug 23, 2016 at 02:02:40AM +0200, gno wrote:
> On Mon, 22 Aug 2016 21:39:12 +0200
> Ricardo Wurmus  wrote:
> > +   #:make-flags
> > +   '("CFLAGS=-fPIC -DLUA_DL_DLOPEN -DLUA_USE_POSIX"
> > + "linux")
> 
> This doesn't work for me - lua-lgi still complains about lua not being
> able to dynamically load. But this does work:
> 
> (replace 'build
>   (lambda _ (zero? (system* "make"
>  "LDFLAGS=-ldl" "CFLAGS=-fPIC -DLUA_USE_DLOPEN" "linux"
> 
> I tried adding LDFLAGS in #make-flags to no avail.

Based on my reading of the Makefile (and the 'src/Makefile'), I think we
should be using MYCFLAGS and MYLDFLAGS.

CFLAGS and LDFLAGS include MYCFLAGS and MYLDFLAGS, respectively, but
they also include some default flags and platform-dependent flags. By
setting CFLAGS and LDFLAGS directly, we lose those default and
platform-dependent values.

By the way, '-ldl' does get passed to GCC in 'src/Makefile', but I don't
think it gets passed to the linker, although my knowledge here is not
strong.



Re: [PATCH] gnu: awesome: Add awesome-3.5

2016-08-29 Thread Leo Famulari
On Thu, Aug 25, 2016 at 03:09:33AM +0200, gno wrote:
> Sure hope I'm doing this right as I'm new to this.
> These patches add Awesome 3.5.9 to the repository. I decided against
> updating since it may break peoples configurations. Awesome had API
> changes in between 3.4 and 3.5.
> 
> Please have a look.

Thanks for these patches! We need to figure out the Lua issue, and I've
replied in the Lua / Prosody thread.

> Subject: [PATCH 2/3] gnu: lua: Add lua-lgi.
> 
> * gnu/packages/lua.scm (lua-lgi): New variable.

> + (replace 'configure

I think we should just delete the configure phase if there is no
'./configure' script.

> +   (lambda* (#:key inputs #:allow-other-keys)
> + ; needs to load cairo dynamically
> + (let* ((cairo (string-append
> + (assoc-ref inputs "cairo") "/lib" )))
> +   (setenv "LD_LIBRARY_PATH" cairo ))

This can go in a 'set-env' phase.

> +
> + ; FIXME: Skip GTK tests:
> + ;   gtk3 - can't get it to run with the xorg-server config below
> + ;  and some non-gtk tests will also fail
> + ;   gtk2 - lots of functions aren't implemented
> + ; We choose gtk2 as the lesser evil and simply skip the test.
> + ; as of 22/08/2016 awesome is the only package dependent on lgi 
> but
> + ; it doesn't need or interact with gtk using lgi.
> + (substitute* "./tests/test.lua"
> +(("'gtk.lua',") "-- 'gtk.lua',"))

This should go in a 'disable-tests' phase.

> + ; lua version and therefore install directories are hardcoded
> + (substitute* "./lgi/Makefile"
> +(("LUA_VERSION=5.1") "LUA_VERSION=5.2"))

Again, in its own phase. I'm not sure what to call it :)

> + ;; There must be a running X server during tests.
> + (system (format #f "~a/bin/Xvfb :1 &" (assoc-ref inputs 
> "xorg-server")))
> + (setenv "DISPLAY" ":1"

This should go in a phase with a name like "start-x-server' before the
check phase.

> +   #:make-flags
> + (let ((out (assoc-ref %outputs "out")))

Is binding this 'out' variable necessary when it gets recreated in the
string-append below?

> +   (list "CC=gcc"
> + (string-append "PREFIX=" (assoc-ref %outputs "out"))

> Subject: [PATCH 3/3] gnu: wm: Add awesome-3.5.
> 
> * gnu/packages/wm.scm (awesome-3.5): New variable.

> +(define-public awesome-3.5
> +  (package (inherit awesome)
> +(version "3.5.9")

Is there upstream support for the 3.4 series? We shouldn't keep it if
it's unsupported, in my opinion.

> +  (snippet
> +  ;; Remove non-reproducible timestamp and use the date of the
> +  ;; source file instead.

Thanks for paying attention to this issue. Our unwritten convention is
to take the value of the environment SOURCE_DATE_EPOCH. Can you do that
instead? There are examples in the Erlang package if you need them.

Thanks again for these patches!

Let's fix our Lua packaging. And, can you send revised versions of
patches 2 and 3 from this series?