bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible

2020-06-09 Thread Chris Marusich
Hi Vincent and everyone,

Vincent Legoll  writes:

> Is that showing the same (or a similar) problem :
>
> https://data.guix-patches.cbaines.net/gnu/store/0lcbxpw1vrca02dzpzw2rxhad7pn4zw7-gcc-objc-5.5.0
>
> ?

Can you clarify what you mean?  I'm not sure what you're referring to.

Chris Marusich  writes:

> At present, it seems possible that within the context of a single
> machine, gcc-stripped-tarball-5.5.0.drv builds reproducibly, but on a
> different machine, it may (reproducibly) build a different output.
> I'm a bit paranoid about making mistakes, so I'll perform another full
> GC and then try yet again to build gcc-stripped-tarball-5.5.0.drv in
> order to verify whether it truly produces the same output when all (or
> nearly all) of its inputs are rebuilt from scratch.

I repeated the experiment on the same machine (it took a day or two to
build), and the result was the same: on my machine,
gcc-stripped-tarball-5.5.0.drv builds identical output to what it built
before. To be clear, using Guix 8159ce1970d91567468cf1bacac313099a009d2a
on an x86_64-linux machine, I tried (yet again) the following steps:

- I deleted as much as I could from the store using 'guix gc'.

- I explicitly verified that all outputs for the following derivations
  no longer existed in the store:

  /gnu/store/pygln3lr6qbxcps3kmn3w4bc0d0nlpd3-gcc-stripped-tarball-5.5.0.drv
  /gnu/store/kcv3ja1rfr93hw6ly51878zjhdwpgv7z-gcc-stripped-5.5.0.drv
  /gnu/store/m9hfwppla8lph0vxa15lfkp81s2bbjjs-gcc-static-5.5.0.drv
  /gnu/store/g9fpkg2qa27mka1znqsvx8vxqyabsj2y-gcc-7.5.0.drv

- I then built gcc-stripped-tarball-5.5.0.drv via the following command:

  guix build --no-substitutes --check --target=powerpc64-linux-gnu \
   -e '(@@ (gnu packages make-bootstrap) %gcc-static)'

This rebuilt basically everything, including gcc-7.5.0.drv and the other
derivations mentioned above.  When I checked the built output of the
gcc-stripped-tarball-5.5.0.drv derivation, I found that its SHA-512 hash
was identical to the one I calculated previously, which was:

--8<---cut here---start->8---
8aca7f332a1ba8e3c2225c161a7545b0a04ddd690d164dc97afee9c9ea067b0c49bc155e9f06d285c22e24cdd16d91e59730af5f1dd9efcda13a26bede5948a2
  
/gnu/store/rsmhiyplmbiqm1qwniiafi4ak76pd61v-gcc-stripped-tarball-5.5.0/gcc-stripped-5.5.0-powerpc64-linux-gnu.tar.xz
--8<---cut here---end--->8---

Anyway, this confirms what we already knew: GCC builds reproducibly on
my machine, but it is different when other people build it on other
machines.  I'm now quite convinced of this fact.

Jack and Vincent shared their build results on the email list.  For
reference, you can get them here:

https://flashner.co.il/~efraim/gcc-stripped-5.5.0-powerpc64-linux-gnu.tar.xz
https://jackhill.us/misc/gcc-stripped-5.5.0-powerpc64-linux-gnu.tar.xz
https://media.marusich.info/gcc-stripped-5.5.0-powerpc64-linux-gnu.tar.xz

I also received a copy of Vincent's build results via private email.  In
short, they all seem to differ in basically the same ways:

--8<---cut here---start->8---
[1] marusich@garuda-lan:~/Documents/notes/guix/ppc/gcc-stripped-tarballs
$ diff -r chris jack
Binary files chris/bin/c++ and jack/bin/c++ differ
Binary files chris/bin/cpp and jack/bin/cpp differ
Binary files chris/bin/g++ and jack/bin/g++ differ
Binary files chris/bin/gcc and jack/bin/gcc differ
Binary files chris/bin/gcov and jack/bin/gcov differ
Binary files chris/bin/gcov-dump and jack/bin/gcov-dump differ
Binary files chris/bin/gcov-tool and jack/bin/gcov-tool differ
Binary files chris/bin/powerpc64-linux-gnu-c++ and 
jack/bin/powerpc64-linux-gnu-c++ differ
Binary files chris/bin/powerpc64-linux-gnu-g++ and 
jack/bin/powerpc64-linux-gnu-g++ differ
Binary files chris/bin/powerpc64-linux-gnu-gcc and 
jack/bin/powerpc64-linux-gnu-gcc differ
Binary files chris/bin/powerpc64-linux-gnu-gcc-5.5.0 and 
jack/bin/powerpc64-linux-gnu-gcc-5.5.0 differ
Binary files chris/lib/libstdc++.a and jack/lib/libstdc++.a differ
Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/cc1 and 
jack/libexec/gcc/powerpc64-linux-gnu/5.5.0/cc1 differ
Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/cc1plus and 
jack/libexec/gcc/powerpc64-linux-gnu/5.5.0/cc1plus differ
Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/collect2 and 
jack/libexec/gcc/powerpc64-linux-gnu/5.5.0/collect2 differ
Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/lto-wrapper and 
jack/libexec/gcc/powerpc64-linux-gnu/5.5.0/lto-wrapper differ
[1] marusich@garuda-lan:~/Documents/notes/guix/ppc/gcc-stripped-tarballs
$ diff -r chris vincent
Binary files chris/bin/c++ and vincent/bin/c++ differ
Binary files chris/bin/cpp and vincent/bin/cpp differ
Binary files chris/bin/g++ and vincent/bin/g++ differ
Binary files chris/bin/gcc and vincent/bin/gcc differ
Binary files chris/bin/gcov and vincent/bin/gcov differ
Binary files chris/bin/gcov-dump and vincent/b

bug#36757: AMD-Vi IOMMU bug, kernel crashes using GuixSD 1.0.1

2020-06-09 Thread Tobias Geerinckx-Rice via Bug reports for GNU Guix

Romulasry,

romula...@protonmail.com, via web 写道:

It is a amdgpu firmware bug,


We've had some trouble booting with the non-free AMDGPU graphics 
cards before, but the ‘AMD-Vi IOMMU’ part is new to me.  What 
exactly happens?  Which error messages (if any) do you get 
(pictures are fine, but please compress them to a few 100k or host 
them elsewhere)?



will guixsd ever support it?


We can certainly try, if we know what (kernel CONFIG_ option, 
kernel command-line option, …) is required.


Since you seem to know more about the bug, could you explain it in 
more detail of provide a link to more information?


Thanks,

T G-R


signature.asc
Description: PGP signature


bug#41780: UEFI bios not supported out of the box when burning to usb stick

2020-06-09 Thread Tobias Geerinckx-Rice via Bug reports for GNU Guix

Welcome, Romulasry,

romulasry via Bug reports for GNU Guix 写道:
This would be a nice feature to have in the future when all 
there will be is UEFI (bioses).


UEFI is already supported.

Is this the latest Guix version (1.1.0)?  What kind of machine did 
you try it on, and which error (if any) did you get?  Does the 
same installer boot and run fine when booted in CSM (‘legacy’) 
mode?  Could you try a different model of USB drive (this once 
‘solved’ it for me)?


Kind regards,

T G-R


signature.asc
Description: PGP signature


bug#41780: UEFI bios not supported out of the box when burning to usb stick

2020-06-09 Thread romulasry via Bug reports for GNU Guix
This would be a nice feature to have in the future when all there will be is 
UEFI (bioses).

Sent with [ProtonMail](https://protonmail.com) Secure Email.

bug#36757: AMD-Vi IOMMU bug, kernel crashes using GuixSD 1.0.1

2020-06-09 Thread romulasry
It is a amdgpu firmware bug, will guixsd ever support it?






bug#41743: gst123

2020-06-09 Thread Kyle Andrews


Tobias Geerinckx-Rice writes:

> Kyle,
>
> Kyle Andrews 写道:
>> I tried adding all the gst packages I could think of to the
>> environment,
>> but it still did not work. Here is what I ran:
>>
>> guix environment gst-plugins-base gst-plugins-bad gst-plugins-good
>> gst-plugins-ugly gst123 -- gst123 "/path/to/music-file.mp3"
>
> Use ‘guix environment --ad-hoc’.  The command above doesn't add any of
> the packages to the environment, only their build dependencies.
>
> I forgot about gst-plugins-base, maybe it suffices.
>
> Kind regards,
>
> T G-R

Thanks for the tip. Unfortunately, I still see the error:

Error: Your GStreamer installation is missing a plug-in.
=> file cannot be played and will be removed from playlist

after running:

guix environment --ad-hoc gst-plugins-base gst-plugins-good
gst-plugins-bad gst-plugins-ugly gst123 -- gst123
~/path/to/music-file.mp3







bug#37789: guix pull: error: You found a bug: the program

2020-06-09 Thread Tobias Geerinckx-Rice via Bug reports for GNU Guix

George Clemmer 写道:
I assume that "guix pull w/substitutes off" is not recommended 
or likely

to be used by others.


Even if true, it's definitely supported as long your machine has 
enough memory & storage to do so (which, granted, is a lot).


Kind regards,

T G-R


signature.asc
Description: PGP signature


bug#37789: guix pull: error: You found a bug: the program

2020-06-09 Thread George Clemmer
Ludovic Courtès  writes:

> Uh.  (You purposefully turned off substitutes, right?)
>
> I’m very surprised this can happen.  Janneke, does that ring a bell?

Hi Ludo’,

I recently re-installed Guix System from USB and abandoned my config
that turned off substitutes. And of course, guix pull works great ;-)

I assume that "guix pull w/substitutes off" is not recommended or likely
to be used by others. If so maybe this bug can be cleared?

If, OTOH, you want to support "guix pull w/substitutes off" I am willing
to turn substitutes off again to see what happens ;-)

WDYT? - George





bug#41708: "guix weather" : 504 error

2020-06-09 Thread Christopher Baines

zimoun  writes:

> By default, "guix weather" returns:
>
> --8<---cut here---start->8---
> 'https://ci.guix.gnu.org/api/queue?nr=1000' returned 504 ("Gateway Time-out")
> --8<---cut here---end--->8---
>
> which is not fatal but annoying.  Especially, it takes time.
>
> As discussed on IRC [1], it seems that it is a bug server side.
>
> In addition, something appears similar with Bayfront, well the 4
> substitutes servers that I know returns:
>
> --8<---cut here---start->8---
> 'https://ci.guix.gnu.org/api/queue?nr=1000' returned 504 ("Gateway Time-out")
> 'https://bayfront.guix.gnu.org/api/queue?nr=1000' returned 504
> ("Gateway Time-out")
> (continuous integration information unavailable)
> 'https://guix.tobias.gr/api/queue?nr=1000' returned 410 ("Gone")
> --8<---cut here---end--->8---

Hey,

So I think I've got a patch [1] to Cuirass to "fix" this.

1: https://lists.gnu.org/archive/html/guix-devel/2020-06/msg00117.html

I expected this was due to the complicated part of the db-get-builds
query, but I think it's actually down to the simple part that fetches
all the outputs for all the builds. Fetching the outputs for a build is
slow, because at the moment, there's no index on the Outputs field, so
looking up the outputs requires reading through the whole table, and the
Outputs table can be quite large.

The performance should improve with the additional query. To see why,
you can use EXPLAIN QUERY PLAN to see what SQLite plans to do when
processing the query:

sqlite> EXPLAIN QUERY PLAN SELECT name, path FROM Outputs WHERE derivation = 
'foo';
QUERY PLAN
`--SCAN TABLE Outputs

sqlite> CREATE INDEX Outputs_derivation_index ON Outputs (derivation);

sqlite> EXPLAIN QUERY PLAN SELECT name, path FROM Outputs WHERE derivation = 
'foo';
QUERY PLAN
`--SEARCH TABLE Outputs USING INDEX Outputs_derivation_index (derivation=?)


I believe that searching the table using an index is going to be faster
than scanning the table, and testing locally and on bayfront suggests
this will resolve the performance issue.


signature.asc
Description: PGP signature


bug#34275: clementine-1.3.1 fails test

2020-06-09 Thread Marius Bakke
Thorsten Wilms  writes:

> It appears the issue has vanished, or ‘guix build clementine
> --no-grafts --check’ is not entirely equivalent. I had to use the
> later, since a recent ‘guix pull && guix package -u’ got me a
> substitute for clementine. The build succeeded this way, though check
> found a difference (separate report coming up).

Weird, but thanks for confirming & reporting the reproducibility issue.

Closing this bug!  :-)


signature.asc
Description: PGP signature


bug#41760: ganv-1.5.4 fails at configure

2020-06-09 Thread Marius Bakke
Thorsten Wilms  writes:

> On Mon, 08 Jun 2020 20:12:54 +0200
> Marius Bakke  wrote:
>
>> ganv was updated to 1.6.0 a while back.  Do you get the same failure
>> after a 'guix pull'?
>
> That was after ‘guix pull’. ‘ganv’ is pulled in via ‘ingen’ here.
>
> ```
> build of 
> /gnu/store/bxz04gap29dxsmjvb3z4hjdid9l1fil7-ganv-1.5.4-1.12f7d6b04.drv failed
> View build log at 
> '/var/log/guix/drvs/bx/z04gap29dxsmjvb3z4hjdid9l1fil7-ganv-1.5.4-1.12f7d6b04.drv.bz2'.
> substituting /gnu/store/8vgp4lv6k16ffq5zhfsjdqb2mpxa5642-aubio-0.4.9...
> |guix package: error: build of 
> `/gnu/store/ahx77sfl5zxgs37vx1g445czp7scrqp1-ingen-0.0.0-2.cc4a4db33.drv' 
> failed
> ```

Oh, I see.  Probably the special 'ganv-devel' input of 'ingen' is
obsolete with the recent 'ganv' update.  Difficult to tell because there
are no comments about it, but I went ahead and removed it in
c178d5fa5a2cfc07f4a9ab9cadeb6218d6c6483.  Let's see if anyone complains!

Forgot to mention the bug report in the commit message though :-/

Thanks,
Marius


signature.asc
Description: PGP signature


bug#41768: x265 fails to build on i686

2020-06-09 Thread Marius Bakke
Marius Bakke  writes:

> Hello,
>
> Since commit bec45e6ddb0fd8b8feff3c0147936e4d8f41208d, 'x265' fails to
> build on i686:

I worked around this in d32a3b395c4b9926316779aecec4e5e02ad571ef by
removing the nasm input on i686.


signature.asc
Description: PGP signature


bug#41764: `make authenticate` fails to find the keyring branch

2020-06-09 Thread Ludovic Courtès
Hi,

Leo Famulari  skribis:

> I just tried pushing for the first time since installing the new
> pre-push hook that runs `make authenticate`.
>
> This failed with the following error:
>
> Git error: cannot locate remote-tracking branch 'keyring'
>
> However, `git branch --all` includes "remotes/origin/keyring".
>
> After I did `git checkout origin/keyring`, it worked.

Right, since commit 512b9e2da26968ebafdd47f701edd8fc3936d3e8, you have
to have a local ‘keyring’ branch.

> Let's update the manual section Commit Access with the recommended way
> to make this branch accessible to `make authenticate`. Maybe it should
> even do it automatically?

I don’t think it can do it automatically because it cannot guess what
the remote is called (Tobias reported an issue earlier because
“origin/keyring” was hard-coded and Tobias didn’t have an “origin”
remote.)

Regarding documentation, do you think it would suffice to say that one
needs to have a local ‘keyring’ branch tracking upstream’s?

Thanks,
Ludo’.





bug#41668: Failing test: gui-installed-desktop-os-encrypted

2020-06-09 Thread Mathieu Othacehe


Hey Ludo,

> It’s nice, but also a bit complicated just to print stuff on the
> screen.  :-)

You're right, I went too far :p

> That’s enough to send the ‘guix system init’ output to the console,
> since we use “console=ttyS0”.
>
> It’s a gross hack of course, but maybe we can do something along these
> lines instead of setting up a pipe?

Sure, I just applied a variant of your patch.

Thanks,

Mathieu





bug#41709: installed-os test failing

2020-06-09 Thread Mathieu Othacehe


Hey,

> Let’s just set the ‘locale-libcs’ field in (gnu tests) so that it
> contains a single libc.  WDYT?

I'll see first if I can get the closure smaller by other means. I think
it would be preferable to keep the tested operating-system as close as
possible to the default one.

>> * "openssh" is dragging "xauth" which drags some X libraries (but this
>> does not account for much).
>
> Yes, but that’s necessary for “ssh -X”, so I think we consciously made
> that choice long ago.

Ok, I proposed a work around by introducing openssh-sans-x.

>> * "sudo" is dragging "python" for about 100MiB.
>
> Comes from the Python plugin added in
> 452244e670467afe0e8ccdfb9ca2980d5a3b4694.  No idea what it buys us.

Some python bindings to sudo API, but I moved them to a separate
"python" output.

>
>> * "info-reader" is dragging "perl" (and is in fact the same size as
>> "texinfo" because of a mistake that I introduced with
>> 614a1e3fa2d731d4719f03912b1b87fb4fd309cb) for about 100MiB.
>
> Ah would be nice to fix and add a #:disallowed-references flag there!

In fact there were a #:disallowed-references already, but its argument
was also wrong so it went unnoticed. I fixed all of that on core-updates
branch.

>
>> * The switch to non-canonical version of "glibc" and "coreutils" to fix
>> system cross-compilation in dfc8ccbf5da96a67eb1cade499f0def21e7fdb02 is
>> also responsible for about 100MiB.
>
> Yeah, that’s the price to pay.  :-/

I'd like to re-introduce "canonical-packages", without breaking the
system cross-compilation, by using "let-system". See:
https://lists.gnu.org/archive/html/guix-devel/2020-06/msg00093.html.


>> Now, the big source of improvement could be Guix itself (278MiB without
>> dependencies).
>
> Yep, see my recent message on this topic.  :-)

Yes, thanks for your first analysis :)

Thanks,

Mathieu





bug#41746: [PATCH] gnu: grub: Support graphical gfxterm on all systems.

2020-06-09 Thread Mathieu Othacehe


> Welcome. Yes, that’s fine.

I fixed indentation, added your copyright and pushed!

Thanks,

Mathieu





bug#41715: The program '/gnu/store/foobar/compute-guix-derivation' failed to compute the derivation for guix

2020-06-09 Thread Ludovic Courtès
Hi,

o.ro...@posteo.net skribis:

> here is the log uploaded on mediafire:
> http://www.mediafire.com/file/ldqoi68y88rzrn9/log.bz2/file (note that
> if you can recommend another uploading service, feel free to!)

I don’t know, maybe you could run IPFS.

The log reads:

--8<---cut here---start->8---
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, 
child_tidptr=0x7f3d44cfee50) = 1498
close(17)   = 0
read(16, "", 1) = 0
close(16)   = 0
wait4(1498, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGBUS}], 0, NULL) = 1498
--8<---cut here---end--->8---

… which means the ‘compute-guix-derivation’ process crashed with SIGBUS.

Could you run:

  ulimit -c unlimited
  guix pull

That should fail again, but this time there should be a ‘core’ file in
the current directory (or ‘core.’ followed by digits).

Then you can run:

  gdb --core=./core

and at the GDB prompt, type:

  thread apply all bt

Could you let me know what that returns?

Thanks,
Ludo’.





bug#41668: Failing test: gui-installed-desktop-os-encrypted

2020-06-09 Thread Ludovic Courtès
Hi,

Danny Milosavljevic  skribis:

> my CI setup for work automatically mails me failures.
>
> It would be really nice to have that for guix master eventually, too.
> Maybe just mail failures to guix-devel as they happen.
>
> I don't check https://ci.guix.gnu.org/ so often, and even when I do the jobset
> names are kinda weird there, and there's too few stuff on one page--and just 
> in
> general there's no good overview on there.  I mean I can search, but a server
> can just automate that and just send me the results as they happen.
>
> It could also automatically mail failures to the last commiters of the source
> files that are relevant--but that's probably difficult to implement.

Yeah, Hydra could do that on status change (success -> failure and vice versa).

IRC notifications might also be nice.  Or Mastodon.

There’s always a risk of flood though, at which point people stop paying
attention to those notifications.

Thanks,
Ludo’.





bug#41668: Failing test: gui-installed-desktop-os-encrypted

2020-06-09 Thread Ludovic Courtès
Hi,

Mathieu Othacehe  skribis:

> From 18754c8c62eabb341e0f710d83ff435ef950ca8e Mon Sep 17 00:00:00 2001
> From: Mathieu Othacehe 
> Date: Mon, 8 Jun 2020 15:14:49 +0200
> Subject: [PATCH] installer: utils: Dump command output to syslog when testing.
>
> When debugging the installation tests, it can be very handy to be able to read
> "run-command" output, for instance when executing "guix system init".
>
> Introduce a new "invoke-with-log" procedure that is able to log a command
> standard and error outputs to the syslog. Use it, only when running the
> installation tests, to dump "run-command" output.
>
> * gnu/installer/utils.scm (open-pipe-with-stderr, invoke-with-log): New
> procedures,
> (invoke-log-port): new variable,
> (run-command): move to the end of the file and use invoke-with-log when
> running the installation tests.
> ---
>  gnu/installer/utils.scm | 164 +---
>  1 file changed, 120 insertions(+), 44 deletions(-)

It’s nice, but also a bit complicated just to print stuff on the
screen.  :-)

I found a stash with my debugging hack:

diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm
index 869be8814b..c084123064 100644
--- a/gnu/installer/final.scm
+++ b/gnu/installer/final.scm
@@ -137,7 +137,13 @@ or #f.  Return #t on success and #f on failure."
   (lambda ()
 (start-service 'cow-store (list (%installer-target-dir
   (lambda ()
-(run-command install-command #:locale locale))
+(with-output-to-file "/dev/console"
+  (lambda ()
+(with-error-to-file "/dev/console"
+  (lambda ()
+(setvbuf (current-output-port) 'none)
+(setvbuf (current-error-port) 'none)
+(run-command install-command #:locale locale))
   (lambda ()
 (stop-service 'cow-store)
 ;; Remove the store overlay created at cow-store service start.

That’s enough to send the ‘guix system init’ output to the console,
since we use “console=ttyS0”.

It’s a gross hack of course, but maybe we can do something along these
lines instead of setting up a pipe?

Thanks,
Ludo’.


bug#41746: [PATCH] gnu: grub: Support graphical gfxterm on all systems.

2020-06-09 Thread Mathieu Othacehe


Thanks for rebasing :)

Your copyright is missing, is this ok for you if I use:

"Stefan "

or would you prefer something else?

Mathieu





bug#41746: [PATCH] gnu: grub: Support graphical gfxterm on all systems.

2020-06-09 Thread Stefan
Welcome. Yes, that’s fine.

> Am 09.06.2020 um 14:24 schrieb Mathieu Othacehe :
> 
> 
> Thanks for rebasing :)
> 
> Your copyright is missing, is this ok for you if I use:
> 
> "Stefan "
> 
> or would you prefer something else?
> 
> Mathieu






bug#41746: [PATCH] gnu: grub: Support graphical gfxterm on all systems.

2020-06-09 Thread Stefan
* gnu/bootloaders/grub.scm (eye-candy): Use gfxterm depending only on
(bootloader-configuration (terminal-outputs …)), which defaults to '(gfxterm).
This makes the system argument obsolete.
---
 gnu/bootloader/grub.scm | 46 -
 1 file changed, 13 insertions(+), 33 deletions(-)

diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index d4dbb57131..e3b8416d6d 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -135,41 +135,25 @@ file with the resolution provided in CONFIG."
(_ #f)
 
 (define* (eye-candy config store-device store-mount-point
-#:key store-directory-prefix system port)
+#:key store-directory-prefix port)
   "Return a gexp that writes to PORT (a port-valued gexp) the 'grub.cfg' part
 concerned with graphics mode, background images, colors, and all that.
 STORE-DEVICE designates the device holding the store, and STORE-MOUNT-POINT is
 its mount point; these are used to determine where the background image and
-fonts must be searched for.  SYSTEM must be the target system string---e.g.,
-\"x86_64-linux\".  STORE-DIRECTORY-PREFIX is a directory prefix to prepend to
-any store file name."
-  (define setup-gfxterm-body
-(let ((gfxmode
-   (or (and-let* ((theme (bootloader-configuration-theme config))
-  (gfxmode (grub-theme-gfxmode theme)))
- (string-join gfxmode ";"))
-   "auto")))
-
-  ;; Intel and EFI systems need to be switched into graphics mode, whereas
-  ;; most other modern architectures have no other mode and therefore
-  ;; don't need to be switched.
-
-  ;; XXX: Do we really need to restrict to x86 systems?  We could imitate
-  ;; what the GRUB default configuration does and decide based on whether
-  ;; a user provided 'gfxterm' in the terminal-outputs field of their
-  ;; bootloader-configuration record.
-  (if (string-match "^(x86_64|i[3-6]86)-" system)
-  (format #f "
-  set gfxmode=~a
-  insmod all_video
-  insmod gfxterm~%" gfxmode)
-  "")))
-
+fonts must be searched for.  STORE-DIRECTORY-PREFIX is a directory prefix to
+prepend to any store file name."
   (define (setup-gfxterm config font-file)
 (if (memq 'gfxterm (bootloader-configuration-terminal-outputs config))
-#~(format #f "if loadfont ~a; then
-  setup_gfxterm
-fi~%" #+font-file)
+#~(format #f "
+if loadfont ~a; then
+  set gfxmode=~a
+  insmod all_video
+  insmod gfxterm
+fi~%"
+  #$font-file
+  #$(string-join
+  (grub-theme-gfxmode (bootloader-theme config))
+  ";"))
 ""))
 
   (define (theme-colors type)
@@ -190,8 +174,6 @@ fi~%" #+font-file)
 
   (and image
#~(format #$port "
-function setup_gfxterm {~a}
-
 # Set 'root' to the partition that contains /gnu/store.
 ~a
 
@@ -206,7 +188,6 @@ else
   set menu_color_normal=cyan/blue
   set menu_color_highlight=white/blue
 fi~%"
- #$setup-gfxterm-body
  #$(grub-root-search store-device font-file)
  #$(setup-gfxterm config font-file)
  #$(grub-setup-io config)
@@ -380,7 +361,6 @@ menuentry ~s {
  device
  mount-point
  #:store-directory-prefix store-directory-prefix
- #:system system
  #:port #~port)))
 
   (define keyboard-layout-config
-- 
2.26.0






bug#41775: System cross-compilation to i585-pc-gnu vs. grafts

2020-06-09 Thread Ludovic Courtès
Hello!

Attempting to cross-build the system to i586-pc-gnu with grafts enabled
leads to something fishy:

--8<---cut here---start->8---
$ git log |head -1
commit a50628bbe0fa4ba3835e311098e4fdf7a1d8a29e
$ ./pre-inst-env guix system build --target=i586-pc-gnu 
gnu/system/examples/bare-hurd.tmpl -n
The following derivations would be built:
   /gnu/store/3dphrw8kka8x3pj1xshc7wxv18spcp9s-tzdata-2019c.drv
   /gnu/store/ry0pzyhawjkjmz343dda3in2fbbaax5b-net-tools-1.60-0.479bb4a.drv
   
/gnu/store/jwwsf3kky7qwbi0kswbqa76dk069hj4a-linux-libre-headers-cross-x86_64-linux-5.4.20.drv
   
/gnu/store/sa56z96rixkghpf3z1rv0sqc41rfix4d-gcc-cross-sans-libc-x86_64-linux-7.5.0.drv
   /gnu/store/kcrrjh29qawb2yhsq41hvggbymnmy67h-glibc-cross-x86_64-linux-2.31.drv
   /gnu/store/lj7acjnbza54j1kv0n8imdclh70087s3-gcc-cross-x86_64-linux-7.5.0.drv
47.9 MB would be downloaded:
   /gnu/store/1gyikmvlmdvblg5q6j2aj1dp5dln6d0v-guix-1.1.0-9.ab9e300
   /gnu/store/70qjgxkdvjsqb3q14yyam9wk8sd48azc-openldap-2.4.49
   /gnu/store/w1rm6r3dmhsvqpb5biwy0hck7swij9z1-curl-7.69.1
   /gnu/store/bbm5x79iqrwy0mcx6yr4hq3x5n641jya-git-minimal-2.26.2
$ guix graph --path -t derivation 
/gnu/store/ry0pzyhawjkjmz343dda3in2fbbaax5b-net-tools-1.60-0.479bb4a.drv 
/gnu/store/sa56z96rixkghpf3z1rv0sqc41rfix4d-gcc-cross-sans-libc-x86_64-linux-7.5.0.drv
/gnu/store/ry0pzyhawjkjmz343dda3in2fbbaax5b-net-tools-1.60-0.479bb4a.drv
/gnu/store/jwwsf3kky7qwbi0kswbqa76dk069hj4a-linux-libre-headers-cross-x86_64-linux-5.4.20.drv
/gnu/store/sa56z96rixkghpf3z1rv0sqc41rfix4d-gcc-cross-sans-libc-x86_64-linux-7.5.0.drv
--8<---cut here---end--->8---

The “x86_64-linux” cross-toolchain look very bogus.  It disappears when
adding ‘--no-grafts’.

Ludo’.





bug#41668: Failing test: gui-installed-desktop-os-encrypted

2020-06-09 Thread Mathieu Othacehe

Hey,

> Instead I did reimplement the command in (gnu installer utils) in the
> attached patch :).

There were an issue with exception handling, here's a v2. Note that it
uses the &invoke-error constructor that should be made public I guess.

Thanks,

Mathieu
>From 18754c8c62eabb341e0f710d83ff435ef950ca8e Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe 
Date: Mon, 8 Jun 2020 15:14:49 +0200
Subject: [PATCH] installer: utils: Dump command output to syslog when testing.

When debugging the installation tests, it can be very handy to be able to read
"run-command" output, for instance when executing "guix system init".

Introduce a new "invoke-with-log" procedure that is able to log a command
standard and error outputs to the syslog. Use it, only when running the
installation tests, to dump "run-command" output.

* gnu/installer/utils.scm (open-pipe-with-stderr, invoke-with-log): New
procedures,
(invoke-log-port): new variable,
(run-command): move to the end of the file and use invoke-with-log when
running the installation tests.
---
 gnu/installer/utils.scm | 164 +---
 1 file changed, 120 insertions(+), 44 deletions(-)

diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm
index 5f8fe8ca01..68b3dd5009 100644
--- a/gnu/installer/utils.scm
+++ b/gnu/installer/utils.scm
@@ -22,8 +22,13 @@
   #:use-module (guix build utils)
   #:use-module (guix i18n)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-11)
+  #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
   #:use-module (ice-9 match)
+  #:use-module (ice-9 popen)
   #:use-module (ice-9 rdelim)
   #:use-module (ice-9 regex)
   #:use-module (ice-9 format)
@@ -68,50 +73,6 @@ number. If no percentage is found, return #f"
 (and result
  (string->number (match:substring result 1)
 
-(define* (run-command command #:key locale)
-  "Run COMMAND, a list of strings, in the given LOCALE.  Return true if
-COMMAND exited successfully, #f otherwise."
-  (define env (environ))
-
-  (define (pause)
-(format #t (G_ "Press Enter to continue.~%"))
-(send-to-clients '(pause))
-(environ env)   ;restore environment variables
-(match (select (cons (current-input-port) (current-clients))
- '() '())
-  (((port _ ...) _ _)
-   (read-line port
-
-  (setenv "PATH" "/run/current-system/profile/bin")
-
-  (when locale
-(let ((supported? (false-if-exception
-   (setlocale LC_ALL locale
-  ;; If LOCALE is not supported, then set LANGUAGE, which might at
-  ;; least give us translated messages.
-  (if supported?
-  (setenv "LC_ALL" locale)
-  (setenv "LANGUAGE"
-  (string-take locale
-   (or (string-index locale #\_)
-   (string-length locale)))
-
-  (guard (c ((invoke-error? c)
- (newline)
- (format (current-error-port)
- (G_ "Command failed with exit code ~a.~%")
- (invoke-error-exit-status c))
- (syslog "command ~s failed with exit code ~a"
- command (invoke-error-exit-status c))
- (pause)
- #f))
-(syslog "running command ~s~%" command)
-(apply invoke command)
-(syslog "command ~s succeeded~%" command)
-(newline)
-(pause)
-#t))
-
 
 ;;;
 ;;; Logging.
@@ -219,3 +180,118 @@ accepting socket."
 
   (current-clients (reverse remainder))
   exp)
+
+
+;;;
+;;; Run commands.
+;;;
+
+;; XXX: This is taken from (guix build utils) and could be factorized.
+(define (open-pipe-with-stderr program . args)
+  "Run PROGRAM with ARGS in an input pipe, but, unlike 'open-pipe*', redirect
+both its standard output and standard error to the pipe.  Return two value:
+the pipe to read PROGRAM's data from, and the PID of the child process running
+PROGRAM."
+  ;; 'open-pipe*' doesn't attempt to capture stderr in any way, which is why
+  ;; we need to roll our own.
+  (match (pipe)
+((input .  output)
+ (match (primitive-fork)
+   (0
+(dynamic-wind
+  (const #t)
+  (lambda ()
+(close-port input)
+(close-port (syslog-port))
+(dup2 (fileno output) 1)
+(dup2 (fileno output) 2)
+(apply execlp program program args))
+  (lambda ()
+(primitive-exit 127
+   (pid
+(close-port output)
+(values input pid))
+
+(define invoke-log-port
+  ;; Port used by INVOKE-WITH-LOG for logging.
+  (make-parameter #f))
+
+(define* (invoke-with-log program . args)
+  "Invoke PROGRAM with ARGS and log PROGRAM's standard output and standard
+error to INVOKE-LOG-PORT.  If PROGRAM succeeds, print nothing and return the
+unspecified value; otherwise, raise a '&message' error condition with the
+status code.  This procedure is 

bug#41774: Clementine may not be deterministic

2020-06-09 Thread Thorsten Wilms
Since I had to cause a local build despite having a substitute, I used
‘guix build clementine --no-grafts --check’, which reported:
guix build: error: derivation
`/gnu/store/003z966hxvb6hs17sjq4fcwshcqvafxa-clementine-1.3.1-2.4619a4c.drv'
may not be deterministic: output
`/gnu/store/2vpsjrx7q7wx9715cpc2y1vg5xy7hbfw-clementine-1.3.1-2.4619a4c'
differs

‘guix challenge clementine’ reports it to be identical, “because it's
just looking at the substitute you downloaded”, as Ludovic said on IRC.

-- 
Thorsten Wilms 





bug#41702: `guix environment` performance issues

2020-06-09 Thread Lars-Dominik Braun
Hey,

> That’s over SSH, right?
correct, the worst possible case: Inside two VM’s on a Laptop, SSH transport
between them and /gnu+/var/guix on an NFS share (nfsd is in the same VM as
guix-daemon).

> Probably what’s killing us is the round-trip time for all these small
> RPCs.  We would need pipelining but the RPC protocol is not designed to
> make that easy.
That would have been my best guess too, but it does not seem to be the biggest
problem right now. Looking at the numbers again (both patches applied) with the
attached manifest[1], I see that:

---snip---
Local UNIX socket with and without --no-grafts:
N   Min   MaxMedian   AvgStddev
x  10  6.07  6.35 6.145  6.160.08232726
+  10 17.47 17.8917.54517.6020.14351152
Difference at 99.0% confidence
11.442 +/- 0.150576
185.747% +/- 4.07133%

Local UNIX socket vs. guix://localhost transport:
N   Min   MaxMedian   AvgStddev
x  10 17.47 17.8917.54517.6020.14351152
+  10 17.43  18.1 17.6117.6420.20131788
No difference proven at 99.0% confidence

Local UNIX socket vs ssh://localhost transport:
N   Min   MaxMedian   AvgStddev
x  10 17.47 17.8917.54517.6020.14351152
+  10 33.46 35.2734.31534.3590.53873205
Difference at 99.0% confidence
16.757 +/- 0.5074
95.1994% +/- 3.13957%
---snap---

So I would conclude:

1) Grafting still takes a lot of time and needs more work
2) Linux optimizes localhost networking pretty well
3) Our SSH transport is terribly slow

Moving to non-localhost communication between two VM’s:

---snip---
guix://localhost vs. guix://remote-host transport:
N   Min   MaxMedian   AvgStddev
x  10 17.43  18.1 17.6117.6420.20131788
+  10 20.88 22.5821.09521.2220.49689704
Difference at 99.0% confidence
3.58 +/- 0.487934
20.2925% +/- 2.85159%

guix://remote-host vs. ssh://remote-host:
N   Min   MaxMedian   AvgStddev
x  10 20.88 22.5821.09521.2220.49689704
+  10  30.1 32.5631.00531.0930.70740606
Difference at 99.0% confidence
9.871 +/- 0.786769
46.5131% +/- 4.35326%
---snap---

Conclusion here is the same: Not alot of impact of networking/NFS and SSH
transport is still terribly slow. (Confusingly faster than localhost though.)

> Perhaps you could “strace -Tt” the thing to check whether this
> hypothesis is correct by looking at the time we spend waiting for
> replies?
I’m not sure this will yield meaningful data for SSH, so I analyzet it for
guix://localhost vs. guix://remote-host. Takeaway is, yes, of course there is a
statistically significant difference and it’s about 40%±50%, which means this
method is pretty useless, because we can’t bin RPC’s by type.

So, I guess it would make sense for me to look at the SSH transport itself
again and see if there are any other low-hanging fruit. Not sure how much I can
help with profiling guile/guix itself. A different/better RPC protocol is
probably GSoC/v2.0-worthy?

Sorry for all the lengthy emails,
Lars

[1] You’ll need this channel: https://github.com/leibniz-psychology/guix-zpid

(specifications->manifest
 '(
 "coreutils"
 "findutils"
 "procps"
 "strace"
 "openssh"
 "mit-krb5"
 "bash"
 "which"
 "zip"
 "geeqie"
 "util-linux"
 "grep"
 "glibc"
 ;; for locales
 "glibc-locales"
 ;; front-end software
 "jupyter-zpid"
 "python-jupyterlab"
 ;; available notebook kernel
 ; provided by jupyter-zpid
 ;"python-ipykernel"
 "r-irkernel"
 "rstudio-server-zpid"
 "r"
 ;; for RMarkdown
 "r-knitr"
 "r-yaml"
 "r-markdown"
 "r-rmarkdown"
 "texlive"
 ;; commonly used r packages
 "r-psych"
 "r-ggplot2"
 "r-lattice"
 "r-foreign"
 "r-readr"
 "r-haven"
 "r-dplyr"
 "r-tidyr"
 "r-stringr"
 "r-forecast"
 "r-lme4"
 "r-nlme"
 "r-nnet"
 "r-glmnet"
 "r-caret"
 "r-xmisc"
 "r-splitstackshape"
 "r-tm"
 "r-quanteda"
 "r-topicmodels"
 "r-stm"
 ;;"r-parallel"
 "r-dt"
 "r-nlp"
 "r-data-table"
 "r-hmisc"
 "r-learnr"
 "r-metafor"
 ;; for rmarkdown
 "ghc-pandoc"
 ))


signature.asc
Description: PGP signature


bug#41746: [PATCH] gnu: grub: Support graphical gfxterm on all systems.

2020-06-09 Thread Mathieu Othacehe


Hey Stefan,

> * gnu/bootloaders/grub.scm (eye-candy): Use gfxterm depending only on
> (bootloader-configuration (terminal-outputs …)), which defaults to '(gfxterm).
> This makes the system argument obsolete.

This looks good, however due to recent changes in this file (multiboot
support), it doesn't apply well. Could you please rebase it and send and
updated version?

Thanks,

Mathieu





bug#34275: clementine-1.3.1 fails test

2020-06-09 Thread Thorsten Wilms
It appears the issue has vanished, or ‘guix build clementine
--no-grafts --check’ is not entirely equivalent. I had to use the
later, since a recent ‘guix pull && guix package -u’ got me a
substitute for clementine. The build succeeded this way, though check
found a difference (separate report coming up).





bug#34275: clementine-1.3.1 fails test

2020-06-09 Thread Thorsten Wilms
On Mon, 08 Jun 2020 20:19:25 +0200
Marius Bakke  wrote:

> What architecture are you on, and what does 'guix describe' say?

x86_64, Intel Core 2 Duo

~: guix describe
Generation 122  Jun 09 2020 09:05:51(current)
  guix 2356713
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 23567138f842136f83f318b5915457af882ca38a

GUIX_PACKAGE_PATH="/media/hd/devel/guix/packages"

-- 
Thorsten Wilms 





bug#41760: ganv-1.5.4 fails at configure

2020-06-09 Thread Thorsten Wilms
On Mon, 08 Jun 2020 20:12:54 +0200
Marius Bakke  wrote:

> ganv was updated to 1.6.0 a while back.  Do you get the same failure
> after a 'guix pull'?

That was after ‘guix pull’. ‘ganv’ is pulled in via ‘ingen’ here.

```
build of /gnu/store/bxz04gap29dxsmjvb3z4hjdid9l1fil7-ganv-1.5.4-1.12f7d6b04.drv 
failed
View build log at 
'/var/log/guix/drvs/bx/z04gap29dxsmjvb3z4hjdid9l1fil7-ganv-1.5.4-1.12f7d6b04.drv.bz2'.
substituting /gnu/store/8vgp4lv6k16ffq5zhfsjdqb2mpxa5642-aubio-0.4.9...
|guix package: error: build of 
`/gnu/store/ahx77sfl5zxgs37vx1g445czp7scrqp1-ingen-0.0.0-2.cc4a4db33.drv' failed
```





bug#22883: [bug#41767] [PATCH 0/9] Authenticate channels

2020-06-09 Thread Ludovic Courtès
Ludovic Courtès  skribis:

> This patch series does it!  It integrates checkout authentication
> with (guix channels).  Now, ‘guix pull’, ‘guix time-machine’ etc.
> automatically authenticate the commits they fetch and raise an
> error if they find an unsigned commit or a commit signed by an
> unauthorized party¹.

[...]

> ¹ https://issues.guix.gnu.org/issue/22883#64

Something we didn’t discuss is that this model forbids a merge-request
kind of workflow, or at least the person who merges must sign the
commits, rewriting the merged branch.

I think it’s a reasonable tradeoff in this space, but it’s worth
keeping in mind.

Ludo’.