Estimated overhead of building an orthogonal Musl-based LFS within Guix build system

2023-02-12 Thread vtkq2fqnxd
Hi,

I'm wondering what the overall estimated work or effort might look like to 
leverage Guix to build a co-existing family of packages that are in some sense 
"orthogonal" to the rest of Guix, based upon different package versions and 
perhaps musl libc - similar to https://github.com/dslm4515/CMLFS for example.

Could a series of such packages be built up in the same way that these LFS type 
builds bootstrap themselves? For example, starting with the most primitive 
dependencies and going on upward.

For this to work, different package versions for the same kind of package would 
need to coexist - which I don't believe is inherently a problem. But also, 
these builds would need to refer exclusively to paths and prefixes that are 
wholly self-contained and orthogonal to the rest of Guix.

The overall aim here is to consider building some select packages for example 
with musl libc, or perhaps building a "stable track" of software that is 
unaffected by the rest of Guix evolving packages.

The measurement of effort can be subjective. Perhaps it involves modifying 
existing recipes and adapting these to point to different packages/versions. 
Maybe there is a similar precedent somewhere.

Any thoughts are appreciated.



Re: Merging core-updates?

2023-02-12 Thread John Kehayias
Hi guix-devel!

On Sun, Feb 12, 2023 at 03:49 PM, Josselin Poiret wrote:

> Hi everyone,
>
> Andreas Enge  writes:
>
>> I volunteer to follow your lead, but also have no clue what is actually
>> expected.
>
> I would also like to give a hand!
>

Count me in as well!

I only did some spot fixes the last round, but at least I have some familiarity 
with what happened. I don't have any particular expertise but I'm happy to help 
coordinate overall, test, and generally do some cat herding.

And now that I have commit access I hope I can really help move things through 
with review and pushing ready patches. Unfortunately had some other stuff come 
up for the last few months since I got access, but I should have more time 
starting in a week or so.

On that front, I think looking through relevant core-updates patches (the Mesa 
ones in particular, for me) is a good first step for review and I'll try 
building on my end to see how far I get.

>> [...]
>> Actually I am wondering whether the first step of killing these untamed
>> non-feature branches would not be to build and merge staging? It is based
>> on master, supposed to contain only medium sized changes, but which I
>> suspect end up being a world-rebuilding cluster of changes.
>
> You're right, for this to smoothly transition into the "feature branch
> workflow" (if that's actually what we want to do) I guess we also need
> to lay out a plan first, and prepare for the post-c.u-merge
> world. Getting rid of staging first could be an easier exercise,
> followed by c-u. I was planning on taking your notes of the Guix days
> and opening a discussion about how we could concretely transition to
> this new workflow, I can maybe do that this evening.
>

I need to catch up on the thread about feature branches and I'm looking forward 
to that as well. It has something that I have long wanted and will gladly help 
in that transition and doing what I can to make that go smoothly.

John




Re: Moving forward with teams and feature branches (was: Discussion notes on releases and branches)

2023-02-12 Thread Andreas Enge
Hello Josselin,

Am Sun, Feb 12, 2023 at 10:13:35PM +0100 schrieb Josselin Poiret:
> For a potential roadmap (doesn't have to be sequential):
> 1. Document this workflow in the manual, in a dedicated node, with a
>rationale as well.  One thing worth mentioning would be how to handle
>grafting/ungrafting now.  Also remove the staging/core-updates
>criterion.
> 2. Teams start organizing around the features they are currently working
>on, and document them accordingly. They can also draft how they work,
>what they do and their roadmap if they wish.
> 3. CI/QA gets examined and updated to support the new workflow. We test
>it out with a sample feature.
> 4. staging merge happens, and the branch gets deleted.
> 5. core-updates merge happens, and the branch gets deleted or
>repurposed (up to the core team).

This (and the other points you wrote) sound good to me.
I would start with 4. and 5., and in parallel consider 1. to 3.

Andreas




Moving forward with teams and feature branches (was: Discussion notes on releases and branches)

2023-02-12 Thread Josselin Poiret
Hi Andreas and thanks for taking the notes during the discussion!

I think what came out of that discussion was very interesting and that
it would greatly help the scaling problems Guix is facing as well as
maintainer/contributor burnout, but that also means that we need to
create some actionnable plan out of it.  The window before the eventual
core-updates merge would be the best time for it, IMO!

For that plan to materialize, the best would be to agree on 1) what we
want the new workflow to be, and 2) how to get there. To start the
discussion, here's what I got out of the discussion (and is probably
opinionated):


The envisioned goal state would be to stop relying on
staging/core-updates to manage non-trivial changes to Guix, but rather
have specific branches that could be merged way faster, because they are
focused on specific features that people can feel responsible for,
instead of a hodgepodge of unrelated patches that no one wants to
debug. These feature branches would be managed by teams, with one person
from the team being responsible for the feature and it getting merged
into master. Those features could be ephemeral or long-running and each
team would be free to organize around them as they see fit, since e.g. a
Stack upgrade is very different from a Mesa upgrade, or a
gnu-build-system change.

With the improved CI/QA we have now, we shouldn't have to worry too much
since substitutes will be available right away (we should weigh what's
acceptable for people using --no-substitutes vs. keeping software more
up-to-date though, but my opinion is that in favor of the latter).

Teams should thus better document how they work and what they do, either
in the Guix documentation or a specific wiki/manual that would be
maintained by team members themselves. Having all information in one
place would help outsiders find their way around the inner workings of
the project. Maintaining roadmaps for each team, with who's working on
them and where that work can be found would also lure unsuspecting
bystanders into working on Guix features, as well as structure the
future of Guix; it shouldn't be too codified though, since we don't want
to further burden precious team members. One nice thing about
documenting all of this using a manual is that the changes go through
the guix-patches ML, so that they can be discussed and recorded for the
public to see.

Note that this change would also mean that contributors are no longer
responsible for gauging whether a patch belongs on master/staging/c-u,
but rather the reviewer/committer.  Also, as a nice side-effect of the
change, I can see people getting interested in joining teams because
they structure longer-term effort that's put into Guix, not just because
they've been maintaining python-foo-for-bar for 5 years against their
will.

Regarding releases: a release team would have to keep in touch with what
the other teams are doing, make some sort of periodic status report, and
set deadlines such as feature freezes before preparing a new release.


For a potential roadmap (doesn't have to be sequential):
1. Document this workflow in the manual, in a dedicated node, with a
   rationale as well.  One thing worth mentioning would be how to handle
   grafting/ungrafting now.  Also remove the staging/core-updates
   criterion.
2. Teams start organizing around the features they are currently working
   on, and document them accordingly. They can also draft how they work,
   what they do and their roadmap if they wish.
3. CI/QA gets examined and updated to support the new workflow. We test
   it out with a sample feature.
4. staging merge happens, and the branch gets deleted.
5. core-updates merge happens, and the branch gets deleted or
   repurposed (up to the core team).


I bet I forgot a bunch of things, but at least we get the ball rolling!

WDYT?

NB: Just noticed there is no tooling/infrastructure team, this would
probably be a good idea, to publicize the incredible work that is being
put into all of it (mumi/cuirass/qa front page/the data service), as
well as bring in some new souls and document how they all fit together.

Best,
-- 
Josselin Poiret


signature.asc
Description: PGP signature


Re: branch core-updates updated: gnu: coreutils-boot0: Fix building on arm architectures.

2023-02-12 Thread Efraim Flashner
On Thu, Dec 15, 2022 at 03:56:24PM +0100, Ludovic Courtès wrote:
> Hi,

Sorry for taking a while to get back to answer this.

> Efraim Flashner  skribis:
> 
> > On December 12, 2022 1:47:29 PM UTC, "Ludovic Courtès"  wrote:
> 
> [...]
> 
> >>> +   ,@(if (target-arm?)
> >>> +   ;; Some binaries fail to build.
> >>> +   `(#:configure-flags '(,(string-append
> >>> +"--enable-no-install-program="
> >>> +;; the defaults
> >>> +"arch,coreutils,hostname"
> >>> +;; fails on aarch64
> >>> +",timeout,sort")))
> >>
> >>Isn’t there a risk that things will break down the road if ‘sort’,
> >>‘hostname’, etc. are missing?  How hard would it be to address the build
> >>failure instead?
> >>
> >>Thanks,
> >>Ludo’.
> >
> > I built all the way out to hello without any problems. Also %final-inputs 
> > has coreutils-final, so it really shouldn't be noticable.
> 
> That’s odd though.  Isn’t there some upstream patch we could take?
> Surely ‘sort’ has no reason to contain arch-specific code?
> 
> If there’s no such patch, we can go with the patch above, but then there
> should be a comment linking to bug reports and reassuring the reader
> that yes, some packages do build even without these commands.  :-)

In file included from src/timeout.c:53:0:
/gnu/store/4fy2658sxphy1kgclxrrmcka6lwiwap0-glibc-bootstrap-0/include/sys/prctl.h:22:66:
 fatal error: linux/prctl.h: No such file or directory
 #include   /*  The magic values come from here  */

I'm not sure if it's because armhf and aarch64 are using
%bootstrap-glibc vs glibc-2.16, but I didn't see this problem with
glibc-mesboot or with the %bootstrap-glibc from architectures using
2.31.

Other workarounds I thought of were adding in a glibc-boot0 here to
replace libc for everybody or using an older version (the last one in
the 8 series), but this seemed like the least invasive option for now.

I've also added a comment so it'll be clearer what's happening there.

> (There’s no “coreutils” command BTW, unless enabling the
> everything-in-one-binary trick, no?)

It turns out coreutils does allow for that.

> Thanks,
> Ludo’.

-- 
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: Merging core-updates?

2023-02-12 Thread Janneke Nieuwenhuizen
Andreas Enge writes:

> Am Sun, Feb 12, 2023 at 12:58:06PM +0100 schrieb Julien Lepiller:
>> And I was able to rebuild (with --check) patch-mesboot. The error looks
>> a lot like https://issues.guix.gnu.org/49985. We should fix that indeed
>> :)
>
> Ah indeed, that looks like deal breaking; maybe someone from MES can have
> a look?

I have backported

DRAFT lib: stat: Use SYS_stat64 for 32bit platforms.wip

to `wip'


https://git.savannah.gnu.org/cgit/mes.git/commit/?id=05d10877410b48d0a4f8960fd62190d70329eea7

that was slated to become Mes 0.25, after adding initial risc-v support
and some thorough testing.  If this works, maybe we should postpone
initial risc-v support to 0.26.

> What is the magic incantation with double "@@" to build this package?
> Ah, here we go, for reference to self:
>guix build -e '(@@ (gnu packages commencement) patch-mesboot)'

Thanks.  It would be nice, however, if there was a way for me to
reproduce this bug.

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen   | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com



Re: Merging core-updates?

2023-02-12 Thread Kaelyn
Hi,

--- Original Message ---
On Sunday, February 12th, 2023 at 5:08 PM, Andreas Enge  wrote:

>
>
> Am Sun, Feb 12, 2023 at 12:58:06PM +0100 schrieb Julien Lepiller:
>
> > And I was able to rebuild (with --check) patch-mesboot. The error looks
> > a lot like https://issues.guix.gnu.org/49985. We should fix that indeed
> > :)
>
>
> Ah indeed, that looks like deal breaking; maybe someone from MES can have
> a look?
>
> What is the magic incantation with double "@@" to build this package?
> Ah, here we go, for reference to self:
> guix build -e '(@@ (gnu packages commencement) patch-mesboot)'
>
> Andreas

While not directly related to the patch-mesboot error, I want to mention that 
there is also https://issues.guix.gnu.org/58719 blocking i686 builds on 
core-updates (and x86_64 builds of certain packages like wine64, which has i686 
dependencies) since the update to glibc 2.35.

It may also need assistance from the MES folks to fix, since the error message 
is about an undefined symbol in glibc-mesboot's libpthread.so.0:

make[2]: Entering directory '/tmp/guix-build-file-5.44.drv-0/file-5.44/magic'
../src/file -C -m magic
/tmp/guix-build-file-5.44.drv-0/file-5.44/src/.libs/file: symbol lookup error: 
/gnu/store/s4yd6ibxsh5q1j9ipygb9vpjj4g00wc9-glibc-mesboot-2.16.0/lib/libpthread.so.0:
 undefined symbol: h_errno, version GLIBC_PRIVATE
make[2]: *** [Makefile:863: magic.mgc] Error 127

Cheers,
Kaelyn


P.S. I also have https://issues.guix.gnu.org/59453 open for few months to fix 
the Vulkan layer paths in mesa on core-updates, which I'd really like to see 
land before a core-updates merge happens (it had originally been part of a mesa 
version update patch I sent in back in October, but which had been obsoleted by 
a newer patch release of mesa landing in core-updates; mesa in core-updates is 
also a few releases behind at this point, but that's a separate matter).



Re: Licence of the Guix blog posts

2023-02-12 Thread Csepp


Csepp  writes:

> I thought I agreed when I sent my part, but in case I haven't:
> I agree to licensing your contribution under CC-BY-SA 4.0 and GFDL
> version 1.3 or later, with no Invariant Sections, no Front-Cover Texts,
> and no Back-Cover Texts.

s/your/mine/

I copied the text from the email I was sent and apparently didn't edit
it properly.



Re: Merging core-updates?

2023-02-12 Thread Andreas Enge
Am Sun, Feb 12, 2023 at 12:58:06PM +0100 schrieb Julien Lepiller:
> And I was able to rebuild (with --check) patch-mesboot. The error looks
> a lot like https://issues.guix.gnu.org/49985. We should fix that indeed
> :)

Ah indeed, that looks like deal breaking; maybe someone from MES can have
a look?

What is the magic incantation with double "@@" to build this package?
Ah, here we go, for reference to self:
   guix build -e '(@@ (gnu packages commencement) patch-mesboot)'

Andreas




Re: Merging core-updates?

2023-02-12 Thread Efraim Flashner
On Sun, Feb 12, 2023 at 10:05:40AM +0100, Julien Lepiller wrote:
> Hi Guix!
> 
> As discussed at Guix Days before Fosdem, we haven't merged core-updates
> in a very long time. I'd volunteer to lead this effort, but I don't
> know what steps I should follow. Do we have some documentation about
> that?

I think we normally have a 2 week last-chance window to get all sorts of
last minute packages bumped and then we freeze it and try to build
"everything".

-- 
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: adding motif to guix

2023-02-12 Thread Tobias Geerinckx-Rice
Hi!

Not a review, but how is *tif ‘not an X toolkit’...?  Why not just say it ‘uses 
*tif’, instead?

Kind regards,

T G-R

Sent on the go.  Excuse or enjoy my brevity.



Re: Merging core-updates?

2023-02-12 Thread Josselin Poiret
Hi everyone,

Andreas Enge  writes:

> I volunteer to follow your lead, but also have no clue what is actually
> expected.

I would also like to give a hand!

> [...]
> Actually I am wondering whether the first step of killing these untamed
> non-feature branches would not be to build and merge staging? It is based
> on master, supposed to contain only medium sized changes, but which I
> suspect end up being a world-rebuilding cluster of changes.

You're right, for this to smoothly transition into the "feature branch
workflow" (if that's actually what we want to do) I guess we also need
to lay out a plan first, and prepare for the post-c.u-merge
world. Getting rid of staging first could be an easier exercise,
followed by c-u. I was planning on taking your notes of the Guix days
and opening a discussion about how we could concretely transition to
this new workflow, I can maybe do that this evening.

Best,
-- 
Josselin Poiret


signature.asc
Description: PGP signature


Re: Merging core-updates?

2023-02-12 Thread Christopher Baines

Julien Lepiller  writes:

> As discussed at Guix Days before Fosdem, we haven't merged core-updates
> in a very long time. I'd volunteer to lead this effort, but I don't
> know what steps I should follow. Do we have some documentation about
> that?

I can try and help with this, at least in terms of helping get
bordeaux.guix.gnu.org substitute availability to a good level.

I'd also like to get the kind of comparison that the qa-frontpage can do
for patches working for branches, but that'll probably take a bit of
work in the data service/qa-frontpage to get working smoothly.


signature.asc
Description: PGP signature


Re: Merging core-updates?

2023-02-12 Thread Christopher Baines

Julien Lepiller  writes:

> Le Sun, 12 Feb 2023 12:52:51 +0100,
> Julien Lepiller  a écrit :
>
>> Le Sun, 12 Feb 2023 12:06:14 +0100,
>> Andreas Enge  a écrit :
>> 
>> I just tried to build mpc on my machine, from core-updates. I get the
>> same derivation as the one shown on the data service, and it built
>> fine. Maybe there's something wrong with the machines behind bordeaux?
>> I probably got substitutes from berlin, for gcc and friends (though I
>> built gmp, mpfr and mpc).
>
> And I was able to rebuild (with --check) patch-mesboot. The error looks
> a lot like https://issues.guix.gnu.org/49985. We should fix that indeed
> :)

It could be something "wrong" with a build machine, although my
suspicion for a while is that various things are broken/don't work on
btrfs, which milano-guix-1 (the most important x86_64-linux) build
machine uses.

I've filed a few issues that probably relate to this:

https://issues.guix.gnu.org/53415
https://issues.guix.gnu.org/53416
https://issues.guix.gnu.org/60202

There are other build machines that don't use btrfs, so it should be
possible to get these things built anyway.


signature.asc
Description: PGP signature


Re: Merging core-updates?

2023-02-12 Thread Leo Famulari
On Sun, Feb 12, 2023 at 10:05:40AM +0100, Julien Lepiller wrote:
> As discussed at Guix Days before Fosdem, we haven't merged core-updates
> in a very long time. I'd volunteer to lead this effort, but I don't
> know what steps I should follow. Do we have some documentation about
> that?

The process could be considered "free form".

Basically, you can try to reconfigure your system on core-updates. It
will fail, many build failures will have to be fixed, and eventually it
will work.

Then I would run the Guix test suite and the system tests, and also
try to make use of QA.

It's likely that different architectures will have some specific
problems to be fixed.



Re: Merging core-updates?

2023-02-12 Thread Julien Lepiller
Le Sun, 12 Feb 2023 12:52:51 +0100,
Julien Lepiller  a écrit :

> Le Sun, 12 Feb 2023 12:06:14 +0100,
> Andreas Enge  a écrit :
> 
> I just tried to build mpc on my machine, from core-updates. I get the
> same derivation as the one shown on the data service, and it built
> fine. Maybe there's something wrong with the machines behind bordeaux?
> I probably got substitutes from berlin, for gcc and friends (though I
> built gmp, mpfr and mpc).
> 

And I was able to rebuild (with --check) patch-mesboot. The error looks
a lot like https://issues.guix.gnu.org/49985. We should fix that indeed
:)



Re: Merging core-updates?

2023-02-12 Thread Julien Lepiller
Le Sun, 12 Feb 2023 12:06:14 +0100,
Andreas Enge  a écrit :

> Hello,
> 
> Am Sun, Feb 12, 2023 at 10:05:40AM +0100 schrieb Julien Lepiller:
> > As discussed at Guix Days before Fosdem, we haven't merged
> > core-updates in a very long time. I'd volunteer to lead this
> > effort, but I don't know what steps I should follow. Do we have
> > some documentation about that?  
> 
> I volunteer to follow your lead, but also have no clue what is
> actually expected.
> 
> With Chris's help, I scheduled an evaluation on the build coordinator,
> which has not finished yet, so there is not yet anything to see at
>
> http://data.qa.guix.gnu.org/gnu/store/bjyfp7bhb9j25sw62nrkqjiivnzjxija-mpc-1.3.1.drv
> But if you click down the dependency tree, some of them have been
> built. And the first one already failed:
>
> http://data.qa.guix.gnu.org/gnu/store/0p0zs4gv8vg7rny25ki1szv4c7yk9zzb-patch-mesboot-2.5.9.drv
> With a strange error:
> starting phase `build'
> make: stat:Makefile: sterror: unknown error
> make: *** No targets specified and no makefile found.  Stop.
> error: in phase 'build': uncaught exception:
> srfi-34 # exit-status: 2 term-signal: #f stop-signal: #f] 1439cc0> phase
> `build' failed after 0.0 seconds command "make" failed with status 2
> Having failed three times in a row, this does not look like a
> transient error.
> 
> I also reconfigured bayfront to do more builds itself.
> 
> Actually I am wondering whether the first step of killing these
> untamed non-feature branches would not be to build and merge staging?
> It is based on master, supposed to contain only medium sized changes,
> but which I suspect end up being a world-rebuilding cluster of
> changes.
> 
> Andreas
> 

I just tried to build mpc on my machine, from core-updates. I get the
same derivation as the one shown on the data service, and it built
fine. Maybe there's something wrong with the machines behind bordeaux?
I probably got substitutes from berlin, for gcc and friends (though I
built gmp, mpfr and mpc).



Re: Merging core-updates?

2023-02-12 Thread Andreas Enge
Hello,

Am Sun, Feb 12, 2023 at 10:05:40AM +0100 schrieb Julien Lepiller:
> As discussed at Guix Days before Fosdem, we haven't merged core-updates
> in a very long time. I'd volunteer to lead this effort, but I don't
> know what steps I should follow. Do we have some documentation about
> that?

I volunteer to follow your lead, but also have no clue what is actually
expected.

With Chris's help, I scheduled an evaluation on the build coordinator,
which has not finished yet, so there is not yet anything to see at
   
http://data.qa.guix.gnu.org/gnu/store/bjyfp7bhb9j25sw62nrkqjiivnzjxija-mpc-1.3.1.drv
But if you click down the dependency tree, some of them have been built.
And the first one already failed:
   
http://data.qa.guix.gnu.org/gnu/store/0p0zs4gv8vg7rny25ki1szv4c7yk9zzb-patch-mesboot-2.5.9.drv
With a strange error:
starting phase `build'
make: stat:Makefile: sterror: unknown error
make: *** No targets specified and no makefile found.  Stop.
error: in phase 'build': uncaught exception:
srfi-34 # 
phase `build' failed after 0.0 seconds
command "make" failed with status 2
Having failed three times in a row, this does not look like a transient error.

I also reconfigured bayfront to do more builds itself.

Actually I am wondering whether the first step of killing these untamed
non-feature branches would not be to build and merge staging? It is based
on master, supposed to contain only medium sized changes, but which I
suspect end up being a world-rebuilding cluster of changes.

Andreas




Re: Licence of the Guix blog posts

2023-02-12 Thread Janneke Nieuwenhuizen
Ludovic Courtès writes:

Hello!

Thanks Simon for pinging me!

> You might remember that I started long ago asking people who had
> contributed to the blog whether they would agree to licensing their work
> under CC-BY-SA 4.0 and GFDL version 1.3 or later, with no Invariant
> Sections, no Front-Cover Texts, and no Back-Cover Texts¹.
[..]
> Simon, what do you think about emailing the authors of the “10 years of
> stories” post asking if they agree with the licensing?  :-)  No rush,
> though the sooner the more likely we are to get an answer.

Sure, I'm happy for my blog contributions to be licensed under these
terms.

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen   | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




Merging core-updates?

2023-02-12 Thread Julien Lepiller
Hi Guix!

As discussed at Guix Days before Fosdem, we haven't merged core-updates
in a very long time. I'd volunteer to lead this effort, but I don't
know what steps I should follow. Do we have some documentation about
that?