Re: Proposal for Outreachy (May-August 2020)

2020-01-11 Thread Jan
On Sun, 12 Jan 2020 00:39:55 +0100
Ludovic Courtès  wrote:

> Hi,
> 
> 
> The “or any later version” wording is present in source file headers,
> so it’s definitely ‘gpl2+’, not ‘gpl2’.
Right, that's what I was supposed to say, but my brain removed the "+".
> I fixed this one and a couple of others in
> 7bd000d104f79f2b1c51c48c9d01f247189f9935.
> 
> Thanks for the heads-up!
No problem.
> Ludo’.


Jan Wielkiewicz



Re: Store channel specification in profile

2020-01-11 Thread Ludovic Courtès
Hi,

Pierre Neidhardt  skribis:

>> Basically an entry looks like:
>>
>> --8<---cut here---start->8---
>>  ("diffoscope"
>>   "131"
>>   "out"
>>   "/gnu/store/h8zr4rxhvpikv9p07kdjkf2dsrja35wm-diffoscope-131"
>>   (propagated-inputs ())
>>   (search-paths ())
>>   (properties
>> (provenance
>>   (repository
>> (version 0)
>> (url "https://git.savannah.gnu.org/git/guix.git;)
>> (branch "master")
>> (commit
>>   "b5d4d5b9bcf267fddd02fcc14b88eac0bebf979f")
>> --8<---cut here---end--->8---
>
> The above is not very human friendly.  Each entry should be something
> like plist with default values, so that the user does not have to write
> "out" every time.

Note that it was never designed to be human-friendly.  :-)  The Scheme
code passed to ‘--manifest’ is friendlier.

> Questions:
>
> - Do manifests really need the store path?  
> - Same question about propagated-inputs.  Aren't they already encoded in
>   the package definition?  Why repeating them here?

This ‘manifest’ file exists mostly for one purpose: to allow incremental
operations on a profile with ‘guix upgrade’, ‘guix install’, and so on.
If ‘--manifest’ were the only way to build a profile, this ‘manifest’
file would (almost) not be needed.  (Actually it’s also needed for
‘--list-installed’.)

Incremental operations need all this info so they can pull in the right
store items, set the right search paths, etc.  IOW, they need to work
around the fact that some of the  objects for their profile are
not available.

HTH!

Ludo’.



Re: Proposal for Outreachy (May-August 2020)

2020-01-11 Thread Ludovic Courtès
Hi,

Jan  skribis:

> Don't know if this is a good place, but gnome-color-manager in this
> commit:
> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=29ae18db0578bbdbc0119703f7412fe91927e80e
> has GPL2 license in the "license" field and the COPYING file also tells
> the license is GPL2, but if you check a random source file, for example
> https://gitlab.gnome.org/GNOME/gnome-color-manager/blob/master/src/gcm-brightness.c
> Then files are licensed under GPL2 or any later.
>> * This program is free software; you can redistribute it and/or modify
>> * it under the terms of the GNU General Public License as published by
>> * the Free Software Foundation; either version 2 of the License, or
>> * (at your option) any later version.
>
> I guess the license is GPLV2 then, but I'm not sure, can someone
> confirm this?

The “or any later version” wording is present in source file headers, so
it’s definitely ‘gpl2+’, not ‘gpl2’.

I fixed this one and a couple of others in
7bd000d104f79f2b1c51c48c9d01f247189f9935.

Thanks for the heads-up!

Ludo’.



Re: Speeding up “guix pull”: splitting modules

2020-01-11 Thread Ludovic Courtès
Hello,

zimoun  skribis:

> So knowing where the cycles are could help to transform the DaG (not
> fully acyclic yet) to a DAG. :-)

Unfortunately, the module graph necessarily contains cycles.  The only
way to avoid them would be to have exactly one module per package, given
that the package graph is acyclic.

Thanks,
Ludo’.



Re: TeX Live 2019 wanted

2020-01-11 Thread Marius Bakke
Marius Bakke  writes:

> I'll look into updating the remaining texlive packages shortly.

Now this was some rocket science...

The attached 9 patches updates everything (I think) to 2019.3.

The only regression I found from 'master' was that "discrover" fails to
find math fonts during the build process.  Anything else using
texlive-union appears to be in order.

I get a similar error for 'asymptote' on the current master branch, but
that seems to be sporadically working on Berlin?

https://ci.guix.gnu.org/search?query=system%3Ax86_64-linux+asymptote

I think I'll "punt" on that issue for now.  Pierre, if you ever wanted
to figure out the TeX Live font stuff, now is a good time!  ;-)

Ricardo, let me know if you spot anything odd!  I'll commit this in a
day or two unless there are any comments.

From 4c23ee4b136bfa6814a75feea1f1548fbade5d81 Mon Sep 17 00:00:00 2001
From: Marius Bakke 
Date: Sat, 11 Jan 2020 23:36:36 +0100
Subject: [PATCH 1/9] gnu: Add ruby-hydra.

* gnu/packages/ruby.scm (ruby-hydra): New public variable.
---
 gnu/packages/ruby.scm | 36 +++-
 1 file changed, 35 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 57d7fa91f3..969fc95a00 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2015, 2019 Ricardo Wurmus 
 ;;; Copyright © 2015, 2016, 2017 Ben Woodcroft 
 ;;; Copyright © 2017 ng0 
-;;; Copyright © 2017, 2019 Marius Bakke 
+;;; Copyright © 2017, 2019, 2020 Marius Bakke 
 ;;; Copyright © 2017, 2018, 2019 Efraim Flashner 
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice 
 ;;; Copyright © 2017 Clément Lassieur 
@@ -1953,6 +1953,40 @@ two hashes.")
 (home-page "https://github.com/liufengyun/hashdiff;)
 (license license:expat)))
 
+(define-public ruby-hydra
+  ;; No releases yet.
+  (let ((commit "5abfa378743756ae4d9306cc134bcc482f5c9525")
+(revision "0"))
+(package
+  (name "ruby-hydra")
+  (version (git-version "0.0" revision commit))
+  (home-page "https://github.com/hyphenation/hydra;)
+  (source (origin
+(method git-fetch)
+(uri (git-reference (url home-page) (commit commit)))
+(file-name (git-file-name name version))
+(sha256
+ (base32
+  "1cik398l2765y3d9sdhjzki3303hkry58ac6jlkiy7iy62nm529f"
+  (build-system ruby-build-system)
+  (arguments
+   '(#:phases (modify-phases %standard-phases
+(add-after 'unpack 'make-files-writable
+  (lambda _
+(for-each make-file-writable (find-files "."))
+#t))
+(replace 'check
+  (lambda _
+(invoke "rspec"))
+  (native-inputs
+   `(("ruby-rspec" ,ruby-rspec)))
+  (propagated-inputs
+   `(("ruby-byebug" ,ruby-byebug)))
+  (synopsis "Ruby hyphenation patterns")
+  (description
+   "ruby-hydra is a Ruby library for working with hyphenation patterns.")
+  (license license:expat
+
 (define-public ruby-shindo
   (package
 (name "ruby-shindo")
-- 
2.24.1


From 679f2698636f224b9c91abb87eff8ad9cf59351d Mon Sep 17 00:00:00 2001
From: Marius Bakke 
Date: Thu, 9 Jan 2020 18:36:50 +0100
Subject: [PATCH 2/9] gnu: poppler: Update to 0.84.0.

* gnu/packages/pdf.scm (poppler): Update to 0.84.0.
---
 gnu/packages/pdf.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 368b2ce69e..32a45ed4d5 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -90,14 +90,14 @@
 (define-public poppler
   (package
(name "poppler")
-   (version "0.79.0")
+   (version "0.84.0")
(source (origin
 (method url-fetch)
 (uri (string-append "https://poppler.freedesktop.org/poppler-;
 version ".tar.xz"))
 (sha256
  (base32
-  "1j18jlv1q6h21azb939gqjsgcbsh5qcd8dwxdmad54p5ixha91gr"
+  "0ccp2gx05cz5y04k5pgbyi4ikyq60nafa7x2yx4aaf1vfkd318f7"
(build-system cmake-build-system)
;; FIXME:
;;  use libcurl:no
-- 
2.24.1


From 23b9afcc9fe608a26c13fe2f579a8accd025bb2b Mon Sep 17 00:00:00 2001
From: Marius Bakke 
Date: Fri, 10 Jan 2020 23:49:42 +0100
Subject: [PATCH 3/9] gnu: inkscape: Fix build with Poppler 0.84.

* gnu/packages/inkscape.scm (inkscape)[arguments]: Add phase
'adjust-for-new-poppler'.
---
 gnu/packages/inkscape.scm | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index 1ad23a92d4..0bd8b9496b 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014 John Darrington 
 ;;; Copyright © 2014, 2016 Mark H Weaver 
 ;;; Copyright © 2016, 2018 Ricardo Wurmus 
-;;; Copyright © 2017 Marius 

staging branch open

2020-01-11 Thread Marius Bakke
Guix,

There is a brand new staging branch on Savannah:

https://git.savannah.gnu.org/cgit/guix.git/log/?h=staging

Please submit your changes by Monday, January 19th.


signature.asc
Description: PGP signature


Re: drop net-tools from %base-packages?

2020-01-11 Thread Ludovic Courtès
Hello,

Simon Josefsson  skribis:

> From 3ac6e4c9853a0cbc6fb42a2d263bb03bb9583c34 Mon Sep 17 00:00:00 2001
> From: Simon Josefsson 
> Date: Wed, 1 Jan 2020 18:05:47 +0100
> Subject: [PATCH] system: Drop net-tools from %BASE-PACKAGES (replaced by
>  iproute2).
>
> * gnu/system.scm (%base-packages): Remove net-tools.

Finally applied, thanks!

Ludo’.



Re: qtwenengine anybody?

2020-01-11 Thread Mike Rosset


Pierre Neidhardt writes:

>> Now we just need some packages using it!  :-)
>
> We can get started with Qutebrowser.

This was my first thought as well. Though next is also a good candidate
too? :)

If anyone is working on updating quitebrowser let me know. If not I'll
starting working on this soon.

Side note Pierre, I'll switch GIQT over to this in the next couple of
days as well.

Mike



Re: qtwenengine anybody?

2020-01-11 Thread Mike Rosset


Marius Bakke writes:

> mike.ros...@gmail.com writes:
>
>> I've attached a patch that resolves these suggestions. Along with
>> patches to fix punctuation suggested by Pierre.
>>
>> Complete diff can still be found
>> at. https://gitlab.com/mike.rosset/guix/compare/master...merge-qtwebengine
>>
>> Marius I've forgot to attach from your series in my last email. I've
>> attached the rest of the series for you. encase you want to git am.
>
> Great!  I've squashed them appropriately and finally merged qtwebengine!
>
> I also moved the package definition alongside the other first party Qt
> modules.
>
> Now we just need some packages using it!  :-)

Thank you Marius, I appreciate this being merged and all the suggestions
everyone provided.

Mike



Package request: OpenRA

2020-01-11 Thread Pierre Neidhardt
Hi,

We don't have OpenRA (https://www.openra.net/).
Has anyone worked on it?
Otherwise I'll go ahead.

Any tip, any special wish?

-- 
Pierre Neidhardt
https://ambrevar.xyz/


signature.asc
Description: PGP signature


Re: qtwenengine anybody?

2020-01-11 Thread Marius Bakke
mike.ros...@gmail.com writes:

> I've attached a patch that resolves these suggestions. Along with
> patches to fix punctuation suggested by Pierre.
>
> Complete diff can still be found
> at. https://gitlab.com/mike.rosset/guix/compare/master...merge-qtwebengine
>
> Marius I've forgot to attach from your series in my last email. I've
> attached the rest of the series for you. encase you want to git am.

Great!  I've squashed them appropriately and finally merged qtwebengine!

I also moved the package definition alongside the other first party Qt
modules.

Now we just need some packages using it!  :-)


signature.asc
Description: PGP signature


Re: Proposal for a blog contribution on reproducible computations

2020-01-11 Thread Giovanni Biscuolo
Hi Konrad

Konrad Hinsen  writes:

[...]

> Maybe I got something wrong, but I think I described this as you say
> (please check!). Quote:
>
>   Build systems are pieces of Guile code that are part of Guix. But this
>   Guile code is only a shallow layer orchestrating invocations of other
>   software, such as =gcc= or =make=. And that software is defined by
>   packages.
>
> The build procedure is that "shallow layer orchestrating invocations".
> Does this sound right?

what about "shallow layer (build procedure) orchestrating invocations",
just to be super-clear? :-)

[...]

> Giovanni Biscuolo  writes:
>
>>> (which is sad because your Org file with Babel sessions is much nicer…).
>>> I think Pierre had something to convert Org to Markdown.
>>
>> you could try pandoc or emacs-ox-hugo, both in Guix
>> I can help convert/adapt if needed
>
> My plan for now is pandoc, but if that doesn't work as expected, I'll
> come back to your offer for help!

I seldom used pandoc to converd org to Markdown, please give me a
feedback on the quality of the result, thanks!

[...]

Ciao, Gio'

-- 
Giovanni Biscuolo

Xelera IT Infrastructures


signature.asc
Description: PGP signature


Re: Parameterized packages

2020-01-11 Thread Pierre Neidhardt
Hi Ludo!

Ludovic Courtès  writes:

> The way I see it, we’re still toying with the idea and its pros and
> cons—discussions about CLI syntax can come later.  ;-)

Sure thing!

> The added flexibility of package parameters is definitely nice, but
> really, maintainability is a big concern.  The example Tobias gave (a
> parameter to enable/disable X11 support) is interesting because it shows
> that parameters can quickly become ubiquitous and get “out of control”,
> from a maintenance viewpoint.

What I understood from Tobias comment on the X11 support parameter is
that we need to store the parameter metadata centrally.  Why do you
think this suggests it will get "out of control"?


> That’s another good example of a problem that would arise.  :-/
> It doesn’t seem reasonable to me to add complex logic in (guix packages)
> to deal with this issue; I would very much prefer to leave input
> handling unchanged.
>
> I’m worried about the maintenance cost of parameters.  Having the
> feature is one thing, but being able to guarantee that the package
> combinations we offer all work is another one.
>
> We could have the feature and use it very seldom in Guix itself, but I’m
> guessing that that’s not what you have in mind.

Indeed, the ultimate goal would be to do things like "install a headless
system" and "use static libraries everywhere", etc.

> Also, for CI purposes, we would need a way to enumerate all the possible
> combinations…

Considering the number of outputs would explode as parameters get added,
it does not seem reasonable to try building everything.  Maybe an easy
option would be:

- Only build the default packages (i.e. using the default values of the
  parameters).
- If a non-default output is requested often enough (to be defined) then
  build it.

-- 
Pierre Neidhardt
https://ambrevar.xyz/


signature.asc
Description: PGP signature


Re: Proposal for a blog contribution on reproducible computations

2020-01-11 Thread Konrad Hinsen
Ludovic Courtès  writes:

> Another thing that comes to mind: would it make sense to mention ‘guix
> graph’ in the part where you pipe the output of ‘guix show’ to ‘recsel’,
> etc.?

Forgot that one, sorry. Yes, it would make sense, though I'd place it a
bit later in the text. But I'd have to figure out first how how the
various options of "guix graph" relate exactly to what I am writing.

  ‘package’
   This is the default type used in the example above.  It shows the
   DAG of package objects, excluding implicit dependencies.  It is
   concise, but filters out many details.

Are "implicit dependencies" those added by the build system? If yes,
this edges in this graph would correspond to package-direct-inputs.

  ‘bag’
   Similar to ‘bag-emerged’, but this time including all the bootstrap
   dependencies.

And that is package-closure with arrows defined by bag-direct-inputs, right?

Cheers,
  Konrad.



Re: Proposal for a blog contribution on reproducible computations

2020-01-11 Thread Konrad Hinsen
Hi Ludo, Simon, and GIovanni,

Thanks for your feedback !

> Minor comments:
>
>   • You write “Build systems are packages as well”.  This could be
> slightly misleading: build systems are (1) a set of packages, and
> (2) a build procedure.  Dunno if it makes sense to clarify that.

Maybe I got something wrong, but I think I described this as you say
(please check!). Quote:

  Build systems are pieces of Guile code that are part of Guix. But this
  Guile code is only a shallow layer orchestrating invocations of other
  software, such as =gcc= or =make=. And that software is defined by
  packages.

The build procedure is that "shallow layer orchestrating invocations".
Does this sound right?

>   • In the ‘guix pack’ example, you could perhaps omit all the -S flags
> except for /bin, and mention ‘--save-provenance’.

I'll have to look up ‘--save-provenance’ first. I don't use "guix pack"
that much, though I should probably use it more, if only to expose more
people indirectly to Guix.

>   • Would it make sense to mention MPFR in the paragraph about IEEE 754?

I considered it, but left it out because it would probably create
confusion. And people who are aware of MPFR probably don't need my
explanation of floats.

>   • Regarding ‘--container’, you write that namespaces “may not be
> present on your system, or may be disabled by default”, which is a
> bit strong; “may be present on your system, but perhaps disabled by
> default” would be more accurate.  :-)

Fixed. I don't know anything about the implementation techniques of
–container, so I'll blindly write what you say :-)

> The format we use is Markdown fed to Haunt:

OK, pandoc should get me there.

> You can post a patch against the guix-artwork.git repo here when you’re
> ready.

OK.

> If you want we can publish it next Tuesday or Thursday.  We could have
> it on both hpc.guix.info and guix.gnu.org, with one saying that it’s a
> re-post of the other.

Fine with me!


zimoun  writes:

> That said, I also find interesting the command-line and hashes comparisons:
>
> --8<---cut here---start->8---
> /usr/bin/gcc pi.c -o pi-debian-gcc8
> docker run -v `pwd`:`pwd` -w `pwd` -ti gcc-toolchain gcc pi.c -o pi-docker
> guix environment --container --ad-hoc gcc-toolchain -- gcc pi.c -o pi-guix
>
> md5sum pi-*
>
> b268af34d62763a2a707944403bf7b0b  pi-debian-gcc8
> 1be3c1b5d1e065017e4c56f725b1a692  pi-docker
> 1be3c1b5d1e065017e4c56f725b1a692  pi-guix
> --8<---cut here---end--->8---
>
> Anyway! :-)

Nice! Not sure I want to go into that because it requires adding another
system (Debian), which I think is mainly a source of confusion.

>>   • Would it make sense to mention MPFR in the paragraph about IEEE 754?
>
> And MPFI? ;-)

OK, I see another blog post coming ;-) But there are people more
competent than myself for that.


Giovanni Biscuolo  writes:

>> (which is sad because your Org file with Babel sessions is much nicer…).
>> I think Pierre had something to convert Org to Markdown.
>
> you could try pandoc or emacs-ox-hugo, both in Guix
> I can help convert/adapt if needed

My plan for now is pandoc, but if that doesn't work as expected, I'll
come back to your offer for help!

Thanks everyone,
  Konrad.