Re: [PATCH 0/3] Defaulting to ci.guix.info (aka. berlin.guixsd.org)

2018-12-03 Thread Ricardo Wurmus


Hi Mark,

> Ludovic Courtès  writes:
>
>> These patches (actually the last one) switch Guix to default to
>>  for substitutes, in preparation for the
>> upcoming 0.16.0 release (hopefully this week!).
>
> Who owns the guix.info domain?

I registered it and offered it to Guix Europe (though we aren’t yet
sharing administration of the domain).

--
Ricardo




Re: [PATCH 0/3] Defaulting to ci.guix.info (aka. berlin.guixsd.org)

2018-12-03 Thread Meiyo Peng
Hi Ludo,

Ludovic Courtès  writes:

> For the domain name I initially wanted “ci.guix.gnu.org” but we failed
> to set that up.  Oh well, I think that’s OK.

I don't think ci.guix.info is a suitable name for our default substitute
server. You may think I paranoid, but if I accidentally find out
ci.guix.info is my default substitute server, I will be cautious and
verify it's integrity.

Let's use a subdomain of gnu.org. If you encounter any obstacles while
setting up the system, we'd like to help.

--
Meiyo Peng



Re: Guix receives donation from the Hanshake project!

2018-12-03 Thread Christopher Lemmer Webber
Leo Famulari writes:

> On Mon, Dec 03, 2018 at 10:34:23PM +0100, Ludovic Courtès wrote:
>> Hello Guix!
>> 
>> We have some good news: the Hanshake project donated to GNU and the FSF,
>> and part of that goes to us!
>> 
>>   
>> https://gnu.org/s/guix/blog/2018/gnu-guix-receives-donation-from-the-handshake-project/
>> 
>> Concretely that’ll be 90KUSD for Guix (the FSF keeps 10% of the 100K we
>> got).  As we wrote in the blog post above, that opens the door to quite
>> a few things and I’m sure we’ll put the money to good use.  Now we need
>> your help to carry out projects such as an expansion of the build farm!
>
> Wow, that's awesome!
>
>> A big thanks to Handshake for this awesome gift and to the FSF for
>> handling it!
>
> Yes, thanks very much to all involved!

That's incredible!



Re: Guix receives donation from the Hanshake project!

2018-12-03 Thread Leo Famulari
On Mon, Dec 03, 2018 at 10:34:23PM +0100, Ludovic Courtès wrote:
> Hello Guix!
> 
> We have some good news: the Hanshake project donated to GNU and the FSF,
> and part of that goes to us!
> 
>   
> https://gnu.org/s/guix/blog/2018/gnu-guix-receives-donation-from-the-handshake-project/
> 
> Concretely that’ll be 90K USD for Guix (the FSF keeps 10% of the 100K we
> got).  As we wrote in the blog post above, that opens the door to quite
> a few things and I’m sure we’ll put the money to good use.  Now we need
> your help to carry out projects such as an expansion of the build farm!

Wow, that's awesome!

> A big thanks to Handshake for this awesome gift and to the FSF for
> handling it!

Yes, thanks very much to all involved!


signature.asc
Description: PGP signature


Re: [PATCH 0/3] Defaulting to ci.guix.info (aka. berlin.guixsd.org)

2018-12-03 Thread Mark H Weaver
Hi Ludovic,

Ludovic Courtès  writes:

> These patches (actually the last one) switch Guix to default to
>  for substitutes, in preparation for the
> upcoming 0.16.0 release (hopefully this week!).

Who owns the guix.info domain?  Also, who owns the guixsd.org domain?

 Thanks,
   Mark



Guix receives donation from the Hanshake project!

2018-12-03 Thread Ludovic Courtès
Hello Guix!

We have some good news: the Hanshake project donated to GNU and the FSF,
and part of that goes to us!

  
https://gnu.org/s/guix/blog/2018/gnu-guix-receives-donation-from-the-handshake-project/

Concretely that’ll be 90K USD for Guix (the FSF keeps 10% of the 100K we
got).  As we wrote in the blog post above, that opens the door to quite
a few things and I’m sure we’ll put the money to good use.  Now we need
your help to carry out projects such as an expansion of the build farm!

A big thanks to Handshake for this awesome gift and to the FSF for
handling it!

Ludo’.


signature.asc
Description: PGP signature


Re: Using a CDN or some other mirror?

2018-12-03 Thread Ricardo Wurmus


Ludovic Courtès  writes:

> Hello,
>
> Ludovic Courtès  skribis:
>
>> These patches (actually the last one) switch Guix to default to
>>  for substitutes, in preparation for the
>> upcoming 0.16.0 release (hopefully this week!).
>
> Right now, ci.guix.info points to berlin.guixsd.org, the front-end of
> the build farm hosted at the MDC.
>
> The previous setup was that mirror.hydra.gnu.org mirrors hydra.gnu.org
> (the actual build farm front-end) using an nginx proxy:
>
>   
> https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/nginx/mirror.conf
>
> This provides a bit of redundancy that we don’t have currently for
> berlin.
>
> Thus, I’m thinking about using a similar setup, but hosting the mirror
> on some Big Corp CDN or similar.  Chris Marusich came up with a setup
> along these lines a while back:
>
>   https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00312.html

Large ISPs also provide CDN services.  I already contacted Deutsche
Telekom so that we can compare their CDN offer with the Amazon Cloudfont
setup that Chris has configured.

--
Ricardo




Re: [PATCH 2/3] Remove most references to hydra.gnu.org.

2018-12-03 Thread Ricardo Wurmus


Ludovic Courtès  writes:

> * Makefile.am (assert-binaries-available): Don't mention hydra.gnu.org
> in comment.
> * build-aux/check-available-binaries.scm: Likewise.
> * build-aux/check-final-inputs-self-contained.scm: Likewise.
> * doc/guix.texi (SUBSTITUTE-SERVER): New variable.
> Use it throughout instead of "mirror.hydra.gnu.org".
> * doc/contributing.texi (Submitting Patches): Likewise.
> * gnu/services/base.scm (hydra-key-authorization)
> (guix-activation): Remove mentions of "hydra.gnu.org" in comments and
> messages.
> * gnu/system/install.scm (%installation-services): Likewise.
> * guix/scripts/size.scm (guix-size): Likewise.

This looks good to me.

-- 
Ricardo




Re: [PATCH 3/3] build: Default to https://ci.guix.info for substitutes.

2018-12-03 Thread Ricardo Wurmus


Ludovic Courtès  writes:

> * doc/guix.texi (SUBSTITUTE-SERVER): Switch to ci.guix.info.
[…]
> diff --git a/doc/guix.texi b/doc/guix.texi
> index d96c35eace..a5ae1c65e6 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -14,7 +14,7 @@
>  @set KEY-SERVER pool.sks-keyservers.net
>  
>  @c The official substitute server used by default.
> -@set SUBSTITUTE-SERVER ci.guix.info
> +@set SUBSTITUTE-SERVER mirror.hydra.gnu.org

Is this really correct?

-- 
Ricardo




Re: 01/01: gnu: mesa: Update to 18.2.3.

2018-12-03 Thread Marius Bakke
Hello Rutger,

rhell...@mykolab.com (Rutger Helling) writes:

> rhelling pushed a commit to branch staging
> in repository guix.
>
> commit 77ec9b983087900d85b8de704902ff2c1afcb6c0
> Author: Rutger Helling 
> Date:   Fri Oct 19 18:35:50 2018 +0200
>
> gnu: mesa: Update to 18.2.3.
> 
> * gnu/packages/gl.scm (mesa): Update to 18.2.3.
> ---
>  gnu/packages/gl.scm | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
> index c005a6f..0c64e05 100644
> --- a/gnu/packages/gl.scm
> +++ b/gnu/packages/gl.scm
> @@ -224,7 +224,7 @@ also known as DXTn or DXTC) for Mesa.")
>  (define-public mesa
>(package
>  (name "mesa")
> -(version "18.2.2")
> +(version "18.2.3")
>  (source
>(origin
>  (method url-fetch)
> @@ -236,7 +236,7 @@ also known as DXTn or DXTC) for Mesa.")
>version "/mesa-" version ".tar.xz")))
>  (sha256
>   (base32
> -  "1i3ky3d210vi3f5hlr9la1kspdyv093npndxsbzdklw95aqq5fn3"))
> +  "00rrg8i1ykwvrg94gcsvjy1l9ih8bqafkq9x122h3rkk5cvmnjcz"))

This hash does not correspond to the released tarball.  Can you
look into it?


signature.asc
Description: PGP signature


New French PO file for 'guix' (version 0.16.0)

2018-12-03 Thread Translation Project Robot
Hello, gentle maintainer.

This is a message from the Translation Project robot.

A revised PO file for textual domain 'guix' has been submitted
by the French team of translators.  The file is available at:

https://translationproject.org/latest/guix/fr.po

(We can arrange things so that in the future such files are automatically
e-mailed to you when they arrive.  Ask at the address below if you want this.)

All other PO files for your package are available in:

https://translationproject.org/latest/guix/

Please consider including all of these in your next release, whether
official or a pretest.

Whenever you have a new distribution with a new version number ready,
containing a newer POT file, please send the URL of that distribution
tarball to the address below.  The tarball may be just a pretest or a
snapshot, it does not even have to compile.  It is just used by the
translators when they need some extra translation context.

The following HTML page has been updated:

https://translationproject.org/domain/guix.html

If any question arises, please contact the translation coordinator.

Thank you for all your work,

The Translation Project robot, in the
name of your translation coordinator.





Re: [PATCH 0/3] Defaulting to ci.guix.info (aka. berlin.guixsd.org)

2018-12-03 Thread Amin Bandali
Hi Ludo’,

> For the domain name I initially wanted “ci.guix.gnu.org” but we failed
> to set that up.  Oh well, I think that’s OK.

What was the failure about, if you don’t mind me asking?  I’m
curious if there might be a way to salvage it.

-amin



Re: Preparing the reduced bootstrap tarballs, take 3

2018-12-03 Thread Jan Nieuwenhuizen
Ludovic Courtès writes:

Hello Ludo',

> Jan Nieuwenhuizen  skribis:
>
>> I have updated core-updates-next with this fix, a documentation update
>> and to also include Marius' mes bootstrap cleanups from his wip-gcc7
>> branch.
>>
>> $ for i in $(./pre-inst-env guix build bootstrap-tarballs)/*; do echo 
>> $i;guix hash $i; done
>> /gnu/store/n8lrszv7qf0rwqhibm57d8jykj253bw2-bootstrap-tarballs-0/guile-static-stripped-2.2.4-x86_64-linux.tar.xz
>> 1285hlbfahp414hy3jjdghxjfgi94aj7y3fw0pz7z27421b7z2f9
>> /gnu/store/n8lrszv7qf0rwqhibm57d8jykj253bw2-bootstrap-tarballs-0/linux-libre-headers-stripped-4.14.67-x86_64-linux.tar.xz

> So, on x86_64-linux, here’s what I got:
>
> ludo@ribbon ~/src/guix/+core-updates-next$ ./pre-inst-env guix build 
> bootstrap-tarballs
> /gnu/store/n8lrszv7qf0rwqhibm57d8jykj253bw2-bootstrap-tarballs-0
> ludo@ribbon ~/src/guix/+core-updates-next$ (cd 
> /gnu/store/n8lrszv7qf0rwqhibm57d8jykj253bw2-bootstrap-tarballs-0; for i in * 
> ; do echo $i && guix hash $i ; done )
> guile-static-stripped-2.2.4-x86_64-linux.tar.xz
> 06ygv0b3dpvy93jji5yl4hdz17w4hiqm64m7ypf6g2vi4nfn9xl9

> So only ‘guile-static-stripped’ differs from yours.

Ah, beautiful!

> This may be due to
> non-determinism in bindings introduced by psyntax (something we
> addressed with , but maybe there are
> remnants around.)  I’ve uploaded mine here:
>
>   
> 
>
> Could you share yours so we can compare?

Mine is here


http://lilypond.org/janneke/mes/x86_64-linux/guile-static-stripped-2.2.4-x86_64-linux.tar.xz

...so it looks like we're walking a pretty big round , for --rounds=2 ;-)


> Anyway, I’ll run the “-s i686-linux” build because right now I only have
> the 64-bit ‘guile-static-stripped’, which is not what we want, silly me…

Oh!  Eh, is that right?  I wasn't aware...

> Should we force #:system for this one as well?

We could but then should make sure that any go files in x86_64-linux
bootstrap binaries (mes, and in time gash) are i686-linux too.

janneke

-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com



Re: Preparing the reduced bootstrap tarballs, take 3

2018-12-03 Thread Jan Nieuwenhuizen
Jan Nieuwenhuizen writes:

>>   
>> 
>>
>> Could you share yours so we can compare?
>
> Mine is here
>
> 
> http://lilypond.org/janneke/mes/x86_64-linux/guile-static-stripped-2.2.4-x86_64-linux.tar.xz
>
> ...so it looks like we're walking a pretty big round , for --rounds=2 ;-)

Diffoscope output is huge, here is the file diff list (manually edited)
--8<---cut here---start->8---
18:40:36 janneke@dundal:~/src/ludo [env]
$ PYTHONIOENCODING=utf-8 diffoscope 
~/guile-static-stripped-2.2.4-x86_64-linux.tar.xz 
guile-static-stripped-2.2.4-x86_64-linux.tar.xz |grep .*.go
│ ├── ./lib/guile/2.2/ccache/ice-9/suspendable-ports.go
│ ├── ./lib/guile/2.2/ccache/ice-9/vlist.go
│ ├── ./lib/guile/2.2/ccache/language/cps/effects-analysis.go
│ ├── ./lib/guile/2.2/ccache/language/cps/intmap.go
│ ├── ./lib/guile/2.2/ccache/language/cps/intset.go
│ ├── ./lib/guile/2.2/ccache/language/cps/slot-allocation.go
│ ├── ./lib/guile/2.2/ccache/language/cps/types.go
│ ├── ./lib/guile/2.2/ccache/language/cps/utils.go
│ ├── ./lib/guile/2.2/ccache/srfi/srfi-18.go
│ ├── ./lib/guile/2.2/ccache/srfi/srfi-19.go
│ ├── ./lib/guile/2.2/ccache/srfi/srfi-27.go
--8<---cut here---end--->8---

Not sure if that's useful...hoping the specific names may ring a bell.

Greetings,
janneke



Re: Merging core-updates

2018-12-03 Thread Ricardo Wurmus


Hi Ludo,

> ‘core-updates’ is now merged!

Yay!

> Now the question is whether we can merge ‘wip-gnome-upgrades’ before the
> release, which I’d like to push out later this week, or whether it
> should wait a few more days.

Unfortunately, gnome-shell segfaults on wip-gnome-upgrades.  I’ve
decided to upgrade to the next version of GNOME (3.30 instead of 3.28)
and rather spend time on making that version work.

This will take some time (and cause quite a few rebuilds), so it should
not block the upcoming release.

--
Ricardo




Re: Better support for single-user systems

2018-12-03 Thread Clément Lassieur
Hi Ricardo,

Ricardo Wurmus  writes:

> Hi Clément,
>
>> You don't need to use the root account at all. 
>
> One wrinkle is that the binary installation method installs Guix for the
> root user and takes the guix-daemon from there.

Taylan was talking about 'reconfiguring' and thus, I think, about
GuixSD.  GuixSD's guix-daemon is updated on reconfigure, not from the
root account.

(For the foreign distro installation, an extra step is needed indeed:
one needs to get /etc/systemd/system/guix-daemon.service to point to the
user's Guix current profile so to remove the need for the Guix of root.)

Clément



Using a CDN or some other mirror?

2018-12-03 Thread Ludovic Courtès
Hello,

Ludovic Courtès  skribis:

> These patches (actually the last one) switch Guix to default to
>  for substitutes, in preparation for the
> upcoming 0.16.0 release (hopefully this week!).

Right now, ci.guix.info points to berlin.guixsd.org, the front-end of
the build farm hosted at the MDC.

The previous setup was that mirror.hydra.gnu.org mirrors hydra.gnu.org
(the actual build farm front-end) using an nginx proxy:

  
https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/nginx/mirror.conf

This provides a bit of redundancy that we don’t have currently for
berlin.

Thus, I’m thinking about using a similar setup, but hosting the mirror
on some Big Corp CDN or similar.  Chris Marusich came up with a setup
along these lines a while back:

  https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00312.html

Compared to Chris’s setup, given that ‘guix publish’ now provides
‘Cache-Control’ headers (that was not the case back then, see
),
caching in the proxy should Just Work.

I would like us to set up such a mirror for berlin and then have
ci.guix.info point to that.  The project should be able to pay the
hosting fees.

Thoughts?

Would someone like to get started?  You’ll undoubtedly get all the
appreciation of each one of us and a beverage of your choice next time
we meet!  :-)

Thanks,
Ludo’.



Re: Better support for single-user systems

2018-12-03 Thread Ricardo Wurmus


Hi Clément,

> You don't need to use the root account at all. 

One wrinkle is that the binary installation method installs Guix for the
root user and takes the guix-daemon from there.

-- 
Ricardo




[PATCH 2/3] Remove most references to hydra.gnu.org.

2018-12-03 Thread Ludovic Courtès
* Makefile.am (assert-binaries-available): Don't mention hydra.gnu.org
in comment.
* build-aux/check-available-binaries.scm: Likewise.
* build-aux/check-final-inputs-self-contained.scm: Likewise.
* doc/guix.texi (SUBSTITUTE-SERVER): New variable.
Use it throughout instead of "mirror.hydra.gnu.org".
* doc/contributing.texi (Submitting Patches): Likewise.
* gnu/services/base.scm (hydra-key-authorization)
(guix-activation): Remove mentions of "hydra.gnu.org" in comments and
messages.
* gnu/system/install.scm (%installation-services): Likewise.
* guix/scripts/size.scm (guix-size): Likewise.
---
 Makefile.am   |  2 +-
 build-aux/check-available-binaries.scm|  4 +-
 .../check-final-inputs-self-contained.scm |  2 +-
 doc/contributing.texi |  2 +-
 doc/guix.texi | 56 ++-
 gnu/services/base.scm |  4 +-
 gnu/system/install.scm|  2 +-
 guix/scripts/size.scm |  2 +-
 8 files changed, 38 insertions(+), 36 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 6803666a57..a7a67e81cf 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -763,7 +763,7 @@ assert-no-store-file-names: $(distdir)/ChangeLog
  exit 1 ;  
\
fi
 
-# Make sure hydra.gnu.org has the important binaries.
+# Make sure important substitutes are available.
 assert-binaries-available: $(GOBJECTS)
$(AM_V_at)$(top_builddir)/pre-inst-env "$(GUILE)"   
\
  "$(top_srcdir)/build-aux/check-available-binaries.scm"
diff --git a/build-aux/check-available-binaries.scm 
b/build-aux/check-available-binaries.scm
index b832d99935..c80db1a37e 100644
--- a/build-aux/check-available-binaries.scm
+++ b/build-aux/check-available-binaries.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès 
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès 

 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -17,7 +17,7 @@
 ;;; along with GNU Guix.  If not, see .
 
 ;;;
-;;; Check whether important binaries are available at hydra.gnu.org.
+;;; Check whether important binaries are available.
 ;;;
 
 (use-modules (guix store)
diff --git a/build-aux/check-final-inputs-self-contained.scm 
b/build-aux/check-final-inputs-self-contained.scm
index 37dc883d3c..c819086508 100644
--- a/build-aux/check-final-inputs-self-contained.scm
+++ b/build-aux/check-final-inputs-self-contained.scm
@@ -17,7 +17,7 @@
 ;;; along with GNU Guix.  If not, see .
 
 ;;;
-;;; Check whether important binaries are available at hydra.gnu.org.
+;;; Check whether important binaries are available.
 ;;;
 
 (use-modules (guix store)
diff --git a/doc/contributing.texi b/doc/contributing.texi
index 7417f28d14..c55eb63382 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -443,7 +443,7 @@ as timestamps or randomly-generated output in the build 
result.
 
 Another option is to use @command{guix challenge} (@pxref{Invoking guix
 challenge}).  You may run it once the package has been committed and
-built by @code{hydra.gnu.org} to check whether it obtains the same
+built by @code{@value{SUBSTITUTE-SERVER}} to check whether it obtains the same
 result as you did.  Better yet: Find another machine that can build it
 and run @command{guix publish}.  Since the remote build machine is
 likely different from yours, this can catch non-determinism issues
diff --git a/doc/guix.texi b/doc/guix.texi
index b0aa5aa872..d96c35eace 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -13,6 +13,9 @@
 @set OPENPGP-SIGNING-KEY-ID 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
 @set KEY-SERVER pool.sks-keyservers.net
 
+@c The official substitute server used by default.
+@set SUBSTITUTE-SERVER ci.guix.info
+
 @copying
 Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic 
Courtès@*
 Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@*
@@ -1274,8 +1277,7 @@ remote procedure call (@pxref{The Store}).
 @anchor{daemon-substitute-urls}
 Consider @var{urls} the default whitespace-separated list of substitute
 source URLs.  When this option is omitted,
-@indicateurl{https://mirror.hydra.gnu.org https://hydra.gnu.org} is used
-(@code{mirror.hydra.gnu.org} is a mirror of @code{hydra.gnu.org}).
+@indicateurl{https://@value{SUBSTITUTE-SERVER}} is used.
 
 This means that substitutes may be downloaded from @var{urls}, as long
 as they are signed by a trusted signature (@pxref{Substitutes}).
@@ -2321,7 +2323,7 @@ also result from derivation builds, can be available as 
substitutes.
 
 @cindex hydra
 @cindex build farm
-The @code{mirror.hydra.gnu.org} server is a front-end to an official build farm
+The @code{@value{SUBSTITUTE-SERVER}} server is a front-end to an official 
build farm
 that 

[PATCH 1/3] etc: Add "ci.guix.info.pub" public key file.

2018-12-03 Thread Ludovic Courtès
* etc/substitutes/ci.guix.info.pub: New file.
* Makefile.am (dist_pkgdata_DATA): Add it.
* guix/self.scm (miscellaneous-files): Add
"share/guix/ci.guix.info.pub".
---
 Makefile.am  | 3 ++-
 etc/substitutes/ci.guix.info.pub | 1 +
 guix/self.scm| 3 +++
 3 files changed, 6 insertions(+), 1 deletion(-)
 create mode 12 etc/substitutes/ci.guix.info.pub

diff --git a/Makefile.am b/Makefile.am
index 32cebd5917..6803666a57 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -459,7 +459,8 @@ check-system: $(GOBJECTS)
 # Public key used to sign substitutes from hydra.gnu.org & co.
 dist_pkgdata_DATA =\
   etc/substitutes/hydra.gnu.org.pub\
-  etc/substitutes/berlin.guixsd.org.pub
+  etc/substitutes/berlin.guixsd.org.pub\
+  etc/substitutes/ci.guix.info.pub
 
 # Bash completion file.
 dist_bashcompletion_DATA = etc/completion/bash/guix\
diff --git a/etc/substitutes/ci.guix.info.pub b/etc/substitutes/ci.guix.info.pub
new file mode 12
index 00..b1d1e4d763
--- /dev/null
+++ b/etc/substitutes/ci.guix.info.pub
@@ -0,0 +1 @@
+berlin.guixsd.org.pub
\ No newline at end of file
diff --git a/guix/self.scm b/guix/self.scm
index 8476c422ec..f2db3dbf52 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -428,6 +428,9 @@ load path."
,(file-append* source
   "/etc/substitutes/hydra.gnu.org.pub"))
   ("share/guix/berlin.guixsd.org.pub"
+   ,(file-append* source
+  "/etc/substitutes/berlin.guixsd.org.pub"))
+  ("share/guix/ci.guix.info.pub"  ;alias
,(file-append* source 
"/etc/substitutes/berlin.guixsd.org.pub")
 
 (define* (whole-package name modules dependencies
-- 
2.19.2




[PATCH 3/3] build: Default to https://ci.guix.info for substitutes.

2018-12-03 Thread Ludovic Courtès
* config-daemon.ac (guix_substitute_urls): Always default to
"https://ci.guix.info;.
* doc/guix.texi (SUBSTITUTE-SERVER): Switch to ci.guix.info.
* guix/scripts/build.scm (%default-log-urls): Likewise.
* guix/scripts/substitute.scm (%default-substitute-urls): Likewise.
* guix/store.scm (%default-substitute-urls): Likewise.
---
 config-daemon.ac| 10 +-
 doc/guix.texi   | 13 -
 guix/scripts/build.scm  |  2 +-
 guix/scripts/substitute.scm |  2 +-
 guix/store.scm  |  2 +-
 5 files changed, 8 insertions(+), 21 deletions(-)

diff --git a/config-daemon.ac b/config-daemon.ac
index aac46817f5..e5b0ee082c 100644
--- a/config-daemon.ac
+++ b/config-daemon.ac
@@ -120,15 +120,7 @@ if test "x$guix_build_daemon" = "xyes"; then
 
   dnl Determine the appropriate default list of substitute URLs (GnuTLS
   dnl is required so we can default to 'https'.)
-  case "x$host_cpu" in
-xaarch64)
-  # Currently only berlin.guixsd.org provides aarch64 binaries.
-  guix_substitute_urls="https://berlin.guixsd.org;
-  ;;
-*)
-  guix_substitute_urls="https://mirror.hydra.gnu.org;
-  ;;
-  esac
+  guix_substitute_urls="https://ci.guix.info;
 
   AC_MSG_CHECKING([for default substitute URLs])
   AC_MSG_RESULT([$guix_substitute_urls])
diff --git a/doc/guix.texi b/doc/guix.texi
index d96c35eace..a5ae1c65e6 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -14,7 +14,7 @@
 @set KEY-SERVER pool.sks-keyservers.net
 
 @c The official substitute server used by default.
-@set SUBSTITUTE-SERVER ci.guix.info
+@set SUBSTITUTE-SERVER mirror.hydra.gnu.org
 
 @copying
 Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic 
Courtès@*
@@ -2374,14 +2374,9 @@ Then, you can run something like this:
 @end example
 
 @quotation Note
-Similarly, the @file{berlin.guixsd.org.pub} file contains the public key
-for the project's new build farm, reachable at
-@indicateurl{https://berlin.guixsd.org}.
-
-As of this writing @code{berlin.guixsd.org} is being upgraded so it can
-better scale up, but you might want to give it a try.  It is backed by
-20 x86_64/i686 build nodes and may be able to provide substitutes more
-quickly than @code{mirror.hydra.gnu.org}.
+Similarly, the @file{hydra.gnu.org.pub} file contains the public key
+of an independent build farm also run by the project, reachable at
+@indicateurl{https://mirror.hydra.gnu.org}.
 @end quotation
 
 Once this is in place, the output of a command like @code{guix build}
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 5532c65eb6..0b7da3189e 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -65,7 +65,7 @@
 
 (define %default-log-urls
   ;; Default base URLs for build logs.
-  '("http://hydra.gnu.org/log;))
+  '("http://ci.guix.info/log;))
 
 ;; XXX: The following procedure cannot be in (guix store) because of the
 ;; dependency on (guix derivations).
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index eb82224016..d6dc9b6448 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -1052,7 +1052,7 @@ found."
 (#f
  ;; This can only happen when this script is not invoked by the
  ;; daemon.
- '("http://hydra.gnu.org;
+ '("http://ci.guix.info;
 
 (define substitute-urls
   ;; List of substitute URLs.
diff --git a/guix/store.scm b/guix/store.scm
index 9dc651b26c..509fd4def6 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -693,7 +693,7 @@ encoding conversion errors."
   (map (if (false-if-exception (resolve-interface '(gnutls)))
(cut string-append "https://; <>)
(cut string-append "http://; <>))
-   '("mirror.hydra.gnu.org")))
+   '("ci.guix.info")))
 
 (define* (set-build-options server
 #:key keep-failed? keep-going? fallback?
-- 
2.19.2




[PATCH 0/3] Defaulting to ci.guix.info (aka. berlin.guixsd.org)

2018-12-03 Thread Ludovic Courtès
Hello Guix!

These patches (actually the last one) switch Guix to default to
 for substitutes, in preparation for the
upcoming 0.16.0 release (hopefully this week!).

Rationale:

  • berlin.guixsd.org generally performs better than hydra.gnu.org;

  • berlin supports x86, ARMv7, and AArch64 (hydra lacks AArch64);

  • berlin has much more storage space than hydra;

  • berlin runs Cuirass on GuixSD, so software-wise, it corresponds
to what we want to push; Cuirass still has limitations in some
ways compared to Hydra, but we’re getting there, and
hydra.gnu.org is still up and running so we can still use it,
e.g., to track build progress until Cuirass is as convenient.

For the domain name I initially wanted “ci.guix.gnu.org” but we failed
to set that up.  Oh well, I think that’s OK.

This change modifies the manual.  Translations will thus be stale;
Julien, do you think it’d be reasonable to push a new pre-release
to the Translation Project?  Or should be just live with the
slight inaccuracy?

Thanks,
Ludo’.

Ludovic Courtès (3):
  etc: Add "ci.guix.info.pub" public key file.
  Remove most references to hydra.gnu.org.
  build: Default to https://ci.guix.info for substitutes.

 Makefile.am   |  5 +-
 build-aux/check-available-binaries.scm|  4 +-
 .../check-final-inputs-self-contained.scm |  2 +-
 config-daemon.ac  | 10 +--
 doc/contributing.texi |  2 +-
 doc/guix.texi | 67 +--
 etc/substitutes/ci.guix.info.pub  |  1 +
 gnu/services/base.scm |  4 +-
 gnu/system/install.scm|  2 +-
 guix/scripts/build.scm|  2 +-
 guix/scripts/size.scm |  2 +-
 guix/scripts/substitute.scm   |  2 +-
 guix/self.scm |  3 +
 guix/store.scm|  2 +-
 14 files changed, 51 insertions(+), 57 deletions(-)
 create mode 12 etc/substitutes/ci.guix.info.pub

-- 
2.19.2




Re: [bug#33572] Guile-JSON now seems to be a required dependency

2018-12-03 Thread Eric Bavier
On Mon, 03 Dec 2018 09:46:40 +0100
l...@gnu.org (Ludovic Courtès) wrote:

> Hi,
> 
> Eric Bavier  skribis:
> 
> > From 5f04eb187de528f5879bd84901f71dba13c68f43 Mon Sep 17 00:00:00 2001
> > From: Eric Bavier 
> > Date: Sat, 1 Dec 2018 20:46:22 -0600
> > Subject: [PATCH] Make Guile-JSON a required dependency.
> >
> > * README (Requirements): Remove "optional" verbiage.
> > * doc/guix.texi (Requirements): Move Guile-JSON from optional to required.
> > * configure.ac (HAVE_GUILE_JSON): Remove Automake conditional.
> > (have_guile_json): Error if not "yes".
> > * Makefile.am (MODULE, SCM_TESTS)[HAVE_GUILE_JSON]: Add modules and tests
> > unconditionally.
> > * gnu/packages/package-mangement.scm (guix-minimal)[propagated-inputs]: 
> > Leave
> > guile-json input.  
> 
> One last thing: guix.texi contains a few footnotes like:
> 
>   This functionality requires Guile-JSON to be installed.
> 
> Could you remove them as well?

Good catch.  Thanks.  Fixed in a8fdca11d85296b4df1b60a0c8ce4e33c92759af

`~Eric


pgpd13LF4XZt4.pgp
Description: OpenPGP digital signature


Re: hg-fetch with subrepos

2018-12-03 Thread Björn Höfling
On Sun, 2 Dec 2018 18:38:35 +
John Soo  wrote:

> Thanks!
> 
> That patch looks familiar :D Looking forward to it.
> 
> John
> 
> On Sun, Dec 2, 2018 at 1:59 PM Ludovic Courtès  wrote:
> 
> > Hello,
> >
> > Björn Höfling  skribis:
> >  
> > > And I stumbled upon that problem too. Ludovic explained me on
> > > IRC: The problem is the metadata directory ".hg": It contains
> > > metadata that is not fixed. For normal hg-repositories, it will
> > > be stripped away, but not recursively for those with sub-repos.
> > >
> > > I have a patch that works. I just wasn't sure if it goes to
> > > master or to staging, as it could affect the java-packages as
> > > well.  
> >
> > Such a patch can go to ‘master’: it won’t trigger any rebuild
> > because, by definition, the content hash of an ‘origin’ is known in
> > advance (these are “fixed-output derivations.”)
> >
> > However, we should audit current uses of ‘hg-fetch’ with recursive
> > sub-repos because there hashes are most likely wrong already.
> >  
> > > I'm attaching what I have here, will prepare an official patch
> > > tonight or tomorrow.  
> >
> > Awesome.  FWIW this patch already LGTM.  :-)
> >
> > Thanks,
> > Ludo’.
> >  


Thanks John and Ludo for your reviews,

pushed to master as:

b8ca5b3146f94785c4e54ade1f64dc783a9b1a85

Björn



pgp9weoOapQNf.pgp
Description: OpenPGP digital signature


Re: Better support for single-user systems

2018-12-03 Thread Clément Lassieur
Hi Taylan,

You don't need to use the root account at all. 

Taylan Kammer  writes:

> Most desktop users have single unix account and are also in control of
> root.  These users might not want to differentiate between the current
> guix version of root and their normal user.  They might also not want
> to differentiate between the packages available to root and the normal
> user.  As such I would propose the following two improvements:
>
> - Allow a system-wide guix installation that's updated with a special
>   variant of 'guix pull' executed by root

You can use you current user's guix installation for all commands that
need root's permissions with 'sudo -E', so you can consider that your
current user's guix account is the system-wide guix account.

For example, 'sudo -E guix system reconfigure config.scm' updates the
system with your user's guix.

> - Allow direct addition of packages to the system profile to obviate
>   the need of running a full 'guix system reconfigure' after adding
>   packages to the system configuration

You don't need this if you use your user's guix installation only.

> (The latter might show a reminder that if the package isn't also added
> to the system config, it will be removed again on the next system
> reconfiguration.)
>
> Currently I use a hack to imitate #1 where I have a unix account
> called 'guix-user' with which I run 'guix pull', and both root and my
> normal user have symlinks to that user's current guix.  For #2 I don't
> have a workaround; I just re-run 'guix system reconfigure' every time.

You definitely don't need this :-)

Clément



One week to our gathering in Paris!

2018-12-03 Thread Ludovic Courtès
Hello Guix!

Next Monday, Dec. 10, some of us will be gathering in Paris, France, for
an informal meetup.  If you haven’t made up your mind yet, now’s the
time!  :-)

  https://libreplanet.org/wiki/Group:Guix/ParisGathering2018

Please make sure to add your name to the list of attendees (or
let me know privately) so we have a better idea of how many of us will
be there when booking for lunch etc.

Some of us already listed possible topics on the wiki page above.  We’ll
make it very much “unconference style” and select topics to discuss as
we go.

For lunch we’ll try to plan ahead and reserve space at a neighboring
restaurant with vegetarian options (please let me know privately if you
have other constraints.)  Konrad, as I think you know the area better
than me, I’d be happy to discuss this off-list.  :-)

See you there!

Ludo’.


signature.asc
Description: PGP signature


Re: 01/01: gnu: ocaml@4.01: Remove aarch64-linux from supported-systems.

2018-12-03 Thread Efraim Flashner
On Sun, Dec 02, 2018 at 03:51:58PM -0500, Mark H Weaver wrote:
> l...@gnu.org (Ludovic Courtès) writes:
> 
> > Efraim Flashner  skribis:
> >
> >> On Sat, Dec 01, 2018 at 05:23:32PM -0500, Mark H Weaver wrote:
> >>> Hi Efraim,
> >>> 
> >>> guix-comm...@gnu.org writes:
> >>> 
> >>> > efraim pushed a commit to branch master
> >>> > in repository guix.
> >>> >
> >>> > commit 454e7132d6fffb5c9a5ce086ffd1b687416feb83
> >>> > Author: Efraim Flashner 
> >>> > Date:   Sat Dec 1 22:41:19 2018 +0200
> >>> >
> >>> > gnu: ocaml@4.01: Remove aarch64-linux from supported-systems.
> >>> > 
> >>> > * gnu/packages/ocaml.scm (ocaml@4.01)[supported-systems]: New field.
> >>> 
> >>> What's the rationale for this change?
> >>> Debian includes OCaml 4.01 in its arm64 port.
> >>> 
> >>>   https://packages.debian.org/search?arch=arm64=ocaml
> >>>   
> >>> http://http.us.debian.org/debian/pool/main/o/ocaml/ocaml_4.01.0-5_arm64.deb
> >>> 
> >>>   Mark
> >>
> >> starting phase `configure'
> >> ../gnu/config.guess: unable to guess system type
> >
> > Would it be enough to add Automake as a native input and copy
> > ‘config.guess’ from there?
> 
> Ideally, we shouldn't need 'config.guess' at all.  Normally, it is only
> used if the GNU triplet is not explicitly passed to ./configure.  A few
> years ago, I fixed most instances of this problem by unconditionally
> passing --build= to ./configure in the default 'configure'
> phase of gnu-build-system.
> 
>   
> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=3c7d023d6458669c6bfa23bc85e098c91f699892
> 
> However, our OCaml package has a custom 'configure' phase that does not
> pass --build.  I'm not sure if that's because OCaml's configure phase
> doesn't support --build, or if it was omitted because it's not typically
> needed on x86_64.
> 
> * * *
> 
> Anyway, more generally, I hope that we will not get in the habit of
> simply removing systems from 'supported-systems' when builds fail on
> those systems, without investigating and concluding that it would be
> prohibitively difficult to support the software on that system.
> 
> To my mind, it's *good* to see failed builds on other architectures, to
> be reminded of bugs on non-x86_64 systems that should be fixed.  When we
> remove systems from 'supported-systems' without good reason, this is
> somewhat analogous to deleting unfixed bug reports.
> 
> What do you think?
> 
>   Mark

I looked back at the "state of aarch64 in guix¹" blog post, which stated:
OCaml 4.01.0: Doesn't build on aarch64, haven't investigated.

I believe this is the first one that I've marked unsupported in quite a
while, but adding a note as to why it's labeled unsupported would be
best; it gives us the best chance possible at revisiting the decision
later.

¹http://guix.info/blog/2017/state-of-aarch64-on-guix/

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


signature.asc
Description: PGP signature


Re: [bug#33572] Guile-JSON now seems to be a required dependency

2018-12-03 Thread Ludovic Courtès
Hi,

Eric Bavier  skribis:

> From 5f04eb187de528f5879bd84901f71dba13c68f43 Mon Sep 17 00:00:00 2001
> From: Eric Bavier 
> Date: Sat, 1 Dec 2018 20:46:22 -0600
> Subject: [PATCH] Make Guile-JSON a required dependency.
>
> * README (Requirements): Remove "optional" verbiage.
> * doc/guix.texi (Requirements): Move Guile-JSON from optional to required.
> * configure.ac (HAVE_GUILE_JSON): Remove Automake conditional.
> (have_guile_json): Error if not "yes".
> * Makefile.am (MODULE, SCM_TESTS)[HAVE_GUILE_JSON]: Add modules and tests
> unconditionally.
> * gnu/packages/package-mangement.scm (guix-minimal)[propagated-inputs]: Leave
> guile-json input.

One last thing: guix.texi contains a few footnotes like:

  This functionality requires Guile-JSON to be installed.

Could you remove them as well?

Otherwise LGTM, thank you!

Ludo’.



Re: Preparing the reduced bootstrap tarballs, take 3

2018-12-03 Thread Ludovic Courtès
Hello janneke,

Jan Nieuwenhuizen  skribis:

> I have updated core-updates-next with this fix, a documentation update
> and to also include Marius' mes bootstrap cleanups from his wip-gcc7
> branch.
>
> So, finally for core-updates-next 4ae7dc7b9af64794081b1913740b97acd89c91bc
> here are my lucky numbers
>
> 08:21:04 janneke@dundal:~/src/guix-boot 
> $ for i in $(./pre-inst-env guix build --system=i686-linux 
> bootstrap-tarballs)/*; do echo $i;guix hash $i; done
> /gnu/store/i8rrdivr5ab56kqwbasigp41wqpj1pyp-bootstrap-tarballs-0/guile-static-stripped-2.2.4-i686-linux.tar.xz
> 17p28xv0y1q729idvf2k1dpcfd469akxm8lnf7gd5a7hmnrb28l5
> /gnu/store/i8rrdivr5ab56kqwbasigp41wqpj1pyp-bootstrap-tarballs-0/linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz
> 0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s
> /gnu/store/i8rrdivr5ab56kqwbasigp41wqpj1pyp-bootstrap-tarballs-0/mescc-tools-static-0.5.2-0.bb062b0-i686-linux.tar.xz
> 11lniw0vg61kmyhvnwkmcnkci9ym6hbmiksiqggd0hkipbq7hvlz
> /gnu/store/i8rrdivr5ab56kqwbasigp41wqpj1pyp-bootstrap-tarballs-0/mes-minimal-stripped-0.18-0.08f04f5-i686-linux.tar.xz
> 0qwpby91hp6afmg5ibdrrk3fw85zxdazfk7rhrdsihsfzqwmfhfx
> /gnu/store/i8rrdivr5ab56kqwbasigp41wqpj1pyp-bootstrap-tarballs-0/static-binaries-0-i686-linux.tar.xz
> 1rs8qh0n6zxmhs0h1b02sydi4vn09qngf3spfpfynkm2n0bxs368
>
> 08:21:10 janneke@dundal:~/src/guix-boot 
> $ for i in $(./pre-inst-env guix build bootstrap-tarballs)/*; do echo $i;guix 
> hash $i; done
> /gnu/store/n8lrszv7qf0rwqhibm57d8jykj253bw2-bootstrap-tarballs-0/guile-static-stripped-2.2.4-x86_64-linux.tar.xz
> 1285hlbfahp414hy3jjdghxjfgi94aj7y3fw0pz7z27421b7z2f9
> /gnu/store/n8lrszv7qf0rwqhibm57d8jykj253bw2-bootstrap-tarballs-0/linux-libre-headers-stripped-4.14.67-x86_64-linux.tar.xz
> 0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s
> /gnu/store/n8lrszv7qf0rwqhibm57d8jykj253bw2-bootstrap-tarballs-0/mescc-tools-static-0.5.2-0.bb062b0-x86_64-linux.tar.xz
> 11lniw0vg61kmyhvnwkmcnkci9ym6hbmiksiqggd0hkipbq7hvlz
> /gnu/store/n8lrszv7qf0rwqhibm57d8jykj253bw2-bootstrap-tarballs-0/mes-minimal-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz
> 0qwpby91hp6afmg5ibdrrk3fw85zxdazfk7rhrdsihsfzqwmfhfx
> /gnu/store/n8lrszv7qf0rwqhibm57d8jykj253bw2-bootstrap-tarballs-0/static-binaries-0-x86_64-linux.tar.xz
> 0bqyjdbas67wgfwv4rcmr5a5b31l8kk8z6gsidxay7liih5rp5hn
>
> We may want to change the bootstrap downloads for x86_64 in
> bootstrap.scm, mescc-tools-static and mes-minimal-stripped and
> linux-libre-headers-stripped to use the x86_64-linux variants (currently
> we use the i686-linux tarballs); but as you can see their content is
> identical.
>
> Happy verifying ;-)

So, on x86_64-linux, here’s what I got:

--8<---cut here---start->8---
ludo@ribbon ~/src/guix/+core-updates-next$ ./pre-inst-env guix build 
bootstrap-tarballs
/gnu/store/n8lrszv7qf0rwqhibm57d8jykj253bw2-bootstrap-tarballs-0
ludo@ribbon ~/src/guix/+core-updates-next$ (cd 
/gnu/store/n8lrszv7qf0rwqhibm57d8jykj253bw2-bootstrap-tarballs-0; for i in * ; 
do echo $i && guix hash $i ; done )
guile-static-stripped-2.2.4-x86_64-linux.tar.xz
06ygv0b3dpvy93jji5yl4hdz17w4hiqm64m7ypf6g2vi4nfn9xl9
linux-libre-headers-stripped-4.14.67-x86_64-linux.tar.xz
0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s
mescc-tools-static-0.5.2-0.bb062b0-x86_64-linux.tar.xz
11lniw0vg61kmyhvnwkmcnkci9ym6hbmiksiqggd0hkipbq7hvlz
mes-minimal-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz
0qwpby91hp6afmg5ibdrrk3fw85zxdazfk7rhrdsihsfzqwmfhfx
static-binaries-0-x86_64-linux.tar.xz
0bqyjdbas67wgfwv4rcmr5a5b31l8kk8z6gsidxay7liih5rp5hn
ludo@ribbon ~/src/guix/+core-updates-next$ git describe
v0.15.0-3121-g4ae7dc7b9a
--8<---cut here---end--->8---

So only ‘guile-static-stripped’ differs from yours.  This may be due to
non-determinism in bindings introduced by psyntax (something we
addressed with , but maybe there are
remnants around.)  I’ve uploaded mine here:

  


Could you share yours so we can compare?

Anyway, I’ll run the “-s i686-linux” build because right now I only have
the 64-bit ‘guile-static-stripped’, which is not what we want, silly me…
Should we force #:system for this one as well?

Thanks,
Ludo’.


signature.asc
Description: PGP signature


Re: Merging core-updates

2018-12-03 Thread Ludovic Courtès
Hello Guix!

‘core-updates’ is now merged!

Thanks to everyone who contributed to the tedious testing and
stabilization process.  It certainly took us way too long but now we’re
happy to get all the new stuff: glibc 2.28, guile 2.2.4 by default, and
lots of things we worked on so long ago that we don’t even remember.
:-)

Now the question is whether we can merge ‘wip-gnome-upgrades’ before the
release, which I’d like to push out later this week, or whether it
should wait a few more days.

Ludo’.