Splitting up packages, targeting smaller/older devices

2021-04-18 Thread raingloom
I've been pondering installing Guix onto some of my devices that have
tiny amounts of storage. I have an old desktop PC that had an old
version of Uhu Linux on it on a mere 4 gigs of HDD space. Full
graphical desktop, office suite, etc.
A minimal Guix install can just barely fit on it, but can't upgrade
itself. I think it could be possible.

One thing I'd like to try is to split up packages into more outputs,
kinda like what Alpine does. This isn't really technically challenging,
it's mostly just busywork and adding some default build phases and
maybe some more default outputs. But it is a pretty big change, so, is
this something that could eventually be upstreamed?

I'm not planning on starting work on this any time soon, so there's no
rush. Just testing the water for now.
So, is this something that would be welcome in Guix? Do we also want to
target even smaller devices, like OpenWRT supported routers? NixWRT
already exists, so it's not like this is unexplored territory.
PostmarketOS supported devices could be supported too in the future,
storage is also at a premium on those, not to mention flash memory wear
from needless writes.



Re: [Outreachy] - Guix Data Service - Set a more informative page title

2021-04-18 Thread Canan Talayhan
Thanks for your quick response.

>Why's the @ being removed here?
It interprets like an HTML code when I use the page-header like
`,page-header, so I removed it. According to your comment, I reverted
to the original version.

" 'GET repository..." which includes package/package-name in the URL
has not the best titles since I couldn't test them because of the
error that I've mentioned.
I'm open to suggestions.

Could you please re-review the patch that contains all the
modifications you've mentioned in the previous message?

On Sun, Apr 18, 2021 at 8:53 PM Christopher Baines  wrote:
>
>
> Canan Talayhan  writes:
>
> > I've updated the patch that contains all the suggestions. I think the patch
> > is ready to merge.
> >
> > One thing that I would like to ask you about the package and package-name
> > in web/repository/controller.scm.
> >
> > When I test the URL below I'm getting this error. (
> > https://pastebin.ubuntu.com/p/HdKShmKqH7/)
> >
> >- ('GET "repository" repository-id "branch" branch-name "package"
> >package-name) ->
> >http://localhost:8765/repository/1/branch/master/package/emacs
> >
> > What do you think? BTW it's accessible on the official server.
> >
> >- https://data.guix.gnu.org/repository/1/branch/master/package/emacs/
>
> Hmm, this could possibly be due to an issue with the small dump of the
> database.
>
> > Could you please review the patch attached?
> > I'm very excited to make my first FOSS contribution. :)
>
> I've had a look though, and I have some more comments:
>
>   diff --git a/guix-data-service/web/compare/html.scm 
> b/guix-data-service/web/compare/html.scm
>   index 5b5fe0a..170fb12 100644
>   --- a/guix-data-service/web/compare/html.scm
>   +++ b/guix-data-service/web/compare/html.scm
>   @@ -96,7 +96,12 @@
>(unless invalid-query?
>  (query-parameters->string query-parameters)))
>
>   +  (define page-header "Comparing")
>   +
>  (layout
>   +   #:title
>   +   (string-append page-header " " (string-take base-commit 8) " and "
>   +(string-take target-commit 8))
>   #:body
>   `(,(header)
> (div
>   @@ -107,7 +112,7 @@
>(@ (class "col-sm-7"))
>,@(if invalid-query?
>  `((h1 "Compare"))
>   -  `((h1 "Comparing "
>   +  `((h1 ,page-header ," "
>(a (@ (href ,(string-append "/revision/" base-commit)))
>   (samp ,(string-take base-commit 8) "…"))
>" and "
>
> There's a couple of things here. I'd be tempted not to use a variable
> for "Comparing", it's not really the page header, as that's more
> complicated, so I think I'd just use the string in both places.
>
> Second thing, the (if invalid-query? bit when constructing the h1
> element is important. The query parameters being invalid could mean
> anything from the form just hasn't been filled in, to the value isn't
> actually a commit hash, but something else, maybe some HTML/JavaScript
> that is malicious and shouldn't be included in the page. A similar
> approach probably needs taking for the title.
>
>   @@ -419,14 +424,18 @@
>'(span (@ (class "text-success glyphicon glyphicon-plus pull-left")
>  (style "font-size: 1.5em; padding-right: 0.4em;"
>
>   +  (define page-header "Comparing derivations")
>   +
>  (layout
>   +   #:title
>   +   page-header
>   #:body
>   `(,(header)
> (div
>  (@ (class "container"))
>  (div
>   (@ (class "row"))
>   -   (h1 ,@(let ((base-commit (assq-ref query-parameters 'base_commit))
>   +   (h1 ,(let ((base-commit (assq-ref query-parameters  'base_commit))
>
> Why's the @ being removed here?
>
>   @@ -435,7 +444,7 @@
> " and "
> (a (@ (href ,(string-append "/revision/" 
> target-commit)))
>(samp ,(string-take target-commit 8) "…")))
>   -   '("Comparing derivations")
>   +`,page-header
>
> The quote then immediate unquote here isn't necessary, also, I think
> this should stick to being a list containing a string, as the other part
> of the if returns a list.
>
>   diff --git a/guix-data-service/web/dumps/html.scm 
> b/guix-data-service/web/dumps/html.scm
>   index 71e69c8..9645f7c 100644
>   --- a/guix-data-service/web/dumps/html.scm
>   +++ b/guix-data-service/web/dumps/html.scm
>   @@ -21,8 +21,13 @@
>  #:use-module (guix-data-service web view html)
>  #:export (view-dumps))
>
>   +(define page-header "Database dumps")
>   +
>(define (view-dumps available-dumps)
>   +
>  (layout
>   +   #:title
>   +   page-header
>   #:body
>   `(,(header)
> (div
>   @@ -31,7 +36,7 @@
>   (@ (class "row"))
>   (div
>(@ (class "col-sm-12"))
>   -(h1 "Database dumps")))
>   +(h1 ,page-header)))
>
> Like the others, I'd probably put page-header inside 

Re: Outreachy - Guix Data Service: implementing basic json output for derivation comparison page

2021-04-18 Thread Luciana Lima Brito
Hi,

On Sun, 18 Apr 2021 17:34:13 +0100
Christopher Baines  wrote:
 
> I think it might be good to do something, just to narrow the scope.
> The outputs binding is valid for the whole let*, and all the code in
> it, but is only used on three lines, in one single place. Maybe there
> could be a let there that just defines outputs (maybe named
> output-groups so you can use the outputs binding for the overall
> thing).

I did it.
 
> That's a good question, I'd look at the database schema, assuming the
> type of the field is a boolean, the question is whether the field is
> nullable?

I looked on the database schema, and the "recursive" field is not
nullable, and it is a boolean, so the test I'm doing is working for
this.
 
> Hmm, I'm not sure why that is on the HTML page, but I'd generally try
> and keep most bits in the JSON, since it's not as helpful to omit bits
> if they're not that important.

I added the "common" field for inputs.
> 
> One other thing I noticed is that the alist for the args is being
> picked apart then reconstructed. Like for the inputs, outputs and
> sources, I'd map over the arguments alist and transform it to the way
> you want it to be.

This part was a bit more complicated for me to understand. You mean I
should build a function similar to outputs, inputs and sources to map
the arguments, wouldn't it be a lot just to show a vector?

-- 
Best Regards,

Luciana Lima Brito
MSc. in Computer Science
>From dc74d1a8f8f5e7527cdb63b66e8e2b937e614f32 Mon Sep 17 00:00:00 2001
From: Luciana Brito 
Date: Sun, 11 Apr 2021 11:06:06 -0300
Subject: [PATCH] Implement basic json output for the derivation comparison
 page

---
 guix-data-service/web/compare/controller.scm | 83 +++-
 1 file changed, 80 insertions(+), 3 deletions(-)

diff --git a/guix-data-service/web/compare/controller.scm b/guix-data-service/web/compare/controller.scm
index a6aa198..ab5f9c4 100644
--- a/guix-data-service/web/compare/controller.scm
+++ b/guix-data-service/web/compare/controller.scm
@@ -588,9 +588,86 @@
  '(application/json text/html)
  mime-types)
 ((application/json)
- (render-json
-  '((error . "unimplemented")) ; TODO
-  #:extra-headers http-headers-for-unchanging-content))
+ (let* ((outputs
+ (map
+  (lambda (label items)
+(cons label
+  (list->vector
+   (map
+(match-lambda
+  ((name path hash-alg hash recursive)
+   `((name . ,name)
+ (path . ,path)
+ ,@(if (not (string? hash-alg))
+   '()
+   `((hash-algorithm . ,hash-alg)))
+ ,@(if (not (string? hash))
+   '()
+   `((hash . ,hash)))
+ (recursive . ,(string=? recursive "t")
+(or items '())
+  '(base target common)
+  (let ((output-groups (assq-ref data 'outputs)))
+(list (assq-ref output-groups 'base)
+  (assq-ref output-groups 'target)
+  (assq-ref output-groups 'common)
+
+(inputs
+ (map
+  (lambda (label items)
+(cons label
+  (list->vector
+   (map 
+(match-lambda
+  ((derivation output)
+   `((derivation . ,derivation)
+ (output . ,output
+(or items '())
+  '(base target common)
+  (let ((input-groups (assq-ref data 'inputs)))
+(list (assq-ref input-groups 'base)
+  (assq-ref input-groups 'target)
+  (assq-ref input-groups 'common)
+
+(sources
+ (map
+  (lambda (label items)
+(cons label
+  (list->vector
+   (map
+(match-lambda
+  ((derivation)
+   `((derivation . ,derivation
+(or items '())
+  '(base target common)
+  (let ((source-groups (assq-ref data 'sources)))
+(list (assq-ref source-groups 'base)
+

Re: [Outreachy] - Guix Data Service - Set a more informative page title

2021-04-18 Thread Christopher Baines

Canan Talayhan  writes:

> I've updated the patch that contains all the suggestions. I think the patch
> is ready to merge.
>
> One thing that I would like to ask you about the package and package-name
> in web/repository/controller.scm.
>
> When I test the URL below I'm getting this error. (
> https://pastebin.ubuntu.com/p/HdKShmKqH7/)
>
>- ('GET "repository" repository-id "branch" branch-name "package"
>package-name) ->
>http://localhost:8765/repository/1/branch/master/package/emacs
>
> What do you think? BTW it's accessible on the official server.
>
>- https://data.guix.gnu.org/repository/1/branch/master/package/emacs/

Hmm, this could possibly be due to an issue with the small dump of the
database.

> Could you please review the patch attached?
> I'm very excited to make my first FOSS contribution. :)

I've had a look though, and I have some more comments:

  diff --git a/guix-data-service/web/compare/html.scm 
b/guix-data-service/web/compare/html.scm
  index 5b5fe0a..170fb12 100644
  --- a/guix-data-service/web/compare/html.scm
  +++ b/guix-data-service/web/compare/html.scm
  @@ -96,7 +96,12 @@
   (unless invalid-query?
 (query-parameters->string query-parameters)))

  +  (define page-header "Comparing")
  +
 (layout
  +   #:title
  +   (string-append page-header " " (string-take base-commit 8) " and "
  +(string-take target-commit 8))
  #:body
  `(,(header)
(div
  @@ -107,7 +112,7 @@
   (@ (class "col-sm-7"))
   ,@(if invalid-query?
 `((h1 "Compare"))
  -  `((h1 "Comparing "
  +  `((h1 ,page-header ," "
   (a (@ (href ,(string-append "/revision/" base-commit)))
  (samp ,(string-take base-commit 8) "…"))
   " and "

There's a couple of things here. I'd be tempted not to use a variable
for "Comparing", it's not really the page header, as that's more
complicated, so I think I'd just use the string in both places.

Second thing, the (if invalid-query? bit when constructing the h1
element is important. The query parameters being invalid could mean
anything from the form just hasn't been filled in, to the value isn't
actually a commit hash, but something else, maybe some HTML/JavaScript
that is malicious and shouldn't be included in the page. A similar
approach probably needs taking for the title.

  @@ -419,14 +424,18 @@
   '(span (@ (class "text-success glyphicon glyphicon-plus pull-left")
 (style "font-size: 1.5em; padding-right: 0.4em;"

  +  (define page-header "Comparing derivations")
  +
 (layout
  +   #:title
  +   page-header
  #:body
  `(,(header)
(div
 (@ (class "container"))
 (div
  (@ (class "row"))
  -   (h1 ,@(let ((base-commit (assq-ref query-parameters 'base_commit))
  +   (h1 ,(let ((base-commit (assq-ref query-parameters  'base_commit))

Why's the @ being removed here?

  @@ -435,7 +444,7 @@
" and "
(a (@ (href ,(string-append "/revision/" 
target-commit)))
   (samp ,(string-take target-commit 8) "…")))
  -   '("Comparing derivations")
  +`,page-header

The quote then immediate unquote here isn't necessary, also, I think
this should stick to being a list containing a string, as the other part
of the if returns a list.

  diff --git a/guix-data-service/web/dumps/html.scm 
b/guix-data-service/web/dumps/html.scm
  index 71e69c8..9645f7c 100644
  --- a/guix-data-service/web/dumps/html.scm
  +++ b/guix-data-service/web/dumps/html.scm
  @@ -21,8 +21,13 @@
 #:use-module (guix-data-service web view html)
 #:export (view-dumps))

  +(define page-header "Database dumps")
  +
   (define (view-dumps available-dumps)
  +
 (layout
  +   #:title
  +   page-header
  #:body
  `(,(header)
(div
  @@ -31,7 +36,7 @@
  (@ (class "row"))
  (div
   (@ (class "col-sm-12"))
  -(h1 "Database dumps")))
  +(h1 ,page-header)))

Like the others, I'd probably put page-header inside the view-dumps
procedure. Same goes for other places where it's outside.

  @@ -267,7 +279,7 @@
   (@ (class "col-sm-12"))
   (a (@ (href "/jobs"))
  (h3 "Jobs"))
  -(h1 "Queued jobs ("
  +(h1 ,page-header"("
   ,(length jobs-and-events)
   ")")))
 (div

I'd suspect the title here would be "Queued jobs(", I'd also put a space
between ,page-header the bit after it in the code.

  @@ -329,8 +341,13 @@
'())
jobs-and-events)

  +
   (define (view-job job-id query-parameters log)
  +  (define page-header (string-append "Job " job-id))
  +
 (layout
  +   #:title
  +   page-header
  #:body
  `(,(header)
(div

Most of the procedures are separated by one line, and I 

Guix Packaging Meetup - Saturday, April 24, 2021 from 14:00 EST (18:00 PM UTC)

2021-04-18 Thread jgart
Hi Guix!

LibreMiami is hosting a guix packaging meetup next Saturday, April 24 at 14:00 
EST.

The format for the meetup will involve talking over mumble while pair 
programming over tmate. 

Feel free to package with us, watch via the livestream, or just chat with over 
mumble.

Here's the meeting link with info on the event and how to join: 

https://events.nixnet.services/events/27955ca1-0aee-4ec5-be20-48e6c45fd0f6

Hope to see you there!

jgart

libremiami.org
donotshake.libremiami.org
mumble.libremiami.org



Guix help page

2021-04-18 Thread Vincent Legoll
Hello,

I think we could add a link to the devel doc [1] (with the appropriate
warnings) to the "all help" page.

WDYT ?

[1] https://guix.gnu.org/manual/devel/

-- 
Vincent Legoll



Re: Outreachy - Guix Data Service: implementing basic json output for derivation comparison page

2021-04-18 Thread Christopher Baines

Luciana Lima Brito  writes:

> Hi,
>
> On Sat, 17 Apr 2021 18:45:14 +0100
> Christopher Baines  wrote:
>
>> Some more things to think about:
>>
>>  - Variable naming, what does the "matched" in matched outputs mean?
>>(same goes for the other "matched" things)
>
> The name matched would refer to the match function, but I changed to
> *-values. The names I wanted were "outputs", "inputs"
> and "sources", but I already used them. If you have anything in mind,
> please let me know.

I think it might be good to do something, just to narrow the scope. The
outputs binding is valid for the whole let*, and all the code in it, but
is only used on three lines, in one single place. Maybe there could be a
let there that just defines outputs (maybe named output-groups so you
can use the outputs binding for the overall thing).

>>  - (if (null? ...), I'm unsure if all of those checks are necessary, I
>>believe some fields at least will never be "null?".
>
> I revised it, I think now it's better.
> About the "recursive" field, apparently it assumes a string value "t"
> or "f", and I convert this to a boolean. Are there other values
> possible?

That's a good question, I'd look at the database schema, assuming the
type of the field is a boolean, the question is whether the field is
nullable?

>> I think you're getting close to something that's ready to merge
>> though.
>
> One last thing, I see that on the html the commom inputs are ommited.
> Does this make sense for the json too?

Hmm, I'm not sure why that is on the HTML page, but I'd generally try
and keep most bits in the JSON, since it's not as helpful to omit bits
if they're not that important.

One other thing I noticed is that the alist for the args is being picked
apart then reconstructed. Like for the inputs, outputs and sources, I'd
map over the arguments alist and transform it to the way you want it to
be.


signature.asc
Description: PGP signature


Re: wip-ungrafting builds stuck

2021-04-18 Thread Mark H Weaver
Mathieu Othacehe  writes:

>> Any idea what could be wrong, Mathieu?  What would you suggest to do
>> when investigating such issues?
>
> Yes I noticed it. The main problem here is that almost all workers are
> stuck building Rust.
>
> I see two actions here:
>
> 1. Understand why Rust is taking so long to build.

The attached patch, which I've been using on my private branch of Guix
for a long time and is fully tested, would significantly speed up the
Rust bootstrap.  I never submitted it because I wasn't sure it would be
of interest.

   Mark

>From cfe7ed9732e77eacf7f9e6b6db0d731b2f7d100e Mon Sep 17 00:00:00 2001
From: Mark H Weaver 
Date: Sun, 19 Jul 2020 23:13:28 -0400
Subject: [PATCH] gnu: rust: Disable check phases of versions before 1.40.

This saves 49 hours of total build time on a Thinkpad X200.

* gnu/packages/rust.scm (rust-1.19)[arguments]: Add "#:tests? #f".
(rust-1.20, rust-1.26)[arguments]: Modify the custom 'check' phase to honor
the '#:tests?' argument.
(rust-1.40)[arguments]: Override '#:tests?' argument to be #t.
---
 gnu/packages/rust.scm | 40 ++--
 1 file changed, 26 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 3952a17908..2b9f26c204 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -236,6 +236,8 @@ safety and thread safety guarantees.")
 (arguments
  `(#:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
#:modules ((guix build utils) (ice-9 match) (guix build gnu-build-system))
+   #:tests? #f  ;Disable the test suite for early versions of rust to save
+;compile time.
#:phases
(modify-phases %standard-phases
  (add-after 'unpack 'set-env
@@ -596,11 +598,16 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
  (invoke "./x.py" "build")
  (invoke "./x.py" "build" "src/tools/cargo")))
  (replace 'check
-   (lambda* _
- ;; Disable parallel execution to prevent EAGAIN errors when
- ;; running tests.
- (invoke "./x.py" "-j1" "test" "-vv")
- (invoke "./x.py" "-j1" "test" "src/tools/cargo")
+   (lambda* (#:key (tests? #t) #:allow-other-keys)
+ (if tests?
+ (let ((parallel-job-spec
+;; Disable parallel execution to prevent EAGAIN
+;; errors when running tests.
+"-j1"))
+   (invoke "./x.py" parallel-job-spec "test" "-vv")
+   (invoke "./x.py" parallel-job-spec "test"
+   "src/tools/cargo"))
+ (format #t "test suite not run~%"))
  #t))
  (replace 'install
(lambda* (#:key outputs #:allow-other-keys)
@@ -774,15 +781,16 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
  ;; binaryen was replaced with LLD project from LLVM
  (delete 'dont-build-native)
  (replace 'check
-   (lambda* _
- ;; Enable parallel execution.
- (let ((parallel-job-spec
-(string-append "-j" (number->string
- (min 4
-  (parallel-job-count))
-   (invoke "./x.py" parallel-job-spec "test" "-vv")
-   (invoke "./x.py" parallel-job-spec "test"
-   "src/tools/cargo"
+   (lambda* (#:key (tests? #t) #:allow-other-keys)
+ (if tests?
+ (let ((parallel-job-spec
+;; Enable parallel execution.
+(format #f "-j~a" (min 4 (parallel-job-count)
+   (invoke "./x.py" parallel-job-spec "test" "-vv")
+   (invoke "./x.py" parallel-job-spec "test"
+   "src/tools/cargo"))
+ (format #t "test suite not run~%"))
+ #t))
  (replace 'remove-unsupported-tests
(lambda* _
  ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH.
@@ -1226,6 +1234,10 @@ move around."
;; which makes this workaround only necessary for this release.
(cons* #:validate-runpath? #f
  (substitute-keyword-arguments (package-arguments base-rust)
+   ((#:tests? _ #t)
+;; Enable the test suite, which was disabled for earlier versions
+;; of rust to save compile time.
+#t)
((#:phases phases)
 `(modify-phases ,phases
;; We often need to patch tests with various Guix-specific paths.
-- 
2.31.1



Re: [Outreachy] - Guix Data Service - Set a more informative page title

2021-04-18 Thread Canan Talayhan
Hi Chris,

I've updated the patch that contains all the suggestions. I think the patch
is ready to merge.

One thing that I would like to ask you about the package and package-name
in web/repository/controller.scm.

When I test the URL below I'm getting this error. (
https://pastebin.ubuntu.com/p/HdKShmKqH7/)

   - ('GET "repository" repository-id "branch" branch-name "package"
   package-name) ->
   http://localhost:8765/repository/1/branch/master/package/emacs

What do you think? BTW it's accessible on the official server.

   - https://data.guix.gnu.org/repository/1/branch/master/package/emacs/

Could you please review the patch attached?
I'm very excited to make my first FOSS contribution. :)

Thanks for your help,
Canan Talayhan


On Fri, Apr 16, 2021 at 2:11 PM Christopher Baines  wrote:

>
> Canan Talayhan  writes:
>
> > After your suggestions, I've fixed the patch. But for the revision
> > part, I have a question. You said "I'd put "Channel News Entries"
> > first, then the Revision bit second." There are so many titles like
> > this structure in Revision views.
> >
> > For example :
> > ->System tests Revision c7d0441
> > or
> > ->Revision c7d0441 System tests
> >
> > Should I fix all of them this way? Or just for Channel News Entries?
>
> I think having the System tests bit first is better, that way different
> pages about the same revision will have more distinct titles, and yeah,
> I'd apply the same principle to other titles as well.
>
From f3d02bf0e7050f544e044b8dd53d52e9dba28d54 Mon Sep 17 00:00:00 2001
From: Canan Talayhan 
Date: Sun, 18 Apr 2021 14:50:20 +0300
Subject: [PATCH] Set a more informative page title for any page where the
 title is "Guix Data Service"

---
 guix-data-service/web/build-server/html.scm | 24 +-
 guix-data-service/web/build/html.scm|  6 +-
 guix-data-service/web/compare/html.scm  | 32 ++--
 guix-data-service/web/dumps/html.scm|  7 +-
 guix-data-service/web/jobs/html.scm | 25 +-
 guix-data-service/web/nar/html.scm  |  6 +-
 guix-data-service/web/package/html.scm  |  6 +-
 guix-data-service/web/repository/html.scm   | 30 ++-
 guix-data-service/web/revision/html.scm | 89 +++--
 guix-data-service/web/view/html.scm | 12 ++-
 10 files changed, 209 insertions(+), 28 deletions(-)

diff --git a/guix-data-service/web/build-server/html.scm b/guix-data-service/web/build-server/html.scm
index f16a570..541a960 100644
--- a/guix-data-service/web/build-server/html.scm
+++ b/guix-data-service/web/build-server/html.scm
@@ -27,7 +27,11 @@
 (define (view-build query-parameters
 build
 required-failed-builds)
+  (define page-header "Build")
+
   (layout
+   #:title
+   page-header
#:body
`(,(header)
  (div
@@ -36,7 +40,7 @@
(@ (class "row"))
(div
 (@ (class "col-sm-12"))
-(h1 "Build")))
+(h1 ,page-header)))
   (div
(@ (class "row"))
,@(match build
@@ -98,7 +102,11 @@
 '())
 
 (define (view-build-servers build-servers)
+  (define page-header "Build servers")
+
   (layout
+   #:title
+   page-header
#:body
`(,(header)
  (div
@@ -107,7 +115,7 @@
(@ (class "row"))
(div
 (@ (class "col-sm-12"))
-(h2 "Build servers")
+(h2 ,page-header)
 ,@(map
(match-lambda
  ((id url lookup-all-derivations? lookup-builds?)
@@ -127,7 +135,11 @@
build-servers)))
 
 (define (view-build-server build-server)
+  (define page-header "Build server")
+
   (layout
+   #:title
+   page-header
#:body
`(,(header)
  (div
@@ -136,7 +148,7 @@
(@ (class "row"))
(div
 (@ (class "col-sm-12"))
-(h2 "Build server")
+(h2 ,page-header)
 ,(match build-server
((url lookup-all-derivations?)
 `(dl
@@ -150,7 +162,11 @@
"No")))
 
 (define (view-signing-key sexp)
+  (define page-header "Signing key")
+
   (layout
+   #:title
+   page-header
#:body
`(,(header)
  (div
@@ -159,5 +175,5 @@
(@ (class "row"))
(div
 (@ (class "col-sm-12"))
-(h2 "Signing key")
+(h2 ,page-header)
 ,(sexp-div sexp)))
diff --git a/guix-data-service/web/build/html.scm b/guix-data-service/web/build/html.scm
index 18d045a..4b758bb 100644
--- a/guix-data-service/web/build/html.scm
+++ b/guix-data-service/web/build/html.scm
@@ -29,7 +29,11 @@
  valid-targets
  stats
  builds)
+  (define page-header "Builds")
+
   (layout
+   #:title
+   page-header
#:body
`(,(header)
  (div
@@ -38,7 +42,7 @@
(@ (class "row"))
(div
 (@ (class "col-sm-12"))
-(h1 "Builds")
+(h1 ,page-header)
 (table
  (@ (class "table"))
  (thead
diff --git 

Re: Outreachy - Guix Data Service: implementing basic json output for derivation comparison page

2021-04-18 Thread Luciana Lima Brito
On Sun, 18 Apr 2021 13:12:07 +
Luciana Lima Brito  wrote:

> Hi,
> 
> On Sat, 17 Apr 2021 18:45:14 +0100
> Christopher Baines  wrote:
>  
> > Some more things to think about:
> > 
> >  - Variable naming, what does the "matched" in matched outputs mean?
> >(same goes for the other "matched" things)  
> 
> The name matched would refer to the match function, but I changed to
> *-values. The names I wanted were "outputs", "inputs"
> and "sources", but I already used them. If you have anything in mind,
> please let me know.
> 
> >  - (if (null? ...), I'm unsure if all of those checks are
> > necessary, I believe some fields at least will never be "null?".  
> 
> I revised it, I think now it's better.
> About the "recursive" field, apparently it assumes a string value "t"
> or "f", and I convert this to a boolean. Are there other values
> possible?
> 
> >  - Builder and arguments grouping, I think this makes sense on the
> > HTML page, as they're connected, but does it make sense in the
> > JSON?  
> 
> indeed, I separated them.
> 
> > I think you're getting close to something that's ready to merge
> > though.  
> 
> 
> One last thing, I see that on the html the commom inputs are ommited.
> Does this make sense for the json too?
> 

The last patch had a few misaligned parens, please disregard. This one
is fixed.

-- 
Best Regards,

Luciana Lima Brito
MSc. in Computer Science
>From ff348cb5ce7db9ce9f08a6f0827356faa6465877 Mon Sep 17 00:00:00 2001
From: Luciana Brito 
Date: Sun, 11 Apr 2021 11:06:06 -0300
Subject: [PATCH] Implement basic json output for the derivation comparison
 page

---
 guix-data-service/web/compare/controller.scm | 83 +++-
 1 file changed, 80 insertions(+), 3 deletions(-)

diff --git a/guix-data-service/web/compare/controller.scm b/guix-data-service/web/compare/controller.scm
index a6aa198..2ff7a40 100644
--- a/guix-data-service/web/compare/controller.scm
+++ b/guix-data-service/web/compare/controller.scm
@@ -588,9 +588,86 @@
  '(application/json text/html)
  mime-types)
 ((application/json)
- (render-json
-  '((error . "unimplemented")) ; TODO
-  #:extra-headers http-headers-for-unchanging-content))
+ (let* ((outputs (assq-ref data 'outputs))
+(output-values
+ (map
+  (lambda (label items)
+(cons label
+  (list->vector
+   (map
+(match-lambda
+  ((name path hash-alg hash recursive)
+   `((name . ,name)
+ (path . ,path)
+ ,@(if (not (string? hash-alg))
+   '()
+   `((hash-algorithm . ,hash-alg)))
+ ,@(if (not (string? hash))
+   '()
+   `((hash . ,hash)))
+ (recursive . ,(string=? recursive "t")
+(or items '())
+  '(base target common)
+  (list (assq-ref outputs 'base)
+(assq-ref outputs 'target)
+(assq-ref outputs 'common
+
+(inputs  (assq-ref data 'inputs))
+(input-values
+ (map
+  (lambda (label items)
+(cons label
+  (list->vector
+   (map 
+(match-lambda
+  ((derivation output)
+   `((derivation . ,derivation)
+ (output . ,output
+(or items '())
+  '(base target common)
+  (list (assq-ref inputs 'base)
+(assq-ref inputs 'target
+
+(sources (assq-ref data 'sources))
+(source-values
+ (map
+  (lambda (label items)
+(cons label
+  (list->vector
+   (map
+(match-lambda
+  ((derivation)
+   `((derivation . ,derivation
+(or items '())
+  '(base target common)
+  (list (assq-ref sources 'base)
+(assq-ref sources 'target)
+(assq-ref sources 'common
+
+(args(assq-ref 

go-build-system possible improvments

2021-04-18 Thread François
Hello,

I come back to public guix-devel as I think it can be of interest to
others too.

On Sat, Apr 17, 2021 at 08:57:03PM -0400, Maxim Cournoyer wrote:
> JOULAUD François writes:
> 
> > I am still unsure of what to do with versions and Go but the ability to
> > pin version will surely be useful in some way.
> 
> Yeah, I was expecting it might unlock building the new protobuf package
> especially a couple version backs, it had a really messy dependency
> chain including past versions of itself, but it turns out that for now
> the bigger problem is the lack of support for Go modules.

Yes. This is the biggest lock. Supporting go modules will really unlock
a lot of things.

> I'm glad to hear it!  I had read lots about Go and had some kind of plan
> for the GOPROXY (the project doing best in this regard is Gentoo); in
> theory it's possible to populate a cache with the source artifacts in a
> given directory (probably via a union of the individual packages
> contribution to the cache), then setup GOPROXY as a file server to
> provide these at build time.

I just made a lot of reading this week-end and I was more oriented towards
using GOPROXY=off and populating on-disk [module cache] which have the
exact same organisation as GOPROXY as it is indeed the last layer of
proxying. If it works it will avoid the need for a specific local server.

Concerning the former dependeency loop with google-protobuf it was
(before 1.26) indeed necessary to have all go.mod files for all versions
referenced recursively. Go downloads (or need to have in cache) only
the go.mod files though because once it have the go.mod the [Minimal
Version Selection] kicks in and keep only the higher version
requested[^1].

So we could cheat by putting only go.mod files for older versions in
out local cache without the need for anything else and it should work.

The same thing applies to conditional compilation. Go needs the go.mod
files but don't need the code itself until it tries to compiles it.

So we have probably a safe way to import those packages without too
many useless packages in our dependency graph even if it can require a
solution to easily add specific go.mod files in our outputs.

They, at Go, are nevertheless [working][lazy-loading] to modify this
behaviour in order to avoid useless network calls to GOPROXY but it
could not land in Go 1.15. It should be there in next release.


[module cache]: https://golang.org/ref/mod#module-cache
[lazy-loading]: 
https://go.googlesource.com/proposal/+/master/design/36460-lazy-module-loading.md
[Minimal Version Selection]: https://research.swtch.com/vgo-mvs
[^1]: Which seems strange until you understand that you always require a
"minimal" version in Go. The minimal version needed to build a project
is thus the maximum of all minimal required versions. The link explains
this a lot better than me ;-)

François

P.S. just as writing this I found that if we want to limit the number
of versions of Guix-packaged Go modules we could devise a mechanism to
force upgrade (go get -u) to the latest in-Guix version. This open a
lots more question to me than it resolves.

P.P.S. other solution, perhaps simpler is to not support go.mod at all
(GO11MODULE=off) and to populate the local GOPATH as we see fit. I think
(but I am not sure) that Debian took this route. Not found of this
solution, I think we have the means to do better in Guix and to keep
more in touch with upstream methodologies.



Re: Outreachy - Guix Data Service: implementing basic json output for derivation comparison page

2021-04-18 Thread Luciana Lima Brito
Hi,

On Sat, 17 Apr 2021 18:45:14 +0100
Christopher Baines  wrote:
 
> Some more things to think about:
> 
>  - Variable naming, what does the "matched" in matched outputs mean?
>(same goes for the other "matched" things)

The name matched would refer to the match function, but I changed to
*-values. The names I wanted were "outputs", "inputs"
and "sources", but I already used them. If you have anything in mind,
please let me know.

>  - (if (null? ...), I'm unsure if all of those checks are necessary, I
>believe some fields at least will never be "null?".

I revised it, I think now it's better.
About the "recursive" field, apparently it assumes a string value "t"
or "f", and I convert this to a boolean. Are there other values
possible?

>  - Builder and arguments grouping, I think this makes sense on the
> HTML page, as they're connected, but does it make sense in the JSON?

indeed, I separated them.

> I think you're getting close to something that's ready to merge
> though.


One last thing, I see that on the html the commom inputs are ommited.
Does this make sense for the json too?

-- 
Best Regards,

Luciana Lima Brito
MSc. in Computer Science
>From 614ea09fc6a2d96a9dc2955ae08736740d08f8f8 Mon Sep 17 00:00:00 2001
From: Luciana Brito 
Date: Sun, 11 Apr 2021 11:06:06 -0300
Subject: [PATCH] Implement basic json output for the derivation comparison
 page

---
 guix-data-service/web/compare/controller.scm | 89 +++-
 1 file changed, 86 insertions(+), 3 deletions(-)

diff --git a/guix-data-service/web/compare/controller.scm b/guix-data-service/web/compare/controller.scm
index a6aa198..09caa82 100644
--- a/guix-data-service/web/compare/controller.scm
+++ b/guix-data-service/web/compare/controller.scm
@@ -588,9 +588,92 @@
  '(application/json text/html)
  mime-types)
 ((application/json)
- (render-json
-  '((error . "unimplemented")) ; TODO
-  #:extra-headers http-headers-for-unchanging-content))
+ (let* ((outputs (assq-ref data 'outputs))
+(output-values
+ (map
+  (lambda (label items)
+(cons label
+  (list->vector
+   (map
+(match-lambda
+  ((name path hash-alg hash recursive)
+   `((name . ,name)
+ (path . ,path)
+ ,@(if (not (string? hash-alg))
+   '()
+   `((hash-algorithm . ,hash-alg))
+   )
+ ,@(if (not (string? hash))
+   '()
+   `((hash . ,hash))
+   )
+ (recursive . ,(string=? recursive "t"))
+ )
+   ))
+(or items '())
+  '(base target common)
+  (list (assq-ref outputs 'base)
+(assq-ref outputs 'target)
+(assq-ref outputs 'common
+
+(inputs  (assq-ref data 'inputs))
+(input-values
+ (map
+  (lambda (label items)
+(cons label
+  (list->vector
+   (map 
+(match-lambda
+  ((derivation output)
+   `((derivation . ,derivation)
+ (output . ,output)
+ )))
+(or items '())
+  '(base target common)
+  (list (assq-ref inputs 'base)
+(assq-ref inputs 'target
+
+(sources (assq-ref data 'sources))
+(source-values
+ (map
+  (lambda (label items)
+(cons label
+  (list->vector
+   (map
+(match-lambda
+  ((derivation)
+   `((derivation . ,derivation)
+ )))
+(or items '())
+  '(base target common)
+  (list (assq-ref sources 'base)
+(assq-ref sources 'target)
+(assq-ref sources 'common
+
+

Re: bug#47867: [1.2.1 pre-release testing] substitute downloading and TLS errors

2021-04-18 Thread pelzflorian (Florian Pelz)
On Sun, Apr 18, 2021 at 01:33:37PM +0200, pelzflorian (Florian Pelz) wrote:
> (well with an unrelated error by
> grub-install that it could not determine the canonical path of
> /boot/efi).

Probably

> I will try reproducing, but Jin and me both had this
> error.

I got the error again with enlightenment.

On IRC Ricardo/rekado suspected
c7c7f068c15e419aaf5ef616516aa5ad4e55c2fa, I will try reverting it.

Regards,
Florian



Re: New 'version-1.3.0' branch and lifting string freeze on master

2021-04-18 Thread Maxim Cournoyer
Hi Ludovic,

Ludovic Courtès  writes:

> Hi,
>
> Maxim Cournoyer  skribis:
>
>> With the remaining issues to be tackled for the current release (v1.3.0)
>> due tomorrow, I think we may need a bit of extra time to fix them and do
>> more testing.  These are the remaining issues (obtained by pressing the
>> 'b' key in Emacs Debbugs while visiting the parent issue with
>> 'debbugs-gnu-bugs RET 47297 RET').  The release task issue can also be
>> viewed at https://issues.guix.gnu.org/47297.
>>
>> 47808 important  Bone Baboonguile-git-0.5.0.drv build failed on 
>> i686-linux
>> 47567 important  Alexandru-Sergiu M Installer crash in 'uuid->string' for a 
>> FAT16 partition
>> 44872 important  Tim Magee  GuixSD 1.2.0 installer fails with 
>> exception when formatting drive
>> 33848 important  Ludovic CourtèsStore references in SBCL-compiled code 
>> are "invisible"
>> 47841 normal Julien Lepiller[release 1.2.1] could not install on 
>> foreign distro
>> 47745 normal Mathieu Othacehe   ldap test is failing
>> 47744 normal Mathieu Othacehe   nfs-root-fs test is failing
>
> I agree that we need a bit more time to address these, hopefully get
> ‘wip-ungrafting’ merged, and above all get more testing.

Yes, as discussed on IRC with lfam,  I suggested we try to include the
changes of that branch in version-1.3.0.

> There are other items from doc/release.org in maintenance.git that will
> have to be addressed, such as the dreaded NEWS update and companion blog
> post.

Indeed; my idea for this is to have a WIP commit that I'll publish at
the top of version-1.3.0 and others can use it as a base and send
patches to the mailing list.  I've experimented yesterday with the 'make
update-NEWS' target and it was modifying the 1.2.0 items although I've
added a skeleton for 1.3.0 in the NEWS file already.

>> To avoid keep master in string freeze longer, I've now created the
>> 'release-v1.3.0' branch where the fixes for the remaining blocking
>> issues should go.
>
> Nitpick: could we rename it to ‘version-1.3.0’, similar to the previous
> release branches?

It was a typo on my part, the name is actually 'version-1.3.0' :-).

> BTW, are we going for 1.3.0 rather than 1.2.1?  I’m fine either way,
> it’s true that 1.3.0 might better reflect the amount of work that has
> gone into it…

Yes, this was a change I proposed.  I wasn't sure if there was a good
reason for 1.2.1 but the rationale is indeed that that 1.3.0 reflects
better on the amount of changes (including new features) that went in
this release.

>> I'll now attempt to produce a first release candidate (RC) via the
>> release tooling.
>
> Yay!  If we eventually merge ‘wip-ungrafting’, we should have at least
> one RC built with that branch merged.

OK! Sounds good, thank you!

Maxim



Re: bug#47867: [1.2.1 pre-release testing] substitute downloading and TLS errors

2021-04-18 Thread pelzflorian (Florian Pelz)
On Sun, Apr 18, 2021 at 12:15:47PM +0200, Ludovic Courtès wrote:
> Was this in a VM?

No, an Asrock Beebox (real x86_64 hardware).


> Could it be that networking was unstable (e.g., you
> were running this over a flaky WiFi connection)?

It is a stable Ethernet connection.


> How reproducible is
> this?  Any tips on how to reproduce it?
> 
> I did a full bare-bones OS install in a VM, which went fine, but maybe
> that’s not representative of your setup.
> 
> Thanks,
> Ludo’.

The installer completed just now after continuing from the last
install step another time (well with an unrelated error by
grub-install that it could not determine the canonical path of
/boot/efi).  I will try reproducing, but Jin and me both had this
error.

Regards,
Florian



Re: 1.2.1 pre-release testing

2021-04-18 Thread Guu, Jin-Cheng
Not sure if it's appropriate to say here.. but when I was installing,
there was non-free kernel in my machine. And that's why my wifi was
working.

My machine is Lenovo's b50-80, which isn't on the site.
> https://h-node.org/notebooks/catalogue/en/1/1/undef/undef/undef/undef/compatibility/undef/undef/undef?search_string=Lenovo+B50-80=Search

I've just tried again the same ISO, and chose "wired". It works right
away this time. I think it was just a tiny hiccup last time. Should
have tried more times then.. sorry about that!

Jin

On 4/17/21, pelzflorian (Florian Pelz)  wrote:
> Hello Jin,
>
> On Sat, Apr 17, 2021 at 01:27:09PM -0400, Leo Famulari wrote:
>> I re-installed my Guix System based on the ISO found here:
>>
>> https://ci.guix.gnu.org/build/175632/details
>>
>> That's '/gnu/store/lw1j4gn8h51cbfp9dg0g025ngkg83sw1-image.iso.drv'.
>
> Ethernet works on the four machines I tested.  Probably it is an issue
> with missing hardware support in the Linux-libre kernel, but you could
> try again or look at h-node.org if they have or have not listed your
> laptop having working Ethernet.
>
> Regards,
> Florian
>



Re: bug#47867: [1.2.1 pre-release testing] substitute downloading and TLS errors

2021-04-18 Thread Ludovic Courtès
Hi Florian,

"pelzflorian (Florian Pelz)"  skribis:

> On Fri, Apr 16, 2021 at 10:40:55PM -0500, jcguu95 wrote:
>>2.2. Unexpected failure
>> 
>>After running `guix system init /mnt/etc/config.scm /mnt' for 5 to 10
>>minutes, I got the error
>> 
>>,
>>|substitute: updating substitutes from 'https://ci.guix.gnu.org'... 
>> 0.0%guix substitute: error: TSL error in procedure 'write_to_session_port': 
>> Resource temporarily unavailable, try again.
>>| 
>>|guix system: error: 
>> `/gnu/store/1nmwil4cs...vc2p-guix-1.2.0-21.4dff6ec/bin/guix substitute` died 
>> unexpectedly
>>|root@gnu ~# _
>>`
>> 
>>Retrying it did resolve the problem. And I got a working guix system
>>out of it :)
>
> I’ve got the same TLS error (though the procedure for me is
> ‘write_to_session_record_port’.
>
> I needed to restart the installer at the last step, this stopped while
> downloading enlightenment with no error but it does not continue.

Was this in a VM?  Could it be that networking was unstable (e.g., you
were running this over a flaky WiFi connection)?  How reproducible is
this?  Any tips on how to reproduce it?

I did a full bare-bones OS install in a VM, which went fine, but maybe
that’s not representative of your setup.

Thanks,
Ludo’.



Re: wip-ungrafting builds stuck

2021-04-18 Thread Mathieu Othacehe


Hello,

> Any idea what could be wrong, Mathieu?  What would you suggest to do
> when investigating such issues?

Yes I noticed it. The main problem here is that almost all workers are
stuck building Rust.

I see two actions here:

1. Understand why Rust is taking so long to build.

2. Implement the BuildDependencies table to avoid this kind of
situations where all workers are stuck building the same thing, as
discussed here: https://issues.guix.gnu.org/46402.

Thanks,

Mathieu



Re: wip-ungrafting builds stuck

2021-04-18 Thread Mathieu Othacehe


Hello,

> Any idea what could be wrong, Mathieu?  What would you suggest to do
> when investigating such issues?

Yes I noticed it. The main problem here is that almost all workers are
stuck building Rust.

I see two possible actions here.

1. Understand why Rust is taking so long to build.

2. Implement the BuildDependencies table to avoid this kind of
situations where all workers are stuck building the same thing, as
discussed here: https://issues.guix.gnu.org/46402.

Thanks,

Mathieu



Re: New 'version-1.3.0' branch and lifting string freeze on master

2021-04-18 Thread Ludovic Courtès
Hi,

Maxim Cournoyer  skribis:

> With the remaining issues to be tackled for the current release (v1.3.0)
> due tomorrow, I think we may need a bit of extra time to fix them and do
> more testing.  These are the remaining issues (obtained by pressing the
> 'b' key in Emacs Debbugs while visiting the parent issue with
> 'debbugs-gnu-bugs RET 47297 RET').  The release task issue can also be
> viewed at https://issues.guix.gnu.org/47297.
>
> 47808 important  Bone Baboonguile-git-0.5.0.drv build failed on 
> i686-linux
> 47567 important  Alexandru-Sergiu M Installer crash in 'uuid->string' for a 
> FAT16 partition
> 44872 important  Tim Magee  GuixSD 1.2.0 installer fails with 
> exception when formatting drive
> 33848 important  Ludovic CourtèsStore references in SBCL-compiled code 
> are "invisible"
> 47841 normal Julien Lepiller[release 1.2.1] could not install on 
> foreign distro
> 47745 normal Mathieu Othacehe   ldap test is failing
> 47744 normal Mathieu Othacehe   nfs-root-fs test is failing

I agree that we need a bit more time to address these, hopefully get
‘wip-ungrafting’ merged, and above all get more testing.

There are other items from doc/release.org in maintenance.git that will
have to be addressed, such as the dreaded NEWS update and companion blog
post.

> To avoid keep master in string freeze longer, I've now created the
> 'release-v1.3.0' branch where the fixes for the remaining blocking
> issues should go.

Nitpick: could we rename it to ‘version-1.3.0’, similar to the previous
release branches?

BTW, are we going for 1.3.0 rather than 1.2.1?  I’m fine either way,
it’s true that 1.3.0 might better reflect the amount of work that has
gone into it…

> I'll now attempt to produce a first release candidate (RC) via the
> release tooling.

Yay!  If we eventually merge ‘wip-ungrafting’, we should have at least
one RC built with that branch merged.

Thanks,
Ludo’.



wip-ungrafting builds stuck

2021-04-18 Thread Ludovic Courtès
Hi!

The ‘wip-ungrafting’ branch that Leo set up has been building for ~36h.
It was at 26% 24h hours ago and it’s now stuck at 33%, even though all
but two workers are idle.

 shows that many x86_64
builds are missing.

Any idea what could be wrong, Mathieu?  What would you suggest to do
when investigating such issues?

Thanks,
Ludo’.



Re: bug#47867: [1.2.1 pre-release testing] substitute downloading and TLS errors

2021-04-18 Thread pelzflorian (Florian Pelz)
On Sun, Apr 18, 2021 at 11:48:47AM +0200, pelzflorian (Florian Pelz) wrote:
> On Sun, Apr 18, 2021 at 11:44:25AM +0200, pelzflorian (Florian Pelz) wrote:
> > But now after maybe 10 minutes it finally continued and died with the
> > same TLS error about write_to_session_record_port and Resource not
> > available.
> 
> The error happened while
> 
> substitute: updating substitutes from […]

After starting one more time from the last installer step it
downloaded the same enlightenment substitute again and got stuck the
same way.



Re: bug#47867: [1.2.1 pre-release testing] substitute downloading and TLS errors

2021-04-18 Thread pelzflorian (Florian Pelz)
On Sun, Apr 18, 2021 at 11:44:25AM +0200, pelzflorian (Florian Pelz) wrote:
> But now after maybe 10 minutes it finally continued and died with the
> same TLS error about write_to_session_record_port and Resource not
> available.

The error happened while

substitute: updating substitutes from […]



Re: bug#47867: [1.2.1 pre-release testing] substitute downloading and TLS errors

2021-04-18 Thread pelzflorian (Florian Pelz)
On Sun, Apr 18, 2021 at 11:38:56AM +0200, pelzflorian (Florian Pelz) wrote:
> I needed to restart the installer at the last step, this stopped while
> downloading enlightenment with no error but it does not continue.

Note: The last message was

enlightenment-0.24.2  27.0MiB  3.7MiB/s 00:07 
[] 100.0%

But now after maybe 10 minutes it finally continued and died with the
same TLS error about write_to_session_record_port and Resource not
available.



[1.2.1 pre-release testing] substitute downloading and TLS errors

2021-04-18 Thread pelzflorian (Florian Pelz)
On Fri, Apr 16, 2021 at 10:40:55PM -0500, jcguu95 wrote:
>2.2. Unexpected failure
> 
>After running `guix system init /mnt/etc/config.scm /mnt' for 5 to 10
>minutes, I got the error
> 
>,
>|substitute: updating substitutes from 'https://ci.guix.gnu.org'... 
> 0.0%guix substitute: error: TSL error in procedure 'write_to_session_port': 
> Resource temporarily unavailable, try again.
>| 
>|guix system: error: 
> `/gnu/store/1nmwil4cs...vc2p-guix-1.2.0-21.4dff6ec/bin/guix substitute` died 
> unexpectedly
>|root@gnu ~# _
>`
> 
>Retrying it did resolve the problem. And I got a working guix system
>out of it :)

I’ve got the same TLS error (though the procedure for me is
‘write_to_session_record_port’.

I needed to restart the installer at the last step, this stopped while
downloading enlightenment with no error but it does not continue.

Regards,
Florian



Re: bug#47615: [PATCH 0/9] Add 32-bit powerpc support

2021-04-18 Thread Efraim Flashner
On Sat, Apr 17, 2021 at 12:51:01PM -0700, Chris Marusich wrote:
> Efraim Flashner  writes:
> 
> > * gnu/packages/base.scm (binutils)[arguments]: Add phase on
> > powerpc-linux to adjust the test suite.
> > * gnu/packages/commencement.scm (binutils-boot0)[arguments]: Move custom
> > phases after inherited arguments. Add phase on powerpc-linux to adjust
> > the test suite.
> 
> Nits: adjust the test suite to do what?  The message would be clearer if
> it explained the purpose of the adjustment.  You could also name the
> phases you added/moved, for extra clarity, if you want to.
> 
> > diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
> > index dbb7c619fe..b9fc0a6e29 100644
> > --- a/gnu/packages/base.scm
> > +++ b/gnu/packages/base.scm
> > @@ -531,7 +531,16 @@ change.  GNU make offers many powerful extensions over 
> > the standard utility.")
> >  
> >;; Make sure 'ar' and 'ranlib' produce archives 
> > in a
> >;; deterministic fashion.
> > -  "--enable-deterministic-archives")))
> > +  "--enable-deterministic-archives")
> > +  ,@(if (string=? (%current-system) "powerpc-linux")
> > +  `(#:phases
> > +(modify-phases %standard-phases
> > +  (add-after 'unpack 'disable-rust-libiberty-test
> > +(lambda _
> > +  (substitute* "libiberty/testsuite/Makefile.in"
> > +((" check-rust-demangle ") ""))
> > +  #t
> > +  '(
> 
> What's the problem?  Presumably the test fails; a comment here could
> clarify that.
> 
> If it's a test failure, has the issue been reported upstream?

I'll check to see if I can find something upstream. If not I'll report
it. FWIW Debian disables the test suite for powerpc.
https://sources.debian.org/src/binutils/2.36.1-6/debian/rules/#L537

> > (synopsis "Binary utilities: bfd gas gprof ld")
> > (description
> > diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> > index 7c39a84008..f707a01d30 100644
> > --- a/gnu/packages/commencement.scm
> > +++ b/gnu/packages/commencement.scm
> > @@ -2653,7 +2653,22 @@ exec " gcc "/bin/" program
> > #:modules ((guix build gnu-build-system)
> >(guix build utils)
> >(ice-9 ftw)); for 'scandir'
> > +
> > +   ;; #:phases gets modified for powerpc-linux in binutils,
> > +   ;; so #:phases here needs to be after the inherited one.
> > +   ,@(substitute-keyword-arguments (package-arguments binutils)
> > +   ((#:configure-flags cf)
> > +`(cons ,(string-append "--target=" (boot-triplet))
> > +   ,cf)))
> > +
> > #:phases (modify-phases %standard-phases
> > +  ,@(if (string=? (%current-system) "powerpc-linux")
> > +  '((add-after 'unpack 'disable-rust-libiberty-test
> > +  (lambda _
> > +(substitute* "libiberty/testsuite/Makefile.in"
> > +  ((" check-rust-demangle ") ""))
> > +#t)))
> > +  '())
> >(add-after 'install 'add-symlinks
> >  (lambda* (#:key outputs #:allow-other-keys)
> >;; The cross-gcc invokes 'as', 'ld', etc, without the
> > @@ -2667,12 +2682,8 @@ exec " gcc "/bin/" program
> >  (with-directory-excursion (string-append out 
> > "/bin")
> >(for-each (lambda (name)
> >(symlink name (remove-triplet-prefix 
> > name)))
> > -(scandir "." has-triplet-prefix?)))
> > +(scandir "." 
> > has-triplet-prefix?)
> >  
> > -   ,@(substitute-keyword-arguments (package-arguments binutils)
> > -   ((#:configure-flags cf)
> > -`(cons ,(string-append "--target=" (boot-triplet))
> > -   ,cf)
> >  (inputs (%boot0-inputs
> >  
> >  (define libstdc++-boot0
> 
> I think you can put all of this in the substitute-keyword-arguments
> form, which would (1) eliminate the need for a comment, (2) eliminate
> the need to worry about the order of the keyword arguments, and (3)
> eliminate the need to duplicate the new phase in two package
> definitions:
> 
> (define binutils-boot0
>   (package
> (inherit binutils)
> (source (bootstrap-origin (package-source binutils)))
> (name "binutils-cross-boot0")
> (arguments
>  `(#:guile ,%bootstrap-guile
>#:implicit-inputs? #f
> 
>#:modules ((guix build gnu-build-system)
>   (guix build utils)
>   (ice-9 ftw)); for 'scandir'
> 
>,@(substitute-keyword-arguments (package-arguments binutils)
>((#:configure-flags 

Re: 1.2.1 pre-release testing

2021-04-18 Thread pelzflorian (Florian Pelz)
On Sat, Apr 17, 2021 at 07:09:59PM -0500, Guu, Jin-Cheng wrote:
> Not sure if it's appropriate to say here.. but when I was installing,
> there was non-free kernel in my machine. And that's why my wifi was
> working.

If I remember correctly, on some machines the wifi only works after a
reboot from a non-free system.

> My machine is Lenovo's b50-80, which isn't on the site.

I find Z50 with working wifi and ethernet

and G50 with*out* working wifi
.
This won’t be fixed at the Guix level though.

Regards,
Florian