How Trisquel is Made

Trisquel is a fully-free GNU/Linux distribution. Since the 2.x release, it is based on Ubuntu.

The process for building Trisquel starts by doing a local mirror of Ubuntu and cleaning it. We update the mirror every night with reprepro and some cron scripts, and then it gets cleaned using a blacklist of non-free packages.

The resultant repository is then used as the real upstream for the development Trisquel mirror, which also includes replacements for some of the removed packages (like the kernel, or pieces that need rebranding) and a set of packages that tune up the distro, and which includes artwork, configs, and metapackages.

repository-build.png

To update the system, we just need to sync the devel mirror against the freed Ubuntu one. Then we check that the changes work by updating our own computers, and then we rsync the devel repository with the official one at http://archive.trisquel.org.

workflow-compressed.png

Our packages

We include our set of packages, packages from interested projects like Sugar Labs, as well as modifications for other upstream packages while pursuing fixing freedom related issues, technical issues or implementing new features required for the project.

Here a list of the main projects related to packages,

Building up an ISO image

Trisquel is built using debootstrap, using a script that also installs a metapackage and its dependencies (to build each edition of the distro), compresses it into a squashfs image and builds the .iso using isolinux. The script also applies some changes to the debootstrap directory, to allow it to run in a live environment.

The makeiso script also builds a set of source code DVDs.

A fully-free kernel

Trisquel does not include the vanilla Linux kernel you can find at the project servers, but a cleaned up version of the Ubuntu's version. Both upstream versions include non-free binary-only firmware files, and binary blobs hidden in .c and .h files in the form of huge sequences of numbers. To provide our users with a fully free kernel we use a set of scripts based in the ones from the Linux-libre project by the FSFLA, with some modifications of our own.

We track Ubuntu's kernel to assure compatibility with the rest of the system and other ancillary tools like the debian-installer but also to make use of security updates released by the upstream project. First we review common firmware calls to silent any firmware advertisement requests on popular devices, then clean using the latest Linux-libre deblob script for the matching version. This process applies the latest Linux-libre features for the kernel packages.

As a result of this procedure, we are not only removing the non-free blobs, we also make sure that no piece of the kernel requires a non-free program to work or try to advertise non-free software. To assure the cleaning of the Ubuntu modifications (which are not managed by the Linux-libre deblob scripts) this often requires us to keep updating and patching for new changes.

AttachmentSize
workflow-compressed.png55.64 KB
repository-build.png83.42 KB

Revisions

05/22/2009 - 14:18
Trisquel
03/08/2010 - 08:27
AndrewT
10/08/2010 - 17:43
aklis
11/01/2012 - 12:09
oshanz
12/08/2012 - 22:35
sphynx
02/25/2013 - 12:43
lembas
06/28/2014 - 05:12
muhammed
01/16/2017 - 21:05
david
10/13/2018 - 23:56
xdknight
11/05/2020 - 18:55
augustoborin
05/25/2023 - 02:10
Ark74