The following is the GNU All-permissive License as recommended in https://www.gnu.org/licenses/license-recommendations.en.html
Copyright (C) 2024 Free Software Foundation sysadmin@fsf.org
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.
Contributions are welcome. See https://savannah.gnu.org/maintenance/fsf/.
FSF member card builder
Trisquel ISO images
When a new _fsf.iso
image is made, Ruben will ping us on IRC to download the new version.
The files are located at: http://jenkins.trisquel.info/trisquel-images/
If you need a new image and Ruben is unavailable, the images are made with the makeiso.sh
script found in this repository:
https://gitlab.trisquel.org/trisquel/makeiso
git repo
git clone git@vcs.fsf.org:fsf-member-card-builder.git
previously generated member card images
Check /home/common/sysadmin/membercard/
on tarantula. Upload completed images
there when you're done making them. Also upload the sources tarball and the
base fsf ISO made by Ruben.
Customizing installed media
Edit the install-extras.sh
script. You can also automatically generate a list
of HTML tags for recent LP audio recordings: index-generator.py
so you can
update the index.html
file in the above repo.
Generating member cards
Plug in a USB member card to your system. Wipe the entire disk with dd and /dev/zero. Follow the instructions in the readme of the git repo.
umount /dev/sdb*
sudo dd if=/dev/zero of=/dev/sdb bs=4M
...
Make sure that the newly created member card boots on LibreBoot with GRUB, SeaBIOS, and a proprietary BIOS. The easiest (but perhaps not fastest) way to check when you're trying things out is to boot to the syslinux menu with qemu:
qemu-system-x86_64 -enable-kvm -m 2G -hda /dev/sdb
Check the amount of free space on the drive, and update the HTML file that gets booted on the member card so the dd command says how much space to use for storage persistence.
Check that the media URLs are correct on the booted system.
If you make any experimentations to get things working, then for the final good version of the image, start afresh, with a fully wiped member card.
Once you're done creating the final version, fix the boot sector so the new main version is copied to the backup. (Might not be critical, but this helps users who fsck later).
sudo fsck.vfat /dev/sdb1
Then copy the disk image to your local filesystem before you mount it or make any other changes to the iso. Compute the sha256sum and zip the file:
dd if=/dev/sdb of=member-card-2023-08-29.img bs=4M status=progress
sha256sum member-card-2023-08-29.img > member-card-2023-08-29.img.sha256
pigz < member-card-2023-08-29.img > member-card-2023-08-29.img.gz
Then take the USB drive and test it on all of the main systems, to ensure that the copy you saved is a good and working version. Follow the instructions that pop up in the browser on boot in order to enable persistent storage. Test that it's working.
Upload those files to tarantula, as described above. Notify the operations assistant about the new image.
Edit squashfs
Ruben is capable of building the base image via a build script on his end. We should use that rather than try to reproduce that work with our own code.
https://sleeplessbeastie.eu/2012/05/27/how-to-modify-squashfs-image/
Remove the gimp help docs (except en and es) and libreoffice translations (except en_US, en_GB and es) from /usr/share. this might be best done as a package uninstallation step.
You'll need to install the .desktop file that launches the web browser with the local static page, with links to the videos. Get that from the old member image. You'll also need the HTML, and various media that lies outside of the squashfs image, in /fsf on the member card main partition.
You should also grab the custom syslinux boot screen splash image.