Saturday, 18 November 2017

Our official stance on the Rust programming language

A few people have asked us about when the Rust programming language will be packaged for Adélie. The short answer is that the Rust programming language fails the requirement that it can be packaged on all tier 1 architectures, and additionally fails to meet our libre source requirements. These issues are not insurmountable, and I hope that Mozilla will continue to work with the community to find answers to them. A more detailed explanation follows.

Issue #1: Rust requires binary Rust to compile

Our guidelines strictly require that all packages must be built from source code, without the requirement to trust upstream binary packages. You can read a few papers on the reason for this; a good starting point is Countering "Trusting Trust" by Bruce Schneier. Put simply, a compiler binary may be malicious, and the only way to prove that it is not is to compile it with a separate compiler. Rust is implemented in Rust, and there is currently only one implementation of it: Mozilla's. A community effort to create a second implementation is underway, but it is not yet sufficient and supports only x86_64 currently. There is no way to know right now that Mozilla's binaries do not have malicious code embedded without an independent Rust compiler.

Issue #2: Architecture support

Our guidelines strictly require that all packages support all Tier 1 platforms to be built as a supported package. (Packages that don't may be maintained by the community at a site like APK Fission.) Rust, as of the time of this writing, does not support any non-x86 architectures; as of 1.8 (the last time triplets were documented), the PowerPC musl platforms were not supported even for custom builds.

Issue #3: Cargo now requires Cargo

As described in issue #1, our guidelines strictly require that all packages must be built from source code. As of the latest release, Cargo now requires itself to build, which again requires us to trust an upstream binary package. With this specific package, it may be possible to bootstrap using an older version of Cargo that still supported source builds without itself. This has not been investigated yet as the other two issues are far more pressing.

In Conclusion

We would truly enjoy the ability to provide the Rust environment to our users, and we hope that Mozilla will continue to improve Rust's tooling to allow this. Until such a time, the security and integrity of our distribution is paramount. To preserve that security and integrity required to create a truly libre Linux distribution, we are required to delay any packaging efforts for Rust.

Saturday, 23 September 2017

Adélie Linux 1.0-ALPHA3: Now available for x86_64, PowerPC

The Adélie Linux Release Engineering Team is pleased to announce the release of Adélie Linux 1.0-ALPHA3 for the x86_64 and 32-bit PowerPC platforms. Learn more about Adélie Linux on our Web site.

This release is our first release based on the Alpine Linux build system, abuild. It features full Gtk+ 3 support and is built by the latest technology, binutils 2.29, GCC 6.4.0, and LLVM 4. This release brings improvements to the musl libc that allow X.Org to autoconfigure itself; it is no longer required to write an xorg.conf file to start X11. This release also removes all remaining vestiges of Portage and eselect. The current virtual system supported by APK is not yet feature-complete and there may be some issues surrounding it. Please file an issue if you run in to any problems with this alpha release.

The most important milestone for this release is that with abuild check integration, all packages that contain test suites have been fully tested, and all tests pass. This allows us to have a reasonable expectation of quality that sets us apart from most other Linux distributions.

x86 users will note that there is no ISO currently available for the 32-bit x86 platform. Unfortunately, there have been numerous issues creating even a simple bootstrap system for x86. For more information, or if you would like to help, please feel free to reach out to us on IRC, Twitter, or our new Mastodon / ActivityPub account.

64-bit PowerPC users will likewise note that there is no ISO available yet either. This is due to multiple ABI issues with the libffi package. 64-bit PowerPC users can temporarily run the 32-bit PowerPC software; it is fully compatible, though it may not allow you to use the entirety of your system's memory.

Important notice for PowerPC users: Some models of iMac G4 have disk controllers that are not detected by cdinit, causing them to fail to boot to the installer. This will be fixed either in a later update of 1.0-alpha3, or in 1.0-alpha4 at the latest.

Please note: This is an early test release of Adélie Linux. While every care has been taken to ensure the stability of the system, features and packages may be missing, or not function correctly. You should always back up your computer's data before you install a new Linux distribution. This release is being actively tested on multiple platforms. It is highly recommended that you use a dedicated computer or virtual machine to learn the environment until you are comfortable with using the Adélie Linux system and its package manager, apk.

Monday, 14 August 2017

Moving upstreams, part II

As we mentioned before, we had moved our upstream basis from Gentoo Linux to Galapagos Linux. We had hoped to revitalise the Portage system and create something great together with the Galapagos Linux team. However, due to further increased toxicity from the Gentoo Linux project that was their upstream, such a future could not be created.

We are therefore excited to announce that we have moved our upstream basis to Alpine Linux, a project that has no ties to the Gentoo project. This brings about a number of enhancements to Adélie with no additional action on our part:

  • Better integration with APK, including real triggers and install scripts.
  • A more responsive upstream that shares many of our goals for reliability and security.
  • Higher code coverage for package testing.
  • More contributions to libgcompat, resulting in the ability to run more glibc-based binaries without changing them.

Unfortunately, this has severely delayed the release of Alpha 3, and the eventual release of 1.0, for many reasons:

  • All of our ebuild work has to be rewritten in a new format.
  • All packages must be rebuilt for all architectures.
  • Alpine does not yet package core packages required for the Adélie system and POSIX® compliance.

Rest assured that we are still dedicated to shipping Adélie Linux with the same featureset we planned before. If you would like to contribute resources (including build infrastructure), code review, or others, please contact us on IRC or Twitter! We would love the additional assistance.

Wednesday, 1 February 2017

Adélie Linux 1.0-ALPHA2: Now available for x86, x86_64, PowerPC

It is our great honour to announce the availability of the 1.0-ALPHA2 release of Adélie Linux. The 32-bit PowerPC platform is now fully supported, and 64-bit PowerPC support is expected for ALPHA3.

This release updates SYSLINUX to 6.03, bringing UEFI compatibility to x86_64; updates Plasma to 5.8.5 and Qt to 5.7.1 on most platforms (x86_32 will be updated within the week); and adds ELILO and GRUB 2 as bootloaders on the x86 platforms. GRUB 2 is the only supported bootloader on PowerPC. Yaboot is not supported due to multiple known issues. This does, however, mean that booting with LVM, LUKS, and modern filesystems like ext4, XFS, and btrfs are available to the PowerPC platform. Additionally, this release adds iproute2 (the `ip` command), s6-dns (a fast, easy-to-use replacement for `dig`), and a multitude of supported filesystems to the installed system and the live CD!

You can download the 1.0-ALPHA2 release at your nearest Adélie Linux mirror. Happy hacking!