From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:bcc0::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id yBm3ObKCbGAaRAEAgWs5BA (envelope-from ) for ; Tue, 06 Apr 2021 17:48:02 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id sKp/NLKCbGBjEAAAbx9fmQ (envelope-from ) for ; Tue, 06 Apr 2021 15:48:02 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 61D2D2182D for ; Tue, 6 Apr 2021 17:48:02 +0200 (CEST) Received: from localhost ([::1]:45642 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lTnvt-00060q-Gt for larch@yhetil.org; Tue, 06 Apr 2021 11:48:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35044) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lTnvK-0005zh-D4 for guix-devel@gnu.org; Tue, 06 Apr 2021 11:47:26 -0400 Received: from mx1.dismail.de ([78.46.223.134]:12370) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lTnvE-0001JI-7s for guix-devel@gnu.org; Tue, 06 Apr 2021 11:47:26 -0400 Received: from mx1.dismail.de (localhost [127.0.0.1]) by mx1.dismail.de (OpenSMTPD) with ESMTP id 45c5dd3e; Tue, 6 Apr 2021 17:47:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=dismail.de; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=20190914; bh=fJki/Fn0 sEvryfHFHWl3WQvv0PFu9nr5TX9yjZTu3NE=; b=Ff3Kne1J0GM2osA0LQiCOp9F wqcgftAe8OEOB5nQ3szFQOTOe681rZ3m3G2nxw89z3Zwdza413cKNwnuI9xF5JSV IjN+ESwQedX5xV0DgkussCYk8KnZL+hv2XgA5H9ma+6vdcwSrydaLYvFI2RamAg2 rprC58dUOVeYBgWmFry6YQw8wZGH0rrJMLI3BoChXLwjsoPs5C++RuVpHaQ1+ely dVVcc5EG7e1UEta9DcjyMj0iB0RpoIs8LlobBnkA61sYbkP/vbXESIe5IQceu0a6 U46anS6SCBSqVxmmyyAj3CAtaSjbsCaToRIGpox/7IoyDqw9fC7ZwBh4ae0vqw== Received: from smtp1.dismail.de ( [10.240.26.11]) by mx1.dismail.de (OpenSMTPD) with ESMTP id 896f30cb; Tue, 6 Apr 2021 17:47:15 +0200 (CEST) Received: from smtp1.dismail.de (localhost [127.0.0.1]) by smtp1.dismail.de (OpenSMTPD) with ESMTP id c2f598d2; Tue, 6 Apr 2021 17:47:15 +0200 (CEST) Received: by dismail.de (OpenSMTPD) with ESMTPSA id a4d562ba (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO); Tue, 6 Apr 2021 17:47:14 +0200 (CEST) From: Joshua Branson To: Chris Marusich Cc: guix-devel@gnu.org Subject: Re: Please review blog post draft: powerpc64le-linux support References: <87a6qbc28m.fsf@gmail.com> Mail-Followup-To: Chris Marusich , guix-devel@gnu.org Date: Tue, 06 Apr 2021 11:47:00 -0400 In-Reply-To: <87a6qbc28m.fsf@gmail.com> (Chris Marusich's message of "Tue, 06 Apr 2021 00:15:53 -0700") Message-ID: <878s5vl8jv.fsf@dismail.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=78.46.223.134; envelope-from=jbranso@dismail.de; helo=mx1.dismail.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1617724082; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=TX5HW2sMzq5zT/XKUQ0w0H1M5hFGyLHsB/rrEK8yB1w=; b=ddAPfOkPcBdK83T+zJ45+jdAu8khCGh5KB075Ih3x9FbHl/Uz16+iPH1CcnPU15Gyz74EV Eh2ddOErgN6axh4YN+FQFHLkbmCQDDzJSb1efOHNWscaQbAvI1IOoUY5Y5SGXsncr/RHpl Q/Ao0OFlC3CRDTmQqhLNyXstXgNPVvW3yPwGxMhUz8Z2n5H2EMxrB+KsbPtCasomNKl/rt Ac4hEmSAUJcnxiGTQI5Y/cUANCJiGIrfXwSXHGkbUZv0mGCBskKlAYzqHcUmZqSCjK0G+z Eb9U1fasK3DUGB5ZdtlO44610KGaMkl48/FmhnZqXlZeB48IDziGPuro4ESvGA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1617724082; a=rsa-sha256; cv=none; b=p0RnEgjQikx2p+55/RcwNwuXPZdBXpjPPYu2VlBdK5r85hROXzQiOY95Mqc1V1kw9XQLEc iGDX/+KkafSfhrgIeFIDxQ7yPMA40Ffpdjjvm4usKdD451suROcJI6bpwGoNqr8pw2O5ap lGXmnc1zQXbivrJnfql8ou4S4OXXPjYA8AKdn9a2HFBif4BFwMEzdWSZHKKwP9FAKriOlO FVIepJ4HIJwxVErNUf6PPBaPV5SjK9BdMOWaIu3XHMjW9PQnpfogUnYJ1fPw82jftNlhtc BVrolgizAdyvYmH2RKcYYsHs5LGo3g+c4VJy+YCz7j8taBQUdhkMmUD8s9X3jA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=dismail.de header.s=20190914 header.b=Ff3Kne1J; dmarc=pass (policy=reject) header.from=dismail.de; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -1.64 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=dismail.de header.s=20190914 header.b=Ff3Kne1J; dmarc=pass (policy=reject) header.from=dismail.de; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: 61D2D2182D X-Spam-Score: -1.64 X-Migadu-Scanner: scn0.migadu.com X-TUID: dPYWMhfHMkud 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 writes: > Hi, > > L=C3=A9o 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-lit= e-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=3D1&vendor=3DAll&sort_by= =3Dcreated&sort_order=3DDESC), > +[mainboards](https://ryf.fsf.org/products?category=3D5&vendor=3DAll&sort= _by=3Dcreated&sort_order=3DDESC), > +and > +[workstations](https://ryf.fsf.org/products?category=3D30&vendor=3DAll&s= ort_by=3Dcreated&sort_order=3DDESC) > +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-attac= k-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_vulnerabilit= y)). > +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-develo= p-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-openpow= er-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/package= s/make-bootstrap.scm?id=3D5d8c2c00d60196c46a32b68c618ccbe2b3aa48f4) > +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=3D41669), 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 o= f %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