all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Joshua Branson <jbranso@dismail.de>
To: Chris Marusich <cmmarusich@gmail.com>
Cc: guix-devel@gnu.org
Subject: Re: Please review blog post draft: powerpc64le-linux support
Date: Tue, 06 Apr 2021 11:47:00 -0400	[thread overview]
Message-ID: <878s5vl8jv.fsf@dismail.de> (raw)
In-Reply-To: <87a6qbc28m.fsf@gmail.com> (Chris Marusich's message of "Tue, 06 Apr 2021 00:15:53 -0700")


Awesome!  Great work!  I read the below draft blog post like a Harry
Potter novel!  It is superbly written.  And it makes a lot of sense!

Chris Marusich <cmmarusich@gmail.com> writes:

> Hi,
>
> Léo and I have drafted the following blog post.  Could you take a few
> minutes to read it and give us your thoughts?
>
> It's a work in progress.  The primary goal is to announce the new
> powerpc64le-linux support and explain why it matters (POWER9 is an
> exciting, freedom-friendly platform!).  The secondary goal is to explain
> some of the details about what we did, and invite people to get
> involved.
>
> Your feedback would be highly appreciated!
>
> --
> Chris

Seriously good job on this blog post, and all involved in the powerPC
porting work!  Fabulous job chaps!  Cheerio!  Also below are my tiny
edits:

> +
> +### Why Is This Important?
> +
> +This is important because it means that GNU Guix now works on the [RYF
> +Talos II and Talos II Lite
> +mainboards](https://www.fsf.org/news/talos-ii-mainboard-and-talos-ii-lite-mainboard-now-fsf-certified-to-respect-your-freedom)
> +and it's IBM POWER9 processor.  This is a modern, performant hardware

I believe you should use "its".  it's is short for "it is".

> +platform that respects your freedom.  It can run without any non-free
> +code, all the way down to its bootloader and firmware.  It's a
> +freedom-friendly platform that aligns well with GNU Guix's commitment
> +to software freedom.
> +
> +How is this any different from existing RYF hardware, you might ask?
> +The existing RYF
> +[laptops](https://ryf.fsf.org/products?category=1&vendor=All&sort_by=created&sort_order=DESC),
> +[mainboards](https://ryf.fsf.org/products?category=5&vendor=All&sort_by=created&sort_order=DESC),
> +and
> +[workstations](https://ryf.fsf.org/products?category=30&vendor=All&sort_by=created&sort_order=DESC)
> +can only really be used with Intel Core Duo or AMD Opteron processors.
> +Those processors were released over 15 years ago.  Since then,
> +processor performance has increased drastically.  People should not
> +have to choose between performance and freedom, but the fact is that
> +for many years, that is exactly what we were forced to do.  However,
> +the Talos II and Talos II Lite have changed this: the free software
> +community now has an RYF-certified option that can compete with the
> +performance of modern Intel and AMD systems.
> +
> +Although the performance of POWER9 processors is competitive with
> +modern Intel and AMD processors, its real advantage is that it<

Why is there "it<"  ?  Is that some markup I'm not familiar with?

> +respects your freedom.  Modern processors from [both Intel and AMD
> +include back
> +doors](https://www.fsf.org/blogs/sysadmin/the-management-engine-an-attack-on-computer-users-freedom)
> +over which you are given no control.  Additionally, hardware design
> +defects in the processors of both vendors have been discovered, giving
> +rise to critical security vulnerabilities like
> +[Spectre](https://en.wikipedia.org/wiki/Spectre_(security_vulnerability))
> +and
> +[Meltdown](https://en.wikipedia.org/wiki/Meltdown_(security_vulnerability)).
> +In many cases, these vulnerabilities can only be fixed by installing
> +[non-free CPU microcode](https://wiki.debian.org/Microcode) - unless,
> +of course, [the vendor decides not to provide any fix at
> +all](https://arstechnica.com/gadgets/2018/04/intel-drops-plans-to-develop-spectre-microcode-for-ancient-chips/)!
> +
> +Compared to that, the RYF Talos II and Talos II Lite are a breath of
> +fresh air that the free software community really deserves.  Raptor
> +Computing Systems' commitment to software freedom and owner control is
> +an inspiring reminder that it **is** possible to ship a great product
> +that respects the freedom of your customers.  And going forward, the
> +future looks bright for the open, royalty-free Power ISA, [which is
> +now a Linux Foundation
> +project](https://www.linuxfoundation.org/press-release/2019/08/the-linux-foundation-announces-new-open-hardware-technologies-and-collaboration/)
> +(see also: [the same announcement from The OpenPOWER
> +Foundation](https://openpowerfoundation.org/the-next-step-in-the-openpower-foundation-journey/).
> +
> +
> +In Guix, all software for a given system (e.g., powerpc64le-linux) is
> +built starting from its bootstrap binaries.  It is intended that the
> +bootstrap binaries are the only pieces of software in the entire
> +package collection that Guix cannot build from source.  In practice,
> +[additional bootstrap roots are
> +possible](https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00814.html),
> +but introducing them in Guix is highly discouraged, and our community
> +[actively](https://guix.gnu.org/en/blog/2019/guix-reduces-bootstrap-seed-by-50/)
> +[works](https://guix.gnu.org/en/blog/2020/guix-further-reduces-bootstrap-seed-to-25/)
> +to [reduce](https://guix.gnu.org/en/blog/2018/bootstrapping-rust/) our
> +overall bootstrap footprint.
> +
> +So first you need to build the the bootstrap binaries for your

"the the" --> "the"

> +platform.  In theory, you can do this in many ways.  For example, you
> +might try to manually compile them on an existing system.  However,
> +Guix has [package
> +definitions](https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/make-bootstrap.scm?id=5d8c2c00d60196c46a32b68c618ccbe2b3aa48f4)
> +that you can use to build them - using Guix, of course!
>
> +In both the big-endian and little-endian case, we were saddened to
> +discover that the bootstrap binaries are not entirely reproducible.
> +This fact is documented in [bug
> +41669](https://debbugs.gnu.org/cgi/bugreport.cgi?bug=41669), along
> +with our extensive investigations.  In short, if you build the
> +bootstrap binaries on two separate machines without using any
> +substitutes, you will find that the derivation which cross-compiles
> +%gcc-static (the bootstrap GCC, version 5.5.0) produces different
> +output on the two systems.  However, if you build %gcc-static twice on
> +the same system, it builds reproducibly.  This suggests that something
> +in the transitive closure of inputs of %gcc-static is perhaps
> +contributing to its non-reproducibility.  There is an interesting graph toward the end of the bug report that suggests that the non-reproducibliity is introduced by one or more of 21 derivations in the transitive closure of %gcc-static's inputs that do not build reproducibly across systems.

On my computer, the above line is SUPER LONG.  Should you do a M-x
fill-paragraph on the above line?  Or does that not really matter?

> +### Next Steps
> +
> +It is now possible to install Guix on a powerpc64le-linux system and
> +use it to build some useful software - in particular, Guix itself.  So
> +Guix is now "self-hosted" on this platform, which gives us a
> +comfortable place to begin further work.
> +
> +The following tasks still need to be done.  Anyone can help, so please
> +get in touch if you want to contribute!
> +
> +- Solve the GCC bootstrap binary reproducibility issue.
> +- Get Guix System to work on powerpc64le-linux.
> +- Get CI infrastructure to work (Cuirass, guix-build-coordinator,
> +  substitutes, etc.)
> +- Fix all package build failures.
> +- Try building rust, and if it works, judiciously re-introduce the
> +  librsvg dependency for powerpc64le-linux in gtk+ and gtk+-2, since
> +  [it is currently
> +  missing](https://git.savannah.gnu.org/cgit/guix.git).

Just out of curiosity, does rust work on power?  I'm under the
impression that rust, while memory safe, is not so easy to bootstrap.
Though I am eager to see someone bootstrap rust to power!  Best of luck
you brave soul!

> +- Upgrade GCC to 8 on core-updates, fix issues that occur.
> +- Merge core-updates to master after that.

--
Joshua Branson (joshuaBPMan in #guix)
Sent from Emacs and Gnus
  https://gnucode.me
  https://video.hardlimit.com/accounts/joshua_branson/video-channels
  https://propernaming.org
  "You can have whatever you want, as long as you help
enough other people get what they want." - Zig Ziglar


  reply	other threads:[~2021-04-06 15:48 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-06  7:15 Please review blog post draft: powerpc64le-linux support Chris Marusich
2021-04-06 15:47 ` Joshua Branson [this message]
2021-04-08  5:46   ` Chris Marusich
2021-04-06 23:13 ` Léo Le Bouter
2021-04-08  6:04   ` Chris Marusich
2021-04-08  8:55 ` Chris Marusich
2021-04-08 10:49   ` Vincent Legoll
2021-04-08 16:37     ` Chris Marusich
2021-04-08 17:15       ` Vincent Legoll
2021-04-08 22:59       ` Léo Le Bouter
2021-04-10  9:59         ` Tobias Platen
2021-04-11  7:34           ` Chris Marusich
2021-04-11  7:37 ` Chris Marusich
2021-04-12 19:46   ` Chris Marusich
2021-04-15 22:06     ` Léo Le Bouter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878s5vl8jv.fsf@dismail.de \
    --to=jbranso@dismail.de \
    --cc=cmmarusich@gmail.com \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.