diff --git a/site/about.md b/site/about.md index 6f00e0f..0cd373c 100644 --- a/site/about.md +++ b/site/about.md @@ -9,7 +9,7 @@ operates, why it exists and what it does. Who, what, why and when. What is Canoeboot? =================== -Canoeboot is free/libre boot firmware based on Libreboot (which is in turn +Canoeboot is free/libre boot firmware based on [Libreboot](https://libreboot.org/) (which is in turn based on coreboot), replacing proprietary BIOS/UEFI firmware on select x86/ARM laptops, desktops and server mainboards. It provides an [automated build system](docs/maintain/) @@ -20,17 +20,17 @@ features](docs/gnulinux/grub_hardening.md). Users take this automation for granted today, but Libreboot was the first such project to implement this. It, like Canoeboot, is a *coreboot distro* in the -same way that *Trisquel* is a GNU+Linux distro. Similar projects now exist, today, +same way that *Debian* is a GNU+Linux distro. Similar projects now exist, today, inspired by Libreboot's example. Coreboot is notoriously difficult to configure and install for most non-technical users, but Libreboot and Canoeboot make it easier. -However, *Libreboot* no longer complies with GNU policy. In November 2022, +In November 2022, Libreboot adopted a more pragmatic policy of allowing any board from coreboot to be supported, while reducing the number of binary blobs as much as possible. Although this may satisfy most people, there exists a minority of people who wish to still have a blob-free coreboot distro, like Libreboot once was. -Prior to November 2022, Libreboot complied fully with GNU policy in providing +Prior to November 2022, Libreboot complied fully with such policy in providing an entirely blob-free coreboot distribution. The rest of this article will go into a lot more detail, both on this and on the technical aspects, but the gist of it is this: @@ -43,27 +43,62 @@ to never add microcode updates or download blobs, even if told to by coreboot configs, since the upstream coreboot project is otherwise engineered to handle these if requested by the user). -Overview of operation +How does Canoeboot compare to Libreboot? ------------------- More specifically, Canoeboot is a *fork* of Libreboot, maintained in parallel -as per each Libreboot release. Canoeboot adheres to the [GNU Free System -Distribution Guidelines](https://www.gnu.org/distros/free-system-distribution-guidelines.en.html), -and such adherence (to GNU FSDG) is the main purpose of Canoeboot. It consequently supports far less -hardware than Libreboot. *However*, this also means that Canoeboot is an -excellent choice for the purists out there who adhere to the GNU Free Software -ideology, and wish to use nothing but *Free Software*. +as per each Libreboot release; Canoeboot maintains +a [zero-blob policy](news/policy.md), in contrast to Libreboot's +[Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). +Canoeboot consequently supports far less hardware than Libreboot. Canoeboot +even *excludes CPU microcode updates*, regardless of the negative impact this +has on system stability. The purpose of Canoeboot is simply to provide free +boot firmware that is *fully* [Free Software](https://writefreesoftware.org/learn) +for the purists out there. -Canoeboot is essentially providing well-engineered releases showing what Libreboot -would be like if it *didn't* implement such a policy (in sharp contrast to the GNU -one that Canoeboot implements). Libreboot previously adhered to the GNU FSDG -policy, but adopted the *Binary Blob Reduction Policy* in November 2022, in an -effort to increase the number of mainboards that can be supported from coreboot. +This means Canoeboot is technically inferior to Libreboot. Most people should +probably just use Libreboot. Canoeboot is essentially a well-engineered +proof of concept that shows what is possible when you take such a strict +approach. The term *inferior* is not meant as an insult, but it is a fact +that Canoeboot supports much less hardware than Libreboot, and +much *older* hardware; for example Libreboot can run on intel 8th gen +and newer, while Canoeboot is stuck on Core 2 Duo era hardware, at least +on Intel (Core 2 Duo machines from the year 2008). We do support some +nice AMD server boards in Canoeboot (e.g. ASUS KGPE-D16) but Libreboot can +go much further than Canoeboot, or any other project like it. -Canoeboot was created because there are still a few people who want this sort -of thing, but there weren't any modern, or otherwise high quality implementations. -Thus, I decided to revive the old Libreboot project myself, forking from my very -own project (Libreboot) and calling the new fork Canoeboot. *I forked my own project.* +The approach taken by Canoeboot is the same one that Libreboot used to take, +from it's founding in 2013, right up until November 2022. On 17 November 2022, +Libreboot switched to the +[Binary Blob Reduction Policy](https://libreboot.org/news/policy.html), +which is still quite strict; it still prohibits binary blobs from being +included, including them only when absolutely required, because some boards +from coreboot still require certain code from the vendor (e.g. raminit +may not be implemented on some newer boards, so code from the vendor is used +in such cases, e.g. Intel MRC/FSP). + +In practise, Libreboot *also* provides fully free firmware on a lot of +newer boards, depending on your point of view. For example, on Intel +platforms up to Haswell, free raminit is available and the only code needed +from the vendor is Intel ME, which is configured via `me_cleaner` on +Libreboot releases, disabling the ME after early bringup. See: + - use of `me_cleaner` can be +considered *de-blobbing*, since it is removing almost all of the code +from the ME, but on most newer platforms, a small rump of ME code is still +required for power management as one example. + +More information about precisely how *Libreboot* differs from Canoeboot, +and therefore how Canoeboot differs from Libreboot, can be gleaned by looking +at the following resources: + +* [Libreboot Binary Blob Reduction Policy](https://libreboot.org/news/policy.html) +* [Canoeboot Binary Blob Extermination Policy](news/policy.md) +* [Libreboot Freedom Status](https://libreboot.org/freedom-status.html) + +And check the hardware compatibility list of both projects: + +* [Libreboot supported hardware](https://libreboot.org/docs/install/#which-systems-are-supported-by-libreboot) +* [Canoeboot supported hardware](docs/install/#which-systems-are-supported-by-canoeboot) I'm writing in the first person. Who's this *I* you're reading about? It's me, Leah Rowe; I am the founder and lead developer of Libreboot, *and also* the @@ -71,6 +106,23 @@ founder and lead developer of Canoeboot! I maintain both projects, keeping them in relative sync between releases, often performing same-day simultaneous Canoeboot and Libreboot releases. +So why is Canoeboot even maintained, if it's inferior to Libreboot? Why +maintain two projects? The answer is simple: Canoeboot is a fun technical +challenge to see what can be done under such restrictive and dogmatic +policies. Maintaining it is also not that hard, because the design is +mostly kept in sync with Libreboot, on a per-commit basis, so the amount +of development overhead is actually quite minimal. + +For example, both build systems both use the exact same design. See: + +* [Libreboot build system design](https://libreboot.org/docs/maintain/) +* [Canoeboot build system design](docs/maintain/) + +With few exceptions, Canoeboot generally keeps in sync with Libreboot +at all times, usually making releases on the exact same day. When a +Libreboot release comes out, Canoeboot usually also does a corresponding +release on the same day, or the day after. + Who? ------ @@ -116,7 +168,7 @@ The resulting patch file is then opened up in *Vim*. In the Canoeboot repository, these changes are then copied over. This is done by scrolling through the patch file, deciding which changes are worthy. The policy is to include *all* changes, except those that are not suitable under -FSDG. +Canoeboot's [policy](news/policy.md). *Then* the following is done, for coreboot and u-boot trees *per tree*: @@ -154,18 +206,11 @@ The above steps are a general guide, but specific tweaks may also be required in the build system, for a new release; minor edge cases here and there, that are different for every release, but they are usually very minor. -The `deblob-check` script is from linux-libre, a GNU fork of Linux that is -de-blobbed, but the same script works on any source tree, except it will flag -all of the false positives on non-Linux source trees; it scans heuristically -for binary blobs. +Upstream sources are rigorously checked, comparing files that have changed +between releases. This takes time, but the process is largely automated. This is how Canoeboot can provide releases so quickly, based upon each release of Libreboot. Extensive testing is performed on ROM images compiled under the Libreboot build system, so the Canoeboot images are also easy to verify, since a Canoeboot release will always be closely based on a Libreboot release. -This is actually the benefit of Canoeboot, over all other FSDG-derived coreboot -distros, because the other projects do not have as good infrastructure or the -level of resources *or* technical knowledge that Libreboot has. Libreboot -provides high quality releases which are then filtered by order of the protocol -described above, to provide Canoeboot releases. diff --git a/site/docs/build/index.md b/site/docs/build/index.md index ad4da4b..40c2b41 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -123,7 +123,7 @@ be available too, e.g. `fedora38`. Make sure to check `config/dependencies/`, so that you know whether or not a file is available for your distro. NOTE: In case of Ubuntu 20.04 LTS or derived distros for that specific release, -use the dedicated configuration file (the Trisquel 11 config symlinks to this): +use the dedicated configuration file: ./mk dependencies ubuntu2004 diff --git a/site/docs/gnulinux/grub_boot_installer.md b/site/docs/gnulinux/grub_boot_installer.md index 78e573c..d239f4f 100644 --- a/site/docs/gnulinux/grub_boot_installer.md +++ b/site/docs/gnulinux/grub_boot_installer.md @@ -80,16 +80,11 @@ That's it! You should now be able to boot the installer from your USB drive ## GRUB2 config on external media -NOTE: This will also apply to Trisquel GNU+Linux (an Ubuntu-based distro). -Pick the menu option: *Search for GRUB2 configuration on external media* - If the distro installer image has a `grub.cfg` file inside, this menuentry is scripted to find it. This works well for many distros. ## Debian or Devuan net install -NOTE: This will also apply to Trisquel GNU+Linux (an Ubuntu-based distro). - Download the Debian or Devuan net installer. You can download the Debian ISO from [the Debian homepage](https://www.debian.org/), or the Devuan ISO from [the Devuan homepage](https://www.devuan.org/). diff --git a/site/docs/gnulinux/grub_hardening.md b/site/docs/gnulinux/grub_hardening.md index 42e0554..846e432 100644 --- a/site/docs/gnulinux/grub_hardening.md +++ b/site/docs/gnulinux/grub_hardening.md @@ -91,7 +91,7 @@ on desktops.** The simplest way is to just do this: - ifdtool --lock libreboot.rom -O canoeboot.rom + ifdtool --lock canoeboot.rom -O canoeboot.rom If you did the step before, to compile `cbfstool`, you can find ifdtool in the `elf/` directory, e.g. `elf/ifdtool/default/ifdtool`. Use the ifdtool diff --git a/site/docs/gnulinux/index.md b/site/docs/gnulinux/index.md index 008e6e9..1ace300 100644 --- a/site/docs/gnulinux/index.md +++ b/site/docs/gnulinux/index.md @@ -6,31 +6,6 @@ x-toc-enable: true NOTE: This guide pertains to x86 hosts, and does not cover supported CrOS/ARM chromebooks. For ARM targets, you should refer to u-boot documentation. -Regarding FSF-endorsed distros ------------------------------- - -These guides will often make reference to mainstream distros for the sake -of completeness, especially to newcomers who will be familiar with them, but some -users may prefer a GNU+Linux distro endorsed by the Free Software Foundation -as per the *GNU Free System Distribution Guidelines*. See: - - just know that, these distros are entirely -blob-free, including the kernel; they use a special kernel called *linux-libre*, -which strips out all binary firmwares. What this means is that these distros -may not work correctly with all hardware (think wifi adapters, modern graphics -cards and so on). A *lot* of hardware needs binary blobs to function, so -watch out! - -The Free Software Foundation maintains this website: - - -The *h-node* website is a volunteer-run database of hardware known to work -with *deblobbed* kernels like (and including) linux-libre. - -If you want good wireless support *and* you want linux-libre, the following -cards are known to work well: any Atheros/Qualcomm card using -the `ath5k`, `ath9k` or `ath9k_htc` driver in the kernel. You can find these -on the H-Node website. - GNU GRUB -------- diff --git a/site/docs/index.uk.md b/site/docs/index.uk.md index 5919738..69106b5 100644 --- a/site/docs/index.uk.md +++ b/site/docs/index.uk.md @@ -11,7 +11,7 @@ Canoeboot. Новини, включаючи оголошення про випу What is Canoeboot? An article is available for that; please read the article titled [What is Canoeboot?](../about.md). -Встановлення libreboot +Встановлення Canoeboot ==================== - [Як встановити Canoeboot](install/) diff --git a/site/docs/install/kgpe-d16.md b/site/docs/install/kgpe-d16.md index e6bc293..85a359e 100644 --- a/site/docs/install/kgpe-d16.md +++ b/site/docs/install/kgpe-d16.md @@ -10,9 +10,9 @@ Introduction This is a server board using AMD hardware (Fam10h *and Fam15h* CPUs available). It can also be used for building a high-powered workstation. -Powered by libreboot. The coreboot port was done by Timothy Pearson of +Powered by Canoeboot. The coreboot port was done by Timothy Pearson of Raptor Engineering Inc. and, working with them (and sponsoring the -work), merged into libreboot. +work), merged into Canoeboot. *Memory initialization is still problematic, for some modules. We recommend avoiding Kingston modules.* @@ -21,7 +21,7 @@ recommend avoiding Kingston modules.* Flashing instructions can be found at [../install/\#flashprog](../install/#flashprog) - note that external flashing is required, if the proprietary (ASUS) firmware is -currently installed. If you already have libreboot, by default it is +currently installed. If you already have Canoeboot, by default it is possible to re-flash using software running in Linux on the KGPE-D16, without using external hardware. @@ -61,7 +61,7 @@ P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes: compressed linux+initramfs image (BusyBox+Linux system) into CBFS and boot that, loading it into memory. -libreboot has configs for 2, 4, 8 and 16 MiB flash chip sizes (default +Canoeboot has configs for 2, 4, 8 and 16 MiB flash chip sizes (default flash chip is 2MiB). *DO NOT hot-swap the chip with your bare hands. Use a P-DIP 8 chip diff --git a/site/docs/install/macbook21.md b/site/docs/install/macbook21.md index a48fb13..bd4a257 100644 --- a/site/docs/install/macbook21.md +++ b/site/docs/install/macbook21.md @@ -231,7 +231,7 @@ Make it overheat less --------------------- NOTE: in Canoeboot, this section is less relevant, because C3 -states are now; the issue pertained to much older releases of Libreboot, +states are now; the issue pertained to much older releases of [Libreboot](https://libreboot.org/), upon which Canoeboot is based. However, this section may still be useful, so it will be retained. diff --git a/site/docs/install/nvmutil.md b/site/docs/install/nvmutil.md index e924647..0ec663b 100644 --- a/site/docs/install/nvmutil.md +++ b/site/docs/install/nvmutil.md @@ -60,7 +60,10 @@ on the tarball, from the ROM image release archives, and then extract the archive. This *only* changes the MAC address. It doesn't inject vendor files or download -them, and doesn't support the `nuke` command, like on Libreboot's version. +them, and doesn't support the `nuke` command, like +on [Libreboot's version](https://libreboot.org/docs/install/ivy_has_common.html); +this is because we don't need to handle vendor code in Canoeboot, unlike on +Libreboot, so the Libreboot version also handles that automatically. Without argument after the tarball, it behaves the same as `setmac`. If `setmac` is provided without argument, or no argument is given, the MAC address is diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index 5178c2e..4930114 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -46,7 +46,7 @@ has been tested on Debian 12 (x86\_64) and you can do this for example, as root: ./mk dependencies debian -The `arch` and `parabola` dependencies should also work nicely, if you want +The `arch` dependencies should also work nicely, if you want to replace `debian` with one of those in the above example; you need to get the cross compiler (mipsel one) from the AUR, which you will see when running e.g.: diff --git a/site/docs/install/r400.md b/site/docs/install/r400.md index 373f76f..121c59d 100644 --- a/site/docs/install/r400.md +++ b/site/docs/install/r400.md @@ -57,7 +57,7 @@ Dell Latitude E6400 **If you haven't bought an R400 yet: the [Dell Latitude E6400](../install/latitude.md) is much easier to flash; no disassembly required, -it can be flashed entirely in software from Dell BIOS to Libreboot. It is the +it can be flashed entirely in software from Dell BIOS to Canoeboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** Introduction @@ -73,24 +73,24 @@ There are two possible flash chip sizes for the R400: 4MiB (32Mbit) or the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16. *The R400 laptops come with the ME (and sometimes AMT in addition) -before flashing libreboot. libreboot disables and removes it by using a +before flashing Canoeboot. Canoeboot disables and removes it by using a modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* (contains notes, plus instructions) Flashing instructions can be found at [../install/\#flashprog](../install/#flashprog) -**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Canoeboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in -the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** +the [Libreboot 20240225 release](https://libreboot.org/news/libreboot20240225.html)** EC update {#ecupdate} ========= It is recommended that you update to the latest EC firmware version. The [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from -libreboot, so we don't actually provide that, but if you still have +Canoeboot, so we don't actually provide that, but if you still have Lenovo BIOS then you can just run the Lenovo BIOS update utility, which will update both the BIOS and EC version. See: @@ -98,7 +98,7 @@ will update both the BIOS and EC version. See: - NOTE: this can only be done when you are using Lenovo BIOS. How to -update the EC firmware while running libreboot is unknown. libreboot +update the EC firmware while running Canoeboot is unknown. Canoeboot only replaces the BIOS firmware, not EC. Updated EC firmware has several advantages e.g. bettery battery diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index 1d5f8a6..0bc8b1d 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -58,8 +58,7 @@ safe, and costs just $5 with headers pre-soldered (Raspberry Pi Pico H). Additionally, all the software running on it is free, down to the full [Boot ROM](https://github.com/raspberrypi/pico-bootrom). The wireless versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip, -but that is not needed for following this guide; Canoeboot will not provide -that firmware because it's non-free and would therefore violate GNU FSDG policy. +but that is not needed for following this guide. A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't destroy your board by sending 5V to it. If you have a 1.8V flash chip, diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index c6ea784..26c3954 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -11,6 +11,13 @@ and [testing.md](testing.md). Please also read about the [cbmk coding style and design](style.md). +We generally write patches for [Libreboot](https://libreboot.org/) first, and +then port them over to Canoeboot commit by commit, excluding changes that aren't +suitable as per Canoeboot [policy](../../news/policy.md). In this way, releases +are kept in sync. You should therefore also read Libreboot's own +[lbmk maintenance manual](https://libreboot.org/docs/maintain/). More info +about the porting process is written on the [about](../../about.md) page. + Automated coreboot build system =============================== diff --git a/site/docs/misc/index.md b/site/docs/misc/index.md index 60f4086..5895ca1 100644 --- a/site/docs/misc/index.md +++ b/site/docs/misc/index.md @@ -4,7 +4,7 @@ x-toc-enable: true ... TODO: this page is very old, and could do with an update. It was *old* when -we inherited it from Libreboot, which we forked to create Canoeboot; it is +we inherited it from [Libreboot](https://libreboot.org/), which we forked to create Canoeboot; it is even older now. It's almost a tradition now, that this page is never updated. You should assume that these instructions no longer work. Otherwise, if you @@ -96,8 +96,7 @@ and you will be able to see MemTest86+ on the serial output aswell. You can also configure your distro so that a terminal (TTY) is accessible from the serial console. -The following guide is for Ubuntu, but it should work in Debian-based distros, -Devuan, Trisquel etc, to enable a serial console using GeTTY:\ +The following guide is for Ubuntu, but it should work in Debian-based distros: Note: part of the tutorial above requires changing your grub.cfg. Just @@ -240,7 +239,7 @@ Get the panel name: Or look in `/sys/class/drm/card0-LVDS-1/edid` -Alternatively you can use i2cdump. In Debian-based distros or Trisquel, this is +Alternatively you can use i2cdump. In Debian-based distros, this is in the package i2c-tools. sudo modprobe i2c-dev diff --git a/site/docs/uboot/uboot-debian-bookworm.md b/site/docs/uboot/uboot-debian-bookworm.md index 70b48ec..6c06500 100644 --- a/site/docs/uboot/uboot-debian-bookworm.md +++ b/site/docs/uboot/uboot-debian-bookworm.md @@ -8,7 +8,7 @@ System Configuration Hardware: Samsung Chromebook Plus XE513C24 (gru\_kevin) -Tested on Libreboot 20230423 (Canoeboot is a fork of Libreboot) +Tested on [Libreboot 20230423](https://libreboot.org/news/libreboot20230423.html) (Canoeboot is a fork of Libreboot) Operating System: Debian Bookworm RC2 diff --git a/site/docs/uboot/uboot-openbsd.md b/site/docs/uboot/uboot-openbsd.md index 989f38e..6d74bc2 100644 --- a/site/docs/uboot/uboot-openbsd.md +++ b/site/docs/uboot/uboot-openbsd.md @@ -8,7 +8,7 @@ System Configuration Hardware: Samsung Chromebook Plus XE513C24 (gru\_kevin) -Tested on Libreboot 20230423 (Canoeboot is a fork of Libreboot) +Tested on [Libreboot 20230423](https://libreboot.org/news/libreboot20230423.html) (Canoeboot is a fork of Libreboot) Operating System: OpenBSD 7.3 diff --git a/site/download.md b/site/download.md index 0b813ed..138d956 100644 --- a/site/download.md +++ b/site/download.md @@ -28,7 +28,7 @@ The releases from calendar year 2023 use this key. Full key fingerprint: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856` -This is the same key used to sign Libreboot releases, which is also used to +This is the same key used to sign [Libreboot releases](https://libreboot.org/download.html), which is also used to sign Canoeboot releases since it's the same person maintaining both projects. Download the key here: [lbkey.asc](lbkey.asc) diff --git a/site/download.uk.md b/site/download.uk.md index 27d7de1..f5ee686 100644 --- a/site/download.uk.md +++ b/site/download.uk.md @@ -26,7 +26,7 @@ Use this to verify the most recent releases. Повний відбиток ключа: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856` -This is the same key used to sign Libreboot releases, which is also used to +This is the same key used to sign [Libreboot releases](https://libreboot.org/download.html), which is also used to sign Canoeboot releases since it's the same person maintaining both projects. Завантажте ключ тут: [lbkey.asc](lbkey.asc) diff --git a/site/footer.de.include b/site/footer.de.include index 03fc286..6d4aea1 100644 --- a/site/footer.de.include +++ b/site/footer.de.include @@ -3,6 +3,7 @@ * [Diese Seite bearbeiten](/git.de.md) * [Wer entwickelt Canoeboot?](/who.md) +* [Libreboot](https://libreboot.org/) * [Lizenz](/license.md) * [Vorlage](/template-license.md) * [Autoren](/contrib.md) diff --git a/site/footer.include b/site/footer.include index 477e315..a20c723 100644 --- a/site/footer.include +++ b/site/footer.include @@ -3,6 +3,7 @@ * [Edit this page](/git.md) * [Who develops Canoeboot?](/who.md) +* [Libreboot](https://libreboot.org/) * [License](/license.md) * [Template](/template-license.md) * [Authors](/contrib.md) diff --git a/site/footer.it.include b/site/footer.it.include index 93b8129..9409a49 100644 --- a/site/footer.it.include +++ b/site/footer.it.include @@ -3,6 +3,7 @@ * [Modifica questa pagina](/git.de.md) * [Chi sviluppa Canoeboot?](/who.de.md) +* [Libreboot](https://libreboot.org/) * [Licenza](/license.md) * [Modelli di licenze](/template-license.md) * [Autori](/contrib.md) diff --git a/site/footer.uk.include b/site/footer.uk.include index 9067163..53d106f 100644 --- a/site/footer.uk.include +++ b/site/footer.uk.include @@ -3,6 +3,7 @@ * [Редагувати цю сторінку](/git.md) * [Хто розробляє Canoeboot?](/who.md) +* [Libreboot](https://libreboot.org/) * [Ліцензія](/license.md) * [Шаблон](/template-license.uk.md) * [Автори](/contrib.md) diff --git a/site/footer.zh-cn.include b/site/footer.zh-cn.include index 3d131fc..9e5fa00 100644 --- a/site/footer.zh-cn.include +++ b/site/footer.zh-cn.include @@ -3,6 +3,7 @@ * [编辑本页面](/git.md) * [谁在开发 Canoeboot?](/who.md) +* [Libreboot](https://libreboot.org/) * [许可证](/license.md) * [模板](/template-license.md) * [作者](/contrib.md) diff --git a/site/index.de.md b/site/index.de.md index 3cd2241..7a891f6 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -3,6 +3,7 @@ title: Canoeboot projekt x-toc-enable: true ... +Canoeboot ist ein [Libreboot](https://libreboot.org/) Fork. Das *Canoeboot* Projekt bietet eine [freie](https://writefreesoftware.org/learn) *Boot Firmware* welche auf [bestimmten Intel/AMD x86 und ARM Geräten](docs/install/) @@ -59,7 +60,7 @@ Tatsächlich versucht Canoeboot so nah am regulären Coreboot zu bleiben wie mö für jedes Board, aber mit vielen automatisch durch das Canoeboot Build System zur Verfügung gestellten verschiedenen Konfigurationstypen. -Ebenso wie *Trisquel* eine *GNU+Linux Distribution* ist, ist Canoeboot eine +Ebenso wie *Debian* eine *GNU+Linux Distribution* ist, ist Canoeboot eine *Coreboot Distribution*. Sofern Du ein ROM Image von Grund auf herstellen möchtest, musst Du zunächst Konfigurationen auf Experten Level durchführen, und zwar für Coreboot, GRUB sowie sämtliche Software die Du sonst noch verwenden diff --git a/site/index.fr.md b/site/index.fr.md index 92581ca..04888fc 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -56,7 +56,7 @@ pas de fournir un Coreboot déblobbé; ceci n'est simplement qu'une des politiques de Canoeboot, une importante certes, mais qui n'est qu'un aspect mineur de Canoeboot. -De la même façon que *Trisquel* est une distribution GNU+Linux, Canoeboot +De la même façon que *Debian* est une distribution GNU+Linux, Canoeboot est une *distribution coreboot*. Si vous voulez compilé une image ROM en partant des bases, vous devez alors effectuer une configuration experte de Coreboot, GRUB et n'importe quel autre logiciel dont vous avez besoin diff --git a/site/index.it.md b/site/index.it.md index c754f90..5f908b7 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -3,6 +3,7 @@ title: Progetto Canoeboot x-toc-enable: true ... +Canoeboot deriva da [Libreboot](https://libreboot.org/). Il progetto *Canoeboot* fornisce avvio [libero](https://writefreesoftware.org/learn) grazie al firmware basato su coreboot, sostituendo cosi', firmware BIOS/UEFI proprietario su [alcune schede madri basate su Intel/AMD x86 o ARM](docs/install/), @@ -57,7 +58,7 @@ In effetti, Canoeboot tenta di essere il piu' possibile simile alla versione *uf per ogni scheda, ma con diversi tipi di configurazione forniti automaticamente dal sistema di compilazione automatico di Canoeboot. -Esattamente come *Trisquel* e' una *distribuzione GNU+Linux*, Canoeboot e' una +Esattamente come *Debian* e' una *distribuzione GNU+Linux*, Canoeboot e' una *distribuzione coreboot*. Per fare un immagine ROM da zero, hai bisogno di esperienza necessaria nel configurare coreboot, GRUB e qualunque altra cosa ti serve. Con *Canoeboot*, che puoi scaricare da Git o da un archivio di codici sorgenti, puoi far partire `make`, diff --git a/site/index.md b/site/index.md index ab01d74..59ccd76 100644 --- a/site/index.md +++ b/site/index.md @@ -3,6 +3,7 @@ title: Canoeboot project x-toc-enable: true ... +Canoeboot is a [Libreboot](https://libreboot.org/) fork. The *Canoeboot* project provides [free](https://writefreesoftware.org/learn) (*libre*) boot firmware based on coreboot, replacing proprietary BIOS/UEFI firmware @@ -26,13 +27,18 @@ Canoeboot gives you [freedoms](https://writefreesoftware.org/learn) that you otherwise can't get with most other boot firmware, plus faster boot speeds and [better security](docs/gnulinux/grub_hardening.md). It's extremely powerful and [configurable](docs/maintain/) for many use cases. Canoeboot is a *special -fork* of Libreboot, maintained in parallel to it by the same developer (Leah -Rowe); Canoeboot complies with the GNU Free System Distribution Guidelines, -ensuring that everything in the boot flash is *free software*. *Canoeboot* only +fork* of [Libreboot](https://libreboot.org/), maintained in parallel to it by the same developer (Leah +Rowe); Canoeboot [removes all binary blobs](news/policy.md) from coreboot, unlike +Libreboot which has a more pragmatic +[Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). Libreboot +provides 100% free boot firmware on the same mainboards that Canoeboot can +support, but supports *additional* mainboards while trying to minimize any +binary blobs all the same. Because of this difference, *Canoeboot* only supports a very limited subset of hardware from coreboot that is known to boot without binary blobs. Many other boards in coreboot require binary blobs for -things like memory controller initialisation. Canoeboot *removes* binary blobs -from coreboot and U-Boot, which are then provided "de-blobbed" in releases. +things like memory controller initialisation. Canoeboot is provided for purists +who only want free software; it even removes CPU microcode updates, regardless +of the negative impact this has on system stability. *We* believe the freedom to [study, share, modify and use software](https://writefreesoftware.org/), without any @@ -66,7 +72,7 @@ In fact, Canoeboot tries to stay as close to *stock* coreboot as possible, for each board, but with many different types of configuration provided automatically by the Canoeboot build system. -In the same way that *Trisquel* is a *GNU+Linux distribution*, Canoeboot is +In the same way that *Debian* is a *GNU+Linux distribution*, Canoeboot is a *coreboot distribution*. If you want to build a ROM image from scratch, you otherwise have to perform expert-level configuration of coreboot, GRUB and whatever other software you need, to prepare the ROM image. With *Canoeboot*, diff --git a/site/index.uk.md b/site/index.uk.md index 437807c..5eaa756 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -51,7 +51,7 @@ Coreboot помітно складний для встановлення для -Таким же самим чином, як *Trisquel* це дистрибутив Linux, Canoeboot це +Таким же самим чином, як *Debian* це дистрибутив Linux, Canoeboot це *дистрибутив coreboot*. Якщо ви хочете зібрати образ ROM з нуля, вам інакше довелось би виконати налаштування експертного рівня coreboot, GRUB та будь-якого іншого потрібного програмного забезпечення, для підготування образа ROM. З *Canoeboot*, diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index f14edc6..8c449d8 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -3,6 +3,7 @@ title: Canoeboot 项目 x-toc-enable: true ... +Canoeboot 是 [Libreboot](https://libreboot.org/) 的分支。 *Canoeboot* 项目基于 coreboot 提供了[自由且开源](https://writefreesoftware.org/zh-cn/learn/)的引导固件,替代了特定基于 Intel/AMD x86 及 ARM 的主板(包括笔记本和桌面计算机)上的专有 BIOS/UEFI 固件。它首先对硬件(如内存控制器、CPU、外设)进行初始化,然后为操作系统启动 bootloader。本项目对 [GNU+Linux](docs/gnulinux/) 和 [BSD](docs/bsd/) 支持良好。寻求帮助,可以前往 [Libera](https://libera.chat/) IRC 上的 [\#canoeboot](https://web.libera.chat/#canoeboot) 频道。 @@ -25,7 +26,7 @@ Canoeboot 不是 coreboot 的分支 事实上,Canoeboot 对每一块主板,都尽可能保持与*标准*的 coreboot 接近,但 Canoeboot 构建系统也自动提供了许多不同类型的配置。 -Canoeboot 是一个 *coreboot 发行版*,就好比 *Trisquel* 是一个 *GNU+Linux 发行版*。如果你想要从零开始构建 ROM 镜像,那你需要对 coreboot、GRUB 以及其他所需软件进行专业级别的配置,才能准备好 ROM 镜像。有了 *Canoeboot*,你只需要下载 Git 仓库或者源代码归档,然后运行 `make`,接着就能构建整个 ROM 镜像。一套自动构建系统,名为 `cbmk`(Canoeboot Make),将自动构建 ROM 镜像,而无需任何用户输入或干预。配置已经提前完成。 +Canoeboot 是一个 *coreboot 发行版*,就好比 *Debian* 是一个 *GNU+Linux 发行版*。如果你想要从零开始构建 ROM 镜像,那你需要对 coreboot、GRUB 以及其他所需软件进行专业级别的配置,才能准备好 ROM 镜像。有了 *Canoeboot*,你只需要下载 Git 仓库或者源代码归档,然后运行 `make`,接着就能构建整个 ROM 镜像。一套自动构建系统,名为 `cbmk`(Canoeboot Make),将自动构建 ROM 镜像,而无需任何用户输入或干预。配置已经提前完成。 如果你要构建常规的 coreboot,而不使用 Canoeboot 的自动构建系统,那么需要有很多的干预以及相当的技术知识,才能写出一份能工作的配置。 diff --git a/site/news/MANIFEST b/site/news/MANIFEST index dfcb4b5..7d837dc 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,10 +1,10 @@ +policy.md canoeboot20250107.md canoeboot20241207.md canoeboot20241102.md audit2.md canoeboot20240612.md audit1.md -gnu.md canoeboot20240510.md canoeboot20240504.md canoeboot20231107.md diff --git a/site/news/audit1.md b/site/news/audit1.md index 03bb7ce..81c384a 100644 --- a/site/news/audit1.md +++ b/site/news/audit1.md @@ -1,5 +1,5 @@ % Canoeboot Build System Audit 1 -% Leah Rowe +% Leah Rowe in Canoe Leah Mode™ % 9 June 2024 **A new release is now available, with these changes. Learn more by reading @@ -36,8 +36,8 @@ Some notes about this audit --------------------------- This is the *first* official Canoeboot audit. The initial Canoeboot releases, -from October/November 2023, incorporated changes from Libreboot Build System -Audit 3, and Canoeboot 20240504/20240510 included changed from Libreboot Build +from October/November 2023, incorporated changes from [Libreboot](https://libreboot.org/) Build System +Audit 3, and Canoeboot 20240504/20240510 included changed from [Libreboot](https://libreboot.org/) Build System Audit 4, plus changes adapted from releases up to Libreboot 20240504 and a bit beyond; however, Canoeboot used to be synced with Libreboot per each Libreboot release - nowadays, it is synced *per commit* on both the build system diff --git a/site/news/audit2.md b/site/news/audit2.md index 8a649c3..cdb2967 100644 --- a/site/news/audit2.md +++ b/site/news/audit2.md @@ -1,5 +1,5 @@ % Canoeboot Build System Audit 2 -% Leah Rowe +% Leah Rowe in Canoe Leah Mode™ % 19 July 2024 Heavy amount of code reduction in this audit, and general cleanup. A new diff --git a/site/news/canoeboot20231026.md b/site/news/canoeboot20231026.md index 7eecfec..11a5d08 100644 --- a/site/news/canoeboot20231026.md +++ b/site/news/canoeboot20231026.md @@ -1,12 +1,17 @@ % Canoeboot 20231026 released! -% Leah Rowe in GNU Leah Mode™ +% Leah Rowe in Canoe Leah Mode™ % 26 October 2023 +Canoeboot is a *special fork* of [Libreboot](https://libreboot.org/), providing +a de-blobbed configuration on *fewer mainboards*; Libreboot supports more +hardware, and much newer hardware. More information can be found on Canoeboot's +[about](../about.md) page and by reading Libreboot's [Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). + Introduction ============ *This* new release, Canoeboot 20231026, released today 26 October 2023, is -based on Libreboot 20231021. +based on [Libreboot 20231021](https://libreboot.org/news/libreboot20231021.html). Canoeboot provides boot firmware for supported x86/ARM machines, starting a bootloader that then loads your operating system. It replaces proprietary @@ -31,24 +36,29 @@ share the code](https://writefreesoftware.org/), a freedom denied by most boot firmware, but not Canoeboot! Booting Linux/BSD is also [well](../docs/gnulinux/) [supported](../docs/bsd/). -Canoeboot is maintained in parallel with Libreboot, and by the same developer, -Leah Rowe, who maintains both projects; Canoeboot implements the [GNU Free -System Distribution Guideline](https://www.gnu.org/distros/free-system-distribution-guidelines.en.html) -as policy, ensuring that all of the software provided by it is *free software*. +Canoeboot is maintained in parallel with [Libreboot](https://libreboot.org/), and by the same developer, +Leah Rowe, who maintains both projects; Canoeboot implements a more hardline +[zero-blobs policy](policy.md), in contrast to Libreboot's [Binary Blob +Reduction Policy](https://libreboot.org/news/policy.html). This means that +Libreboot supports *a lot more hardware*, but Canoeboot is provided for the +purists out there who are OK using slightly older hardware as a result. Work done since last release ============================ -The *following* mainboards added in Libreboot 20231021 have *been -excluded* in this Canoeboot release, due to the GNU FSDG policy: HP -EliteBook 2170p, HP EliteBook 8470p, Dell Precision T1650 and Dell -Latitude E6430. Other non-FSDG compliant boards are also excluded, -such as newer ThinkPads that require Intel ME. - -Canoeboot complies strictly with GNU Free System Distribution Guidelines, -which means it does not contain binary blobs; as a result, it supports -only a very restricted subset of hardware from Libreboot upon which it -is based (Canoeboot is a GNU-friendly fork of Libreboot). +Canoeboot is a *special fork* of Libreboot, maintained in parallel by the +Canoeboot [removes all binary blobs](policy.md) from coreboot, unlike +Libreboot which has a more pragmatic +[Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). +Libreboot +provides 100% free boot firmware on the same mainboards that Canoeboot can +support, but supports *additional* mainboards while trying to minimize any +binary blobs all the same. Because of this difference, *Canoeboot* only +supports a very limited subset of hardware from coreboot that is known to boot +without binary blobs. Many other boards in coreboot require binary blobs for +things like memory controller initialisation. Canoeboot is provided for purists +who only want free software; it even removes CPU microcode updates, regardless +of the negative impact this has on system stability. GRUB LUKS2 now supported (with argon2 key derivation) --------------------------------------------------- @@ -495,12 +505,7 @@ build system works in this release, versus the Libreboot 20231021 build system: * Thus, several entries in under `config/git/` for Canoeboot 20231026, that do not exist under Libreboot 20231021. -This quirk is only a minor difference. Severals scripts that handled -dependencies for building non-FSDG-compliant boards (such as blob download -scripts) have been *excluded* in this Canoeboot release, because they are -not needed. - -As a result, the Canoeboot build system is about 1250 sloc when counting shell +The Canoeboot build system is about 1250 sloc when counting shell scripts of the build system; considerably smaller than older revisions, accounting for an approximate *50% reduction* in the amount of code. @@ -530,8 +535,7 @@ Excluded mainboards =================== The following boards are *missing* in Canoeboot 20231026, but are supported in -the Libreboot 20231021 release; this is because they do not comply with GNU FSDG -policy: +the Libreboot 20231021 release: * Dell Latitude E6430 * Dell Precision T1650 diff --git a/site/news/canoeboot20231101.md b/site/news/canoeboot20231101.md index 8bed561..55f709b 100644 --- a/site/news/canoeboot20231101.md +++ b/site/news/canoeboot20231101.md @@ -1,12 +1,17 @@ % Canoeboot 20231101 released! -% Leah Rowe in GNU Leah Mode™ +% Leah Rowe in Canoe Leah Mode™ % 1 November 2023 +Canoeboot is a *special fork* of [Libreboot](https://libreboot.org/), providing +a de-blobbed configuration on *fewer mainboards*; Libreboot supports more +hardware, and much newer hardware. More information can be found on Canoeboot's +[about](../about.md) page and by reading Libreboot's [Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). + Introduction ============ *This* new release, Canoeboot 20231101, released today 1 November 2023, is -based on the Libreboot 20231101 release, porting changes in it on top of +based on the [Libreboot 20231101](https://libreboot.org/news/libreboot20231101.html) release, porting changes in it on top of [Canoeboot 20231026](canoeboot20231026.md) as a base. The previous release was Canoeboot 20231026, released on 26 October 2023. @@ -34,9 +39,11 @@ firmware, but not Canoeboot! Booting Linux/BSD is also [well](../docs/gnulinux/) [supported](../docs/bsd/). Canoeboot is maintained in parallel with Libreboot, and by the same developer, -Leah Rowe, who maintains both projects; Canoeboot implements the [GNU Free -System Distribution Guideline](https://www.gnu.org/distros/free-system-distribution-guidelines.en.html) -as policy, ensuring that everything in the boot flash is entirely *free software*. +Leah Rowe, who maintains both projects; Canoeboot implements a more hardline +[zero-blobs policy](policy.md), in contrast to Libreboot's [Binary Blob +Reduction Policy](https://libreboot.org/news/policy.html). This means that +Libreboot supports *a lot more hardware*, but Canoeboot is provided for the +purists out there who are OK using slightly older hardware as a result. Work done since last release ============================ diff --git a/site/news/canoeboot20231103.md b/site/news/canoeboot20231103.md index 21b96ae..90b4889 100644 --- a/site/news/canoeboot20231103.md +++ b/site/news/canoeboot20231103.md @@ -1,7 +1,12 @@ % Canoeboot 20231103 released! -% Leah Rowe in GNU Leah Mode™ +% Leah Rowe in Canoe Leah Mode™ % 3 November 2023 +Canoeboot is a *special fork* of [Libreboot](https://libreboot.org/), providing +a de-blobbed configuration on *fewer mainboards*; Libreboot supports more +hardware, and much newer hardware. More information can be found on Canoeboot's +[about](../about.md) page and by reading Libreboot's [Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). + Introduction ============ @@ -34,10 +39,12 @@ share the code](https://writefreesoftware.org/), a freedom denied by most boot firmware, but not Canoeboot! Booting Linux/BSD is also [well](../docs/gnulinux/) [supported](../docs/bsd/). -Canoeboot is maintained in parallel with Libreboot, and by the same developer, -Leah Rowe, who maintains both projects; Canoeboot implements the [GNU Free -System Distribution Guideline](https://www.gnu.org/distros/free-system-distribution-guidelines.en.html) -as policy, ensuring that everything in the boot flash is entirely *free software*. +Canoeboot is maintained in parallel with [Libreboot](https://libreboot.org/), and by the same developer, +Leah Rowe, who maintains both projects; Canoeboot implements a more hardline +[zero-blobs policy](policy.md), in contrast to Libreboot's [Binary Blob +Reduction Policy](https://libreboot.org/news/policy.html). This means that +Libreboot supports *a lot more hardware*, but Canoeboot is provided for the +purists out there who are OK using slightly older hardware as a result. Work done since last release ============================ diff --git a/site/news/canoeboot20231107.md b/site/news/canoeboot20231107.md index 447a01a..b344ec1 100644 --- a/site/news/canoeboot20231107.md +++ b/site/news/canoeboot20231107.md @@ -1,16 +1,21 @@ % Canoeboot 20231107 released! -% Leah Rowe in GNU Leah Mode™ +% Leah Rowe in Canoe Leah Mode™ % 7 November 2023 +Canoeboot is a *special fork* of [Libreboot](https://libreboot.org/), providing +a de-blobbed configuration on *fewer mainboards*; Libreboot supports more +hardware, and much newer hardware. More information can be found on Canoeboot's +[about](../about.md) page and by reading Libreboot's [Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). + Introduction ============ *This* new release, Canoeboot 20231107, released today 7 November 2023, is -based on the recent Libreboot 20231106 release. +based on the recent [Libreboot 20231106](https://libreboot.org/news/libreboot20231106.html) release. The previous release was [Canoeboot 20231103](canoeboot20231103.md), released on 3 November 2023. Today's release has focused on minor bug fixes, plus tweaks to the GRUB payload. It imports certain fixes -from the Libreboot 20231106 release, relative to Libreboot 20231101. +from the Libreboot 20231106 release, relative to [Libreboot 20231101](https://libreboot.org/news/libreboot20231101.html). Canoeboot provides boot firmware for supported x86/ARM machines, starting a bootloader that then loads your operating system. It replaces proprietary diff --git a/site/news/canoeboot20240504.md b/site/news/canoeboot20240504.md index 0aaad1d..4937793 100644 --- a/site/news/canoeboot20240504.md +++ b/site/news/canoeboot20240504.md @@ -1,7 +1,12 @@ % Canoeboot 20240504 released! -% Leah Rowe in GNU Leah Mode™ +% Leah Rowe in Canoe Leah Mode™ % 4 May 2024 +Canoeboot is a *special fork* of [Libreboot](https://libreboot.org/), providing +a de-blobbed configuration on *fewer mainboards*; Libreboot supports more +hardware, and much newer hardware. More information can be found on Canoeboot's +[about](../about.md) page and by reading Libreboot's [Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). + **Do not use the Canoeboot 20240504 release, because it had problems with it. Please use the [Canoeboot 20240612 release](canoeboot20240612.md) instead.** @@ -11,7 +16,7 @@ Introduction Canoeboot is a free/libre BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an operating system (e.g. GNU+Linux). It is specifically a *coreboot distribution*, -in the same way that Trisquel is a GNU+Linux distribution. It provides an automated +in the same way that Debian is a GNU+Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. From a project management perspective, @@ -116,10 +121,21 @@ See: [Libreboot build system audit 4](https://libreboot.org/news/audit4.html) These and subsequent changes were adapter for today's release. The build system has been further optimised, both in terms of code size and performance. -Canoeboot is maintained in parallel with Libreboot, by the same person, so a -lot of code is shared back and forth between the two, while ensuring that -Canoeboot strictly complies with the *GNU Free System Distribution Guidelines*, -or *GNU FSDG* for short. +Canoeboot is a *special fork* of Libreboot, maintained in parallel by the +very same developer, Leah Rowe. + +Canoeboot [removes all binary blobs](policy.md) from coreboot, unlike +Libreboot which has a more pragmatic +[Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). +Libreboot +provides 100% free boot firmware on the same mainboards that Canoeboot can +support, but supports *additional* mainboards while trying to minimize any +binary blobs all the same. Because of this difference, *Canoeboot* only +supports a very limited subset of hardware from coreboot that is known to boot +without binary blobs. Many other boards in coreboot require binary blobs for +things like memory controller initialisation. Canoeboot is provided for purists +who only want free software; it even removes CPU microcode updates, regardless +of the negative impact this has on system stability. GRUB 2.12 revision now used --------------------------- diff --git a/site/news/canoeboot20240510.md b/site/news/canoeboot20240510.md index 0b37b19..7483e88 100644 --- a/site/news/canoeboot20240510.md +++ b/site/news/canoeboot20240510.md @@ -1,7 +1,12 @@ % Canoeboot 20240510 released! -% Leah Rowe in GNU Leah Mode™ +% Leah Rowe in Canoe Leah Mode™ % 10 May 2024 +Canoeboot is a *special fork* of [Libreboot](https://libreboot.org/), providing +a de-blobbed configuration on *fewer mainboards*; Libreboot supports more +hardware, and much newer hardware. More information can be found on Canoeboot's +[about](../about.md) page and by reading Libreboot's [Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). + **Do not use the Canoeboot 20240510 release, because it had problems with it. Please use the [Canoeboot 20240612 release](canoeboot20240612.md) instead.** @@ -12,7 +17,7 @@ Canoeboot is a [free/libre](https://writefreesoftware.org/) BIOS/UEFI replacemen on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an operating system (e.g. GNU+Linux). It is specifically a *coreboot distribution*, -in the same way that Trisquel is a GNU+Linux distribution. It provides an automated +in the same way that Debian is a GNU+Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. From a project management perspective, diff --git a/site/news/canoeboot20240612.md b/site/news/canoeboot20240612.md index f5303f6..3456cab 100644 --- a/site/news/canoeboot20240612.md +++ b/site/news/canoeboot20240612.md @@ -1,14 +1,19 @@ % Canoeboot 20240612 released! -% Leah Rowe +% Leah Rowe in Canoe Leah Mode™ % 12 June 2024 +Canoeboot is a *special fork* of [Libreboot](https://libreboot.org/), providing +a de-blobbed configuration on *fewer mainboards*; Libreboot supports more +hardware, and much newer hardware. More information can be found on Canoeboot's +[about](../about.md) page and by reading Libreboot's [Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). + Introduction ============ Canoeboot is a free/libre BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an operating system (e.g. GNU+Linux). It is specifically a *coreboot distribution*, -in the same way that Trisquel is a GNU+Linux distribution. It provides an automated +in the same way that Debian is a GNU+Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. From a project management perspective, diff --git a/site/news/canoeboot20241102.md b/site/news/canoeboot20241102.md index f8fd515..7d3b1fe 100644 --- a/site/news/canoeboot20241102.md +++ b/site/news/canoeboot20241102.md @@ -1,14 +1,19 @@ % Canoeboot 20241102 released! -% Leah Rowe in GNU Leah Mode™ +% Leah Rowe in Canoe Leah Mode™ % 2 November 2024 +Canoeboot is a *special fork* of [Libreboot](https://libreboot.org/), providing +a de-blobbed configuration on *fewer mainboards*; Libreboot supports more +hardware, and much newer hardware. More information can be found on Canoeboot's +[about](../about.md) page and by reading Libreboot's [Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). + Introduction ============ Canoeboot is a free/libre BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an operating system (e.g. GNU+Linux). It is specifically a *coreboot distribution*, -like how Trisquel is a GNU+Linux distribution. It provides an automated +like how Debian is a GNU+Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. From a project management perspective, diff --git a/site/news/canoeboot20241207.md b/site/news/canoeboot20241207.md index 064bbc7..2dff26d 100644 --- a/site/news/canoeboot20241207.md +++ b/site/news/canoeboot20241207.md @@ -1,10 +1,16 @@ % Canoeboot 20241207 released! U-Boot UEFI on x86 -% Leah Rowe in GNU Leah Mode™ +% Leah Rowe in Canoe Leah Mode™ % 7 December 2024 +Canoeboot is a *special fork* of [Libreboot](https://libreboot.org/), providing +a de-blobbed configuration on *fewer mainboards*; Libreboot supports more +hardware, and much newer hardware. More information can be found on Canoeboot's +[about](../about.md) page and by reading Libreboot's [Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). + This release, Canoeboot 20241207, is based on and in sync with the recent -stable release of Libreboot, namely Libreboot 20241206. Therefore, this can -be considered a stable release of Canoeboot. +stable release of [Libreboot](https://libreboot.org/), namely +[Libreboot 20241206](https://libreboot.org/news/libreboot20241206.html). +Therefore, this can be considered a stable release of Canoeboot. This page lists all changes since Canoeboot 20241102. @@ -16,7 +22,7 @@ Introduction Canoeboot is a free/libre BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an operating system (e.g. GNU+Linux). It is specifically a *coreboot distribution*, -like how Trisquel is a GNU+Linux distribution. It provides an automated +like how Debian is a GNU+Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. From a project management perspective, diff --git a/site/news/canoeboot20250107.md b/site/news/canoeboot20250107.md index 24d65f0..429c5b7 100644 --- a/site/news/canoeboot20250107.md +++ b/site/news/canoeboot20250107.md @@ -1,9 +1,15 @@ % Canoeboot 20250107 released! -% Leah Rowe +% Leah Rowe in Canoe Leah Mode™ % 7 January 2025 +Canoeboot is a *special fork* of [Libreboot](https://libreboot.org/), providing +a de-blobbed configuration on *fewer mainboards*; Libreboot supports more +hardware, and much newer hardware. More information can be found on Canoeboot's +[about](../about.md) page and by reading Libreboot's [Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). + This release, Canoeboot 20250107, is based on and in sync with the recent -stable release of Libreboot, namely Libreboot 20241206 *revision 8* from 6 +stable release of [Libreboot](https://libreboot.org/), namely +[Libreboot 20241206 revision 8](https://libreboot.org/news/libreboot20241206rev8.html) from 6 January 2025. Therefore, this can be considered a stable release of Canoeboot. This page lists all changes since Canoeboot 20241207. @@ -16,7 +22,7 @@ Introduction Canoeboot is a free/libre BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an operating system (e.g. GNU+Linux). It is specifically a *coreboot distribution*, -like how Trisquel is a GNU+Linux distribution. It provides an automated +like how Debian is a GNU+Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. From a project management perspective, diff --git a/site/news/gnu.md b/site/news/gnu.md deleted file mode 100644 index ce5ba49..0000000 --- a/site/news/gnu.md +++ /dev/null @@ -1,963 +0,0 @@ -% Should Canoeboot become GNU Canoeboot? -% Leah Rowe in GNU Leah Mode™ -% 12 May 2024 - -**UPDATE ON 12 JUNE 2024: Please do not use Canoeboot 20240504 or 20240510 -because there were problems with these releases. Use -the [Canoeboot 20240612 release](canoeboot20240612.md) instead, which contains -a series of bug fixes that correct the issues from May 2024 releases. More -information is available in the Canoeboot 20240612 announcement. As of -November 2nd, 2024, there is also another release, the 20241102 release.** - -And now, without further ado: - -Original article -================ - -Should it? That is the question I emailed to GNU's evaluation team today. - -In it, I make a strong case in support of membership, and I encourage members -of the public to also voice their opinions about this topic. Therefore, I have -publicised this link in several places: - -What is Canoeboot? -================== - -The *Canoeboot* project provides -[free](https://writefreesoftware.org/learn) (*libre*) boot -firmware based on coreboot, replacing proprietary BIOS/UEFI firmware -on [specific Intel/AMD x86 and ARM based motherboards](docs/hardware/), -including laptop and desktop computers. It initialises the hardware (e.g. memory -controller, CPU, peripherals) and starts a bootloader for your operating -system. [GNU+Linux](../docs/gnulinux/) and [BSD](../docs/bsd/) are well-supported. Help is -available via [\#canoeboot](https://web.libera.chat/#canoeboot) -on [Libera](https://libera.chat/) IRC. - -Canoeboot is a *special fork* of LIbreboot, maintained in parallel to it. -Canoeboot adheres to the GNU Free System Distribution Guidelines, ensuring -that everything in the flash is *free software*. Canoeboot *only* supports a -very limited subset of hardware from coreboot (which it uses for initialisation) -due to this policy, but it's provided for the purists who only want free -software. -The right to study, share, modify and use software freely without restrictions -is a fundamental right that everyone *must* have. - -The benefit of Canoeboot is that it provides a completely -automated build process and installation procedure, with well-tested builds -released on a regular basis that the user can simply install, with minimal -fuss. You can think of it as a *coreboot distro*. Coreboot provides snapshot -source code archives every few months, but that's it. Canoeboot gives -you the ROM images pre-compiled, with source code, and with payloads -already pre-configured. In other words: Canoeboot makes coreboot -extremely easy to use. - -More info about Canoeboot's design can be found in the [build system -documentation](../docs/maintain/). - -Thoughts welcome! -================= - -I asked this question in various places, where you can comment: - -Thread on FSF LibrePlanet mailing list: - - -Thread on my Mastodon account: - - -Thread on Trisquel forums (FSF endorsed GNU+Linux distro, and de-facto stomping -ground for many debates within the FSF community): - - - -And reddit: - -Email sent to GNU Eval -====================== - -Here is the email that I sent (replies to it will **not** be published, only -my original email below will be): - -``` -Message-ID: <864f2dd0-3af8-4c01-8d9b-d4236b43b335@minifree.org> -Date: Sun, 12 May 2024 15:50:42 +0100 -MIME-Version: 1.0 -User-Agent: Mozilla Thunderbird -Content-Language: en-US -From: Leah Rowe -Autocrypt: addr=info@minifree.org; keydata= - xsFNBGWN15sBEADECGPEe37tdU3xe7OshKU19xVOPuJRMveCO5DHfv/lsZMXLWXwMMpbG+2x - SMQZcdZc0HCUq6TQE9fU0rA3kcFz0miMOuB2WJbYy9guvg9pAjLa0LUyb2T/HPDDy0ifYtqr - OzwETwWRiWQcTHjJ0knwNReaEterpPki1MbK79EwSuQBIgq9lQ611qLn5SmE7sBRB5kze7q3 - KdTvY/CTfvOpVizgRF8kqqG4r4XkI0dTyrvC3i3Eub3F3YPWNjN06rECG6wO+TPzRo7em+0C - dPYDgtqq4Srf050KNZsVt10Plty5VpJm2GfoXFh6SZBO1zSbBpTGU+7vBsR731ye2ouQdcIs - 06Qi4wHmJ71liqJwxZ0ju2F5edC7jDzdk4jAIaCiSiU+iGg28RsxoUdLkJl5Q4yW507Gr0ps - HIBJBAWJo1i75qKVhrmN25xjJLv0MjgaR7RgT1T7uuX1KPuo8NbHbRlkIv7987NeJzgbUzzp - ka2MJjTEd1ova9kPyICVmKCfBnT+bO3vfJAuQXRlf3qjXSLsxCD7Jmu07if0jXFIvjy/nC4H - 0QPlwd/sVS7Svfn4rEGEnulrtBvVdOr6I+LmDedbSsSlYNlqagdyGsdKZfWSGxhjfz4oAkVy - +y39s1qAnM5191m+u72dmnQPtxI8lEH/G+j+hK8NxDvV5ri3owARAQABzR1MZWFoIFJvd2Ug - PGluZm9AbWluaWZyZWUub3JnPsLBlAQTAQoAPhYhBIux99KM92ltv09xklxlQGfTg7H/BQJl - jdebAhsDBQkJZgGABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEFxlQGfTg7H/PKoQAIB8 - z2Rg+R0417YRTBXvbVG5kPpKOO3DWUaQCJx6uypBUpgw2giKDsDz59c2vNaADs7Zh5xQ+2bz - B+jkCjVSuzguApT3gxTnICvLeM72d5ZEF6Q8/YC6s9IiIHssCujbxtNN5yDU/Kn9Qd3gb+Bn - 9t/ZYT+L/SGLU3Zerq57lSt8ixU7JOvAolgqRzaPwTFvi1GPZbE5Gynj9riTxZc3KLFROWYN - iiO33T+X17TepTUaubkoA3DgWcQ6tw2dsJ8MT0DtZH8KlU/ufq0NBfFIw79uCQ+m/GbiW9Sm - KtppayLUJyJndlf5fQ/NaNJw9RS+yF5ellGKWWAwh+Drv0PITzJ1dLeWOF5degtyn9+HaMSM - RIs5G6m69UxZmLJ9TQF1Lt1u0l1EH7yHIAf69MX4nlcDIx6moIJgo2UJ9u2D7odDUKlPG8X4 - lbc5cvGx9l/Hy6WF8dOYUiU1avU65uhggaNXGXC6JbDiChCeuWTnzKXqlvae8rU9jSpDBSQF - lOOgvi3NifDLM7xFByDtFabnJHniNO1B6kS0V0nv6sJlRuB584kQUQ+PaRUj8QvXjsLvYhxY - Tw2G7jzQkXEOBZq3jenVzAg5ejOB7mTNoZOYOWoFY7XDRUGOmGDvH2qQGVNhedhSBJilAiu6 - K0NyjkaFAGufvgXDjLImPav/kWdbTDvNzsFNBGWN15sBEADj4Dhn29Z0LVU+B1Wc8U0wdV7N - bDIjbhEvJ0Yc+FTNorQq7avY9jTkGtcnKPUti6cJxuQOZPxaIzP1mMK9BlsGbB8bTJ7oqpsI - XuvGKOOZQMb7i+qEIfJw6ZAXSwuKq4xBciJU52WdX8OaSWJ6KZX74yrE1SXW+7yj3ENZNWuT - N2kAPF595XYpZwTAaJRy/ojfORu8WFXvo5osZJI1TlrJeDFecBntPkCgvI1VPTF3fUU3lGZc - 8rVascaGaJ6tBd5mTx/RrRyJrrJMEd1dca0MHV4WIDbNeINpbEhS2SbqOj/9q9z8tfmleqXV - jb+gKjSDpD8Nsxv9+2gq29tevMLqZ5R3NA4jj4rOnyIuq+YFtkZuBuEc04UX3ApixdAQ0jIN - hIBfT8YcMC+wwTvl4jG4Rhzrc4jOX8igOe9wkstbl7JxGJU28x4htskAyM2CMxPaUrorm64c - U2S0UoJGrvLfjItGud8dyM+RgtaO5wTFNO2A0dnq2/thIIgoEaiQfKMq2ilISsnf6x8as0FV - 3c7mGO8pDJlRwjoNg/89CMhxVbgO+5JQ+JHLfoMA++R+QaYy1ZLY51h5Ax6OtVWpZh67EuVD - Lx/5EFiyM25UTpqvH7t0ae2oLbAwQtIv1fRLhHP4aVSsP793of92/1lpybbpRD7/7ruVQ64d - +/N49db6mQARAQABwsF8BBgBCgAmFiEEi7H30oz3aW2/T3GSXGVAZ9ODsf8FAmWN15sCGwwF - CQlmAYAACgkQXGVAZ9ODsf8EqQ/8CjAQTza1pvd/GmKYHtldSA1odPB7AQkB+j4oyu5gDqtM - /fFRv3uGVYLcyZwC3XF69KL+NpcUYG22RQWokt+z3OiVYfP5LyKjXe2cPMS2cmyXBHEcCP8Q - SffNQNoC2VYzaVXH4P6cBVmkDG3yPtQ2cH1Al6jhMS4Fa0TCe6kgA7qROSoapdZuwbxEE7Fe - aYZIXQUBLpe2C6SexljD65DLhbDE5p4N56VbncO6IAqr9JQSlEXBgvgXGhXqfOmZkmCjXJU7 - Sgy8sIyF4b1uEOkcWxUUfvfrO1yrcWyxvTlZdPCJy802B7UVFPWTbKwFoyIq5Lr8wk2npzAm - Dy/hKZlIV72Vk0eIcrTCfpbj0GehrIIYcpW7Z2IUtETNkyuQs+OScIdrP3PItajNwktQJrhz - +UGbF9MuT+CHuruhw5KzymkzcnEzCNaYvY4eG8IXP6VpX1GCs9eUvCWEnjP0OkmhQniWvS3v - AB7DfZSm0NAoDX0ZvNzzIRbiM5uhYqDUSIsmOwUiJLjveLysmIRaAc/K/Euml0obCUJfanD7 - KSs7SZYp24ZTDNsvsWbsk1y8QvAGkZBfuykfRCMxsmGRyN2hS6H/ftttCUrj8Qn1/hJDBegE - UJgYDItHpE7KJeBHMFNUB2sTHPbzx+a5WPYxeYJevAeTwAg0/nRobXRzER7BLIU= -To: gnueval@gnu.org -Cc: ksiewicz@fsf.org, zoe@fsf.org, Mike Gerwitz , - simon@josefsson.org, christian@grothoff.org, gnu-advisory@gnu.org, - rms@gnu.org, bob@proulx.com -Subject: Should Canoeboot become GNU Canoeboot? -Content-Type: multipart/signed; micalg=pgp-sha256; - protocol="application/pgp-signature"; - boundary="------------QXCa2wGHkDkyD669GgjjqNUT" - -This is an OpenPGP/MIME signed message (RFC 4880 and 3156) ---------------QXCa2wGHkDkyD669GgjjqNUT -Content-Type: multipart/mixed; boundary="------------K2qUk5UHVXzKPCuKPN8riXWW"; - protected-headers="v1" -From: Leah Rowe -To: gnueval@gnu.org -Cc: ksiewicz@fsf.org, zoe@fsf.org, Mike Gerwitz , - simon@josefsson.org, christian@grothoff.org, gnu-advisory@gnu.org, - rms@gnu.org, bob@proulx.com -Message-ID: <864f2dd0-3af8-4c01-8d9b-d4236b43b335@minifree.org> -Subject: Should Canoeboot become GNU Canoeboot? - ---------------K2qUk5UHVXzKPCuKPN8riXWW -Content-Type: multipart/mixed; boundary="------------qXtx1QnbZel60GYrRxArVU6C" - ---------------qXtx1QnbZel60GYrRxArVU6C -Content-Type: multipart/alternative; - boundary="------------0qkEOS0KaVvTlm4TzFss1Nsy" - ---------------0qkEOS0KaVvTlm4TzFss1Nsy -Content-Type: text/plain; charset=UTF-8; format=flowed -Content-Transfer-Encoding: base64 - -SGkNCg0KVGhpcyBpcyBzZW50IHRvIEdOVSBFdmFsIHRlYW0sIGJ1dCBDQydkIHRvIG90aGVy -cy4gTXkgbWFpbiByZWNpcGllbnQgaXMgdGhlIEdOVSBFdmFsIHRlYW0uDQoNCkkgd2FudCBH -TlUgQ2Fub2Vib290LiBUaGlzIGlzIG15IG9mZmljaWFsIGNvbnRhY3Qgd2l0aCBHTlUsIGFz -IHRoZSBsZWFkIGRldmVsb3BlciBhbmQgZm91bmRlciBvZiB0aGUgQ2Fub2Vib290IHByb2pl -Y3QsIGEgZnVsbHkgZnJlZSBjb3JlYm9vdCBkaXN0cm8gYmFzZWQgb24gTGlicmVib290Lg0K -DQpDYW5vZWJvb3QgaGFzIHJlY2VudGx5IHJlbW92ZWQgYWxsIG9wcG9zaXRpb24gdG8gdGhl -IEZTRiBhbmQgZGVjaWRlZCB0byBzdGF1bmNobHkgcHJvbW90ZSBpdCBpbnN0ZWFkLCBpbiBh -ZGRpdGlvbiB0byBGU0RHLiBUaGlzIGlzIHBhcnQgb2YgYSBnZW5lcmFsIGRlc2lyZSBJJ3Zl -IGhhZCBzaW5jZSB0aGUgc3RhcnQgb2YgdGhlIHllYXIsIHRvIHNlZWsgcmVjb25jaWxsaWF0 -aW9uIHdpdGggdGhlIEZTRiBhbmQgR05VIHByb2plY3QsIGFmdGVyIHRoZSBkcmFtYSB0aGF0 -IGVuc3VlZCBmaXJzdCB3aXRoIGxpYnJlYm9vdC5vcmcgdnMgbGlicmVib290LmF0LCBhbmQg -dGhlbiBsaWJyZWJvb3Qub3JnIHZzIEdOVSBCb290Lg0KDQpUaGlzIGNoYW5nZSBpcyBwZXJt -YW5lbnQsIHdoZXRoZXIgR05VIGFjY2VwdHMgbXkgcHJvcG9zYWwgdG9kYXk7IGV2ZW4gaWYg -Q2Fub2Vib290IGRvZXMgbm90IGJlY29tZSBHTlUgQ2Fub2Vib290LCBpdCB3aWxsIGNvbnRp -bnVlIHRvIG9wZXJhdGUgYXMgaXQgZG9lcyBub3cuIEkgcmVjZW50bHkgZGlkIGEgcmVsZWFz -ZSB3aGljaCBpcyBzdGF1bmNobHkgcHJvLUZTRi4gSSd2ZSBkb25lIHRoaXMsIHByZWNpc2Vs -eSBiZWNhdXNlIEdOVSBCb290IGlzIG5vIGxvbmdlciBjb21wZXRpdGlvbiB0byBDYW5vZWJv -b3QgaW4gYW55IHdheTsgR05VIEJvb3Qgc2VlbXMgdG8gaGF2ZSBzdGFsbGVkLCBzbyBDYW5v -ZWJvb3QgaGFzLCB3aXRoIHRoaXMgbW92ZWQsIGVmZmVjdGl2ZWx5IHJlcGxhY2VkIGl0LiBJ -IGRvbid0IHNheSB0aGlzIGFzIGFuIGF0dGFjaywgYnV0IGl0IGlzIGEgZmFjdCB0aGF0IEdO -VSBCb290IGhhcywgYXMgSSB3cml0ZSB0aGlzLCBub3Qgc3VibWl0dGVkIGFueXRoaW5nIHRv -IHRoZWlyIG1haW4gYnJhbmNoIGluIG92ZXIgNCBtb250aHMuIGl0J3Mgbm93IGEgZGVhZCBw -cm9qZWN0LCBhbmQgQ2Fub2Vib290IGlzIHRha2luZyBvdmVyLg0KDQpJIGtub3cgR05VIEJv -b3QgaXMgYWxyZWFkeSBhIHRoaW5nLiBJIGVudmlzaW9uIENhbm9lYm9vdCByZXBsYWNpbmcg -aXQuIE5vdywgYW5zd2VycyB0byBxdWVzdGlvbnMgZnJvbSBnbnVldmFsIGZvcm06DQoNCiog -R2VuZXJhbCBJbmZvcm1hdGlvbg0KKiogRG8geW91IGFncmVlIHRvIGZvbGxvdyBHTlUgcG9s -aWNpZXM/DQogICAgSWYgeW91ciBwcm9ncmFtIGlzIGFjY2VwdGVkIHRvIGJlIHBhcnQgb2Yg -dGhlIEdOVSBzeXN0ZW0sIGl0IG1lYW5zDQogICAgdGhhdCB5b3UgYmVjb21lIGEgR05VIG1h -aW50YWluZXIsIHdoaWNoIGluIHR1cm4gbWVhbnMgdGhhdCB5b3Ugd2lsbA0KICAgIG5lZWQg -dG8gZm9sbG93IEdOVSBwb2xpY2llcyBpbiByZWdhcmRzIHRvIHRoYXQgR05VIHByb2dyYW0u -DQogICAgKFN1bW1hcml6ZWQgYWJvdmUsIHNlZSBtYWludGFpbmVycyBkb2N1bWVudCBmb3Ig -ZnVsbCBkZXNjcmlwdGlvbnMuKQ0KDQpZZXMuIENhbm9lYm9vdCBhbHJlYWR5IGNvbXBsaWVz -IGZ1bGx5IHdpdGggdGhlIEdOVSBGcmVlIFN5c3RlbSBEaXN0cmlidXRpb24gR3VpZGVsaW5l -cy4gVGhlcmUgbWF5IGJlIGEgZmV3IHN0cmFnZ2xlcnMgbGVmdCBvdmVyIGZyb20gd2hlbiBp -dCBmb3JrZWQgZnJvbSBMaWJyZWJvb3QsIGJ1dCB0aGVzZSB3aWxsIHN1cmVseSBiZSBmb3Vu -ZCBkdXJpbmcgcmV2aWV3Lg0KDQpJJ3ZlIGFscmVhZHkgZG9uZSBleHRlbnNpdmUgYXVkaXRp -bmcgbXlzZWxmLCBhcyBoYXMgQ3JhaWcgVG9waGFtIGluIGhpcyBjYXBhY2l0eSBhcyBMaWNl -bnNpbmcgYW5kIENvbXBsaWFuY2Ugb2ZmaWNlciBhdCB0aGUgRlNGLiAoQ2Fub2Vib290IDIw -MjMgcmVsZWFzZXMgd2VyZSBhdWRpdGVkKQ0KDQoqKiBQYWNrYWdlIG5hbWUgYW5kIHZlcnNp -b246DQoNCkNhbm9lYm9vdCAyMDI0MDUxMA0KDQoqKiBBdXRob3IgRnVsbCBOYW1lIDxFbWFp -bD46DQoNCkxlYWggUm93ZTxpbmZvQG1pbmlmcmVlLm9yZz4NCg0KKiogVVJMIHRvIHBhY2th -Z2UgaG9tZSBwYWdlIChpZiBhbnkpOg0KDQpodHRwczovL2Nhbm9lYm9vdC5vcmcvDQoNCioq -IFVSTCB0byBzb3VyY2UgdGFyYmFsbDoNCiAgICAgUGxlYXNlIG1ha2UgYSByZWxlYXNlIHRh -cmJhbGwgZm9yIHB1cnBvc2VzIG9mIGV2YWx1YXRpb24sIHdoZXRoZXINCiAgICAgb3Igbm90 -IHlvdSBwdWJsaWNseSByZWxlYXNlIGl0LiAgSWYgeW91IGRvbid0IGhhdmUNCiAgICAgYW55 -d2hlcmUgdG8gdXBsb2FkIGl0LCBzZW5kIGl0IGFzIGFuIGF0dGFjaG1lbnQuDQoNCmh0dHBz -Oi8vd3d3Lm1pcnJvcnNlcnZpY2Uub3JnL3NpdGVzL2xpYnJlYm9vdC5vcmcvcmVsZWFzZS9j -YW5vZWJvb3QvMjAyNDA1MTAvY2Fub2Vib290LTIwMjQwNTEwX3NyYy50YXIueHoNCg0KTk9U -RTogU2V2ZXJhbCBjaGFuZ2VzIGhhdmUgYmVlbiBtYWRlIHNpbmNlIHRoYXQgcmVsZWFzZS4g -Q2hlY2sgdGhlIGdpdCBsb2cgZm9yIGNid3d3LmdpdCBhbmQgY2Jtay5naXQgLSBzb21lIG9m -IHRoZXNlIGFyZSByZWxldmFudCBhcyBwYXJ0IG9mIGV2YWx1YXRpb24gKEkgZml4ZWQgc2V2 -ZXJhbCBpc3N1ZXMgYWxyZWFkeSwgdGhhdCB5b3UncmUgbGlrZWx5IHRvIGZsYWcgaW4gdGhl -IHRhcmJhbGwpLg0KDQoqKiBCcmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgcGFja2FnZToNCg0K -VGhlIC9DYW5vZWJvb3QvIHByb2plY3QgcHJvdmlkZXMgZnJlZSANCjxodHRwczovL3dyaXRl -ZnJlZXNvZnR3YXJlLm9yZy9sZWFybj4gKC9saWJyZS8pIGJvb3QgZmlybXdhcmUgYmFzZWQg -b24gDQpjb3JlYm9vdCwgcmVwbGFjaW5nIHByb3ByaWV0YXJ5IEJJT1MvVUVGSSBmaXJtd2Fy -ZSBvbiBzcGVjaWZpYyBJbnRlbC9BTUQgDQp4ODYgYW5kIEFSTSBiYXNlZCBtb3RoZXJib2Fy -ZHMgPGh0dHBzOi8vY2Fub2Vib290Lm9yZy9kb2NzL2hhcmR3YXJlLz4sIA0KaW5jbHVkaW5n -IGxhcHRvcCBhbmQgZGVza3RvcCBjb21wdXRlcnMuIEl0IGluaXRpYWxpc2VzIHRoZSBoYXJk -d2FyZSANCihlLmcuwqBtZW1vcnkgY29udHJvbGxlciwgQ1BVLCBwZXJpcGhlcmFscykgYW5k -IHN0YXJ0cyBhIGJvb3Rsb2FkZXIgZm9yIA0KeW91ciBvcGVyYXRpbmcgc3lzdGVtLiBHTlUr -TGludXggPGh0dHBzOi8vY2Fub2Vib290Lm9yZy9kb2NzL2dudWxpbnV4Lz4gDQphbmQgQlNE -IDxodHRwczovL2Nhbm9lYm9vdC5vcmcvZG9jcy9ic2QvPiBhcmUgd2VsbC1zdXBwb3J0ZWQu -IEhlbHAgaXMgDQphdmFpbGFibGUgdmlhICNjYW5vZWJvb3QgPGh0dHBzOi8vd2ViLmxpYmVy -YS5jaGF0LyNjYW5vZWJvb3Q+IG9uIExpYmVyYSANCjxodHRwczovL2xpYmVyYS5jaGF0Lz4g -SVJDLg0KDQoNCiogQ29kZQ0KKiogRGVwZW5kZW5jaWVzOg0KICAgICBQbGVhc2UgbGlzdCB0 -aGUgcGFja2FnZSdzIGRlcGVuZGVuY2llcyAoc291cmNlIGxhbmd1YWdlLCBsaWJyYXJpZXMs -IGV0Yy4pLg0KDQpDYW5vZWJvb3QgYnVpbGQgc3lzdGVtIChjYm1rKSB3cml0dGVuIGluIFBP -U0lYIHNoZWxsIHNjcmlwdHMgKHNoKQ0KDQpVdGlscyAodXRpbC8pIHdyaXR0ZW4gaW4gYSBt -aXggb2YgQyBhbmQgR28NCg0KVXBzdHJlYW0gcHJvamVjdHMgc3VjaCBhcyBjb3JlYm9vdCwg -R1JVQiwgU2VhQklPUyBsYXJnZWx5IHdyaXR0ZW4gaW4gQywgd2l0aCBhIGJpdCBvZiBHbyBh -bmQgcHl0aG9uLCBhbHNvIGEgbWlsZCBzZWFzb25pbmcgb2YgeDg2IGFzc2VtYmx5IGxhbmd1 -YWdlLCBpbiBhIGZldyBjYXNlcy4NCg0KKiogQ29uZmlndXJhdGlvbiwgYnVpbGRpbmcsIGlu -c3RhbGxhdGlvbjoNCiAgICAgSXQgbWlnaHQgb3IgbWlnaHQgbm90IHVzZSBBdXRvY29uZi9B -dXRvbWFrZSwgYnV0IGl0IG11c3QgbWVldCBHTlUNCiAgICAgc3RhbmRhcmRzLiAgRXZlbiBw -YWNrYWdlcyB0aGF0IGRvIG5vdCByZXF1aXJlIGNvbXBpbGF0aW9uDQogICAgIG11c3QgZm9s -bG93IHRoZXNlIHN0YW5kYXJkcywgc28gaW5zdGFsbGVycyBoYXZlIGEgdW5pZm9ybSB3YXkg -dG8NCiAgICAgZGVmaW5lIHRhcmdldCBkaXJlY3RvcmllcywgZXRjLiAgUGxlYXNlIHNlZToN -CiAgICAgaHR0cDovL3d3dy5nbnUub3JnL3ByZXAvc3RhbmRhcmRzL2h0bWxfbm9kZS9Db25m -aWd1cmF0aW9uLmh0bWwNCiAgICAgaHR0cDovL3d3dy5nbnUub3JnL3ByZXAvc3RhbmRhcmRz -L2h0bWxfbm9kZS9NYWtlZmlsZS1Db252ZW50aW9ucy5odG1sDQoNCkRvZXMgbm90IG1lZXQg -c3RhbmRhcmRzIGF0IGFsbCwgYnV0IG5laXRoZXIgZG9lcyBHTlUgQm9vdCBhbmQgbmVpdGhl -ciBkaWQgdGhlIGVyc3R3aGlsZSBHTlUgTGlicmVib290OyBpdCB3YXMgYWNjZXB0ZWQgYm90 -aCB0aGVuIGFuZCBub3cgdGhhdCB0aGUgZGVzaWduIGlzIGRpZmZlcmVudCwgYnV0IHRoYXQg -R05VIG5lZWRlZCBhIHZpYWJsZSBGU0RHLWNvbXBsaWFudCBjb3JlYm9vdCBkaXN0cm8uDQoN -ClRoZSBDYW5vZWJvb3QgYnVpbGQgc3lzdGVtIGlzIGRvY3VtZW50ZWQgaGVyZToNCg0KaHR0 -cHM6Ly9jYW5vZWJvb3Qub3JnL2RvY3MvbWFpbnRhaW4vDQoNCioqIERvY3VtZW50YXRpb246 -DQogICAgIFdlIHJlcXVpcmUgdXNpbmcgVGV4aW5mbyAoaHR0cDovL3d3dy5nbnUub3JnL3Nv -ZnR3YXJlL3RleGluZm8vKQ0KICAgICBmb3IgZG9jdW1lbnRhdGlvbiwgYW5kIHJlY29tbWVu -ZCB3cml0aW5nIGJvdGggcmVmZXJlbmNlIGFuZCB0dXRvcmlhbA0KICAgICBpbmZvcm1hdGlv -biBpbiB0aGUgc2FtZSBtYW51YWwuICBQbGVhc2Ugc2VlDQogICAgIGh0dHA6Ly93d3cuZ251 -Lm9yZy9wcmVwL3N0YW5kYXJkcy9odG1sX25vZGUvR05VLU1hbnVhbHMuaHRtbA0KDQpQYW5k -b2MgTWFya2Rvd24gaXMgdXNlZC4gU2VlOiBjYnd3dy5naXQNCg0KVGhlIFVudGl0bGVkIFN0 -YXRpYyBTaXRlIEdlbmVyYXRvciBpcyB1c2VkIHRvIGdlbmVyYXRlIGl0Lg0KDQpUaGlzIGlz -IHdoYXQgR05VIEJvb3QgYWxzbyB1c2VzLCBhbmQgaXQgaGFzIE1hcmtkb3duLCBhbmQgd2Fz -IGFjY2VwdGVkLg0KDQoqKiBJbnRlcm5hdGlvbmFsaXphdGlvbjoNCiAgICAgSWYgeW91ciBw -YWNrYWdlIGhhcyBhbnkgdXNlci12aXNpYmxlIHN0cmluZ3MsIHBsZWFzZSBtYWtlIHRoZW0N -CiAgICAgdHJhbnNsYXRhYmxlIHRvIG90aGVyIGxhbmd1YWdlcyB1c2luZyBHTlUgR2V0dGV4 -dDoNCiAgICAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2dldHRleHQvDQoNCk5vIGkx -OG4sIGJ1dCB0aGVyZSBhcmUgdHJhbnNsYXRpb25zIG9mIGNlcnRhaW4gcGFnZXMgb24gdGhl -IHdlYnNpdGUsIG1haW50YWluZWQgbWFudWFsbHkuDQoNClNvbWUgb2YgdGhlIHBhY2thZ2Vz -IHRoYXQgQ2Fub2Vib290IHVzZXMgbWF5IGhhdmUgaTE4biwgc3VjaCBhcyBHTlUgR1JVQi4N -Cg0KKiogQWNjZXNzaWJpbGl0eToNCiAgICAgUGxlYXNlIGRpc2N1c3MgYW55YWNjZXNzaWJp -bGl0eSBpc3N1ZXMgIDxodHRwczovL3d3dy5nbnUub3JnL2FjY2Vzc2liaWxpdHkvYWNjZXNz -aWJpbGl0eS5odG1sPg0KICAgICB3aXRoIHlvdXIgcGFja2FnZSwgc3VjaCBhcyB1c2Ugb2Yg -cmVsZXZhbnQgQVBJcy4NCg0KQWNjZXNzaWJpbGl0eSBpc3N1ZXM6IG5vIHNjcmVlbiByZWFk -ZXIgaW4gdGhlIEdSVUIvU2VhQklPUyBib290IG1lbnUsIHRob3VnaCBHUlVCIChjb3JlYm9v -dCBwYXlsb2FkIG9mdGVuIHVzZWQgb24gQ2Fub2Vib290IGluc3RhbGxhdGlvbnMpIGhhcyBh -IG1vcnNlIGNvZGUgZ2VuZXJhdG9yIHdoaWNoIEkgY291bGQgcHJvYmFibHkgcmUtcHVycG9z -ZSBmb3IgYmxpbmQgdXNlcnMuDQoNCioqIFNlY3VyaXR5Og0KICAgICBQbGVhc2UgZGlzY3Vz -cyBhbnkgcG9zc2libGUgc2VjdXJpdHkgaXNzdWVzIHdpdGggeW91ciBwYWNrYWdlOg0KICAg -ICBjcnlwdG9ncmFwaGljIGFsZ29yaXRobXMgYmVpbmcgdXNlZCwgc2Vuc2l0aXZlIGRhdGEg -YmVpbmcgc3RvcmVkLA0KICAgICBwb3NzaWJsZSBlbGV2YXRpb24gb2YgcHJpdmlsZWdlcywg -ZXRjLg0KDQpObyBpc3N1ZXMgdGhhdCBJIGNhbiB0aGluayBvZi4NCg0KQ2Fub2Vib290IGFj -dHVhbGx5IGltcHJvdmVzIHRoZSBzZWN1cml0eSBvbiBzb21lIG9mIGl0cyBwYWNrYWdlcy4g -Rm9yIGV4YW1wbGUgaXQgYWRkcyBBcmdvbjIgS0RGIHN1cHBvcnQgdG8gR05VIEdSVUIsIHNv -IHRoYXQgeW91IGNhbiBib290IGZyb20gTFVLUzIgZm9ybWF0dGVkIC9ib290IHBhcnRpdGlv -bnMuDQoNCiogTGljZW5zaW5nOg0KICAgIEJvdGggdGhlIHNvZnR3YXJlIGl0c2VsZiAqYW5k -IGFsbCBkZXBlbmRlbmNpZXMqICh0aGlyZC1wYXJ0eQ0KICAgIGxpYnJhcmllcywgZXRjLikg -bXVzdCBiZSBmcmVlIHNvZnR3YXJlIGluIG9yZGVyIHRvIGJlIGluY2x1ZGVkIGluDQogICAg -R05VLiAgSW4gZ2VuZXJhbCwgb2ZmaWNpYWwgR05VIHNvZnR3YXJlIHNob3VsZCBiZSByZWxl -YXNlZCB1bmRlciB0aGUNCiAgICBHTlUgR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVy -c2lvbiwgYW5kIEdOVSBkb2N1bWVudGF0aW9uIHNob3VsZA0KICAgIGJlIHJlbGVhc2VkIHVu -ZGVyIHRoZSBHTlUgRkRMIHZlcnNpb24gMS4zIG9yIGFueSBsYXRlciB2ZXJzaW9uLg0KDQpD -YW5vZWJvb3QgYnVpbGQgc3lzdGVtIGxhcmdlbHkgR1BMdjMrLCBzb21lIHBhcnRzIGFyZSBH -UEx2Mi1vbmx5Lg0KDQpDb3JlYm9vdCBpcyBsYXJnZWx5IEdQTHYyLg0KDQpHUlVCIGxhcmdl -bHkgR1BMdjMrLCBzb21ldGltZXMgdjIrIG9yIHYyLW9ubHkNCg0KU2VhQklPUyBsYXJnZWx5 -IEdQTHYyLCB3aXRoIHNvbWUgdjMgc2Vhc29uaW5nDQoNCiAgICBQbGVhc2Ugc2VlaHR0cDov -L3d3dy5nbnUub3JnL3BoaWxvc29waHkvbGljZW5zZS1saXN0Lmh0bWwgIGZvciBhDQogICAg -cHJhY3RpY2FsIGd1aWRlIHRvIHdoaWNoIGxpY2Vuc2VzIGFyZSBmcmVlIChmb3IgR05VJ3Mg -cHVycG9zZXMpIGFuZA0KICAgIHdoaWNoIGFyZSBub3QuICBQbGVhc2UgZ2l2ZSBzcGVjaWZp -YyB1cmwncyB0byBhbnkgbGljZW5zZXMgaW52b2x2ZWQNCiAgICB0aGF0IGFyZSBub3QgbGlz -dGVkIG9uIHRoYXQgcGFnZS4NCg0KTk9URTogQ2Fub2Vib290IGFscmVhZHkgbGlzdGVkIG9u -IEZTRDoNCg0KaHR0cHM6Ly9kaXJlY3RvcnkuZnNmLm9yZy93aWtpL0Nhbm9lYm9vdA0KDQpG -U0YncyBvd24gY3JhaWd0IGhlYXZpbHkgYXVkaXRlZCBpdCBvdmVyIGEgb25lLXdlZWsgcGVy -aW9kLCBleHRlbnNpdmVseSBzY2FubmluZyBpdCBhbmQgdGhlbiBnb2luZyB0aHJvdWdoIGl0 -IGFsbCB3aXRoIG1lLg0KDQoqIFNpbWlsYXIgZnJlZSBzb2Z0d2FyZSBwcm9qZWN0czoNCiAg -ICBQbGVhc2UgZXhwbGFpbiB3aGF0IG1vdGl2YXRlZCB5b3UgdG8gd3JpdGUgeW91ciBwYWNr -YWdlLCBhbmQgc2VhcmNoDQogICAgYXQgbGVhc3QgdGhlIEZyZWUgU29mdHdhcmUgRGlyZWN0 -b3J5IChodHRwOi8vd3d3LmdudS5vcmcvZGlyZWN0b3J5LykNCiAgICBmb3IgcHJvamVjdHMg -c2ltaWxhciB0byB5b3Vycy4gIElmIGFueSBleGlzdCwgcGxlYXNlIGFsc28gZXhwbGFpbg0K -ICAgIHdoYXQgdGhlIHByaW5jaXBhbCBkaWZmZXJlbmNlcyBhcmUuDQoNCkdOVSBCb290DQoN -CkkgaW50ZW5kIGZvciBDYW5vZWJvb3QgdG8gcmVwbGFjZSBHTlUgQm9vdCwgYW5kIGZvciBH -TlUgQm9vdCB0byBiZSBkZWNvbW1pc3Npb25lZCwgc2luY2UgaXQgaXMgY3VycmVudGx5IGEg -ZGVhZCBwcm9qZWN0OyBDYW5vZWJvb3QgaXMgdGhlIG9ubHkgRlNERyBjb21wbGlhbnQgY29y -ZWJvb3QgZGlzdHJvIHVuZGVyIGFjdGl2ZSBkZXZlbG9wbWVudC4NCg0KSW4gYWRkaXRpb24s -IGlmIGFjY2VwdGVkLCBJIHN1cHBvc2UgbGlicmVib290LmF0IHdvdWxkIGFsc28gYmUgcmVk -aXJlY3RlZC4gQm90aCBsaWJyZWJvb3QuYXQgYW5kIEdOVSBCb290IHdvdWxkIHJlZGlyZWN0 -IHRvIENhbm9lYm9vdC4NCg0KVGhlIGN1cnJlbnQgR05VIEJvb3QgZGV2ZWxvcGVycyBhcmUg -d2VsY29tZSB0byB3b3JrIHdpdGggbWUgYXMgY29udHJpYnV0b3JzIGlmIHRoZXkgd2lzaCwg -YnV0IHRoZXkgbXVzdCBub3QgYmUgbWFkZSBtYWludGFpbmVycyBvZmZpY2lhbGx5OyBJIHdp -bGwgYXNzdW1lIHRoYXQgcnVsZSBhcyBHTlUgQ2Fub2Vib290IG1haW50YWluZXIuDQoNCiog -QW55IG90aGVyIGluZm9ybWF0aW9uLCBjb21tZW50cywgb3IgcXVlc3Rpb25zOg0KDQpodHRw -czovL3RyaXNxdWVsLmluZm8vZW4vZm9ydW0vY2Fub2Vib290LTIwMjQwNTEwLXJlbGVhc2Vk -LWdudS1mc2RnLWNvbXBsaWFudC0xMDAtZnJlZS1zb2Z0d2FyZS1jb3JlYm9vdC1kaXN0cm8t -cmVwbGFjaW5nLXBybw0KDQpUaGlzIGxpbmsgY29udGFpbnMgZGlzY3Vzc2lvbiwgaW5jbHVk -aW5nIGZyb20ganhzZWxmIChsZWFkaW5nIG1lbWJlciBvZiBHTlUgQWR2aXNvcnkgQ29tbWl0 -dGVlKS4gVGhlIHN1YnRleHQgaXMgR05VIENhbm9lYm9vdCwgYmVjYXVzZSBqeHNlbGYgd2Fz -IGF3YXJlIG9mIG15IHBsYW4gd2hlbiBoZSBwb3N0ZWQgaGVyZS4NCg0KRWFybHkgZGF5cyB0 -aHVzIGZhciwgYnV0IHRoZSBnaXN0IGlzIHRoaXM6IENhbm9lYm9vdCBoYXMgZHJvcHBlZCAx -MDAlIG9mIGl0cyBob3N0aWxpdHkgdG8gRlNGIGFuZCBJJ3ZlIGRlY2lkZWQgdGhhdCBpdCB3 -aWxsIHN0YXVuY2hseSAqc3VwcG9ydCogdGhlIEZTRiBpbnN0ZWFkLCBvcGVubHkgcHJvbW90 -aW5nIEdOVSBGU0RHIHBvbGljeSBhbmQgZW5jb3VyYWdpbmcgdGhlIHVzZSBvZiBGU0RHIGxp -Y2Vuc2VkIGRpc3Ryb3Mgc3VjaCBhcyBUcmlzcXVlbC4gVGhpcyB3b3VsZCBiZSBqdXN0IGxp -a2UgdGhlIGdvb2Qgb2xkIGRheXMgb2YgR05VIExpYnJlYm9vdCEgVGhpcyBjaGFuZ2UgaXMg -cGVybWFuZW50Lg0KSSB3YXNuJ3QgZ29pbmcgdG8gbWFrZSB0aGlzIHJlcXVlc3QgdG8gZ251 -ZXZhbCwgYnV0IHNpbmNlIEdOVSBCb290IGlzbid0IHJlYWxseSBhIHRoaW5nIGFueW1vcmUg -KG5vIGNvbW1pdHMgaW4gb3ZlciA0IG1vbnRocyBvbiB0aGVpciBtYWluIGJyYW5jaCwgYW5k -IGdlbmVyYWxseSBzbG93IGRldmVsb3BtZW50IGJlZm9yZSB0aGVuKSwgSSB0aG91Z2h0OiB3 -aHkgbm90Pw0KDQpDYW5vZWJvb3QgaXMgYmVpbmcga2VwdCBzZXBhcmF0ZSBmcm9tIExpYnJl -Ym9vdCBmcm9tIG5vdyBvbi4gSXQgbm8gbG9uZ2VyIHByb21vdGVzIExpYnJlYm9vdC4gV2hl -biBJJ20gd29ya2luZyBvbiBDYW5vZWJvb3QsIEkgc2ltcGx5IGVudGVyIEdOVSBMZWFoIE1v -ZGUsIHdoaWNoIGlzIGEgYnJhaW5tb2RlIHdoZXJlIEkgYmVsaWV2ZSBhYnNvbHV0ZWx5IGlu -IGl0IGFuZCB3aWxsIHN0YW5kIGJ5IGl0IHRvIHRoZSB2ZXJ5IGVuZC4gSSdtIHJlYWxseSBn -b29kIGF0IHRoYXQsIGFuZCBJIGFsc28gZGlkIHRoYXQgd2hlbiBHTlUgTGlicmVib290IHdh -cyBhIHRoaW5nLg0KDQpJJ3ZlIGFscmVhZHkgc3Bva2VuIHRvIHNldmVyYWwgcGVvcGxlIHdo -byBhcmUgaW5mbHVlbnRpYWwgc3VjaCBhcyBNaWtlIEdlcndpdHogYW5kIEJvYiBQcm91bHgs -IGFuZCB0aGV5IGhhdmUgc2FpZCB0aGF0LCBpbiBwcmluY2lwbGUsIHRoZXkgc3VwcG9ydCB0 -aGlzIG1vdmUsIHRob3VnaCB0aGV5IGhhdmUgYWxzbyB0b2xkIG1lIHRoYXQgdGhleSB3aWxs -IG5vdCBiZSBpbnZvbHZlZCAob2YgY291cnNlLCBpZiB0aGV5IGRvIHdhbnQgdG8sIEknZCBs -aWtlIHRoYXQpLg0KDQpHTlUgQ2Fub2Vib290Lg0KDQpUaGF0IGlzIHdoYXQgSSB3YW50LCBh -bmQgdGhhdCBpcyB3aGF0IEkgcHJvcG9zZS4gSSB3aWxsIGZvbGxvdyBhbGwgcnVsZXMgYW5k -IGRvIHRoaW5ncyByaWdodC4NCg0KQWxzbzoNCg0KQW5vdGhlciBsaWJyZXhpdCAobGlicmVi -b290IGV4aXQgZnJvbSBHTlUpIHdpbGwgbm90IG9jY3VyLiBDYW5vZWJvb3Qgd2lsbCBiZSBH -TlUgZm9yZXZlciwgaWYgYWNjZXB0ZWQuIEkgbmV2ZXIgdG9sZCBhbnlvbmUgdGhpcyBiZWZv -cmUsIGFuZCBpdCdzIG5vdCBhbiBleGNsdXNlLCBidXQgaXQgaXMgYSBtaXRpZ2F0aW5nIGZh -Y3RvcjogSSB3YXMgZ29pbmcgdGhyb3VnaCBhIHZlcnkgZGlmZmljdWx0IHRpbWUgaW4gbXkg -bGlmZSB3aGVuIExpYnJlYm9vdCBsZWZ0IEdOVSBhbGwgdGhvZXMgeWVhcnMgYWdvLiBJIHdh -cyByZWd1bGFybHkgZHJpbmtpbmcsIGFuZCBJIHdhcyBkcnVuayB3aGVuIEkgb3JpZ2luYWxs -eSBzZW50IHRob2VzIGhvc3RpbGUgbWVzc2FnZXMgdG8gR05VIGluIDIwMTYuIEknbSBub3Qg -bGlrZSB0aGF0IGZvciB5ZWFycyBub3cuIEkgZG9uJ3QgZHJpbmsgYW55bW9yZSwgYW5kIEkg -ZG9uJ3QgZG8gZHJ1Z3MgLSBhbmQgSSBoYXZlbid0IGRvbmUgc28gZm9yIG1hbnkgeWVhcnMg -bm93Lg0KDQpUaGUgd2F5IEkgc2VlIGl0LCB0aGVyZSB3aWxsIGFsd2F5cyBiZSBhIGRlbWFu -ZCBmb3IgYSBmdWxseSBmcmVlIGNvcmVib290IGRpc3RybywgYW5kIENhbm9lYm9vdCBpcyBj -dXJyZW50bHkgdGhlIG9ubHkgdmlhYmxlIHByb2plY3QgaW4gdGhpcyByZWdhcmQuDQoNCkNh -bm9lYm9vdCBpcyBzdXBlcmlvciB0byBHTlUgQm9vdCBmb3IgdGhlc2UgcmVhc29uczoNCg0K -KiBNdWNoIG1vcmUgdXAgdG8gZGF0ZS4gVXNlcyBjb3JlYm9vdCwgR1JVQiBhbmQgU2VhQklP -UyByZXZpc2lvbnMgZnJvbSAyMDI0LCB3aGVyZWFzIEdOVSBCb290IHVzZXMgcmV2cyBmcm9t -IGxhdGUgMjAyMS4NCg0KKiBCdWlsZCBzeXN0ZW0gaXMgbW9yZSBlZmZpY2llbnQ6IDYgc2hl -bGwgc2NyaXB0cyBpbnN0ZWFkIG9mIEdOVSBCb290J3MgNTAsIGFuZCBhYm91dCAxMzAwIGxp -bmVzIG9mIGNvZGUgaW4gdGhlIGJ1aWxkIHN5c3RlbSwgdmVyc3VzIEdOVSBCb290J3MgfjUw -MDAuIEdlbmVyYWxseSBjbGVhbmVyIGNvZGluZyBzdHlsZSBpbiBDYW5vZWJvb3QuDQoNCiog -RGVzcGl0ZSBiZWluZyBzbWFsbGVyLCBDYW5vZWJvb3QgYWN0dWFsbHkgaGFzIG1vcmUgZmVh -dHVyZXMuIFN1Y2ggYXMgYnVpbGRpbmcgb2Ygc2VycHJvZyBpbWFnZXMgKHRvIG1ha2UgY2hl -YXAgU1BJIGZsYXNoZXJzKSwgc3VwcG9ydCBmb3IgYnVpbGRpbmcgVS1Cb290IHBheWxvYWQg -b24gQVJNIGRldmljZXMgKGFuZCB0aGV5IGJvb3QpLCBhbmQgbW9yZSBoYXJkd2FyZSBzdXBw -b3J0Lg0KDQoqIEkndmUgYmVlbiB3b3JraW5nIG9uIHRoaXMgc3R1ZmYgZm9yIG92ZXIgMTAg -eWVhcnMuIEkga25vdyBhbGwgdGhlIG5vb2tzIGFuZCBjcmFubmllcyBvZiBjb3JlYm9vdCwg -YW5kIGhvdyB0byByZWFsbHkgbWFrZSB5b3VyIGJvb3Rsb2FkZXIgc2luZw0KDQoqIEdOVSBC -b290IHVzZXMgTGlicmVib290J3Mgb2xkIGJ1aWxkIHN5c3RlbSBkZXNpZ24sIHdoaWNoIGlz -IHdoeSBpdCdzIG11Y2ggYmlnZ2VyLiBJIGRpZCBhIHNlcmllcyBvZiBhdWRpdHMgaW4gMjAy -MyB0byB2YXN0bHkgaW5jcmVhc2UgdGhlIGNvZGUgcXVhbGl0eSBpbiB0aGUgYnVpbGQgc3lz -dGVtLg0KDQoqIEdOVSBCb290IGlzIGdvaW5nIHRvIGJlY29tZSBtb3JlIGNvbXBsZXgsIGJl -Y2F1c2UgdGhleSB3YW50L3dhbnRlZCB0byByZXdyaXRlIGl0IGFsbCBpbiBHdWlsbGUgYW5k -IHVzZSB0aGUgR1VpeCBwYWNrYWdlIG1hbmFnZXIgdG8gYnVpbGQgZXZlcnl0aGluZy4gV2hp -bGUgdGhpcyB3b3VsZCBtYWtlIGluZGl2aWR1YWwgYnVpbGRpbmcgZWFzaWVyLCBpdCB3b3Vs -ZCB2YXN0bHkgaW5jcmVhc2UgdGhlIG1haW50ZW5hbmNlIGJ1cmRlbiBhbmQgaW50cm9kdWNl -IG1hbnkgbW92aW5nIHBhcnRzIHRvIHRoZSBwcm9qZWN0LCBtYWtpbmcgaXQgdW5tYWludGFp -bmFibGUgb3ZlciB0aW1lLiBDYW5vZWJvb3QncyBkZXNpZ24gaXMgbXVjaCBzaW1wbGVyIGFu -ZCBJJ20gYWxzbyB3b3JraW5nIG9uIGJvb3RzdHJhcHBpbmcgKGUuZy4gbXVzbC1jcm9zcy1t -YWtlIGludGVncmF0aW9uKQ0KDQoqIEdOVSBCb290IGxhY2tzIG1hbnkgb2YgTGlicmVib290 -J3MgbmV3ZXIgc2VjdXJpdHkgZmVhdHVyZXMsIHN1Y2ggYXMgQXJnb24yIEtERiBzdXBwb3J0 -IGZvciBMVUtTMiBib290DQoNClNvLCBiYXNpY2FsbHksIENhbm9lYm9vdCBpcyBtdWNoIGVh -c2llciBhbmQgYmV0dGVyLg0KDQpJIGFjdHVhbGx5IGRpZCBpbml0aWFsbHkgdHJ5IHRvIGhl -bHAgR05VIEJvb3QgaW5zdGVhZC4gVGhlIHByb2JsZW0gd2l0aCBHTlUgQm9vdCBpcyB0aGF0 -IGl0J3MgYmFzZWQgb24gYSByZWFsbHkgb2xkIExpYnJlYm9vdCB2ZXJzaW9uIGFuZCBoYXNu -J3QgYmVlbiBjaGFuZ2VkIG11Y2ggc2luY2UsIGFuZCB0aGV5J3ZlIGJhc2ljYWxseSBiZWVu -IGluICJkZXZlbG9wbWVudCBoZWxsIi4gSSBzZW50IHRoZW0gZXh0ZW5zaXZlIHBhdGNoZXMg -ZmdpeGluZyBidWlsZCBpc3N1ZXMsIHNvIHRoYXQgaXQgYnVpbGRzIG9uIG1vZGVybiBkaXN0 -cm9zLCBhbmRoIEkgc2VudCB0aGVtIHBhdGNoZXMgdXBkYXRpbmcgaXQgdG8gbmV3ZXIgdXBz -dHJlYW0gcmV2aXNpb25zIGUuZy4gY29yZWJvb3QsIGJ1dCBub25lIG9mIG15IHBhdGNoZXMg -d2VyZSByZXZpZXdlZC4gSSBkb24ndCB0aGluayB0aGUgY3VycmVudCBkZXZlbG9wZXJzIGFy -ZSB1cCB0byB0aGUgdGFzaywgYW5kIHRoaXMgaXMgbm90IGFuIGluc3VsdDsgdGhleSB3b3Jr -ZWQgdW5kZXIgbWUgYXMgTGlicmVib290IGNvbnRyaWJ1dG9ycyBpbiB0aGUgcGFzdCwgYW5k -IHRoZXkgb25seSBldmVyIHdvcmtlZCBvbiBtaW5vciB0YXNrcywgdGhleSBuZXZlciBkaWQg -YW55dGhpbmcgYmlnLiBJJ3ZlIHNhaWQgaW4gdGhlIHBhc3QgdGhhdCBwZXJoYXBzIEkgc2hv -dWxkIGJlIGFwcG9pbnRlZCBhcyBsZWFkZXIgb2YgR05VIEJvb3QgaW5zdGVhZCwgYnV0IEkg -aGF2ZSBteSBDYW5vZWJvb3QgcHJvamVjdCB3aGljaCBoYXMgc3VycGFzc2VkIGl0IHRlY2hu -aWNhbGx5IGluIGV2ZXJ5IHdheSwgc28gbm93IEkgd2FudCBhIEdOVSBDYW5vZWJvb3QuDQoN -ClVwY29taW5nIHdvcmsgb24gQ2Fub2Vib290Og0KDQoqIE1vcmUgQVJNIGNocm9tZWJvb2tz -LCB3aGljaCBBbHBlciBOZWJpIFlhc2FrIChsaWJyZWJvb3QgZGV2ZWxvcGVyKSBpcyB3b3Jr -aW5nIG9uDQoNCiogTW9yZSBEZWxsIExhdGl0dWRlcyAoR000NSBtb2R1bGVzKS4gSSdtIHdv -cmtpbmcgb24gdGhlc2UsIGJhc2VkIG9uIHRoZSBEZWxsIEU2NDAwIHBvcnQNCg0KKiBNYXRl -IEt1a3JpIChjb3JlYm9vdCBkZXZlbG9wZXIpIGlzIHdvcmtpbmcgb24gYW4gZXhwbG9pdCBv -ZiBJbnRlbCBTQS0wMDA4NiB0byBnYWluIHVuc2lnbmVkIGNvZGUgZXhlY3V0aW9uIG9uIElu -dGVsIE1FIHYxMSwgZm9yIFNreWxha2UgYm9hcmRzLCBidXQgSSdtIHRvbGQgdGhhdCBzaW1p -bGFyIGV4cGxvaXRzIGFyZSBwb3NzaWJsZSBhbmQgd2lsbCBiZSB3b3JrZWQgb24sIGZvciBv -bGRlciBzYW5keWJyaWRnZSwgaXZ5YnJpZGdlIGFuZCBoYXN3ZWxsIGhhcmR3YXJlIChlLmcu -IFRoaW5rUGFkIFgyMjAsIFgyMzAsIFQ0NDBwKSAtIGN1cnJlbnRseSwgdGhlIG9ubHkgYmxv -YnMgbmVlZGVkIG9uIHRob3NlIGJvYXJkcyBhcmUgSW50ZWwgTUUgYW5kIG1pY3JvY29kZSwg -dGhvdWdoIHRoZXkgY2FuIGJvb3Qgd2l0aG91dCBtaWNyb2NvZGUuIFRoZXJlJ3MgYSBjaGFu -Y2UgdGhhdCBpbiB0aGUgbmV4dCBmZXcgeWVhcnMsIHdlIHdpbGwgaGF2ZSB3aGF0IEkgY2Fs -bCB0aGUgSW50ZWwgRnJlZWRvbSBFbmdpbmUsIGEgZnVsbCBmcmVlIHJlcGxhY2VtZW50IG9m -IEludGVsIE1FLiBUaGlzIHdvdWxkIGJlY29tZSBwYXJ0IG9mIEdOVSwgaWYgR05VIGFjY2Vw -dHMgQ2Fub2Vib290IHRvZGF5Lg0KDQoqIExpbnV4LWxpYnJlIHBheWxvYWQgd2l0aCBtdXNs -IGxpYmMgYW5kIGJ1c3lib3gsIGFuZCBVLVJvb3QsIHRvIHByb3ZpZGUgYm9vdGluZyBvZiBs -aW51eCBrZXJuZWxzIG9uIGRpc2sgYW5kIG92ZXIgdGhlIG5ldHdvcmssIGZyb20gdGhlIGZs -YXNoLiAoR05VK0xpbnV4IHN5c3RlbSBpbiBmbGFzaCBiYXNpY2FsbHkpLCB3aXRoIG1hbnkg -c2VjdXJpdHkgZmVhdHVyZXMgc3VjaCBhcyBtZWFzdXJlZCBib290LCBhbmQgbmF0aXZlIHN1 -cHBvcnQgZm9yIFpGUyBmaWxlIHN5c3RlbS4NCg0KU29tZSBvciBhbGwgb2YgdGhlIGFib3Zl -LCBhbmQgbW9yZSwgd2lsbCBiZSBwcmVzZW50IGluIENhbm9lYm9vdCB0aGlzIHllYXIuDQoN -ClNvIGhvdyBhYm91dCBpdD8NCg0KTWFueSBwZW9wbGUgd2lsbCBiZSBzdXJwcmlzZWQgYnkg -dGhpcyBlbWFpbC4gQnV0IGlmIHlvdSBwdXQgeW91ciB0cnVzdCBpbiBtZSwgSSBwcm9taXNl -IEkgd29uJ3QgZGlzYXBwb2ludC4gSSB3aWxsIG9mIGNvdXJzZSBtYWtlIGEgc2F2YW5uYWgg -YWNjb3VudCBhcyBwYXJ0IG9mIHRoaXMsIGFuZCB1c2UgaXQsIGlmIGFjY2VwdGVkLg0KDQot -LSANCkNvbXBhbnkgZGlyZWN0b3IsIE1pbmlmcmVlIEx0ZA0KUmVnaXN0ZXJlZCBpbiBFbmds -YW5kLCBOby4gOTM2MTgyNiB8IFZBVCBOby4gR0IyMDIxOTA0NjINClJlZ2lzdGVyZWQgT2Zm -aWNlOiAxOSBIaWx0b24gUm9hZCwgQ2FudmV5IElzbGFuZCwgRXNzZXggU1M4IDlRQSwgVUsN -Cg0K ---------------0qkEOS0KaVvTlm4TzFss1Nsy -Content-Type: text/html; charset=UTF-8 -Content-Transfer-Encoding: quoted-printable - - - - - - - - -
-Hi
-
-This is sent to GNU Eval team, but CC'd to others. My main recipient is t=
-he GNU Eval team.
-
-I want GNU Canoeboot. This is my official contact with GNU, as the lead d=
-eveloper and founder of the Canoeboot project, a fully free coreboot dist=
-ro based on Libreboot.
-
-Canoeboot has recently removed all opposition to the FSF and decided to s=
-taunchly promote it instead, in addition to FSDG. This is part of a gener=
-al desire I've had since the start of the year, to seek reconcilliation w=
-ith the FSF and GNU project, after the drama that ensued first with libre=
-boot.org vs libreboot.at, and then libreboot.org vs GNU Boot.
-
-This change is permanent, whether GNU accepts my proposal today; even if =
-Canoeboot does not become GNU Canoeboot, it will continue to operate as i=
-t does now. I recently did a release which is staunchly pro-FSF. I've don=
-e this, precisely because GNU Boot is no longer competition to Canoeboot =
-in any way; GNU Boot seems to have stalled, so Canoeboot has, with this m=
-oved, effectively replaced it. I don't say this as an attack, but it is a=
- fact that GNU Boot has, as I write this, not submitted anything to their=
- main branch in over 4 months. it's now a dead project, and Canoeboot is =
-taking over.
-
-I know GNU Boot is already a thing. I envision Canoeboot replacing it. No=
-w, answers to questions from gnueval form:
-
-* General Information
-** Do you agree to follow GNU policies?
-   If your program is accepted to be part of the GNU system, it means
-   that you become a GNU maintainer, which in turn means that you will
-   need to follow GNU policies in regards to that GNU program.
-   (Summarized above, see maintainers document for full descriptions.)
-
-Yes. Canoeboot already complies fully with the GNU Free System Distributi=
-on Guidelines. There may be a few stragglers left over from when it forke=
-d from Libreboot, but these will surely be found during review.
-
-I've already done extensive auditing myself, as has Craig Topham in his c=
-apacity as Licensing and Compliance officer at the FSF. (Canoeboot 2023 r=
-eleases were audited)
-
-** Package name and version:
-
-Canoeboot 20240510
-
-** Author Full Name <Email>:
-
-Leah Rowe <info@minifree.org>
-
-** URL to package home page (if any):
-
-https:=
-//canoeboot.org/
-
-** URL to source tarball:
-    Please make a release tarball for purposes of evaluation, whether
-    or not you publicly release it.  If you don't have
-    anywhere to upload it, send it as an attachment.
-
-https://www.mirrorservice.org/sites/libreboot.org/release/canoeboo=
-t/20240510/canoeboot-20240510_src.tar.xz
-
-NOTE: Several changes have been made since that release. Check the git lo=
-g for cbwww.git and cbmk.git - some of these are relevant as part of eval=
-uation (I fixed several issues already, that you're likely to flag in the=
- tarball).
-
-** Brief description of the package:
-
-
-

The Canoeboot project provides free (libre<= -/em>) - boot firmware based on coreboot, replacing proprietary BIOS/UEFI - firmware on specif= -ic - Intel/AMD x86 and ARM based motherboards, including laptop - and desktop computers. It initialises the hardware (e.g.=C2=A0memor= -y - controller, CPU, peripherals) and starts a bootloader for your - operating system. = -GNU+Linux - and BSD are - well-supported. Help is available via #canoeboot on Libera IRC.

-
-
-* Code
-** Dependencies:
-    Please list the package's dependencies (source language, libraries, e=
-tc.).
-
-Canoeboot build system (cbmk) written in POSIX shell scripts (sh)
-
-Utils (util/) written in a mix of C and Go
-
-Upstream projects such as coreboot, GRUB, SeaBIOS largely written in C, w=
-ith a bit of Go and python, also a mild seasoning of x86 assembly languag=
-e, in a few cases.
-
-** Configuration, building, installation:
-    It might or might not use Autoconf/Automake, but it must meet GNU
-    standards.  Even packages that do not require compilation
-    must follow these standards, so installers have a uniform way to
-    define target directories, etc.  Please see:
-    http://www.gnu.org/prep/standards/h=
-tml_node/Configuration.html
-    http://www.gnu.org/prep/stan=
-dards/html_node/Makefile-Conventions.html
-
-Does not meet standards at all, but neither does GNU Boot and neither did=
- the erstwhile GNU Libreboot; it was accepted both then and now that the =
-design is different, but that GNU needed a viable FSDG-compliant coreboot=
- distro.
-
-The Canoeboot build system is documented here:
-
-https://canoeboot.org/docs/maintain/
-
-** Documentation:
-    We require using Texinfo (http://www.gnu.org/software/texinfo=
-/)
-    for documentation, and recommend writing both reference and tutorial
-    information in the same manual.  Please see
-    http://www.gnu.org/prep/standards/htm=
-l_node/GNU-Manuals.html
-
-Pandoc Markdown is used. See: cbwww.git
-
-The Untitled Static Site Generator is used to generate it.
-
-This is what GNU Boot also uses, and it has Markdown, and was accepted.
-
-** Internationalization:
-    If your package has any user-visible strings, please make them
-    translatable to other languages using GNU Gettext:
-    http://www.gnu.org/software/gettext/
-
-No i18n, but there are translations of certain pages on the website, main=
-tained manually.
-
-Some of the packages that Canoeboot uses may have i18n, such as GNU GRUB.=
-
-
-** Accessibility:
-    Please discuss any accessi=
-bility issues
-    with your package, such as use of relevant APIs.
-
-Accessibility issues: no screen reader in the GRUB/SeaBIOS boot menu, tho=
-ugh GRUB (coreboot payload often used on Canoeboot installations) has a m=
-orse code generator which I could probably re-purpose for blind users.
-
-** Security:
-    Please discuss any possible security issues with your package:
-    cryptographic algorithms being used, sensitive data being stored,
-    possible elevation of privileges, etc.
-
-No issues that I can think of.
-
-Canoeboot actually improves the security on some of its packages. For exa=
-mple it adds Argon2 KDF support to GNU GRUB, so that you can boot from LU=
-KS2 formatted /boot partitions.
-
-* Licensing:
-   Both the software itself *and all dependencies* (third-party
-   libraries, etc.) must be free software in order to be included in
-   GNU.  In general, official GNU software should be released under the
-   GNU GPL version 3 or any later version, and GNU documentation should
-   be released under the GNU FDL version 1.3 or any later version.
-
-Canoeboot build system largely GPLv3+, some parts are GPLv2-only.
-
-Coreboot is largely GPLv2.
-
-GRUB largely GPLv3+, sometimes v2+ or v2-only
-
-SeaBIOS largely GPLv2, with some v3 seasoning
-
-   Please see http://www.gnu.org/philosophy/license-li=
-st.html for a
-   practical guide to which licenses are free (for GNU's purposes) and
-   which are not.  Please give specific url's to any licenses involved
-   that are not listed on that page.
-
-NOTE: Canoeboot already listed on FSD:
-
-https://directory.fsf.org/wiki/Canoeboot
-
-FSF's own craigt heavily audited it over a one-week period, extensively s=
-canning it and then going through it all with me.
-
-* Similar free software projects:
-   Please explain what motivated you to write your package, and search
-   at least the Free Software Directory (http://www.gnu.org/directory/)
-   for projects similar to yours.  If any exist, please also explain
-   what the principal differences are.
-
-GNU Boot
-
-I intend for Canoeboot to replace GNU Boot, and for GNU Boot to be decomm=
-issioned, since it is currently a dead project; Canoeboot is the only FSD=
-G compliant coreboot distro under active development.
-
-In addition, if accepted, I suppose libreboot.at would also be redirected=
-=2E Both libreboot.at and GNU Boot would redirect to Canoeboot.
-
-The current GNU Boot developers are welcome to work with me as contributo=
-rs if they wish, but they must not be made maintainers officially; I will=
- assume that rule as GNU Canoeboot maintainer.
-
-* Any other information, comments, or questions:
-
-https://trisquel.info/en/forum/canoeboot-20240510=
--released-gnu-fsdg-compliant-100-free-software-coreboot-distro-replacing-=
-pro
-
-This link contains discussion, including from jxself (leading member of G=
-NU Advisory Committee). The subtext is GNU Canoeboot, because jxself was =
-aware of my plan when he posted here.
-
-Early days thus far, but the gist is this: Canoeboot has dropped 100% of =
-its hostility to FSF and I've decided that it will staunchly *support* th=
-e FSF instead, openly promoting GNU FSDG policy and encouraging the use o=
-f FSDG licensed distros such as Trisquel. This would be just like the goo=
-d old days of GNU Libreboot! This change is permanent.
-I wasn't going to make this request to gnueval, but since GNU Boot isn't =
-really a thing anymore (no commits in over 4 months on their main branch,=
- and generally slow development before then), I thought: why not?
-
-Canoeboot is being kept separate from Libreboot from now on. It no longer=
- promotes Libreboot. When I'm working on Canoeboot, I simply enter GNU Le=
-ah Mode, which is a brainmode where I believe absolutely in it and will s=
-tand by it to the very end. I'm really good at that, and I also did that =
-when GNU Libreboot was a thing.
-
-I've already spoken to several people who are influential such as Mike Ge=
-rwitz and Bob Proulx, and they have said that, in principle, they support=
- this move, though they have also told me that they will not be involved =
-(of course, if they do want to, I'd like that).
-
-GNU Canoeboot.
-
-That is what I want, and that is what I propose. I will follow all rules =
-and do things right.
-
-Also:
-
-Another librexit (libreboot exit from GNU) will not occur. Canoeboot will=
- be GNU forever, if accepted. I never told anyone this before, and it's n=
-ot an excluse, but it is a mitigating factor: I was going through a very =
-difficult time in my life when Libreboot left GNU all thoes years ago. I =
-was regularly drinking, and I was drunk when I originally sent thoes host=
-ile messages to GNU in 2016. I'm not like that for years now. I don't dri=
-nk anymore, and I don't do drugs - and I haven't done so for many years n=
-ow.
-
-The way I see it, there will always be a demand for a fully free coreboot=
- distro, and Canoeboot is currently the only viable project in this regar=
-d.
-
-Canoeboot is superior to GNU Boot for these reasons:
-
-* Much more up to date. Uses coreboot, GRUB and SeaBIOS revisions from 20=
-24, whereas GNU Boot uses revs from late 2021.
-
-* Build system is more efficient: 6 shell scripts instead of GNU Boot's 5=
-0, and about 1300 lines of code in the build system, versus GNU Boot's ~5=
-000. Generally cleaner coding style in Canoeboot.
-
-* Despite being smaller, Canoeboot actually has more features. Such as bu=
-ilding of serprog images (to make cheap SPI flashers), support for buildi=
-ng U-Boot payload on ARM devices (and they boot), and more hardware suppo=
-rt.
-
-* I've been working on this stuff for over 10 years. I know all the nooks=
- and crannies of coreboot, and how to really make your bootloader sing
-
-* GNU Boot uses Libreboot's old build system design, which is why it's mu=
-ch bigger. I did a series of audits in 2023 to vastly increase the code q=
-uality in the build system.
-
-* GNU Boot is going to become more complex, because they want/wanted to r=
-ewrite it all in Guille and use the GUix package manager to build everyth=
-ing. While this would make individual building easier, it would vastly in=
-crease the maintenance burden and introduce many moving parts to the proj=
-ect, making it unmaintainable over time. Canoeboot's design is much simpl=
-er and I'm also working on bootstrapping (e.g. musl-cross-make integratio=
-n)
-
-* GNU Boot lacks many of Libreboot's newer security features, such as Arg=
-on2 KDF support for LUKS2 boot
-
-So, basically, Canoeboot is much easier and better.
-
-I actually did initially try to help GNU Boot instead. The problem with G=
-NU Boot is that it's based on a really old Libreboot version and hasn't b=
-een changed much since, and they've basically been in "development hell".=
- I sent them extensive patches fgixing build issues, so that it builds on=
- modern distros, andh I sent them patches updating it to newer upstream r=
-evisions e.g. coreboot, but none of my patches were reviewed. I don't thi=
-nk the current developers are up to the task, and this is not an insult; =
-they worked under me as Libreboot contributors in the past, and they only=
- ever worked on minor tasks, they never did anything big. I've said in th=
-e past that perhaps I should be appointed as leader of GNU Boot instead, =
-but I have my Canoeboot project which has surpassed it technically in eve=
-ry way, so now I want a GNU Canoeboot.
-
-Upcoming work on Canoeboot:
-
-* More ARM chromebooks, which Alper Nebi Yasak (libreboot developer) is w=
-orking on
-
-* More Dell Latitudes (GM45 modules). I'm working on these, based on the =
-Dell E6400 port
-
-* Mate Kukri (coreboot developer) is working on an exploit of Intel SA-00=
-086 to gain unsigned code execution on Intel ME v11, for Skylake boards, =
-but I'm told that similar exploits are possible and will be worked on, fo=
-r older sandybridge, ivybridge and haswell hardware (e.g. ThinkPad X220, =
-X230, T440p) - currently, the only blobs needed on those boards are Intel=
- ME and microcode, though they can boot without microcode. There's a chan=
-ce that in the next few years, we will have what I call the Intel Freedom=
- Engine, a full free replacement of Intel ME. This would become part of G=
-NU, if GNU accepts Canoeboot today.
-
-* Linux-libre payload with musl libc and busybox, and U-Root, to provide =
-booting of linux kernels on disk and over the network, from the flash. (G=
-NU+Linux system in flash basically), with many security features such as =
-measured boot, and native support for ZFS file system.
-
-Some or all of the above, and more, will be present in Canoeboot this yea=
-r.
-
-So how about it?
-
-Many people will be surprised by this email. But if you put your trust in=
- me, I promise I won't disappoint. I will of course make a savannah accou=
-nt as part of this, and use it, if accepted.
-
-

-
--=20
-Company director, Minifree Ltd
-Registered in England, No. 9361826 | VAT No. GB202190462
-Registered Office: 19 Hilton Road, Canvey Island, Essex SS8 9QA, UK
= - - - - ---------------0qkEOS0KaVvTlm4TzFss1Nsy-- - ---------------qXtx1QnbZel60GYrRxArVU6C -Content-Type: application/pgp-keys; name="OpenPGP_0x5C654067D383B1FF.asc" -Content-Disposition: attachment; filename="OpenPGP_0x5C654067D383B1FF.asc" -Content-Description: OpenPGP public key -Content-Transfer-Encoding: quoted-printable - ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -ER7BLIU=3D -=3D29JQ ------END PGP PUBLIC KEY BLOCK----- - ---------------qXtx1QnbZel60GYrRxArVU6C-- - ---------------K2qUk5UHVXzKPCuKPN8riXWW-- - ---------------QXCa2wGHkDkyD669GgjjqNUT -Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" -Content-Description: OpenPGP digital signature -Content-Disposition: attachment; filename="OpenPGP_signature.asc" - ------BEGIN PGP SIGNATURE----- - -wsF5BAABCAAjFiEEi7H30oz3aW2/T3GSXGVAZ9ODsf8FAmZA10IFAwAAAAAACgkQXGVAZ9ODsf9i -zQ//YateZS8rcc4CKaqGwGpwOq+hepIigkQznYXi5c1p5gHdcVExi4RzkzfdwfOEmqzpMYfX7ivd -+zlgyEx0u6v/fDE2gtTUbT6p/17PI+aKw/mubMeA42jRTuey3jmOUf6fek5crpMkZyd//Q9iXGj1 -LGQ6pZFhb2hk5RNCYU4n8Lv55LW0tlW4jToagkCxQ403ji6YXLugLbTfgctnP17dkuIvwO7vKL3D -xzzNa6joluoEvVPKwRVBycaWTaGLYVYXPO4CBiX9ZxaNWN1RZaxBL3t9ZHL3WZndzK4kymJtStAJ -TYjOGRQt0rQSh1DoNwSK//vFOMaJXjalQhmC6Qrf/1ee6sdTwg8V1SficuseJBkZ400RDowYUwg9 -BFdzkRMVhHH+oauxOE+lhzPYMwteYTggy5oob/M5DCpZMSG5rz1ySx+1WtTANwkQ7XmLxbV7DVxN -vHR3FCvnsBvW7h5vqNWfUCkfIDeHKXPP+p85T/FW+BLYJeyAvPSPOnoDemsfowXxzkm1z/nc01ok -Vg4zARtSCjYXZZheD+0CgXZPDEnXavQC4ol4bD+/AZA3J8G24H6qf+QLs7cTD5putPwdwFTNZGJt -Br68vl8pzoLx6Rxu+e2JSbflhL7gNAkdCEbpClIQ+uU8fG/O69OaMWkoYEn1QzmOvH+YcvXWVPOK -nc0= -=JKOf ------END PGP SIGNATURE----- - ---------------QXCa2wGHkDkyD669GgjjqNUT-- -``` - -That is all. - -I anticipate that precisely nothing will happen; however, I am deadly serious, -and I would be quite pleased if they say yes. - - -``` -flashprog -p linux_spi:dev=/dev/canoe0.0,canoespeed=gnu -w canoegnucanoegnu.gnu.rom -``` - -Follow-up -========= - -In addition to the original message, I also sent this message to GNU Eval: - -some people have actually asked me if i should contribute to GNU Boot, instead of trying to replace it with GNU Canoeboot. They have asked this outside of this email discussion, but some here may be wondering that. - -I'd like now to address it. Here goes: - -I actually submitted extensive patches to gnuboot in January 2024: - - - - - -The patches were never reviewed, let alone merged, but they: - -* Replace "Libreboot" with "GNU Boot" in several places on the documentation (**THIS IS THE ONLY PATCH THEY MERGED**) -* Fix major build issues, allowing GNU Boot to build on modern distros (GNU Boot only builds on Trisquel 10, my patches make it build on 12. also Gentoo-libre and Arch/Parabola) -* Add Dell Latitude E6400 support -* Fix hang in GRUB caused when there is a stuck key, by disabling the "Unknown key" spew message -* ESP and btrfs subvol support in grub.cfg -* Fixes building KGPE-D16 on newer distros, by skipping GNAT which isn't needed -* Add gru bob support (rk3399 chromebooks, with free EC and *no* microcode) - ditto gru kevin -* Keyboard fix for GRUB: force it to use scancode set 2 translated, instead of untranslated set 2 to work around buggy ECs such as Dell Latitude E6400 -* Avoid spewing the Unknown prefix message in GRUB -* Adds the dell-flash-unlock tool from Nicholas Chin, allowing internal flashing from factory BIOS to GNU Boot, on the E6400 -* cache cbfstool/ifdtool builds to speed up build time -* better caching of coreboot rom images during build, to speed up build time -* Prevent future GRUB build errors by disabling -Werror -* Support for *building* U-Boot as a coreboot payload, on gru bob/kevin chromebooks (GNU Boot only archives it, doesn't build it) - -A second patch set that I sent does the above, and also: - -* Updates GRUB, coreboot and SeaBIOS to newer revisions from late 2023 (GNU Boot uses late 2021 revisions) -* Adds Argon2 KDF support, for booting from LUKS2-encrypted /boot (GNU Boot can't boot from encrypted LUKS2 /boot without this patch) -* Reduced the number of modules in GRUB to only those needed, saving 100KB of space in flash -* Update memtest86+ to v6.x instead of 5.x - -I sent all of these patches to GNU Boot while bored, and it only took me 1 day to implement all of them, re-using what I had done in Canoeboot months beforehand - -My patches fixed all of the fundamental issues with GNU Boot, without rewriting the build system; they use an older version of the Libreboot build system, prior to my re-write of the latter half of 2023 (my re-write makes the build system much smaller and more efficient. - -All of the above improvements *and much more* is in Canoeboot. In terms of development, Canoeboot is about 2 years ahead of Canoeboot; Canoeboot has since far surpassed the improvements sent to GNU Boot in January, so even if they did merge them now, they'd still be behind. - -I may be missing a thing or two, above, but one thing I'm not missing is my strong and stable commitment to the free software movement, even when I'm dealing with hostile project maintainers who won't even consider my patches. - -This is why I will no longer assist the GNU Boot project. Because I tried to help them; and this wasn't my first attempt to help, either. - -Whether GNU accepts Canoeboot or not, Canoeboot will continue to press full speed ahead. I say now it's 2 years ahead of GNU Boot; - -Next year it'll be 3 years ahead. diff --git a/site/news/policy.md b/site/news/policy.md new file mode 100644 index 0000000..ff461f1 --- /dev/null +++ b/site/news/policy.md @@ -0,0 +1,199 @@ +% Binary Blob Extermination Policy +% Leah Rowe +% 10 January 2025 + +This page describes Canoeboot's policy of *de-blobbing*. It is in stark +contrast to [Libreboot's Binary Blob Reduction +Policy](https://libreboot.org/news/policy.html); Libreboot removes proprietary +code, replacing it with Free Software whenever possible, but also supports +much newer hardware than Canoeboot, and certain vendor code is still required +on many newer machines. In practise, the level of software freedom you get with +Libreboot is far greater than you would otherwise get, and Libreboot *also* +deletes every blob, on the same hardware that Canoeboot supports. + +The only minor difference, on boards that both projects support, is that +Libreboot includes CPU microcode updates by default. This is required, for +stability; Canoeboot can be unstable at times, on some machines, since it +excludes microcode updates entirely. + +Canoeboot, then, is a more dogmatic approach to the same problem, of how to +provide users with fully free boot firmware. It is dogmatic, to the point of +being *pedantic*, but it provides a viable solution for Free Software purists. + +The policy that you're about to read, the one Canoeboot uses, is the same one +that Libreboot previously used. Libreboot adopted the *Binary Blob Reduction +Policy* on 17 November 2022, but Libreboot has existed since December 2013. +Canoeboot started in October 2023, because of a minority of users that still +demanded such a project exist as the old Libreboot did. + +Introduction +============ + +Canoeboot intentionally *de-blobs* coreboot, which is to say that it does not +include binary blobs. The coreboot software otherwise requires binary blobs on +some of the systems that it has support for. Canoeboot's version of coreboot is +entirely *free*, on its consequently reduced set of supported mainboards. + +It was decided that a formal policy should be written, because there is quite +a bit of nuance that would otherwise not be covered. Canoeboot's policies in +this regard were previously ill defined. + +It is important to define *how* Canoeboot distinguishes binary blobs, and how +they are removed. You can also read more about the de-blobbing process +on the [about](../about.md) page. + +Background information +====================== + +Canoeboot concerns itself only with what goes in the main boot flash IC, but +there are other pieces of firmware to take into consideration, as covered +in the [Canoeboot FAQ](../faq.md#what-other-firmware-exists-outside-of-canoeboot). + +Most critical of these are: + +* Embedded controller firmware +* HDD/SSD firmware +* Intel Management Engine / AMD PSP firmware + +Specific binary blobs are also problematic, on most coreboot systems, but they +differ per machine. Canoeboot *excludes* binary blobs in releases, so it only +supports a handful of machines from coreboot. + +For information about Intel Management Engine and AMD PSP, refer to the FAQ. + +So what *is* Canoeboot's policy? +================================ + +Canoeboot follows a very conservative and *light touch* approach, when it comes +to deblobbing coreboot. + +Canoeboot only excludes *software* binary blobs, plus CPU microcode updates, +completely in line with FSF policy. *In practise, it is mostly microcode +updates that Canoeboot's build system deletes, along with coreboot Git history +so that no traces remain of old revisions; older revisions had many blobs in +the main repository, but modern coreboot moved almost all of them to third +party submodule repositories.*. + +*Non-software* blobs are permitted, so long as they are in an easily understood +and/or well-documented format. For example, DDR training data is permitted +(patterns used during memory controller initialization, specifically training, +where the precise timings for the RAM are brute-forced); this is not software. + +SPD data stored in the coreboot Git repository is in all cases some format +that's simply more efficient to store as a binary, in a format that is in fact +known/understood (see: coreboot source code and data sheets); in many cases, +there's only *one* correct way to write such data, making even the question of +copyright a moot point. Data is data, and code is code; the two are *separate*. + +Non-software blobs must be redistributable under a free license, and must not +be encumbered by DRM, or they will not be included in Canoeboot. + +Logic (in coreboot) for *loading or executing* binary blobs should not +be removed/disabled. Canoeboot merely *excludes* the blobs themselves. Most +of the blobs that Canoeboot removes (when downloading coreboot, in the build +system) are CPU microcode updates; Canoeboot leaves the code for loading +microcode updates intact, and you can in fact insert microcode updates into +your ROM image. This behaviour is intentional, and must not be removed. The +only job Canoeboot has is to not *distribute* those blobs itself! + +*That's all*. Furthermore, Canoeboot must only support systems where *all* of +the main boot flash can be free. For example, ivybridge and sandybridge intel +platforms are completely libre in coreboot, but you still need neutered Intel +ME firmware in the flash, making those machines unsuitable for Canoeboot. + +Other firmware, such as Embedded Controller firmware, is currently outside the +scope of the Canoeboot project, but not due to lack of desire; rather, these +are not yet possible on most supported or otherwise capable platforms, at least +not with free software. Other examples of firmware outside of the main boot +flash is covered in the Canoeboot FAQ. + +More detailed insight about microcode +===================================== + +To be clear: it is preferable that microcode be free. The microcode on Intel +and AMD systems *are* non-free. Facts and feelings rarely coincide; the +purpose of this section is to spread *facts*. + +Not including CPU microcode updates is an absolute disaster for system +stability and security, and yet, this is one of Canoeboot's key policies. + +Making matters worse, that very same text quoted from the FSF RYF criteria in +fact specifically mentions microcode. Quoted again for posterity: + +*"However, there is one exception for secondary embedded processors. The +exception applies to software delivered inside auxiliary and low-level +processors and FPGAs, within which software installation is not intended after +the user obtains the product. This can include, for instance, microcode inside +a processor, firmware built into an I/O device, or the gate pattern of an FPGA. +The software in such secondary processors does not count as product software."* + +Here, it is discussing the microcode that is burned into *mask ROM* on the CPU +itself. It is simultaneously not giving the OK for microcode *updates* supplied +by either coreboot or the Linux kernel; according to the FSF, these are an +attack on your freedom, but the older, buggier microcode burned into ROM is OK. +This is absolutely inconsistent. + +The CPU already has microcode burned into mask ROM. The microcode configures +logic gates in the CPU, to implement an instruction set, via special *decoders* +which are fixed-function; it is not possible, for example, to implement a RISCV +ISA on an otherwise x86 processor. It is only possible for the microcode to +implement x86, or *broken* x86, and the default microcode is almost always +*broken x86* on Intel/AMD CPUs; it is inevitable, due to the complexity of +these processors. + +The basis of the FSF's disagreement about microcode *updates* is that they do +believe otherwise; Stallman himself expressed such ignorance to me, in a recent +email conversation I had with him, as of January 2nd, 2022. The FSF believes +that these x86 microcode updates (on Intel/AMD) allow you to completely create +a new CPU that is fundamentally different than x86. This is not true. It is also +not true that *all* instructions in x86 ISA are implemented with microcode. In +some cases, hardcoded circuitry is used! The microcode updates are more like +tiny one liner patches here and there in a git repository, by way of analogy. +To once again get in the head-space of the FSF: these updates cannot do the CPU +equivalent of re-factoring an entire codebase. They are *hot fixes*, nothing +more! + +These processors provide a way to supply microcode *updates*. These updates +are volatile, and consequently must be applied during every boot cycle. The +updates fix stability/reliability/security bugs, and their *absence* +is *technically incorrect*, but Canoeboot excludes them anyway, because that is +FSF policy. Examples of where these updates fix bugs: on ASUS KCMA-D8/KGPE-D16 +and ThinkPad X200/T400/T500/W500/X200T/X200/R500/X301, the updates make +hardware-based virtualization (via `kvm`) completely stable, where it would +otherwise lead to a kernel panic. They allow those same thinkpads to be run with +high CPU usage and I/O (RAM usage), without crashing (otherwise, it's very +likely to encounter a kernel panic caused by a +[Machine Check Exception](../faq.html#machine-check-exceptions-on-some-montevina-penryn-cpu-laptops)). + +Not including these updates will result in an unstable/undefined state. Intel +themselves define which bugs affect which CPUs, and they define workarounds, or +provide fixes in microcode. Based on this, software such as the Linux kernel +can work around those bugs/quirks. Also, upstream versions of the Linux kernel +can update the microcode at boot time (however, it is recommend still to do it +from coreboot, for more stable memory controller initialization or “raminit”). +Similar can be said about AMD CPUs. + +Here are some examples of where lack of microcode updates affected Canoeboot, +forcing Canoeboot to work around changes made upstream in coreboot, changes +that were *good* and made coreboot behave in a more standards-compliant manner +as per Intel specifications. Canoeboot had to *break* coreboot to retain +certain other functionalities, on some GM45/ICH9M thinkpads: + + + + + +These patches revert *bug fixes* in coreboot, fixes that happen to break other +functionality but only when microcode updates are excluded. The most +technically correct solution is to *not* apply the above patches, and instead +supply microcode updates! + +Pick your poison. Canoeboot does not disable the mechanism in coreboot to load +these updates. At boot time, coreboot can supply such updates to the CPU, if +present in CBFS. Canoeboot merely excludes them, but you can add them to your +Canoeboot ROM image. Canoeboot includes CPU microcode updates **by default**, +because there's no other way to achieve stability, and they fix security updates. + +You *need* microcode updates, or you will have a broken CPU; broken, because +it literally behaves differently than it's supposed to, so software will have +unpredictable bugs that could even cause data corruption - or worse.