how to get the path of the logfile after an unsuccesful build?

2018-03-09 Thread ng0
Hi,

did we ever talk about that there's too little information on how to get
the current log file of a failed build? I need this right now (the full log)
and I can't remember how, and making use of the log folder in var/log/guix/ 
won't
help either.

-- 
A88C8ADD129828D7EAC02E52E22F9BBFEE348588
https://n0.is/~ng0



Re: Regarding Outreachy round 16

2018-03-09 Thread Ricardo Wurmus

Hi Aakanksha,

> I'm interested in working on the project "Improve the user experience
> for Guix package".

Thanks for your interest in Guix!

> I know C/C++ fair enough, I have experience working with GIT too.

Excellent!  Some familiarity with C++ will come in handy.  Most of Guix
is written in Guile Scheme, which is a language that can be learned very
quickly, but some parts that are relevant for this project are written
in C++.

> Can anyone tell me how do I begin contributing?

A good start is to create a simple Guix package.  In order to do that
you will have to install Guix first.  We have an installation script
that simplifies this process:

https://git.savannah.gnu.org/cgit/guix.git/tree/etc/guix-install.sh

Once you have Guix installed and confirmed that you can build the
“hello” package without errors, I’d suggest getting and compiling the
Guix sources.  This is explained in the manual (which also includes a
couple of other hints):

http://www.gnu.org/software/guix/manual/html_node/Contributing.html

Once you have the Guix sources you can start editing the files under
“gnu/packages”, which contain package definitions.

You can then create a new package definition for a package of your
choosing and submit it to the guix-patc...@gnu.org mailing list as a git
formatted patch.

This may be a little overwhelming at first, but don’t worry about it.  I
strongly encourage you to ask questions on the #guix IRC channel on
irc.freenode.net.  People there are usually very helpful, and as there
are many regular contributors, they should be able to help you out.

Getting started is probably the hardest part (it was for me), so don’t
worry about asking too many questions :)

I hope this answers your questions.  If anything in this message should
be unclear or confusing feel free to just ask here or by sending me an
email off-list.

--
Ricardo

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





Re: how to get the path of the logfile after an unsuccesful build?

2018-03-09 Thread ng0
Ricardo Wurmus transcribed 358 bytes:
> 
> ng0  writes:
> 
> > did we ever talk about that there's too little information on how to get
> > the current log file of a failed build? I need this right now (the full log)
> > and I can't remember how, and making use of the log folder in var/log/guix/ 
> > won't
> > help either.
> 
> The daemon doesn’t keep logs for failed builds.
> 
> -- 
> Ricardo

So how are we supposed to figure out failures then that happen outside of the 
length of
the terminal scrollback? Of course I could run it in tmux, but having log files 
to
share of the failed build comes in handy when debugging builds with 
upstream/downstream
projects.

-- 
A88C8ADD129828D7EAC02E52E22F9BBFEE348588
https://n0.is/~ng0



Re: how to get the path of the logfile after an unsuccesful build?

2018-03-09 Thread Clément Lassieur
ng0  writes:

> Ricardo Wurmus transcribed 358 bytes:
>> 
>> ng0  writes:
>> 
>> > did we ever talk about that there's too little information on how to get
>> > the current log file of a failed build? I need this right now (the full 
>> > log)
>> > and I can't remember how, and making use of the log folder in 
>> > var/log/guix/ won't
>> > help either.
>> 
>> The daemon doesn’t keep logs for failed builds.
>> 
>> -- 
>> Ricardo
>
> So how are we supposed to figure out failures then that happen outside of the 
> length of
> the terminal scrollback? Of course I could run it in tmux, but having log 
> files to
> share of the failed build comes in handy when debugging builds with 
> upstream/downstream
> projects.

Can't you redirect the output to a file?



Re: how to get the path of the logfile after an unsuccesful build?

2018-03-09 Thread ng0
Clément Lassieur transcribed 766 bytes:
> ng0  writes:
> 
> > Ricardo Wurmus transcribed 358 bytes:
> >> 
> >> ng0  writes:
> >> 
> >> > did we ever talk about that there's too little information on how to get
> >> > the current log file of a failed build? I need this right now (the full 
> >> > log)
> >> > and I can't remember how, and making use of the log folder in 
> >> > var/log/guix/ won't
> >> > help either.
> >> 
> >> The daemon doesn’t keep logs for failed builds.
> >> 
> >> -- 
> >> Ricardo
> >
> > So how are we supposed to figure out failures then that happen outside of 
> > the length of
> > the terminal scrollback? Of course I could run it in tmux, but having log 
> > files to
> > share of the failed build comes in handy when debugging builds with 
> > upstream/downstream
> > projects.
> 
> Can't you redirect the output to a file?

  guix build hello  2>&1 | tee output.txt

would work of course, but why throw away the logs when we could just save them?
It seems not very developer friendly to me. This way I will just write another
script that wraps around guix build and saves all my build logs to a location.
I think guix should handle this by default unless there are good reasons not to
do it.
-- 
A88C8ADD129828D7EAC02E52E22F9BBFEE348588
https://n0.is/~ng0



Re: how to get the path of the logfile after an unsuccesful build?

2018-03-09 Thread Hartmut Goebel
Am 09.03.2018 um 15:06 schrieb ng0:
> The daemon doesn’t keep logs for failed builds.

I asked this a few month ago and was told this is a bug.

-- 
Regards
Hartmut Goebel

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




Re: how to get the path of the logfile after an unsuccesful build?

2018-03-09 Thread ng0
Hartmut Goebel transcribed 332 bytes:
> Am 09.03.2018 um 15:06 schrieb ng0:
> > The daemon doesn’t keep logs for failed builds.
> 
> I asked this a few month ago and was told this is a bug.
> 
> -- 
> Regards
> Hartmut Goebel
> 
> | Hartmut Goebel  | h.goe...@crazy-compilers.com   |
> | www.crazy-compilers.com | compilers which you thought are impossible |
> 
> 
> 

Okay, thanks for pointing this out to me.
For now I'll use yet another script.
-- 
A88C8ADD129828D7EAC02E52E22F9BBFEE348588
https://n0.is/~ng0



Re: how to get the path of the logfile after an unsuccesful build?

2018-03-09 Thread Clément Lassieur

Hartmut Goebel  writes:

> Am 09.03.2018 um 15:06 schrieb ng0:
>> The daemon doesn’t keep logs for failed builds.
>
> I asked this a few month ago and was told this is a bug.

I think it would be great to create a bug report.



Re: [PATCH] fix idris (was "Re: Incomplete work to upgrade Idris to 1.2.0")

2018-03-09 Thread Alex ter Weele
Sorry about the mail floundering, hopefully this is better.

>From 2486f55a177b3f62509fd999e5d5cbd072d5ce17 Mon Sep 17 00:00:00 2001
From: Alex ter Weele 
Date: Wed, 7 Mar 2018 18:28:24 -0600
Subject: [PATCH 1/4] gnu: Add ghc-aeson-1.1.2.0.

* gnu/packages/idris.scm (ghc-aeson-1.1.2.0): New variable.
---
 gnu/packages/idris.scm | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index 6eb940c9d..ae90676d5 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -30,6 +30,20 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages))
 
+(define ghc-aeson-1.1.2.0
+  (package (inherit ghc-aeson)
+(version "1.1.2.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append
+ "https://hackage.haskell.org/package/aeson/aeson-";
+ version
+ ".tar.gz"))
+   (sha256
+(base32
+ "1zy5z8pzvh53qkjm0nm3f4rwqfqg3867ck8ncd6mrxpcyvxqqj1p"))
+
 (define-public idris
   (package
 (name "idris")
-- 
2.16.2

>From 477d5f85747501c5b78597f76713fa6f87eedd6f Mon Sep 17 00:00:00 2001
From: Alex ter Weele 
Date: Wed, 7 Mar 2018 18:29:23 -0600
Subject: [PATCH 2/4] gnu: Add ghc-trifecta-1.6.2.1.

* gnu/packages/idris.scm (ghc-trifecta-1.6.2.1): New variable.
---
 gnu/packages/idris.scm | 13 +
 1 file changed, 13 insertions(+)

diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index ae90676d5..b67fcbccf 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -44,6 +44,19 @@
 (base32
  "1zy5z8pzvh53qkjm0nm3f4rwqfqg3867ck8ncd6mrxpcyvxqqj1p"))
 
+(define ghc-trifecta-1.6.2.1
+  (package (inherit ghc-trifecta)
+(version "1.6.2.1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append
+ "https://hackage.haskell.org/package/trifecta/";
+ "trifecta-" version ".tar.gz"))
+   (sha256
+(base32
+ "1rgv62dlmm4vkdymx5rw5jg3w8ifpzg1745rvs1m4kzdx16p5cxs"))
+
 (define-public idris
   (package
 (name "idris")
-- 
2.16.2

>From ef0dcd5a84c4f8e4331fb8f07a4e1709a577eb31 Mon Sep 17 00:00:00 2001
From: Alex ter Weele 
Date: Wed, 7 Mar 2018 18:31:22 -0600
Subject: [PATCH 3/4] gnu: Add ghc-cheapskate-0.1.0.5.

* gnu/packages/idris.scm (ghc-cheapskate-0.1.0.5): New variable.
---
 gnu/packages/idris.scm | 19 +++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index b67fcbccf..c103055f5 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -57,6 +57,25 @@
 (base32
  "1rgv62dlmm4vkdymx5rw5jg3w8ifpzg1745rvs1m4kzdx16p5cxs"))
 
+;; ghc-cheapskate appeared too new. This follows LTS Haskell.
+(define ghc-cheapskate-0.1.0.5
+  (package
+(inherit ghc-cheapskate)
+(version "0.1.0.5")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append
+ "https://hackage.haskell.org/package/cheapskate/cheapskate-";
+ version
+ ".tar.gz"))
+   (sha256
+(base32
+ "0cpsmfx5z2xykg71sv8j7pl8ga6pzyjnjdb9bxn00vcpqkzvfqvs"
+(arguments
+ ;; LTS Haskell says data-default >=0.5 && <0.8
+ `(#:configure-flags (list "--allow-newer=data-default")
+
 (define-public idris
   (package
 (name "idris")
-- 
2.16.2

>From c19d3fc198afdddefc4feeb9151b57e7f72d8303 Mon Sep 17 00:00:00 2001
From: Alex ter Weele 
Date: Wed, 7 Mar 2018 18:32:19 -0600
Subject: [PATCH 4/4] gnu: Fix idris.

* gnu/packages/idris.scm (idris)[inputs]: alphebetize
  ghc-vector-binary-instances and ghc-async. Use ghc-aeson-1.1.2.0,
  ghc-cheapskate-0.1.0.5, and ghc-trifecta-1.6.2.1. Remove ghc-aeson,
  ghc-cheapskate, ghc-parsers, ghc-tasty, ghc-tasty-golden, ghc-tasty-rerun,
  ghc-trifecta, and ghc-zlib.
---
 gnu/packages/idris.scm | 17 ++---
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index c103055f5..633b8b9d5 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -92,15 +92,15 @@
 (inputs
  `(("gmp" ,gmp)
("ncurses" ,ncurses)
-   ("ghc-aeson" ,ghc-aeson)
-   ("ghc-async" ,ghc-async)
+   ("ghc-aeson" ,ghc-aeson-1.1.2.0)
("ghc-annotated-wl-pprint" ,ghc-annotated-wl-pprint)
("ghc-ansi-terminal" ,ghc-ansi-terminal)
("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
+   ("ghc-async" ,ghc-async)
("ghc-base64-bytestring" ,ghc-base64-bytestring)
("ghc-blaze-html" ,ghc-blaze-html)
("ghc-blaze-markup" ,ghc-blaze-markup)
-   ("ghc-cheapskate" ,ghc-cheapskate)
+   ("ghc-cheapskate" ,ghc-cheapskate-0.1.0.5)
("ghc-code-page" ,ghc-code-page)
("ghc-fingertree" ,ghc-fingertree)
("ghc-fsnotify" ,ghc-fsnotify)
@@ -108,23 +108,18 @@
("ghc-mtl" ,ghc-mtl)
("ghc-network" ,ghc-network)
("ghc-optparse-app

Re: how to get the path of the logfile after an unsuccesful build?

2018-03-09 Thread Mark H Weaver
ng0  writes:

> did we ever talk about that there's too little information on how to get
> the current log file of a failed build? I need this right now (the full log)
> and I can't remember how, and making use of the log folder in var/log/guix/ 
> won't
> help either.

Why won't /var/log/guix help?  To see the most recent build logs for a
given package, say 'icecat', I do this:

  ls -ltr /var/log/guix/drvs/*/*-icecat* | tail

This might not work for offloaded builds, though.

  Mark



Re: extract tools from guix scripts

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

Ricardo Wurmus  skribis:

> under “guix/scripts” there are a couple of tools that are really useful,
> such as “guix challenge”.  While they are great for the command line,
> I’d really like to use them from within Guile.
>
> Using “(guix-challenge)” directly is cumbersome, because I need to
> provide an argument list “args”, which is then parsed internally.
> Instead, I’d like to be able to say
>
>(challenge #:urls (list "a" "b")
>   #:packages (list foo bar baz))
>
> and have it produce some report values.  Then “guix-challenge” could be
> implemented in terms of “challenge”.

I think ‘compare-contents’ in (guix scripts challenge) is close to what
you want, no?  See tests/challenge.scm for example usage.

The short-lived reproducibility.html generator also used it:

  
http://git.savannah.gnu.org/cgit/guix/guix-artwork.git/tree/website/www/packages.scm?id=ae2d0209cc44e25a45cab0abcc9d85172fd48dca#n545

> The same might be useful for “guix-build” or “guix-environment”.

I agree with this sentiment!

Then it’s a matter of defining an appropriate API.  For instance, all
‘guix-build’ does is UI stuff around (guix store) and (guix packages).
There’s a higher-level ‘build-package’ procedure in (guix scripts).

IMO a good interface can’t just be a Schemey variant of the CLI, because
often the CLI papers over a number of details that a good API should
expose.

Ludo’.



Re: how to get the path of the logfile after an unsuccesful build?

2018-03-09 Thread Ricardo Wurmus

ng0  writes:

> did we ever talk about that there's too little information on how to get
> the current log file of a failed build? I need this right now (the full log)
> and I can't remember how, and making use of the log folder in var/log/guix/ 
> won't
> help either.

The daemon doesn’t keep logs for failed builds.

-- 
Ricardo