From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:8:6d80::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id 6e+xHcGYbmAZawEAgWs5BA (envelope-from ) for ; Thu, 08 Apr 2021 07:46:41 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id 8ImXFsGYbmCOSgAA1q6Kng (envelope-from ) for ; Thu, 08 Apr 2021 05:46:41 +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 9862B2CE48 for ; Thu, 8 Apr 2021 07:46:40 +0200 (CEST) Received: from localhost ([::1]:56894 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lUNV1-0005IV-Bt for larch@yhetil.org; Thu, 08 Apr 2021 01:46:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41988) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lUNUr-0005IO-5z for guix-devel@gnu.org; Thu, 08 Apr 2021 01:46:29 -0400 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]:40661) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lUNUo-0000tX-3z for guix-devel@gnu.org; Thu, 08 Apr 2021 01:46:28 -0400 Received: by mail-pf1-x435.google.com with SMTP id a12so991872pfc.7 for ; Wed, 07 Apr 2021 22:46:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:references:date:in-reply-to:message-id:user-agent :mime-version; bh=EAxOTtLwtEiDyExOge8IRb6cz0/bo2kx9UiCc7XT1Eg=; b=tczn2aM0Jo7vOHyT/PJraD833Zbh7QWLtcheAcweHacR3V1UxKjvl6OtwZXSmQ25ZV m8/hzFm/jzSPi9n9wHTRfZxZN7nc+oH2EmUj2hJjU7dVdsyzPiIA627DafjLbXJ271Y8 U7CnfgttrMMC7/IpNmgyD0VWnUwRThaHtrvYlP4JypCyRyCtEtb0HdtkV+WBJ36bhXfK 1cWH1FlUrZjJtCZfjlDdDoUK8PQq3uelBJwLkR3SASDqS0/tssNQnA/UDdei1w/tTnCn dGk4PhsmWO28/Mlhlhd7BbLQvHU59vD+VX55JYL0WyqkzcYLpGAHPVkRWZSVfCTySYce mXwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=EAxOTtLwtEiDyExOge8IRb6cz0/bo2kx9UiCc7XT1Eg=; b=fe0M6aDQvQia/S2eyJIlJFvM+55/JQA+vHE7uMt3mZPt7caWaqk1dm8nM3mFeL7caF RCilhOzM9IZlQIjWtCVjLiSEzPMxnvmVoIDDhMz9HiamZF7c9avfcJq84qxRdB4IRdnG BqsMg4wAsUid1IgS2KdjgjuKRSRYPgRo1FyDjzDqE8oJoBHm2T4JYrAwr+qCp97vmfM+ 4eSRWFVGpAvc4k2YS2HC4X3DhCSgzbwmf8HntmXVx+uBQdTRrFXZy7aCnwFGuHVQ0sNO fDh1oIzKjD24lDG5UeeMekgiD6Dcn64F/Fa8cymCVc+y1kQGBKn0DtO4w2uZO/WM/zqA JM9w== X-Gm-Message-State: AOAM530vcWGmQCsz2MO8vjI0Hgy3Fs/sz9sNgCnYrXcaBYH1kjOPBti+ 5oqhGvO6OJdmy6f3Eb838t8CRE9xXADaow== X-Google-Smtp-Source: ABdhPJxImH9MTkSqqYwezNrc6MWVitLXmOwYc5bnCxvpn3IJyPhTkRzDkEwC2e+YLhYYFI9LD/B+iw== X-Received: by 2002:a63:1109:: with SMTP id g9mr6709727pgl.88.1617860783227; Wed, 07 Apr 2021 22:46:23 -0700 (PDT) Received: from garuda-lan (c-24-18-44-142.hsd1.wa.comcast.net. [24.18.44.142]) by smtp.gmail.com with ESMTPSA id x69sm23402290pfd.161.2021.04.07.22.46.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Apr 2021 22:46:22 -0700 (PDT) From: Chris Marusich To: guix-devel@gnu.org Subject: Re: Please review blog post draft: powerpc64le-linux support References: <87a6qbc28m.fsf@gmail.com> <878s5vl8jv.fsf@dismail.de> Date: Wed, 07 Apr 2021 22:46:18 -0700 In-Reply-To: <878s5vl8jv.fsf@dismail.de> (Joshua Branson's message of "Tue, 06 Apr 2021 11:47:00 -0400") Message-ID: <87zgy9nxat.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Received-SPF: pass client-ip=2607:f8b0:4864:20::435; envelope-from=cmmarusich@gmail.com; helo=mail-pf1-x435.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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=1617860801; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=EAxOTtLwtEiDyExOge8IRb6cz0/bo2kx9UiCc7XT1Eg=; b=c0er593NXNvRSXcKE3TIbJ7Q97ocrnXGwgDaHO2KvLIZRdEPNAQ4YGd+TTASKrFWda9r9Z ikLJ6Yq058W0HZBE7hAqVladoFW8HdkblCg19vDQ1SJxMaRH7Fz7lGhytemfinoUemwm72 UbVd0LjDgVfSomaQ9y2RZ0HSwX4Dq5TM5ltiroLOmwfnP1zcMo7A8o5+36JLfkKrJJ3Upb C4OM2f9A/0SMKg06bw3Ym2daWpdy9pu4nqxvjJUVCuYu2KF0RNCp4Q/dOOKxi1qRLo0PLp gMgyF9J6Img+6FAJtbT97ZfPxuLvbnqCoMoUEnTpxGzg5dKfqNLUNPf8VUeN3w== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1617860801; a=rsa-sha256; cv=none; b=BBiVBf1zrgy0a2Eqq85gvnqR+Rq8UdQqKsAlRSTu0IdagGb0KjlcLBPRqFo3lOAZTHW51V nA8+9HkWVA+ImR7s3nqes6J5yHn7W8g750bQCm+ZtnRBBsKrKbWaXUSyZdLfZm1ZbumSpp x0BNODJG1VLPbvl0OCbCFXwbiZ1BypXGWpVBSaoJmfR3tVxnbU9B+9i1mB2FPJuLb9VfpY MI3/TKzyDHeq+6qiOPJGN7RO6ZgoQcCfnU3TEmu2tLI9JFf0u8P8M7UAy61D+fvpoyKu7R tYph8cGNHycES7xKgq7mZPDG33eObFIJuD7wUBmqyyiuRyM72oMidrBIC4LO8Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=tczn2aM0; dmarc=pass (policy=none) header.from=gmail.com; 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: -2.74 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=tczn2aM0; dmarc=pass (policy=none) header.from=gmail.com; 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: 9862B2CE48 X-Spam-Score: -2.74 X-Migadu-Scanner: scn0.migadu.com X-TUID: jmAysgJGQUg/ --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Joshua, Joshua Branson writes: > 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! Thank you for the kind words, and your feedback! >> +### 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-li= te-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". Good catch! >> +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_b= y=3Dcreated&sort_order=3DDESC), >> +[mainboards](https://ryf.fsf.org/products?category=3D5&vendor=3DAll&sor= t_by=3Dcreated&sort_order=3DDESC), >> +and >> +[workstations](https://ryf.fsf.org/products?category=3D30&vendor=3DAll&= sort_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? Nope, it's a typo. Good eyes! >> +respects your freedom. Modern processors from [both Intel and AMD >> +include back >> +doors](https://www.fsf.org/blogs/sysadmin/the-management-engine-an-atta= ck-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_vulnerabili= ty)). >> +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-devel= op-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-linu= x-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-openpo= wer-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/msg0081= 4.html), >> +but introducing them in Guix is highly discouraged, and our community >> +[actively](https://guix.gnu.org/en/blog/2019/guix-reduces-bootstrap-see= d-by-50/) >> +[works](https://guix.gnu.org/en/blog/2020/guix-further-reduces-bootstra= p-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" Fixed! >> +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/packag= es/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 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? Yeah, I forgot to do that on this line. It's wrapped now. >> +### 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! Yes, Rust should work. There's a Debian package on their ppc64el port (the package is rustc), and the GNU triplet "powerpc64le-unknown-linux-gnu" (which is the triplet corresponding to the Guix system "powerpc64le-linux") is listed as a Tier 2 supported platform in the Rust docs: https://doc.rust-lang.org/nightly/rustc/platform-support.html Whether or not it does work is another question. I'll be surprised if it builds in Guix on powerpc64le-linux the first time we try, but we just have to try it and fix any problems that occur. I'll build and try using it eventually, but others are more than welcome to beat me to the punch! I've been focusing on finishing this blog post in my spare time first. Again, thank you for the feedback! I really appreciate it. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJJBAEBCAAzFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAmBumKoVHGNtbWFydXNp Y2hAZ21haWwuY29tAAoJEN1AmhXYIkadBggP/A5XY3OTs82BoPxCv1Vf1WzvFYN8 7Qrb4oVcRs2kX6WXKF0RPZE8I4o3y1wKEpEkT9Bd7kGPgUsdPcaC+yG1AQWtxLy8 6q8SwPkIuVWdd53PtIUzl57HkZLCb1vydYm3IftWgGjQV5oFQpLCENYADQ54RA1r wNr7pd26CM4BWEqxfonKLr39+ybUQ2bJ+J5o6RU+aWDva533wSRXzdiww3Eh8F1S FcDc/7vYuCAwbGvpAOu81zm4j5uwHoyxXRYy139YSfCc8hLZesfZHGiQzNGfa3r3 x/+Kg4nTgLwyYPyh6oLT8T/iZgWSmY6AlNhFEkkstVPABhLbrYEMj915JwpSz1rp RVeUvNu87w/MK9b/dFGkyd6GWgNdRYnj3WwbSHmmoEPtEJOeOGwjkJtxWbm72eea eogt5UQrwqd6RdNrLo6ZuggLInMbe4WTEZvZq5/DEegRqUHsrlWnTC4lFPY/l4gP 6ksNr6qK6ypCbuMT17+CuwcrCQrqzGUDjHfiNuRM8uGG+gyAho3AZK2tUPZuN8te PvNt/+SbITLa7/gyW/oT2BTUE4jANMaEdh+xesIS/QgsflinAiDmZoWN9UzcDbPn goZ4SDBZiXqnd4+yMoMY5hTq4NeSly83uXrWLsNH+JGpH8krlL6siLaguUsnD1Dq Xv7bZMwJJlA7tlNA =bTwQ -----END PGP SIGNATURE----- --=-=-=--