ncurses conflicts between master and core-updates

2017-01-05 Thread Leo Famulari
There's a tricky conflict in the ncurses package definition between
master and core-updates.

On core-updates, there is 57742b35dc026 (gnu: ncurses: Install
pkg-config ‘.pc’ files.), and on master, it's d230cf61f6a (gnu: ncurses:
support mingw.).

The mingw commit added some conditionals relating to mingw, and I'm not
sure if the pkg-config change should be applied for mingw builds or not.

Can you give me advice about how to resolve this, or merge master into
core-updates yourself?  There are a few other conflicts, but they are
easy to resolve.


signature.asc
Description: PGP signature


Re: Graphical Installer - Call for Testing.

2017-01-05 Thread Thompson, David
Hi John,

On Wed, Jan 4, 2017 at 2:59 AM, John Darrington
 wrote:
> The wip-installer branch is ready for testing and general review.
>
> This branch provides a curses based graphical interface to the disk
> images used for installing GuixSD. It is intended to allow users
> unfamiliar with bash and other aspects of unix-like operating systems
> to easily install GuixSD.   This means, it should allow you to install
> GuixSD on a bare PC, without ever touching a shell (whilst still
> providing that option for those who want it).

I don't have any real feedback, but I just want to say that this is an
awesome initiative that will make GuixSD accessible to many more
people!  Thanks for working on this!

- Dave



Re: Editing Scheme in the installation image

2017-01-05 Thread Kei Kebreau
l...@gnu.org (Ludovic Courtès) writes:

> Hello Guix!
>
> One issue that’s often reported is that it’s inconvenient to edit the
> config file with all its parentheses in the installation image given the
> available options (Zile, Nano, and nvi).
>
> Something like Paredit and ‘show-paren-mode’ in Emacs would help avoid
> mistakes such as unbalanced parenthesis.  However ‘emacs-minimal’ takes
> 180 MiB and it would be unreasonable to include it.
>
> So I figured we could use Zile-on-Guile¹ (yes!) and extend it to have
> something that resembles Paredit, like:
>
> ;; Poor developer’s Paredit.
>
> (define (paredit-open-paren)
>   (insert "()")
>   (backward-char))
>
> (define (paredit-close-paren)
>   (unless (search-forward ")")
> (insert ")")))
>
> (set-key "(" 'paredit-open-paren)
> (set-key ")" 'paredit-close-paren)
>
>
> Of course, it takes more than these few lines to write a real Paredit,
> but still, wouldn’t it be cool?  :-)
>
> What do people (Mike in particular!) think?
>
> Ludo’.
>
> ¹ https://www.gnu.org/software/guix/packages/z.html#zile-on-guile
>
> PS: The closure of Zile-on-Guile is 103 MiB, but Zile-on-Guile itself is
> only 400K and its dependencies are already in the installation
> image.

This sounds useful! Provided that everything is stable in Zile-on-Guile,
I'm for this inclusion.


signature.asc
Description: PGP signature


Re: Cross-distro reproducible build patches

2017-01-05 Thread Ben Woodcroft

Hi,


On 05/01/17 19:00, Ludovic Courtès wrote:

Hello Guix!

A new initiative to share repro-build patches has started as a followup
to the Reproducible Build Summit:

   
http://lists.reproducible-builds.org/pipermail/rb-general/2017-January/000222.html
   https://github.com/distropatches/reproducible-builds

Cool.

[...]

… but I think a number things are written as snippets rather than actual
patches.
Indeed, for instance, I just came some of these for cd-hit while 
updating it. Do you think it makes sense to convert these to patches 
where possible so that they can be shared?


Thanks, ben



Re: [PATCH] Creating a docker image with Guix

2017-01-05 Thread Ludovic Courtès
Hey!

Ricardo Wurmus  skribis:

> From fefd4f02d003dd35bd0ab459ec2ccc9f9ad62ffa Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Tue, 3 Jan 2017 16:20:15 +0100
> Subject: [PATCH] guix: Add Docker image export.
>
> * guix/docker.scm: New file.
> * Makefile.am (MODULES): Register it.
> * guix/scripts/archive.scm (show-help, %options, guix-archive): Add
> support for "--format".
> * doc/guix.texi (Invoking guix archive): Document it.

I agree with the changes David suggested.

Go for it!

As a bonus we could test it in a shell script when the ‘docker’ command
is available, and skip it otherwise.

As a second bonus, Someone could write a blog entry for the web site
explaining how Guix makes it super easy to create Docker images.  :-)

Thank you!

Ludo’.



Re: [PATCH 0/5] Clean-up of /bin/sh patching

2017-01-05 Thread Ludovic Courtès
Marius Bakke  skribis:

> Leo Famulari  writes:
>
>> This patch series changes all the instances of /bin/sh being patched to
>> /bin/bash that I can find.
>>
>> They are for core-updates.
>
> [...]
>
>> Leo Famulari (5):
>>   gnu: m4: Don't replace 'sh' reference with 'bash'.
>>   gnu: gnu-make: Don't replace 'sh' reference with 'bash'.
>>   gnu: glibc/linux: Don't replace 'sh' reference with 'bash'.
>>   gnu: glibc/linux: Use /bin/sh instead of /bin/bash as the default
>> shell.
>>   gnu: gawk: Don't replace 'sh' reference with 'bash'.
>
> Thanks! I've verified all of these and they LGTM. Good catch on the make
> and glibc paths.h substitutions.

+1!

Ludo’.



Re: GnuTLS and the “trust store”

2017-01-05 Thread Ludovic Courtès
Ricardo Wurmus  skribis:

> Marius Bakke  writes:
>
>> Curl respects the variable "CURL_CA_BUNDLE". I think we could add a
>> "native-search-path" for that, similar to how it's done for "git".
>
> “curl” does but libcurl does not.

But that’s probably on purpose.  What do the cURL developers recommend
for their users?

If they recommend that users roll their own mechanism to designate the
trust store, then they probably do (?), and I think we should avoid
interfering with that.

Thoughts?

Ludo’.



Re: Porting with Guix

2017-01-05 Thread Ludovic Courtès
Ricardo Wurmus  skribis:

> ren...@openmailbox.org writes:
>
>> Now there are two errors related to the 'Check' phase of libgc and 
>> guile:
>> In libgc shows:
>
> […]
>
>>   building of 
>> `/gnu/store/y3icscjhkk7pa7dg21xqy46riysi36rn-libgc-7.6.0.drv' timed
>>   out after 3600 seconds of silence
>
> You can increase the timeout:

There may be a genuine deadlock though.  :-)

Ludo’.



Editing Scheme in the installation image

2017-01-05 Thread Ludovic Courtès
Hello Guix!

One issue that’s often reported is that it’s inconvenient to edit the
config file with all its parentheses in the installation image given the
available options (Zile, Nano, and nvi).

Something like Paredit and ‘show-paren-mode’ in Emacs would help avoid
mistakes such as unbalanced parenthesis.  However ‘emacs-minimal’ takes
180 MiB and it would be unreasonable to include it.

So I figured we could use Zile-on-Guile¹ (yes!) and extend it to have
something that resembles Paredit, like:

;; Poor developer’s Paredit.

(define (paredit-open-paren)
  (insert "()")
  (backward-char))

(define (paredit-close-paren)
  (unless (search-forward ")")
(insert ")")))

(set-key "(" 'paredit-open-paren)
(set-key ")" 'paredit-close-paren)

Of course, it takes more than these few lines to write a real Paredit,
but still, wouldn’t it be cool?  :-)

What do people (Mike in particular!) think?

Ludo’.

¹ https://www.gnu.org/software/guix/packages/z.html#zile-on-guile

PS: The closure of Zile-on-Guile is 103 MiB, but Zile-on-Guile itself is
only 400K and its dependencies are already in the installation
image.


Re: 77 Rust Crates, fluid, roboto-font, libpsyc rust bindings

2017-01-05 Thread David Craven
> I understand the concerns of David Craven regarding
> ‘cargo-build-system’, though OTOH I’m tempted to think
> ‘cargo-build-system’ is probably not so bad if it managed to build all
> this.  ;-)  But anyway, I’ll David and you figure out what the best
> approach is!

I haven't inspected all the patches, but I don't think it's possible
that any package was actually built (unless danny's patch was
applied). All the build-system does with these packages is recursively
download the rust-psych dependency tree without building anything.
This would not show any problems with some crates requiring a nightly
rustc, or circular dependencies, or version mismatches (like requiring
an older semver major version or multiple versions of the same
package).

The downside of doing it like this is that we can't run tests on the
dependencies. But I think that building binaries like cargo that have
locked dependencies side steps all the problems mentioned above, and
would be a big milestone. It would allow us to do cool things like
patch crates with security fixes; and c wrapper crates like
rust-pkg-config, rust-cmake, rust-openssl, etc. could
declare/propagate/retain their c dependencies directly.


Danny has been exploring a different (or complementary) approach that
would allow running the tests on the crates and solves the above
issues manually. I currently think that doing this manually would make
packaging and much more important updating packages a large amount of
manual work, but I am open to reconsider if someone shows this to be a
surmountable task.

Another issue with Danny's approach is that as it is now, I don't see
an immediate advantage of running tests on dependencies of a package
before we have managed to build the package. The reason being that
trying to use the latest versions of all packages recursively might
yield big issues when trying to build the final thing even if all
tests passed on the individual crates. This results in false
confidence in the taken path and I don't think it can be considered a
reliable intermediate step to packaging a rust package, as it would be
in other build-systems. At least not until someone has provided
evidence by showing at least one counter example.



Re: [PATCH] Creating a docker image with Guix

2017-01-05 Thread Thompson, David
Hi Ricardo,

This is awesome! Just a couple things:

1) The amd64 architecture is hardcoded in the image.  Should this
instead be set to the current architecture?
2) s/configuratio/configuration/ in the docstring for 'config' in
guix/docker.scm

Ludovic, Ricardo, anyone else: It might be nice if in the future 'guix
environment' had a flag to output the resulting profile instead of
having to spawn the sub-shell and refer to $GUIX_ENVIRONMENT.  Food
for thought. :)

LGTM (Let's Get This Merged)!

- Dave



Re: [PATCH v3] gnu: Add ghc-markdown-unlit.

2017-01-05 Thread Marius Bakke
Danny Milosavljevic  writes:

> * gnu/packages/haskell.scm (ghc-markdown-unlit): New variable.
> ---
>  gnu/packages/haskell.scm | 27 +++
>  1 file changed, 27 insertions(+)
>
> diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
> index de061a630..5d3c85475 100644
> --- a/gnu/packages/haskell.scm
> +++ b/gnu/packages/haskell.scm
> @@ -8073,4 +8073,31 @@ It features a complete, well-tested parser and pretty 
> printer for all of C99
>  and a large set of GNU extensions.")
>  (license license:bsd-3)))
>  
> +(define-public ghc-markdown-unlit
> +  (package
> +   (name "ghc-markdown-unlit")
> +   (version "0.4.0")
> +   (source (origin
> + (method url-fetch)
> + (uri (string-append 
> "https://hackage.haskell.org/package/markdown-unlit/;
> + "markdown-unlit-" version ".tar.gz"))
> + (sha256
> +   (base32
> + "1kj2bffl7ndd8ygwwa3r1mbpwbxbfhyfgnbla8k8g9i6ffp0qrbw"
> +   (build-system haskell-build-system)
> +   (inputs
> +`(("ghc-base-compat" ,ghc-base-compat)
> +  ("ghc-hspec" ,ghc-hspec)
> +  ("ghc-quickcheck" ,ghc-quickcheck)
> +  ("ghc-silently" ,ghc-silently)
> +  ("ghc-stringbuilder" ,ghc-stringbuilder)
> +  ("ghc-temporary" ,ghc-temporary)))
> +   (native-inputs
> +`(("hspec-discover" ,hspec-discover)))

I noticed this was referenced by the binary and library for some reason,
so I made hspec-discover a regular input. It would be good to figure out
why it's referenced as it doesn't seem like it should be needed.

Pushed with indentation fixes! :-)


signature.asc
Description: PGP signature


Re: [PATCH 2/5] gnu: gnu-make: Don't replace 'sh' reference with 'bash'.

2017-01-05 Thread Leo Famulari
On Thu, Jan 05, 2017 at 06:14:02PM +0100, Marius Bakke wrote:
> Leo Famulari  writes:
> 
> > * gnu/packages/base.scm (gnu-make)[arguments]: Use /bin/sh instead of 
> > /bin/bash
> > in 'set-default-shell' phase.
> > ---
> >  gnu/packages/base.scm | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
> > index 66c5e0cdc..1f25a05aa 100644
> > --- a/gnu/packages/base.scm
> > +++ b/gnu/packages/base.scm
> > @@ -364,7 +364,7 @@ functionality beyond that which is outlined in the 
> > POSIX standard.")
> >  (let ((bash (assoc-ref inputs "bash")))
> >(substitute* "job.c"
> >  (("default_shell =.*$")
> > - (format #f "default_shell = \"~a/bin/bash\";\n"
> > + (format #f "default_shell = \"~a/bin/sh\";\n"
> >   bash)
> 
> Could you add a #t at the end of this phase while at it? :-)

Yes, I'll go through the whole series and make this change where
appropriate :)


signature.asc
Description: PGP signature


Re: [PATCH 2/5] gnu: gnu-make: Don't replace 'sh' reference with 'bash'.

2017-01-05 Thread Marius Bakke
Leo Famulari  writes:

> * gnu/packages/base.scm (gnu-make)[arguments]: Use /bin/sh instead of 
> /bin/bash
> in 'set-default-shell' phase.
> ---
>  gnu/packages/base.scm | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
> index 66c5e0cdc..1f25a05aa 100644
> --- a/gnu/packages/base.scm
> +++ b/gnu/packages/base.scm
> @@ -364,7 +364,7 @@ functionality beyond that which is outlined in the POSIX 
> standard.")
>  (let ((bash (assoc-ref inputs "bash")))
>(substitute* "job.c"
>  (("default_shell =.*$")
> - (format #f "default_shell = \"~a/bin/bash\";\n"
> + (format #f "default_shell = \"~a/bin/sh\";\n"
>   bash)

Could you add a #t at the end of this phase while at it? :-)


signature.asc
Description: PGP signature


Re: [PATCH 0/5] Clean-up of /bin/sh patching

2017-01-05 Thread Marius Bakke
Leo Famulari  writes:

> This patch series changes all the instances of /bin/sh being patched to
> /bin/bash that I can find.
>
> They are for core-updates.

[...]

> Leo Famulari (5):
>   gnu: m4: Don't replace 'sh' reference with 'bash'.
>   gnu: gnu-make: Don't replace 'sh' reference with 'bash'.
>   gnu: glibc/linux: Don't replace 'sh' reference with 'bash'.
>   gnu: glibc/linux: Use /bin/sh instead of /bin/bash as the default
> shell.
>   gnu: gawk: Don't replace 'sh' reference with 'bash'.

Thanks! I've verified all of these and they LGTM. Good catch on the make
and glibc paths.h substitutions.


signature.asc
Description: PGP signature


Re: [PATCH] gnu: Add ldc-1.1.0-beta4

2017-01-05 Thread Frederick Muriithi
> Hmm, you added gdb to the native-inputs but commented out the gdb invocations 
> later? Why?

I've gone and looked at this, and noted that not all the gdb
invocations have been commented out, just the one requiring
dmd-testsuite/runnable/gdb15729 which fails with "Error: No such file
or directory"

The only other part in the dmd-testsuite that's deactivated is the
call "enforce(match(..." in dmd-testsuite/d_do_test.d which was also
failing.

All other invocations to gdb and calls to "enforce()" seem to be working fine.

The annoying thing about these tests is, if you go and build them in
the directory retained with 'guix build --keep-failed' these tests
pass with no problem, but fail when you use 'guix build ...'

-- 
Frederick M. Muriithi



Re: [PATCH v6] gnu: python-sphinx: Update to 1.4.8.

2017-01-05 Thread Marius Bakke
Danny Milosavljevic  writes:

> * gnu/packages/python.scm (python-sphinx)[version]: Update to 1.4.8.
>   [source]: Use pypi-uri.
>   [propagated-inputs]: Add python-imagesize, python-sphinx-alabaster-theme,
>   python-babel, python-snowballstemmer, python-six.
>   [properties]: Add python2-variant.
> (python2-sphinx)[native-inputs]: Add python2-mock.
>   [propagated-inputs]: Add python2-pytz.

LGTM, thanks! As per the prior discussion, it should be applied in the
'python-tests' branch. Since it requires some packages only present in
'master', it will have to wait until the remaining failures are fixed.

Then we can merge master, add this patch and start a new evaluation.


signature.asc
Description: PGP signature


[PATCH 3/5] gnu: glibc/linux: Don't replace 'sh' reference with 'bash'.

2017-01-05 Thread Leo Famulari
* gnu/packages/base.scm (glibc/linux)[arguments]: Use /bin/sh instead of
/bin/bash in 'pre-configure' phase.
---
 gnu/packages/base.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 1f25a05aa..bdd613aad 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -621,7 +621,7 @@ store.")
   ;; Same for `popen'.
   (substitute* "libio/iopopen.c"
 (("/bin/sh")
- (string-append bash "/bin/bash")))
+ (string-append bash "/bin/sh")))
 
   ;; Same for the shell used by the 'exec' functions for
   ;; scripts that lack a shebang.
-- 
2.11.0




[PATCH 1/5] gnu: m4: Don't replace 'sh' reference with 'bash'.

2017-01-05 Thread Leo Famulari
* gnu/packages/m4.scm (m4)[arguments]: Use /bin/sh instead of /bin/bash in
'pre-check' phase.
---
 gnu/packages/m4.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/m4.scm b/gnu/packages/m4.scm
index 6ad00f8a5..3ee8142e7 100644
--- a/gnu/packages/m4.scm
+++ b/gnu/packages/m4.scm
@@ -50,7 +50,7 @@
 (substitute* (find-files "tests"
  "posix_spawn")
   (("/bin/sh")
-   (format #f "~a/bin/bash" bash)
+   (format #f "~a/bin/sh" bash)
 %standard-phases)))
(synopsis "Macro processor")
(description
-- 
2.11.0




[PATCH 2/5] gnu: gnu-make: Don't replace 'sh' reference with 'bash'.

2017-01-05 Thread Leo Famulari
* gnu/packages/base.scm (gnu-make)[arguments]: Use /bin/sh instead of /bin/bash
in 'set-default-shell' phase.
---
 gnu/packages/base.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 66c5e0cdc..1f25a05aa 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -364,7 +364,7 @@ functionality beyond that which is outlined in the POSIX 
standard.")
 (let ((bash (assoc-ref inputs "bash")))
   (substitute* "job.c"
 (("default_shell =.*$")
- (format #f "default_shell = \"~a/bin/bash\";\n"
+ (format #f "default_shell = \"~a/bin/sh\";\n"
  bash)
(synopsis "Remake files automatically")
(description
-- 
2.11.0




[PATCH 4/5] gnu: glibc/linux: Use /bin/sh instead of /bin/bash as the default shell.

2017-01-05 Thread Leo Famulari
* gnu/packages/base.scm (glibc/linux)[arguments]: Use /bin/sh for scripts that
lack a shebang.
---
 gnu/packages/base.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index bdd613aad..01e21f7c6 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -628,7 +628,7 @@ store.")
   (substitute* (find-files "." "^paths\\.h$")
 (("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$")
  (string-append "#define _PATH_BSHELL \""
-bash "/bin/bash\"\n")))
+bash "/bin/sh\"\n")))
 
   ;; Nscd uses __DATE__ and __TIME__ to create a string to
   ;; make sure the client and server come from the same
-- 
2.11.0




Re: [PATCH] Creating a docker image with Guix

2017-01-05 Thread Ricardo Wurmus

Ludovic Courtès  writes:

>> --- a/doc/guix.texi
>> +++ b/doc/guix.texi
>> @@ -2438,6 +2438,12 @@ Read a list of store file names from the standard 
>> input, one per line,
>>  and write on the standard output the subset of these files missing from
>>  the store.
>>  
>> +@item --export-docker-image=@var{directory}
>> +@cindex docker, export
>> +Recursively export the specified store directory as a Docker image in
>> +tar archive format.  The generated archive can be loaded by Docker using
>> +@command{docker load}.
>
> Maybe “as a Docker image in tar archive format, as specified in
> @uref{http://…, version 1.0 of the Foo Bar Spec}.”

Okay.

> I would be in favor of --format=FMT, where FMT can be one of “nar” or
> “docker”.  Maybe there’ll be others in the future.  WDYT?

Sounds good.

> The paragraph that says “Archives are stored in the “normalized archive”
> or “nar” format,“ should be updated.
>
> Also, it seems that ‘-f docker’ would always imply ’-r’, right?  That’s
> reasonable but would be worth mentioning.

Okay.

>> +(define (hexencode bv)
>> +  "Return the hexadecimal representation of the bytevector BV."
>> +  (format #f "~{~2,'0x~}" (bytevector->u8-list bv)))
>
> Maybe use ‘bytevector->base16-string’ from (guix utils) instead.

Ah, didn’t know about this one.

>> +(define spec-version "1.0")
>
> Please add the URL to said spec as a comment.

I added a clarifying comment (because confusingly this is NOT the
version of the Docker image spec).

>> +;; TODO: heroically copied from guix/script/pull.scm
>> +(define (temporary-directory)
>
> Alternatively, there’s ‘call-with-temporary-directory’ in (guix utils).
> :-)

Neat!

>> +  (and (zero? (apply system* "tar" "-cf" "layer.tar"
>> + (cons "../bin" items)))
>> +   (delete-file "../bin"
>
> This reminds me we should steal this code of Mark’s sometime:
>
>   https://github.com/spk121/guile100/blob/master/code/tar2.scm

Yes, this would be nice.

Attached is a new patch with all requested changes and a couple of fixes
(generated images now have proper names and tags).

~~ Ricardo

>From fefd4f02d003dd35bd0ab459ec2ccc9f9ad62ffa Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Tue, 3 Jan 2017 16:20:15 +0100
Subject: [PATCH] guix: Add Docker image export.

* guix/docker.scm: New file.
* Makefile.am (MODULES): Register it.
* guix/scripts/archive.scm (show-help, %options, guix-archive): Add
support for "--format".
* doc/guix.texi (Invoking guix archive): Document it.
---
 Makefile.am  |   1 +
 doc/guix.texi|  18 +++-
 guix/docker.scm  | 117 +++
 guix/scripts/archive.scm |  14 +-
 4 files changed, 148 insertions(+), 2 deletions(-)
 create mode 100644 guix/docker.scm

diff --git a/Makefile.am b/Makefile.am
index fb08a004b..4317b83a2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -158,6 +158,7 @@ MODULES =	\
 if HAVE_GUILE_JSON
 
 MODULES +=	\
+  guix/docker.scm	   			\
   guix/import/github.scm   			\
   guix/import/json.scm\
   guix/import/crate.scm\
diff --git a/doc/guix.texi b/doc/guix.texi
index 3a9ebe8a6..93a56a2b0 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -2394,7 +2394,7 @@ what you should use in this case (@pxref{Invoking guix copy}).
 
 @cindex nar, archive format
 @cindex normalized archive (nar)
-Archives are stored in the ``normalized archive'' or ``nar'' format, which is
+By default archives are stored in the ``normalized archive'' or ``nar'' format, which is
 comparable in spirit to `tar', but with differences
 that make it more appropriate for our purposes.  First, rather than
 recording all Unix metadata for each file, the nar format only mentions
@@ -2410,6 +2410,9 @@ verifies the signature and rejects the import in case of an invalid
 signature or if the signing key is not authorized.
 @c FIXME: Add xref to daemon doc about signatures.
 
+Optionally, archives can be exported as a Docker image in the tar
+archive format using @code{--format=docker}.
+
 The main options are:
 
 @table @code
@@ -2438,6 +2441,19 @@ Read a list of store file names from the standard input, one per line,
 and write on the standard output the subset of these files missing from
 the store.
 
+@item -f
+@item --format=@var{FMT}
+@cindex docker, export
+@cindex export format
+Specify the export format.  Acceptable arguments are @code{nar} and
+@code{docker}.  The default is the nar format.  When the format is
+@code{docker}, recursively export the specified store directory as a
+Docker image in tar archive format, as specified in
+@uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md,
+version 1.2.0 of the Docker Image Specification}.  Using
+@code{--format=docker} implies @code{--recursive}.  The generated
+archive can be loaded by Docker using @command{docker load}.
+
 @item --generate-key[=@var{parameters}]
 @cindex signing, archives
 Generate 

[PATCH 5/5] gnu: gawk: Don't replace 'sh' reference with 'bash'.

2017-01-05 Thread Leo Famulari
* gnu/packages/gawk.scm (gawk)[arguments]: Use /bin/sh instead of /bin/bash in
'set-shell-file-name' phase.
---
 gnu/packages/gawk.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/gawk.scm b/gnu/packages/gawk.scm
index 86f01335a..280e3d3cf 100644
--- a/gnu/packages/gawk.scm
+++ b/gnu/packages/gawk.scm
@@ -47,7 +47,7 @@
  (let ((bash (assoc-ref inputs "bash")))
(substitute* "io.c"
  (("/bin/sh")
-  (string-append bash "/bin/bash")))
+  (string-append bash "/bin/sh")))
 
;; When cross-compiling, remove dependencies on the
;; `check-for-shared-lib-support' target, which tries
-- 
2.11.0




Re: Porting with Guix

2017-01-05 Thread Ricardo Wurmus

ren...@openmailbox.org writes:

> Now there are two errors related to the 'Check' phase of libgc and 
> guile:
> In libgc shows:

[…]

>   building of 
> `/gnu/store/y3icscjhkk7pa7dg21xqy46riysi36rn-libgc-7.6.0.drv' timed
>   out after 3600 seconds of silence

You can increase the timeout:

   guix build --max-silent-time=9

The argument specifies the number of seconds of silence before
cancelling the build.  There also is “--timeout” for cancelling builds
unconditionally even when they produce output.

-- 
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
http://elephly.net




[PATCH v6] gnu: python-sphinx: Update to 1.4.8.

2017-01-05 Thread Danny Milosavljevic
* gnu/packages/python.scm (python-sphinx)[version]: Update to 1.4.8.
  [source]: Use pypi-uri.
  [propagated-inputs]: Add python-imagesize, python-sphinx-alabaster-theme,
  python-babel, python-snowballstemmer, python-six.
  [properties]: Add python2-variant.
(python2-sphinx)[native-inputs]: Add python2-mock.
  [propagated-inputs]: Add python2-pytz.
---
 gnu/packages/python.scm | 31 ++-
 1 file changed, 22 insertions(+), 9 deletions(-)
---
 gnu/packages/python.scm | 38 --
 1 file changed, 24 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 4e4a15feb..721b7a993 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2907,30 +2907,40 @@ reStructuredText.")
 (define-public python-sphinx
   (package
 (name "python-sphinx")
-(version "1.2.3")
-(source
- (origin
-   (method url-fetch)
-   (uri (string-append
- "https://pypi.python.org/packages/source/S/Sphinx/Sphinx-;
- version ".tar.gz"))
-   (sha256
-(base32
- "011xizm3jnmf4cvs5i6kgf6c5nn046h79i8j0vd0f27yw9j3p4wl"
+(version "1.4.8")
+(source (origin
+  (method url-fetch)
+  (uri (pypi-uri "Sphinx" version))
+  (sha256
+(base32
+  "0zvh8wwhm6gy21rr0cg42znsy4zzv2mnsxxk9gmn5y1ycn7rgbs1"
 (build-system python-build-system)
 (propagated-inputs
- `(("python-jinja2" ,python-jinja2)
+ `(("python-imagesize" ,python-imagesize)
+   ("python-sphinx-alabaster-theme"
+,python-sphinx-alabaster-theme)
+   ("python-babel" ,python-babel)
+   ("python-snowballstemmer" ,python-snowballstemmer)
("python-docutils" ,python-docutils)
-   ("python-pygments" ,python-pygments)))
+   ("python-jinja2" ,python-jinja2)
+   ("python-pygments" ,python-pygments)
+   ("python-six" ,python-six)))
 (home-page "http://sphinx-doc.org/;)
 (synopsis "Python documentation generator")
 (description "Sphinx is a tool that makes it easy to create documentation
 for Python projects or other documents consisting of multiple reStructuredText
 sources.")
-(license license:bsd-3)))
+(license license:bsd-3)
+(properties `((python2-variant . ,(delay python2-sphinx))
 
 (define-public python2-sphinx
-  (package-with-python2 python-sphinx))
+  (let ((base (package-with-python2 (strip-python2-variant python-sphinx
+(package
+  (inherit base)
+  (native-inputs `(("python2-mock" ,python2-mock)
+   ,@(package-native-inputs base)))
+  (propagated-inputs `(("python2-pytz" ,python2-pytz)
+   ,@(package-propagated-inputs base))
 
 (define-public python-sphinx-rtd-theme
   (package



Re: python-tests: Sphinx

2017-01-05 Thread Marius Bakke
Danny Milosavljevic  writes:

> Hi Marius,
>
>> This is fixed with e46a043ecd9f9ef46d1d44393362bb7016454544 from the
>> 'python-tests' branch. Speaking of which, there are still some failing
>> packages in that branch listed at:
>> https://hydra.gnu.org/eval/109407?compare=master#tabs-now-fail
>> 
>> I'll try to take care of the remaining failures in the next week so we
>> can merge this branch. Contributions are always welcome however ;-)
>
> Can we update Sphinx in the python-tests branch please? Then some more things 
> will fail...

Right, I will add them when I get time to work on it in a few days.
Could you make sure they apply, and send an updated patchset with commit
message fixes? TIA!


signature.asc
Description: PGP signature


[PATCH v5] gnu: python-sphinx: Update to 1.4.8.

2017-01-05 Thread Danny Milosavljevic
* gnu/packages/python.scm (python-sphinx)[version]: Update to 1.4.8.
  [source]: Use pypi-uri.
  [propagated-inputs]: Add python-imagesize, python-sphinx-alabaster-theme,
  python-babel, python-snowballstemmer, python-six.
  [properties]: Add python2-variant.
---
 gnu/packages/python.scm | 31 ++-
 1 file changed, 22 insertions(+), 9 deletions(-)
---
 gnu/packages/python.scm | 38 --
 1 file changed, 24 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 4e4a15feb..721b7a993 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2907,30 +2907,40 @@ reStructuredText.")
 (define-public python-sphinx
   (package
 (name "python-sphinx")
-(version "1.2.3")
-(source
- (origin
-   (method url-fetch)
-   (uri (string-append
- "https://pypi.python.org/packages/source/S/Sphinx/Sphinx-;
- version ".tar.gz"))
-   (sha256
-(base32
- "011xizm3jnmf4cvs5i6kgf6c5nn046h79i8j0vd0f27yw9j3p4wl"
+(version "1.4.8")
+(source (origin
+  (method url-fetch)
+  (uri (pypi-uri "Sphinx" version))
+  (sha256
+(base32
+  "0zvh8wwhm6gy21rr0cg42znsy4zzv2mnsxxk9gmn5y1ycn7rgbs1"
 (build-system python-build-system)
 (propagated-inputs
- `(("python-jinja2" ,python-jinja2)
+ `(("python-imagesize" ,python-imagesize)
+   ("python-sphinx-alabaster-theme"
+,python-sphinx-alabaster-theme)
+   ("python-babel" ,python-babel)
+   ("python-snowballstemmer" ,python-snowballstemmer)
("python-docutils" ,python-docutils)
-   ("python-pygments" ,python-pygments)))
+   ("python-jinja2" ,python-jinja2)
+   ("python-pygments" ,python-pygments)
+   ("python-six" ,python-six)))
 (home-page "http://sphinx-doc.org/;)
 (synopsis "Python documentation generator")
 (description "Sphinx is a tool that makes it easy to create documentation
 for Python projects or other documents consisting of multiple reStructuredText
 sources.")
-(license license:bsd-3)))
+(license license:bsd-3)
+(properties `((python2-variant . ,(delay python2-sphinx))
 
 (define-public python2-sphinx
-  (package-with-python2 python-sphinx))
+  (let ((base (package-with-python2 (strip-python2-variant python-sphinx
+(package
+  (inherit base)
+  (native-inputs `(("python2-mock" ,python2-mock)
+   ,@(package-native-inputs base)))
+  (propagated-inputs `(("python2-pytz" ,python2-pytz)
+   ,@(package-propagated-inputs base))
 
 (define-public python-sphinx-rtd-theme
   (package



python-tests: Sphinx

2017-01-05 Thread Danny Milosavljevic
Hi Marius,

> This is fixed with e46a043ecd9f9ef46d1d44393362bb7016454544 from the
> 'python-tests' branch. Speaking of which, there are still some failing
> packages in that branch listed at:
> https://hydra.gnu.org/eval/109407?compare=master#tabs-now-fail
> 
> I'll try to take care of the remaining failures in the next week so we
> can merge this branch. Contributions are always welcome however ;-)

Can we update Sphinx in the python-tests branch please? Then some more things 
will fail...

(The reason I sent the patchsets was because Ludo suggested to test Sphinx 
breakage in the python-tests branch - that's also why it has this strange split 
into multiple patchsets...)



[PATCH v3] gnu: Add ghc-markdown-unlit.

2017-01-05 Thread Danny Milosavljevic
* gnu/packages/haskell.scm (ghc-markdown-unlit): New variable.
---
 gnu/packages/haskell.scm | 27 +++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index de061a630..5d3c85475 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -8073,4 +8073,31 @@ It features a complete, well-tested parser and pretty 
printer for all of C99
 and a large set of GNU extensions.")
 (license license:bsd-3)))
 
+(define-public ghc-markdown-unlit
+  (package
+   (name "ghc-markdown-unlit")
+   (version "0.4.0")
+   (source (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/markdown-unlit/;
+ "markdown-unlit-" version ".tar.gz"))
+ (sha256
+   (base32
+ "1kj2bffl7ndd8ygwwa3r1mbpwbxbfhyfgnbla8k8g9i6ffp0qrbw"
+   (build-system haskell-build-system)
+   (inputs
+`(("ghc-base-compat" ,ghc-base-compat)
+  ("ghc-hspec" ,ghc-hspec)
+  ("ghc-quickcheck" ,ghc-quickcheck)
+  ("ghc-silently" ,ghc-silently)
+  ("ghc-stringbuilder" ,ghc-stringbuilder)
+  ("ghc-temporary" ,ghc-temporary)))
+   (native-inputs
+`(("hspec-discover" ,hspec-discover)))
+   (home-page "https://github.com/sol/markdown-unlit#readme;)
+   (synopsis "Literate Haskell support for Markdown")
+   (description "This package allows you to have a README.md that at the
+same time is a literate Haskell program.")
+   (license license:expat)))
+
 ;;; haskell.scm ends here



Re: [PATCH] guix: python-build-system: Properly inform caller about test status.

2017-01-05 Thread Leo Famulari
On Thu, Jan 05, 2017 at 02:31:41PM +0100, Marius Bakke wrote:
> Danny Milosavljevic  writes:
> 
> > * guix/build/python-build-system.scm (check): Properly inform caller about 
> > test status.

> This is fixed with e46a043ecd9f9ef46d1d44393362bb7016454544 from the
> 'python-tests' branch. Speaking of which, there are still some failing
> packages in that branch listed at:
> https://hydra.gnu.org/eval/109407?compare=master#tabs-now-fail
> 
> I'll try to take care of the remaining failures in the next week so we
> can merge this branch. Contributions are always welcome however ;-)

+1 :)


signature.asc
Description: PGP signature


Re: [PATCH 1/2] gnu: libtool: Use 'modify-phases'.

2017-01-05 Thread Leo Famulari
On Thu, Jan 05, 2017 at 02:50:05PM +0100, Marius Bakke wrote:
> There was a discussion about making "substitute*" return #t if one or
> more substitutions were done, is that implemented yet? If not, please
> make sure phases end on a truthy value :-)

Done!


signature.asc
Description: PGP signature


Re: [PATCH 1/2] gnu: libtool: Use 'modify-phases'.

2017-01-05 Thread Leo Famulari
On Thu, Jan 05, 2017 at 11:36:55AM +0100, Ludovic Courtès wrote:
> Leo Famulari  skribis:
> > On Sun, Jan 01, 2017 at 03:24:27PM +, ng0 wrote:

> > +   (modify-phases %standard-phases
> > + (add-before 'check 'pre-check
> > + (lambda* (#:key inputs #:allow-other-keys)
> 
> Could you align “(” below the ‘d’ of ‘add-before’?

Done.

> > + (add-after 'patch-source-shebangs 'restore-ltmain-shebang
> > +(lambda* (#:key inputs #:allow-other-keys)
> 
> Likewise.

Done.

> > +  (substitute* "build-aux/ltmain.in"
> > +(((string-append (assoc-ref inputs "bash") 
> > "/bin/sh"))
> > + "/bin/sh")))
> 
> We should use literal strings for patterns, like:
> 
>   (substitute* …
> (("^#!.*/bin/sh$") …))

Done.

> > From 809120b991603b8c557be7481be2bbae29bd8a7f Mon Sep 17 00:00:00 2001
> > From: Leo Famulari 
> > Date: Wed, 4 Jan 2017 19:44:27 -0500
> > Subject: [PATCH 3/3] gnu: libtool: Don't replace 'sh' reference with 'bash'.
> >
> > Bash behaves differently based on how it is invoked (see Invocation in 
> > bash(1)).
> >
> > * gnu/packages/autotools.scm (libtool)[arguments]: Use /bin/sh instead
> > of /bin/bash in 'pre-check' phase. Fix typo in comment.
> 
> Makes sense.

More are coming!

> Could you push them to ‘core-updates’?

Done!

> Thank you Leo & ng0!

Thanks ng0!


signature.asc
Description: PGP signature


Re: [PATCH] gnu: curl: Add ca-bundle to config.

2017-01-05 Thread Ricardo Wurmus

ng0  writes:

>> how can I make this valid:
>>
>>(arguments
>> `(#:configure-flags '("--enable-ipv6" "--with-gnutls" "--without-libssh2"
>>   "--without-libmetalink" "--without-winidn"
>>   "--without-librtmp" "--without-nghttp2"
>>   "--without-nss" "--without-cyassl"
>>   "--without-polarssl" "--without-ssl"
>>   "--without-winssl" "--without-darwinssl"
>>   "--disable-sspi" "--disable-ntlm-wb"
>>   "--disable-ldap" "--disable-rtsp" "--disable-dict"
>>   "--disable-telnet" "--disable-tftp" 
>> "--disable-pop3"
>>   "--disable-imap" "--disable-smtp" 
>> "--disable-gopher"
>>   "--disable-file" "--disable-ftp" "--disable-smb"
>>   (string-append
>>"--with-ca-bundle="
>>(string-append (assoc-ref %build-inputs 
>> "nss-certs")
>>   
>> "/etc/ssl/certs/ca-certificates.crt")))
>>
>> The string-append is not valid here.
>
> Solved, by using "(list" here.

The reason why this didn’t work is because you’re expecting code to be
evaluated inside of an “inert” expression.

(+ 1 2) is evaluated right away and the result is 3

'(+ 1 2) is a quoted expression, so it’s just a list of '+, 1, and 2.
Think of the ' as “DATA MODE”

`(+ 1 2) is a quasiquoted expression.  Think of the backtick as a toggle
switch.  When it’s up it means “DATA MODE”, when it is down (,) it means
“CODE MODE”.

Example:

`(+ 1 2 ,(string->number "4"))

this means: DATA MODE + 1 2 CODE MODE (string->number "4")

so you get a list with the following contents: '+, 1, 2, and the number 4.

Your configure flags above are a quoted list, so everything that follows
is just data.  “string-append” is not special, it’s just another symbol
in the list.  You can try this in the REPL to convince yourself that
this is how quoting works.

Note the difference between:

`(#:configure-flags '("foo" "bar"
  (string-append "baz" "lightyear")))

and

`(#:configure-flags '("foo" "bar"
  ,(string-append "baz" "lightyear")))

The comma (“unquote”) flips the toggle switch and the expression is
evaluated.

Using “list” just means that you are not using quotation at all.


One final note:

>>   (string-append
>>"--with-ca-bundle="
>>(string-append (assoc-ref %build-inputs 
>> "nss-certs")
>>   
>> "/etc/ssl/certs/ca-certificates.crt")))

That’s really not pretty.  You don’t need to nest string-append
expressions.

(string-append "this" "and" "that")

returns the same value as

(string-append "this" (string-append "and" "that"))

~~ Ricardo



Re: Porting with Guix

2017-01-05 Thread Samuel Thibault
ren...@openmailbox.org, on Wed 04 Jan 2017 18:23:08 -0600, wrote:
>  PASS: cordtest
>  building of
> `/gnu/store/y3icscjhkk7pa7dg21xqy46riysi36rn-libgc-7.6.0.drv' timed out after 
> 3600 seconds of silence

Ah.

Just for information, the libgc testsuite passes fine on Debian
GNU/Hurd.

Samuel



Re: [PATCH v4 0/3] Prepare for Sphinx update

2017-01-05 Thread Marius Bakke
Danny Milosavljevic  writes:

> This adds new packages that will be required for an eventual Sphinx update.
>
> Danny Milosavljevic (3):
>   gnu: Add python-snowballstemmer.
>   gnu: Add python-sphinx-cloud-sptheme.
>   gnu: Add python-sphinx-alabaster-theme.
>
>  gnu/packages/python.scm | 74 
> +
>  1 file changed, 74 insertions(+)

Thanks, applied! I changed the description of cloud-sptheme to use
double quotes instead of single quotes to make "guix lint" happy, and
made the snowballstemmer synopsis more generic.

Also removed the delay properties, as AFAIK this is only needed when the
python2 variant requires changes to the expression.

Another low-hanging fruit for the pypi importer is to make it indent
properly ;-)


signature.asc
Description: PGP signature


Re: GnuTLS and the “trust store”

2017-01-05 Thread Ricardo Wurmus

Ludovic Courtès  writes:

>> I'm trying to understand the problem here, the problem why
>> packages like darcs, pbpst, and others are just sitting, waiting
>> for months because of issues with cURL.
>
> What is “these issues with cURL”?  It builds fine, and it’s perfectly
> usable as long as /etc/ssl/certs is populated.

I still think that we ought to patch libcurl such that it checks the
environment variable CURL_CA_BUNDLE.  NixOS used to do this in the past,
IIRC.

It’s an easy fix and allows us to solve the problem at the root instead
of trying to come up with a fix for every user of libcurl.

~~ Ricardo



Re: GnuTLS and the “trust store”

2017-01-05 Thread Ricardo Wurmus

Marius Bakke  writes:

> Curl respects the variable "CURL_CA_BUNDLE". I think we could add a
> "native-search-path" for that, similar to how it's done for "git".

“curl” does but libcurl does not.

~~ Ricardo



Re: [PATCH 1/1] gnu: python-matplotlib: Fix documentation reST markup error.

2017-01-05 Thread Marius Bakke
Danny Milosavljevic  writes:

> * gnu/packages/python.scm (python-matplotlib): Fix documentation reST markup 
> error.
> ---
>  gnu/packages/python.scm | 5 +
>  1 file changed, 5 insertions(+)
>
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 4e1a6b4a8..bc9058ba3 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -3629,6 +3629,11 @@ transcendental functions).")
> (sha256
>  (base32
>   "1dn05cvd0g984lzhh72wa0z93psgwshbbg93fkab6slx5m3l95av"))
> +   (modules '((guix build utils)))
> +   (snippet
> +'(substitute* "doc/users/intro.rst"
> +   ;; Fix reST markup error (see 
> )
> +   (("[[][*][]]") "[#]")))

Please run this substitution in a phase instead. Source snippets change
the source presented to users running `guix build -S` and should be
reserved for critical bug fixes and reproducibility problems, but
otherwise stay as close to upstream as possible.


signature.asc
Description: PGP signature


Re: [PATCH v4 1/1] gnu: python-sphinx: Update to 1.4.8.

2017-01-05 Thread Marius Bakke
Danny Milosavljevic  writes:

> * gnu/packages/python.scm (python-sphinx)[version]: Update to 1.4.8.

Please also mention changes to inputs, source and other fields in the
commit message.


signature.asc
Description: PGP signature


Re: [PATCH] gnu: sed: Update to 4.3.

2017-01-05 Thread Marius Bakke
Leo Famulari  writes:

> On Wed, Jan 04, 2017 at 05:01:34PM +0100, Marius Bakke wrote:
>> * gnu/packages/base.scm (sed): Update to 4.3.
>> [source]: Use xz tarball. Remove upstreamed patch.
>> [home-page]: Use https.
>> [native-inputs]: Add perl.
>> * gnu/packages/patches/sed-hurd-path-max.patch: Delete file.
>> * gnu/local.mk (dist_patch_DATA): Remove it.
>
> Thanks!
>
> We should make sure that the built package doesn't retain a reference to
> Perl.

Thanks for checking (in the other email!) :-)

> It's interesting that `guix refresh -l sed` doesn't show the full impact
> of this change:
>
> $ guix refresh -l sed
> Building the following 4 packages would ensure 4 dependent packages are 
> rebuilt: password-store-1.6.5 hydra-20151030.1ff48da bamm-1.7.3 roary-3.7.0
>
> Also, this part of the package definition is incorrect:
>
> (substitute* '("testsuite/bsd.sh"
>"testsuite/bug-regex9.c")
>   (("/bin/sh")
>(string-append bash "/bin/bash")))
> #t)))
>
> Bash and sh behave differently; the replacement string should refer to
> '/bin/sh'.

Good catch! I fixed this too and pushed to 'core-updates' as
7d7ea947f56e5080c9913f311ede71475045b9d6 .


signature.asc
Description: PGP signature


Re: GnuTLS and the “trust store”

2017-01-05 Thread Marius Bakke
Ludovic Courtès  writes:

> Hello!
>
> Marius Bakke  skribis:
>
>> Marius Bakke  writes:
>>
>>> ng0  writes:
>>>
 * gnu/packages/curl.scm (curl)[arguments]: Add "--with-ca-bundle" 
 configure flag.
>
> [...]
>
>> I realized shortly after posting why this wasn't done already. Curl has
>> 1403 dependent packages, which would apply for "nss-certs" as well if
>> that is added as input. Obviously we want to be able to update TLS
>> certificates quickly without rebuilding ~1/4 of the tree.
>
> Indeed.  It’s a situation where we do not want to have a static binding
> between cURL and nss-certs; instead, they should be composed
> dynamically, along the lines of what we already recommend at:
>
>   
> https://www.gnu.org/software/guix/manual/html_node/X_002e509-Certificates.html

Curl respects the variable "CURL_CA_BUNDLE". I think we could add a
"native-search-path" for that, similar to how it's done for "git".

ng0, can you try that?


signature.asc
Description: PGP signature


Re: [PATCH v2] gnu: Add ghc-markdown-unlit.

2017-01-05 Thread Marius Bakke
Danny Milosavljevic  writes:

> * gnu/packages/haskell.scm (ghc-markdown-unlit): New variable.
> ---
>  gnu/packages/haskell.scm | 29 +
>  1 file changed, 29 insertions(+)
>
> diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
> index de061a630..1f6611d0b 100644
> --- a/gnu/packages/haskell.scm
> +++ b/gnu/packages/haskell.scm
> @@ -8073,4 +8073,33 @@ It features a complete, well-tested parser and pretty 
> printer for all of C99
>  and a large set of GNU extensions.")
>  (license license:bsd-3)))
>  
> +(define-public ghc-markdown-unlit
> +  (package
> +   (name "ghc-markdown-unlit")
> +   (version "0.4.0")
> +   (source (origin
> + (method url-fetch)
> + (uri (string-append
> +"https://hackage.haskell.org/package/markdown-unlit/;
> +"markdown-unlit-" version ".tar.gz"))
> + (sha256
> +   (base32
> + "1kj2bffl7ndd8ygwwa3r1mbpwbxbfhyfgnbla8k8g9i6ffp0qrbw"
> +   (build-system haskell-build-system)
> +   (inputs
> +`(("ghc-base-compat" ,ghc-base-compat)
> +  ("ghc-hspec" ,ghc-hspec)
> +  ("ghc-quickcheck" ,ghc-quickcheck)
> +  ("ghc-silently" ,ghc-silently)
> +  ("ghc-stringbuilder" ,ghc-stringbuilder)
> +  ("ghc-temporary" ,ghc-temporary)))
> +   (native-inputs
> +`(("hspec-discover" ,hspec-discover)))
> +   (home-page "https://github.com/sol/markdown-unlit#readme;)
> +   (synopsis "Literate Haskell support for Markdown")
> +   (description "This package allows you to have a README.md that at the
> +same time is a literate Haskell program.  See also $url{Documentation,
> +https://github.com/sol/markdown-unlit#readme}.;)

I don't think linking the home page in the description is necessary.
What do you think about removing the last sentence? Otherwise LGTM with
a few indentation changes that can be fixed before pushing ;-)

As a side note, do we have volunteers to make the hackage importer
return a "mirror://hackage" uri? IIRC this is needed for pypi too.


signature.asc
Description: PGP signature


Re: [PATCH 1/2] gnu: libtool: Use 'modify-phases'.

2017-01-05 Thread Marius Bakke
Leo Famulari  writes:

> On Sun, Jan 01, 2017 at 03:24:27PM +, ng0 wrote:
>> * gnu/packages/autotools.scm (libtool): Use 'modify-phases'.
>> [arguments]: Use 'modify-phases'.
>
>> + ("help2man" ,help2man) ;because we modify ltmain.sh
>
> This should go in the other patch, right?
>
> I attached a revised patch series with that change, and another bug fix.
> From 7f0fce3f71be7da461de89fb5f6f47289c6498b6 Mon Sep 17 00:00:00 2001
> From: ng0 
> Date: Sun, 1 Jan 2017 15:24:27 +
> Subject: [PATCH 1/3] gnu: libtool: Use 'modify-phases'.
>
> * gnu/packages/autotools.scm (libtool): Use 'modify-phases'.
> [arguments]: Use 'modify-phases'.
>
> Signed-off-by: Leo Famulari 
> ---
>  gnu/packages/autotools.scm | 30 --
>  1 file changed, 16 insertions(+), 14 deletions(-)
>
> diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
> index 72492e70e..64a1e68bf 100644
> --- a/gnu/packages/autotools.scm
> +++ b/gnu/packages/autotools.scm
> @@ -5,6 +5,7 @@
>  ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis 
>  ;;; Copyright © 2015 Mark H Weaver 
>  ;;; Copyright © 2016 David Thompson 
> +;;; Copyright © 2017 ng0 
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -313,21 +314,22 @@ Makefile, simplifying the entire process for the 
> developer.")
>(or (%current-target-system)
>(%current-system
>  
> -   #:phases (alist-cons-before
> - 'check 'pre-check
> - (lambda* (#:key inputs #:allow-other-keys)
> -   ;; Run the test suite in parallel, if possible.
> -   (setenv "TESTSUITEFLAGS"
> -   (string-append
> -"-j"
> -(number->string (parallel-job-count
> +   #:phases
> +   (modify-phases %standard-phases
> + (add-before 'check 'pre-check
> + (lambda* (#:key inputs #:allow-other-keys)
> +   ;; Run the test suite in parallel, if possible.
> +   (setenv "TESTSUITEFLAGS"
> +   (string-append
> +"-j"
> +(number->string (parallel-job-count
> +
> +   ;; Path references to /bin/sh.
> +   (let ((bash (assoc-ref inputs "bash")))
> + (substitute* "tests/testsuite"
> +   (("/bin/sh")
> +(string-append bash "/bin/bash")

There was a discussion about making "substitute*" return #t if one or
more substitutions were done, is that implemented yet? If not, please
make sure phases end on a truthy value :-)


signature.asc
Description: PGP signature


Re: [PATCH] guix: python-build-system: Properly inform caller about test status.

2017-01-05 Thread Marius Bakke
Danny Milosavljevic  writes:

> * guix/build/python-build-system.scm (check): Properly inform caller about 
> test status.
> ---
>  guix/build/python-build-system.scm | 13 +++--
>  1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/guix/build/python-build-system.scm 
> b/guix/build/python-build-system.scm
> index 3f280b0ac..d46739827 100644
> --- a/guix/build/python-build-system.scm
> +++ b/guix/build/python-build-system.scm
> @@ -136,12 +136,13 @@
>;; build/lib in some cases, e.g. if the source is in a sub-directory
>;; (given with `package_dir`). This will by copied to the output, too,
>;; so we need to remove.
> -  (let ((before (find-files "build" "\\.egg-info$" #:directories? #t)))
> -(call-setuppy test-target '() use-setuptools?)
> -(let* ((after (find-files "build" "\\.egg-info$" #:directories? #t))
> -   (inter (lset-difference eqv? after before)))
> -  (for-each delete-file-recursively inter)))
> -#t))
> +  (let* ((before (find-files "build" "\\.egg-info$" #:directories? #t))
> + (status (call-setuppy test-target '() use-setuptools?))
> + (after (find-files "build" "\\.egg-info$" #:directories? #t))
> + (inter (lset-difference eqv? after before)))
> +(for-each delete-file-recursively inter)
> +status)
> +  #t))

This is fixed with e46a043ecd9f9ef46d1d44393362bb7016454544 from the
'python-tests' branch. Speaking of which, there are still some failing
packages in that branch listed at:
https://hydra.gnu.org/eval/109407?compare=master#tabs-now-fail

I'll try to take care of the remaining failures in the next week so we
can merge this branch. Contributions are always welcome however ;-)



signature.asc
Description: PGP signature


Re: Ruby 2.4.0 update

2017-01-05 Thread Marius Bakke
Ben Woodcroft  writes:

> Hi Marius,
>
> On 26/12/16 23:18, Ben Woodcroft wrote:
>> On 26/12/16 03:09, Marius Bakke wrote:
>>> In good tradition, ruby made a new release today (25/12)[0].
>>>
>>> I tried building some packages with the new version, but ruby-minitest
>>> complains that Rake 12 is too new (even with the latest minitest). There
>>> have been some core changes as well, with Fixnum and Bignum now merged
>>> into a single Integer class.
>> I updated ruby-minitest to the newest version and pushed, but as you 
>> mention the check phase requires rake <12. This actually stems from 
>> hoe though rather than minitest, I've asked the devs about it here:
>> https://github.com/seattlerb/hoe/issues/77
> This issue has now been fixed in hoe, in the just released 3.16.0. I 
> just pushed this to master after building the downstream packages 
> without issue as '8e941f20',.

Cool, thanks!

>>> I suggest that we keep ruby 2.3 as the main "ruby" variable until the
>>> ecosystem catches up. Users will still get the latest version when
>>> using `guix package` or `guix environment`. WDYT?
>> I would agree, but I'd hope that the hoe issue is an isolated one and 
>> that we can make ruby-2.4 the default very soon.
>   What do you think about making 2.4 the default and pushing to staging, 
> if there are no obvious issues?

Sounds good for the next staging cycle :-)


signature.asc
Description: PGP signature


Re: [PATCH] gnu: Add beep.

2017-01-05 Thread Tobias Geerinckx-Rice
José,

On 04/01/17 23:32, José Miguel Sánchez García wrote:
> I've applied your changes, ran guix lint and tested it. Here you have
> the fixed patch.

Thank you!

Pushed as abe2ec7 with small adjustments below.
I hope that's all right.

Kind regards,

T G-R

---

Fix indentation:
  (base32
-   "0bgch6jq5cahakk3kbr9549iysf2dik09afixxy5brbxk1xfzb2r"
+  "0bgch6jq5cahakk3kbr9549iysf2dik09afixxy5brbxk1xfzb2r"


Use lambda* instead of %outputs directly, don't abbreviate phase names,
(partially) restore use of let:
-   (lambda _
- (substitute* "Makefile" (("/usr") (assoc-ref %outputs "out")
- (add-before 'install 'create-dest-dirs
-   (lambda _
- (mkdir-p (string-append (assoc-ref %outputs "out") "/bin"))
- (mkdir-p (string-append (assoc-ref %outputs "out") "/man/man1")))
+   (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "Makefile" (("/usr") (assoc-ref outputs "out")
+ (add-before 'install 'create-output-directories
+   (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref %outputs "out")))
+   (mkdir-p (string-append out "/bin"))
+   (mkdir-p (string-append out "/man/man1"

Fix typo:
- (synopsis "Linux command-line utilitu to control the PC speaker")
+ (synopsis "Linux command-line utility to control the PC speaker")



signature.asc
Description: OpenPGP digital signature


Re: Ruby 2.4.0 update

2017-01-05 Thread Ben Woodcroft

Hi Marius,

On 26/12/16 23:18, Ben Woodcroft wrote:

On 26/12/16 03:09, Marius Bakke wrote:

In good tradition, ruby made a new release today (25/12)[0].

I tried building some packages with the new version, but ruby-minitest
complains that Rake 12 is too new (even with the latest minitest). There
have been some core changes as well, with Fixnum and Bignum now merged
into a single Integer class.
I updated ruby-minitest to the newest version and pushed, but as you 
mention the check phase requires rake <12. This actually stems from 
hoe though rather than minitest, I've asked the devs about it here:

https://github.com/seattlerb/hoe/issues/77
This issue has now been fixed in hoe, in the just released 3.16.0. I 
just pushed this to master after building the downstream packages 
without issue as '8e941f20',.


I'm not sure that the Fixnum/Bignum changes are particularly harmful 
if I'm understanding correctly, since both classes can still be used. 
I can't see any possible backwards incompatibility.

Well, I suppose it isn't impossible. Shouldn't say such things.


I suggest that we keep ruby 2.3 as the main "ruby" variable until the
ecosystem catches up. Users will still get the latest version when
using `guix package` or `guix environment`. WDYT?
I would agree, but I'd hope that the hoe issue is an isolated one and 
that we can make ruby-2.4 the default very soon.
 What do you think about making 2.4 the default and pushing to staging, 
if there are no obvious issues?


Thanks and happy travels,
ben



Re: [PATCH] gnu: Add tipp10 touch typing tutor.

2017-01-05 Thread Ludovic Courtès
Hartmut Goebel  skribis:

> * gnu/packages/education.scm (touch10): New variable.
> * gnu/packages/patches/tipp10-fix-compiling.patch,
>   gnu/packages/patches/tipp10-remove-license-code.patch: New files.
> * gnu/local.mk (dist_patch_DATA): Register them.

[...]

> +(description "Tipp10 is a touch typing tutor for Windows, Mac OS and
> +Linux.  The ingenious thing about the software is its intelligence feature:

Please remove “for Windows, Mac OS and Linux.”

OK with this change!

Ludo’.



Re: [PATCH] gnu: Add tipp10 touch typing tutor.

2017-01-05 Thread Ludovic Courtès
Hello,

Hartmut Goebel  skribis:

> Am 19.12.2016 um 22:39 schrieb Ludovic Courtès:
>>
>>> +  (uri (string-append "mirror://debian/pool/main/"
>>> +  "t/tipp10/tipp10_2.1.0.orig.tar.gz"))
>> Is there really no upstream for this program?  tipp10.com seems to be
>> live, no?
>
> There is, but guix is not able to handle the download URL, which is
>  or
> .This page
> uses  " content="1;url=/en/download/getfile/3/1483193955/" />". I asked the
> author for a different URL, but he did not answer.

OK.  In this case, I think the future you (or anyone else) would
appreciate a comment that says just that.  ;-)

>>
>>> +  (patches (search-patches "tipp10-FixCompiling.patch"
>>> +   "tipp10-RemoveLicenseCode.patch"
>> Please use lowercase and hyphens for file names.  :-)
>
> Anything else unimportant I can waste my time on? These are the
> file-names of the patches at debian. I see absolutely no benefit in
> changing them.

We have conventions, comments like the one I did are certainly boring,
but I think it’s beneficial to everyone when the code is consistent.

>>
>>> +(description " TIPP10 is a free touch typing tutor for Windows, Mac OS 
>>> and
>>  ^
>> Extra space.
>>
>> Please don’t mention supported operating systems; what matters is that
>> it works on GNU.
>
> IMO this is interesting for users and for spreading free software. If
> one reads this i might think: "O, coll, I can recommend this to some
> friend still using Windooze and ma convince her about free software."

I understand, but the description is meant for Guix users, so it’s a
different purpose.

>>> +Linux.  The ingenious thing about the software is its intelligence feature.
>> “Intelligence feature” sounds vague; could it be rephrased in more
>> precise terms?
>>
>>> +Note: To change the language settings choose Datei (File) →
>>> +Grundeinstellungen (Generell Settings) → Sprache (Language) and change from
>>> +Deutsch to English. The you have restart the program to have the change 
>>> take
>>> +effect.")
>> This information doesn’t belong here.
>>
>> Does Debian have patches to make this program honor the current locale?
>> That would be the best option.
>
> No, there are not patches, this is why I put this information there. If
> ou dislike, please recommend a better place.

No suggestions, leave it here if that’s the best we can do.

>>> +(license license:gpl2)))
>> Version 2 only?
>
> This is what https://www.tipp10.com/en/download/ says.

My comment was more about whether you checked the source code headers,
which are authoritative.  They do not have the “or any later version”
wording, so that’s ‘gpl2’ indeed.

>>> +-Exec=tipp10
>>> ++Exec=/usr/bin/tipp10
>> This doesn’t look useful.
>
> Yes, but this is part of the original Debian patch. I'd prefer to keep
> this patch unchanged to make it easier to follow any changes or fixes
> Debian incorporates. Since guix is fixing this path anyway, there is no
> use in maintaining a own set of patches.

OK.

> To be frank, some of your comment on this patch are nitpicking at its
> best. I have the impression that you did not trust me to have spend only
> a little thought on what I'm doing. And you are demanding things (patch
> filenames, change to upstream patches) which have no or negligible
> benefit – even if seen in the long run. This *very* discouraging!

(As a side note, these are not “upstream patches”.)

I’m sorry to read that.  The way I see it is that we all do our best to
improve the system.

Thanks,
Ludo’.



Re: [PATCH 1/2] gnu: libtool: Use 'modify-phases'.

2017-01-05 Thread ng0
Ludovic Courtès  writes:

> Leo Famulari  skribis:
>
>> On Sun, Jan 01, 2017 at 03:24:27PM +, ng0 wrote:
>>> * gnu/packages/autotools.scm (libtool): Use 'modify-phases'.
>>> [arguments]: Use 'modify-phases'.
>>
>>> + ("help2man" ,help2man) ;because we modify ltmain.sh
>>
>> This should go in the other patch, right?
>>
>> I attached a revised patch series with that change, and another bug fix.
>>
>> From 7f0fce3f71be7da461de89fb5f6f47289c6498b6 Mon Sep 17 00:00:00 2001
>> From: ng0 
>> Date: Sun, 1 Jan 2017 15:24:27 +
>> Subject: [PATCH 1/3] gnu: libtool: Use 'modify-phases'.
>>
>> * gnu/packages/autotools.scm (libtool): Use 'modify-phases'.
>> [arguments]: Use 'modify-phases'.
>>
>> Signed-off-by: Leo Famulari 
>
> [...]
>
>> +   (modify-phases %standard-phases
>> + (add-before 'check 'pre-check
>> + (lambda* (#:key inputs #:allow-other-keys)
>
> Could you align “(” below the ‘d’ of ‘add-before’?

Sorry.
I wonder what happened here, this happens with all new files I
have. Seems like at some point the emacs version I have started
ignoring the .emacs.d/scheme-indent-function.el I have...

>> From fc60e04d85ab171538333fe5aa47c2e6849b02e3 Mon Sep 17 00:00:00 2001
>> From: ng0 
>> Date: Sun, 1 Jan 2017 15:24:28 +
>> Subject: [PATCH 2/3] gnu: libtool: Restore ltmain.sh shebang.
>>
>> This fixes 
>>
>> * gnu/packages/autotools.scm (libtool)[arguments]: Add new phase
>> 'restore-ltmain-shebang'.
>> [native-inputs]: Add help2man.
>>
>> Signed-off-by: Leo Famulari 
>
> [...]
>
>> + (add-after 'patch-source-shebangs 'restore-ltmain-shebang
>> +(lambda* (#:key inputs #:allow-other-keys)
>
> Likewise.
>
>> +  (substitute* "build-aux/ltmain.in"
>> +(((string-append (assoc-ref inputs "bash") 
>> "/bin/sh"))
>> + "/bin/sh")))
>
> We should use literal strings for patterns, like:
>
>   (substitute* …
> (("^#!.*/bin/sh$") …))
>
>> From 809120b991603b8c557be7481be2bbae29bd8a7f Mon Sep 17 00:00:00 2001
>> From: Leo Famulari 
>> Date: Wed, 4 Jan 2017 19:44:27 -0500
>> Subject: [PATCH 3/3] gnu: libtool: Don't replace 'sh' reference with 'bash'.
>>
>> Bash behaves differently based on how it is invoked (see Invocation in 
>> bash(1)).
>>
>> * gnu/packages/autotools.scm (libtool)[arguments]: Use /bin/sh instead
>> of /bin/bash in 'pre-check' phase. Fix typo in comment.
>
> Makes sense.
>
> Could you push them to ‘core-updates’?
>
> Thank you Leo & ng0!
>
> Ludo’.
>

-- 
♥Ⓐ  ng0
PGP keys and more: https://n0is.noblogs.org/ http://ng0.chaosnet.org



Re: [PATCH] gnu: Add Prosody service.

2017-01-05 Thread ng0
Hartmut Goebel  writes:

> Hi,
>
> Thanks for this service :-)
>
> Am 04.01.2017 um 22:55 schrieb Clément Lassieur:

>> +;;; Commentary:
>> +;;;
>> +;;; Messaging services.
>> +;;;
>> +;;; Code:
> […]
>> +;;; messaging.scm ends here
>
> I'd leave this comment away. It is of now use. We had a loner discussion
> about this here on the list in autum.

... which came to no real result, so these end comments are
perfectly fine and up to the person who contributes the file
first. So Clément, decide wether you want it or not.

Thanks for being faster than myself in creating this service
module. I'll just wait with psyced-service until this is in
master.

> -- 
> Regards
> Hartmut Goebel
>
> | Hartmut Goebel  | h.goe...@crazy-compilers.com   |
> | www.crazy-compilers.com | compilers which you thought are impossible |
>
>
>

-- 
♥Ⓐ  ng0
PGP keys and more: https://n0is.noblogs.org/ http://ng0.chaosnet.org



Re: [PATCH 4/7] gnu: Add idris-lightyear.

2017-01-05 Thread Ludovic Courtès
David Craven  skribis:

>> I’m not sure what a ‘phase-build-system’ would look like, if not like
>> ‘gnu-build-system’, but it’s an interesting idea to explore.
>
> I think you are right, it would look exactly like the
> gnu-build-system. I think my issue wasn't technical but psychological.
> It feels like other build-systems aren't first class citizens, but
> that's a minor issue and wouldn't change anything worthwhile.

OK.

>> Dave Thompson recently suggested that maybe phases could be first-class,
>> i.e., directly exposed on the “host side”, which is indeed a valid
>> design question.  Another thing worth exploring!
>
> Sounds interesting. Did he provide an example of what that would look like?

I don’t think so, but maybe they’ll have to now?  ;-)

>> The ‘wip-build-systems-gexp’ branch is still around and I plan to look
>> into it again…
>
> I was impressed by how easy it was to rebase it after 1.5 years!

If you rebased it and there were no suspicious conflicts, feel free to
delete + push!

Thanks,
Ludo’.



Re: pycrypto buffer overflow (potentially affects onionshare and other packages)

2017-01-05 Thread Ludovic Courtès
Leo Famulari  skribis:

> On Mon, Jan 02, 2017 at 09:41:26PM +0100, Ludovic Courtès wrote:
>> Leo Famulari  skribis:
>> > Based on my discussion with the Stem maintainer, I removed pycrypto from
>> > the dependency graph of OnionShare and added a comment about removing
>> > the pycrypto package in 4de2a710a6a309a1601f1cf6fc15b9b638d3a3cb and
>> > 1194575b3c44969e4f68cd10a62e6ed8603e39b4, respectively.
>> 
>> Thanks.  Looks like another case of an important piece of software
>> lacking a maintainer…
>
> At this point, I think it's recommended to use the 'cryptography'
> module, which we have as python-cryptography. This seems to be where all
> the development energy is being spent.
>
> Debian adapted the upstream patch:
>
> https://anonscm.debian.org/cgit/collab-maint/python-crypto.git/commit/?id=0de2243837ed369a086f15c50cca2be85bdfab9d
>
> What do people think?

Maybe we should apply this patch as well as progressively migrate to
python-cryptography whenever possible?

Ludo’.



Re: [PATCH 1/2] gnu: libtool: Use 'modify-phases'.

2017-01-05 Thread Ludovic Courtès
Leo Famulari  skribis:

> On Sun, Jan 01, 2017 at 03:24:27PM +, ng0 wrote:
>> * gnu/packages/autotools.scm (libtool): Use 'modify-phases'.
>> [arguments]: Use 'modify-phases'.
>
>> + ("help2man" ,help2man) ;because we modify ltmain.sh
>
> This should go in the other patch, right?
>
> I attached a revised patch series with that change, and another bug fix.
>
> From 7f0fce3f71be7da461de89fb5f6f47289c6498b6 Mon Sep 17 00:00:00 2001
> From: ng0 
> Date: Sun, 1 Jan 2017 15:24:27 +
> Subject: [PATCH 1/3] gnu: libtool: Use 'modify-phases'.
>
> * gnu/packages/autotools.scm (libtool): Use 'modify-phases'.
> [arguments]: Use 'modify-phases'.
>
> Signed-off-by: Leo Famulari 

[...]

> +   (modify-phases %standard-phases
> + (add-before 'check 'pre-check
> + (lambda* (#:key inputs #:allow-other-keys)

Could you align “(” below the ‘d’ of ‘add-before’?

> From fc60e04d85ab171538333fe5aa47c2e6849b02e3 Mon Sep 17 00:00:00 2001
> From: ng0 
> Date: Sun, 1 Jan 2017 15:24:28 +
> Subject: [PATCH 2/3] gnu: libtool: Restore ltmain.sh shebang.
>
> This fixes 
>
> * gnu/packages/autotools.scm (libtool)[arguments]: Add new phase
> 'restore-ltmain-shebang'.
> [native-inputs]: Add help2man.
>
> Signed-off-by: Leo Famulari 

[...]

> + (add-after 'patch-source-shebangs 'restore-ltmain-shebang
> +(lambda* (#:key inputs #:allow-other-keys)

Likewise.

> +  (substitute* "build-aux/ltmain.in"
> +(((string-append (assoc-ref inputs "bash") 
> "/bin/sh"))
> + "/bin/sh")))

We should use literal strings for patterns, like:

  (substitute* …
(("^#!.*/bin/sh$") …))

> From 809120b991603b8c557be7481be2bbae29bd8a7f Mon Sep 17 00:00:00 2001
> From: Leo Famulari 
> Date: Wed, 4 Jan 2017 19:44:27 -0500
> Subject: [PATCH 3/3] gnu: libtool: Don't replace 'sh' reference with 'bash'.
>
> Bash behaves differently based on how it is invoked (see Invocation in 
> bash(1)).
>
> * gnu/packages/autotools.scm (libtool)[arguments]: Use /bin/sh instead
> of /bin/bash in 'pre-check' phase. Fix typo in comment.

Makes sense.

Could you push them to ‘core-updates’?

Thank you Leo & ng0!

Ludo’.



Re: [PATCH] gnu: Add Prosody service.

2017-01-05 Thread Hartmut Goebel
Hi,

Thanks for this service :-)

Am 04.01.2017 um 22:55 schrieb Clément Lassieur:
> +(define %default-modules-enabled
> +  '("roster"
> +"saslauth"
> +"tls"
> +"dialback"
> +"disco"
> +"private"
> +"vcard"
> +"version"
> +"uptime"
> +"time"
> +"ping"
> +"pep"
> +"register"
> +"admin_adhoc"))

I suggest adding omemo (axelotl encryption) here, since this is one of
the most important new features for XMPP.

> + "Multi-user chat (MUC) is Prosody's module for allowing you to create
> +hosted chatrooms/conferences for XMPP users.
> +
> +General information on setting up and using MUC chatrooms can be found in our
> +\"Chatrooms\" documentation (@url{http://prosody.im/doc/chatrooms}), which 
> you
> +should read if you are new to XMPP chatrooms.

s/MUC chatrooms/ multi-user chatrooms/
s/our/the/

> +;;; Commentary:
> +;;;
> +;;; Messaging services.
> +;;;
> +;;; Code:
[…]
> +;;; messaging.scm ends here

I'd leave this comment away. It is of now use. We had a loner discussion
about this here on the list in autum.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: [PATCH] gnu: bootstrap-tarballs: Cross-compile for powerpc-linux-gnu.

2017-01-05 Thread Ludovic Courtès
Hi!

csanchez...@gmail.com (Carlos Sánchez de La Lama) skribis:

>> I ended up splitting it in 3 patches (gcc, linux-libre, and
>> glibc-dynamic-linker) that I just pushed to ‘core-updates’.  I also
>> added copyright lines for you where appropriate.  Hope that’s fine!
>
> Thats perfect :)
>
>>> I think the best way to proceed is integrate this onto core-updates
>>> (once reviewed & approved), then generate a bootstrap binaries on hydra,
>>> making them available for download on the bootstrap binaries URL. At
>>> that point I can update the rest of the powerpc-linux-gnu patches (which
>>> use this binaries) with the correct hashes, and send them to the list.
>>
>> Sounds like a good plan.
>>
>> Commit 9410a5aa916035bb4d7f032a5fe81cfb497887c8 adds powerpc-linux-gnu
>> cross-builds for Hydra (though Hydra is currently busy with the
>> ‘staging’ branch.)
>
> Nice! I will generate the bootstrap tarballs locally using that commit
> to check everything target-side works, before hydra time is spent on
> that. If everything goes all right, I will then update the powerpc
> patches with the new hashes (and the expected URL for the binaries), so
> any powerpc user can jump in and use/test GUIX.

Sounds good!

>>> As Ludo suggested, I am also preparing a tutorial/blog on the porting
>>> process.
>>
>> Awesome!
>
> It is getting a little bit more complex than expected, and my time
> allowance also shorter. I am writting a set of "steps" on how I made the
> porting, including all the debugging I had to do, so what is already
> written might be useful as it is (not only as a porting guide but also
> as an example of GUIX hacking). Do you think it makes sense to publish
> it already so I can complete it later? Or better wait till it is
> finished?

Up to you!  If you have something that’s self-contained and intelligible
to people who don’t have your experience, that’s probably fine.

Cheers,
Ludo’.



Re: GnuTLS and the “trust store”

2017-01-05 Thread Ludovic Courtès
ng0  skribis:

> Ludovic Courtès  writes:
>
>> Hello!
>>
>> Marius Bakke  skribis:
>>
>>> Marius Bakke  writes:
>>>
 ng0  writes:

> * gnu/packages/curl.scm (curl)[arguments]: Add "--with-ca-bundle" 
> configure flag.
>>
>> [...]
>>
>>> I realized shortly after posting why this wasn't done already. Curl has
>>> 1403 dependent packages, which would apply for "nss-certs" as well if
>>> that is added as input. Obviously we want to be able to update TLS
>>> certificates quickly without rebuilding ~1/4 of the tree.
>>
>> Indeed.  It’s a situation where we do not want to have a static binding
>> between cURL and nss-certs; instead, they should be composed
>> dynamically, along the lines of what we already recommend at:
>
> Okay, so my proposed gnURL patch should not be applied at
> all. Reading the old threads I'm starting to understand the
> situation, but not completely.
>
>>   
>> https://www.gnu.org/software/guix/manual/html_node/X_002e509-Certificates.html
>>
>> cURL depends on GnuTLS, and GnuTLS doesn’t honor an environment variable
>> like ‘SSL_CERT_DIR’.  Its recipe has this comment:
>
> The 3rd option in 2015, subject: [PATCH] gnu: gnutls: Configure
> location of system-wide trust store, was to use openssl.

Not an option: we use GnuTLS anytime there’s a choice (which also avoids
licensing issues with the OpenSSL license).

> I'm trying to understand the problem here, the problem why
> packages like darcs, pbpst, and others are just sitting, waiting
> for months because of issues with cURL.

What is “these issues with cURL”?  It builds fine, and it’s perfectly
usable as long as /etc/ssl/certs is populated.

>>  ;; GnuTLS doesn't consult any environment variables to specify
>>  ;; the location of the system-wide trust store.  Instead it has a
>>  ;; configure-time option.  Unless specified, its configure script
>>  ;; attempts to auto-detect the location by looking for common
>>  ;; places in the file system, none of which are present in our
>>  ;; chroot build environment.  If not found, then no default trust
>>  ;; store is used, so each program has to provide its own
>>  ;; fallback, and users have to configure each program
>>  ;; independently.  This seems suboptimal.
>>  "--with-default-trust-store-dir=/etc/ssl/certs"
>>
>> Original discussion:
>>
>>   https://lists.gnu.org/archive/html/guix-devel/2014-02/msg00245.html
>
> I've read some of the threads connected to this one after I
> learned about the subject. It usually helps when the subject is
> added so I can search locally.
> What happened to the p11-kit Andreas mentioned back in 2014 or
> 2015?

Good question, I don’t know!  Perhaps we can revisit this.

Thanks,
Ludo’.



Re: [PATCH v4 0/3] Prepare for Sphinx update

2017-01-05 Thread Hartmut Goebel
Am 04.01.2017 um 21:43 schrieb Danny Milosavljevic:
>   gnu: Add python-snowballstemmer.
>   gnu: Add python-sphinx-cloud-sptheme.
>   gnu: Add python-sphinx-alabaster-theme.

LGTM.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: [PATCH v4 1/1] gnu: python-sphinx: Update to 1.4.8.

2017-01-05 Thread Hartmut Goebel
Am 04.01.2017 um 21:54 schrieb Danny Milosavljevic:
> +(native-inputs
> + `(("python-simplejson" ,python-simplejson)))

I was wondering why this is a native-input only. Please add a comment
that this is required for tests only.

Also: Did you try without tis package? The comment in the setup.py.
leaves the impression that this is only needed on PyPy, see
.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: [PATCH] guix: python-build-system: Properly inform caller about test status.

2017-01-05 Thread Hartmut Goebel
Am 05.01.2017 um 00:30 schrieb Danny Milosavljevic:
>;; build/lib in some cases, e.g. if the source is in a sub-directory
>;; (given with `package_dir`). This will by copied to the output, too,
>;; so we need to remove.

Maybe you could take the change updating my bad English comment :-)

Otherwise LGTM.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: [PATCH 1/2] gnu: libtool: Use 'modify-phases'.

2017-01-05 Thread ng0
Leo Famulari  writes:

> On Sun, Jan 01, 2017 at 03:24:27PM +, ng0 wrote:
>> * gnu/packages/autotools.scm (libtool): Use 'modify-phases'.
>> [arguments]: Use 'modify-phases'.
>
>> + ("help2man" ,help2man) ;because we modify ltmain.sh
>
> This should go in the other patch, right?

Yes. Good catch, thanks. The series below looks good to me.

> I attached a revised patch series with that change, and another bug fix.
> From 7f0fce3f71be7da461de89fb5f6f47289c6498b6 Mon Sep 17 00:00:00 2001
> From: ng0 
> Date: Sun, 1 Jan 2017 15:24:27 +
> Subject: [PATCH 1/3] gnu: libtool: Use 'modify-phases'.
>
> * gnu/packages/autotools.scm (libtool): Use 'modify-phases'.
> [arguments]: Use 'modify-phases'.
>
> Signed-off-by: Leo Famulari 
> ---
>  gnu/packages/autotools.scm | 30 --
>  1 file changed, 16 insertions(+), 14 deletions(-)
>
> diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
> index 72492e70e..64a1e68bf 100644
> --- a/gnu/packages/autotools.scm
> +++ b/gnu/packages/autotools.scm
> @@ -5,6 +5,7 @@
>  ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis 
>  ;;; Copyright © 2015 Mark H Weaver 
>  ;;; Copyright © 2016 David Thompson 
> +;;; Copyright © 2017 ng0 
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -313,21 +314,22 @@ Makefile, simplifying the entire process for the 
> developer.")
>(or (%current-target-system)
>(%current-system
>  
> -   #:phases (alist-cons-before
> - 'check 'pre-check
> - (lambda* (#:key inputs #:allow-other-keys)
> -   ;; Run the test suite in parallel, if possible.
> -   (setenv "TESTSUITEFLAGS"
> -   (string-append
> -"-j"
> -(number->string (parallel-job-count
> +   #:phases
> +   (modify-phases %standard-phases
> + (add-before 'check 'pre-check
> + (lambda* (#:key inputs #:allow-other-keys)
> +   ;; Run the test suite in parallel, if possible.
> +   (setenv "TESTSUITEFLAGS"
> +   (string-append
> +"-j"
> +(number->string (parallel-job-count
> +
> +   ;; Path references to /bin/sh.
> +   (let ((bash (assoc-ref inputs "bash")))
> + (substitute* "tests/testsuite"
> +   (("/bin/sh")
> +(string-append bash "/bin/bash")
>  
> -   ;; Path references to /bin/sh.
> -   (let ((bash (assoc-ref inputs "bash")))
> - (substitute* "tests/testsuite"
> -   (("/bin/sh")
> -(string-append bash "/bin/bash")
> - %standard-phases)))
>  (synopsis "Generic shared library support tools")
>  (description
>   "GNU Libtool helps in the creation and use of shared libraries, by
> -- 
> 2.11.0
>
> From fc60e04d85ab171538333fe5aa47c2e6849b02e3 Mon Sep 17 00:00:00 2001
> From: ng0 
> Date: Sun, 1 Jan 2017 15:24:28 +
> Subject: [PATCH 2/3] gnu: libtool: Restore ltmain.sh shebang.
>
> This fixes 
>
> * gnu/packages/autotools.scm (libtool)[arguments]: Add new phase
> 'restore-ltmain-shebang'.
> [native-inputs]: Add help2man.
>
> Signed-off-by: Leo Famulari 
> ---
>  gnu/packages/autotools.scm | 9 -
>  1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
> index 64a1e68bf..217517ade 100644
> --- a/gnu/packages/autotools.scm
> +++ b/gnu/packages/autotools.scm
> @@ -27,6 +27,7 @@
>#:use-module (gnu packages)
>#:use-module (gnu packages perl)
>#:use-module (gnu packages m4)
> +  #:use-module (gnu packages man)
>#:use-module (gnu packages bash)
>#:use-module (guix utils)
>#:use-module (guix packages)
> @@ -301,6 +302,7 @@ Makefile, simplifying the entire process for the 
> developer.")
>  (propagated-inputs `(("m4" ,m4)))
>  (native-inputs `(("m4" ,m4)
>   ("perl" ,perl)
> + ("help2man" ,help2man) ;because we modify ltmain.sh
>   ("automake" ,automake)  ;some tests rely on 
> 'aclocal'
>   ("autoconf" ,(autoconf-wrapper ;others on 'autom4te'
>  
> @@ -328,7 +330,12 @@ Makefile, simplifying the entire process for the 
> developer.")
> (let ((bash (assoc-ref inputs "bash")))
>   (substitute* "tests/testsuite"
> (("/bin/sh")
> -  

Cross-distro reproducible build patches

2017-01-05 Thread Ludovic Courtès
Hello Guix!

A new initiative to share repro-build patches has started as a followup
to the Reproducible Build Summit:

  
http://lists.reproducible-builds.org/pipermail/rb-general/2017-January/000222.html
  https://github.com/distropatches/reproducible-builds

If anyone would like to help out by posting the patches that we have to
this repo, that would be nice.

It would scale better if we could easily list repro-build patches and
snippets from the patches that we have.

A quick hack gives this:

--8<---cut here---start->8---
scheme@(guile-user)> ,use(ice-9 ftw)
scheme@(guile-user)> (define (grep file)
   (call-with-input-file file
 (lambda (port)
   (let ((contents (read-string port)))
 (or (string-contains-ci contents "reproducib")
 (string-contains-ci contents 
"deterministic"))
;;; :138:43: warning: possibly unbound variable `read-string'
scheme@(guile-user)> ,use(ice-9 rdelim)
scheme@(guile-user)> (chdir "/home/ludo/src/guix/gnu/packages/patches")
scheme@(guile-user)> (scandir "."
  (lambda (file)
(and (string-suffix? ".patch" file)
 (grep file
$3 = ("awesome-reproducible-png.patch" "hdf4-reproducibility.patch" 
"libbonobo-activation-test-race.patch" "libxslt-generated-ids.patch" 
"metabat-remove-compilation-date.patch" "nasm-no-ps-pdf.patch" 
"perl-deterministic-ordering.patch" "python-2-deterministic-build-info.patch" 
"python-3-deterministic-build-info.patch" "tcl-mkindex-deterministic.patch" 
"unzip-remove-build-date.patch")
scheme@(guile-user)> (length $3)
$4 = 11
--8<---cut here---end--->8---

… but I think a number things are written as snippets rather than actual
patches.

Thoughts?

Ludo’.



Re: [PATCH] gnu: bootstrap-tarballs: Cross-compile for powerpc-linux-gnu.

2017-01-05 Thread Carlos Sánchez de La Lama
Hi Ludo!

> Happy new year!  :-)

Thanks! Happy new year!

> I ended up splitting it in 3 patches (gcc, linux-libre, and
> glibc-dynamic-linker) that I just pushed to ‘core-updates’.  I also
> added copyright lines for you where appropriate.  Hope that’s fine!

Thats perfect :)

>> I think the best way to proceed is integrate this onto core-updates
>> (once reviewed & approved), then generate a bootstrap binaries on hydra,
>> making them available for download on the bootstrap binaries URL. At
>> that point I can update the rest of the powerpc-linux-gnu patches (which
>> use this binaries) with the correct hashes, and send them to the list.
>
> Sounds like a good plan.
>
> Commit 9410a5aa916035bb4d7f032a5fe81cfb497887c8 adds powerpc-linux-gnu
> cross-builds for Hydra (though Hydra is currently busy with the
> ‘staging’ branch.)

Nice! I will generate the bootstrap tarballs locally using that commit
to check everything target-side works, before hydra time is spent on
that. If everything goes all right, I will then update the powerpc
patches with the new hashes (and the expected URL for the binaries), so
any powerpc user can jump in and use/test GUIX.

>> As Ludo suggested, I am also preparing a tutorial/blog on the porting
>> process.
>
> Awesome!

It is getting a little bit more complex than expected, and my time
allowance also shorter. I am writting a set of "steps" on how I made the
porting, including all the debugging I had to do, so what is already
written might be useful as it is (not only as a porting guide but also
as an example of GUIX hacking). Do you think it makes sense to publish
it already so I can complete it later? Or better wait till it is
finished?

> Sorry again for the delay and the frustration it probably entailed.

Do not worry. I know how it is with a lot of patches coming in :). I
needed (and still need more) time for writing the tutorial anyways.

Thanks!

-- 
Carlos