Re: Guix-devel Digest, Vol 109, Issue 56

2022-07-22 Thread Maxime Devos


On 22-07-2022 19:12, kiasoc5 wrote:

We could have packages recommend other packages to make this discovery
easier for users, like Arch's opt-depends.


This sounds like my previous proposal to me:

Alternatively, packages could have an additional set of inputs 
(development-inputs?) for this use case, only added for "guix shell 
-D" and "guix environment", though then the build environment and 
"guix shell -D the-package" would diverge further. 
except it has a more precise semantics than Arch's, or did you have 
something different in mind?


Greetings,
Maxime.



OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: Guix-devel Digest, Vol 109, Issue 56

2022-07-22 Thread kiasoc5
Date: Thu, 21 Jul 2022 18:34:58 +0200
From: zimoun 
To: Hartmut Goebel ,
Guix-devel 
Subject: Re: native-inputs: Go for completeness or minimalism?
Message-ID: <86o7xi4e6l@gmail.com>
Content-Type: text/plain; charset=utf-8
 
Hi simon,

> On Wed, 20 Jul 2022 at 10:33, Hartmut Goebel
>  wrote:
> 
> > Personally I tend to minimal.  
> 
> Me too.  Being minimal is better on all aspects, IMHO.
> 
> The only drawback is indeed “guix shell -D”.  But, people developing
> can add the missing or extra packages.  To me, Guix provides the
> minimal environment for building and running one package.
> 
> Otherwise, we could imagine to create two packages.
> 
> However, there is no consensus about this “minimalism”.  For instance,
> some packages have multi-outputs which implies that “guix shell -D” is
> not minimal.
> 

We could have packages recommend other packages to make this discovery
easier for users, like Arch's opt-depends.

> Cheers,
> simon



Re: Is Guix suitable for large monorepos?

2022-07-22 Thread Katherine Cox-Buday
jgart  writes:

> Is Guix suitable for large monorepos?

I use Guix against a large mono-repo, and there are a few
difficulties.

I should mention that I am not using Guix in the typical fashion with
fixed commits (packages are pointed at HEAD and I don't use checksums).
For my purposes, it's useful for me to build HEAD, although sometimes I
use transformation options if I'm interested in a specific branch or
commit.

I've defined a package for the entire repo and then individual packages
for the constituent projects which inherit from the repo package.

For new commits:

- Updating the source take a long time.
- Indexing the entire repo takes a long time.
- Copying over the entire tree to the build directory is unnecessary and
  takes time.

Sometimes I want to build a local change I haven't committed anywhere,
so I use the --with-source option. The problems are the same, but
they're exacerbated.

A happy medium I've landed on is to build some binaries outside of Guix
and then use packages that are defined in terms of the binaries. These
packages use patchelf to get everything linked correctly. This allows me
to reify these packages into Guix while keeping the standard workflow
from a programming language.

I've also considered a phase that, after checkout, deletes all files not
relevant to the project to lessen the burden of copying things over for
building.

So, in my opinion, these issues are not really Guix's fault, and it does
a pretty good job all things considered. I think Guix used in a CI/CD
pipeline (which I guess means cuirass) would handle mono-repositories
wonderfully and do exactly what I want: reproducible, verifiable,
builds. Guix as a development tool in these situations is still useful,
but has some things that make it a little difficult to work with.

Maybe someone has some ideas to improve things?

-- 
Katherine



Re: Translating news on weblate?

2022-07-22 Thread Taiju HIGASHI
Hi Julien,

> I was thinking we could have our news file translated at weblate, which
> would help having more people translate it. Attached is a script that
> is able to generate a pot file from the news.scm file and a translated
> news.scm file from the existing news.scm and a directory that contains
> the po files and a LINGUAS file.

Would be nice if we could translate at Weblate.
Weblate allows people who have never contributed to Guix before to do
so.
We do not have any Japanese entries yet, but we would like to cooperate
as much as possible.

Thanks,
-- 
Taiju



Re: Is Guix suitable for large monorepos?

2022-07-22 Thread Liliana Marie Prikler
Am Freitag, dem 22.07.2022 um 11:14 +0200 schrieb Maxime Devos:
> On 22-07-2022 08:58, Liliana Marie Prikler wrote:
> 
> > 15:10 "An engineering organization is not a bottom-up kind of
> > thing"
> > (X) Doubt.
> > 15:18 "In a well functioning engineering team, priorities and
> > decisions
> > and effort allocation flow top-down"
> > (X) Doubt.
> > 15:24 "Some sort of top-down organization is required"
> > (X) Doubt.
> 
> It's a bit of a stretch, but in a sense Guix is a bit top down, if
> you count Guix itself (and the reviewers, committeres, etc. as a
> while) as 'top' and individual patch submitters as 'down'.  OTOH with
> Guix doesn't make decisions on what individual people should work on,
> only on the rules that the results should follow and there is no
> effort allocation, so possibly this is not the kind of 'top-down'
> that the video was referring to.
To expand on this a little, there are about two important layers here:
committers and non-committers.  Within the review process both are the
same, except for the fact that only committers can actually push
changes to the repo (signing with their name and key).  Also, thanks to
channels, packages can really flow from the bottom up – someone who
wants to submit a package can first check it locally, and even while
the review is ongoing already use it on their machine.  Now there are
maintainers, who are even more powerful than committers and recently
also teams, but for better or worse neither of those matter too much in
your day to day operations.

In the context of the monorepo debate, I think it is also important to
distinguish between Guix, the package manager, and Guix, the channel. 
Governance decisions regarding the latter can largely be ignored if
you're working for MonoRepoCorp™.

Cheers



Re: Is Guix suitable for large monorepos?

2022-07-22 Thread Maxime Devos

On 22-07-2022 08:58, Liliana Marie Prikler wrote:


13:43 "... if you are scrupulous about running tests ..."
Are you really going to run all the tests from hex0 to node whenever
you flip a bit?  Chances are no.


Also, with some exceptions (e.g. emacs packages and texlive), tests are 
run by default in Guix -- you'll have to disable them explicitly for 
them not to be run, and if you try to submit it without tests, reviewers 
will ask why.


Greetings,
Maxime.



OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: emacs-flymake-collection fails at install phase

2022-07-22 Thread Efraim Flashner
On Wed, Jul 13, 2022 at 09:33:43PM -0500, jgart wrote:
> Hi Guixers,
> 
> I'm trying to package this emacs package but it fails at the install phase:
> https://github.com/mohkale/flymake-collection
> 
> ```
> starting phase `make-autoloads'
> Debugger entered--Lisp error: (file-missing "Opening directory" "No such file 
> or directory" "/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-...")
>   directory-files("/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-..." t 
> "\\`[^=.].*\\(\\.el\\(?:\\.gz\\)?\\)\\'")
>   #f(compiled-function (d) # 0x4123d5312041b5e>)("/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-...")
>   mapcar(#f(compiled-function (d) #) 
> ("/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-..."))
>   
> make-directory-autoloads(("/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-...")
>  "/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-...")
>   
> update-directory-autoloads("/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-...")
>   (let ((backup-inhibited t) (generated-autoload-file 
> "/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-...")) 
> (update-directory-autoloads 
> "/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-..."))
>   eval((let ((backup-inhibited t) (generated-autoload-file 
> "/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-...")) 
> (update-directory-autoloads 
> "/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-...")) nil)
>   eval((eval '(let ((backup-inhibited t) (generated-autoload-file 
> "/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-...")) 
> (update-directory-autoloads 
> "/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-...")) nil) t)
>   command-line-1(("--eval=(eval '(let ((backup-inhibited t) (generate..."))
>   command-line()
>   normal-top-level()
> 
> error: in phase 'make-autoloads': uncaught exception:
> %exception #< program: 
> "/gnu/store/v2lzdj04qgl8419zca74s5ligkwbinaw-emacs-minimal-28.1/bin/emacs" 
> arguments: ("--quick" "--batch" "--eval=(eval '(let ((backup-inhibited t) 
> (generated-autoload-file 
> \"/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-flymake-collection-2.0.0-0.cd25745/share/emacs/site-lisp/flymake-collection-2.0.0-0.cd25745/flymake-collection-autoloads.el\"))
>  (update-directory-autoloads 
> \"/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-flymake-collection-2.0.0-0.cd25745/share/emacs/site-lisp/flymake-collection-2.0.0-0.cd25745\"))
>  nil)") exit-status: 255 term-signal: #f stop-signal: #f> 
> phase `make-autoloads' failed after 0.1 seconds
> command 
> "/gnu/store/v2lzdj04qgl8419zca74s5ligkwbinaw-emacs-minimal-28.1/bin/emacs" 
> "--quick" "--batch" "--eval=(eval '(let ((backup-inhibited t) 
> (generated-autoload-file 
> \"/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-flymake-collection-2.0.0-0.cd25745/share/emacs/site-lisp/flymake-collection-2.0.0-0.cd25745/flymake-collection-autoloads.el\"))
>  (update-directory-autoloads 
> \"/gnu/store/p5vsnlhrqph2sl3r7q8c0h970rp8hv0q-emacs-flymake-collection-2.0.0-0.cd25745/share/emacs/site-lisp/flymake-collection-2.0.0-0.cd25745\"))
>  nil)" failed with status 255
> note: keeping build directory 
> `/tmp/guix-build-emacs-flymake-collection-2.0.0-0.cd25745.drv-0'
> builder for 
> `/gnu/store/w3jmmgw1z6ggqfg0pbjjwxi5givhwxvy-emacs-flymake-collection-2.0.0-0.cd25745.drv'
>  failed with exit code 1
> build of 
> /gnu/store/w3jmmgw1z6ggqfg0pbjjwxi5givhwxvy-emacs-flymake-collection-2.0.0-0.cd25745.drv
>  failed
> View build log at 
> '/var/log/guix/drvs/w3/jmmgw1z6ggqfg0pbjjwxi5givhwxvy-emacs-flymake-collection-2.0.0-0.cd25745.drv.bz2'.
> guix build: error: build of 
> `/gnu/store/w3jmmgw1z6ggqfg0pbjjwxi5givhwxvy-emacs-flymake-collection-2.0.0-0.cd25745.drv'
>  failed
> ```
> 
> -- guix package
> 
> ```
> (define-public emacs-flymake-collection
>   (let ((commit "cd2574574bda1f3d94007cdc3b7e0f8007d69716")
> (revision "0"))
> (package
>   (name "emacs-flymake-collection")
>   (version (git-version "2.0.0" revision commit))
>   (source
>(origin
>  (method git-fetch)
>  (uri
>   (git-reference
>(url "https://github.com/mohkale/flymake-collection;)
>(commit commit)))
>  (file-name (git-file-name name version))
>  (sha256
>   (base32 "0js7y1ph6r1xgaziggbx7v8jimxyz29fvlzgaq5rbd6ni332jrn5"
>   (build-system emacs-build-system)
>   (home-page "https://github.com/mohkale/flymake-collection;)
>   (synopsis "")
>   (description "")
>   (license #f
> ```

Error 255 is "file missing". Normally it means that it tries to call a
program that doesn't exist, but I'm guessing that the 'install phase
isn't actually installing the package, so 'make-autoloads says that the
directory (is it %output?) doesn't exist.

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


signature.asc
Description: PGP signature


Re: glibc-2.33 fails to build on POWER9

2022-07-22 Thread Efraim Flashner
On Thu, Jul 14, 2022 at 06:06:51PM +0200, Tobias Platen wrote:
> I tried to build glibc-2.33 on my Talos II (no cross compile here),
> it fails because the compiler is likely outdated.
> 
> checking if the target machine is at least POWER8... yes
> checking if the compiler supports -mno-gnu-attribute... yes
> checking if gcc compiles signbit with 128-bit floating point type...
> yes
> checking if gcc compiles with -mabi=ieeelongdouble and -mlong-double-
> 128... no
> checking for objcopy... objcopy
> checking version of objcopy... 2.37, ok
> configure: error: ***  The compiler must support -mabi=ieeelongdouble
> and -mlongdouble simultaneously.
> 
> guix --version shows
> guix (GNU Guix) 7c9ad54b0616112c7eea6dd02379616aef206490
> Copyright (C) 2022 the Guix authors

(ins)[efraim@pbp guix]$ git show 7c9ad54b0616112c7eea6dd02379616aef206490
commit 7c9ad54b0616112c7eea6dd02379616aef206490
Author: Efraim Flashner 
Date:   Sun Feb 6 10:09:14 2022 +0200

Can you try with a more recent version of Guix? Is this for building
glibc@2.33 or as part of the packages in commencement.scm?

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


signature.asc
Description: PGP signature


Re: Is Guix suitable for large monorepos?

2022-07-22 Thread Maxime Devos

On 22-07-2022 08:58, Liliana Marie Prikler wrote:


15:10 "An engineering organization is not a bottom-up kind of thing"
(X) Doubt.
15:18 "In a well functioning engineering team, priorities and decisions
and effort allocation flow top-down"
(X) Doubt.
15:24 "Some sort of top-down organization is required"
(X) Doubt.


It's a bit of a stretch, but in a sense Guix is a bit top down, if you 
count Guix itself (and the reviewers, committeres, etc. as a while) as 
'top' and individual patch submitters as 'down'.  OTOH with Guix doesn't 
make decisions on what individual people should work on, only on the 
rules that the results should follow and there is no effort allocation, 
so possibly this is not the kind of 'top-down' that the video was 
referring to.


Greetings,
Maxime.



OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: lagrange install japanese fonts and other fonts?

2022-07-22 Thread Liliana Marie Prikler
Am Mittwoch, dem 20.07.2022 um 00:35 -0500 schrieb jgart:
> Just wanted to add a packaging TODO for lagrange for when we get
> around to it:
> 
> https://github.com/skyjake/lagrange/issues/526
> 
> Should I send issues like this to guix-patc...@gnu.org instead?
This is not an issue in lagrange.  Rather, I'd be surprised if you
managed to display Kanji in *any* application without CJK fonts
installed.



Re: Is Guix suitable for large monorepos?

2022-07-22 Thread Liliana Marie Prikler
Am Donnerstag, dem 21.07.2022 um 23:55 -0500 schrieb jgart:
> Is Guix suitable for large monorepos?
> 
> How does Guix compare to pants in the python arena?
> 
> https://yewtu.be/watch?v=p4stnR1gCR4
> https://www.pantsbuild.org/
In my humble opinion, Guix is somewhat antithetical to monorepos.  At
the very least, the repo containing all your guix recipes is probably
distinct from the (many) repo(s) you pull your code form.  That said,
Guix can handle monorepos in multiple ways.  

You can split the monorepo into its constituent parts and build the
individual packages.  Examples, where this is "natively" supported
include GStreamer and clang, which also ship as separate tarballs.  An
example, where we do this from hand would be TeXLive.

You can also build the entire monorepo if your monorepo supports that
(just because you have a monorepo doesn't mean that it actually
builds).  Again, TeXLive is an example where we can do that.

Some comments to the video you've posted.
10:33 "How do you know who all the consumers of repo A even are?"
Well, if you have a working package manager (like Guix), you can
recursively check dependencies, e.g. using `guix refresh -l A'.
10:53 "How do I test the change?"
`guix build' already does the entire build for you.  Now granted, that
takes longer than checking the repo out yourself and running configure,
make, etc., but it'll work.
11:34 "Do the whole thing over again."
Well, Guix can help that with CI, but more importantly, there is
nothing you can do to not do the whole thing over again, even in a
monorepo.  No matter what Benjy claims to the contrary, he's either
wrong or (intentionally or otherwise) misrepresenting the cascade.
12:03 "This isn't very nice."
That's why you write ChangeLogs and guidelines for changing stuff?
13:36 "Breakages are immediately visible."
Breakages in Guix are visible once you (or CI) builds all the dependant
packages.
13:43 "... if you are scrupulous about running tests ..."
Are you really going to run all the tests from hex0 to node whenever
you flip a bit?  Chances are no.
13:55 "Codebase architecture enforces good teamwork and responsibility"
Probably maybe.  But rather than having "good teamwork" (a social
problem) and "responsibility" (a social problem) forced upon my team,
I'd rather have the team arrive at good teamwork without a monorepo
overlord.
14:09 "Monorepos can often be more flexible"
Flexibility is not inherently good.
14:49 "I have found, I have seen from experience without naming names,
that the codebase architecture is often a reflection of the structure
and function of your organization"
Don't tell him about Conway's Law.
15:10 "An engineering organization is not a bottom-up kind of thing"
(X) Doubt.
15:18 "In a well functioning engineering team, priorities and decisions
and effort allocation flow top-down"
(X) Doubt.
15:24 "Some sort of top-down organization is required"
(X) Doubt.
15:34 "... and I think this is why many large companies [...] have
adopted this monorepo architecture"
No, it's not.  It's because they are large, hierarchically structured,
top-down companies.  See Conway's Law.
17:38 "One is do less of it, and the other is do more of it
concurrently."
Good thing that Guix does both.

For pants themselves, I don't think I can take them seriously.  Not
just because I prefer skirts, but because merely looking at their repo,
I see a corporate hellhole with at least 4 kinds of lockfiles.  Are
these the people who you would trust to have valuable takes on
dependency management?

Cheers



Re: Is Guix suitable for large monorepos?

2022-07-22 Thread Ryan Sundberg
Hi jgart, I find that Guix works well with a (source) pointing to local
directories in a monorepo configuration. (hash) values are ignored for
(local-files) in package sources, which has some benefits for a monorepo
setup. It also works just as well, if not better, to help break up
monorepos by using a separate git project for every code base, as one
typically would, while keeping the high level coordination of all the
packages in one big super-repo (using Guile+Guix).

--
Sincerely,
Ryan Sundberg

On 7/21/22 9:55 PM, jgart wrote:
> Is Guix suitable for large monorepos?
> 
> How does Guix compare to pants in the python arena?
> 
> https://yewtu.be/watch?v=p4stnR1gCR4
> https://www.pantsbuild.org/



OpenPGP_signature
Description: OpenPGP digital signature