All notable changes to this project will be documented in this file.
The format is based on Keep a changelog and this project adheres to Semantic Versioning.
- Add support for running GitHub-Actions locally
- Add support for remove packages
- Add usage for
kernel.archzfs.com
- Add flag
-c|--cleanup
forbuild.sh
- Reduce the iso size since this is way about 2 GiB while the official image has a size of 1.1 GiB by checking:
- Compare installed packages (mount/start official iso and run
pacman -Qq
and do the same on our build) - Check if we can remove HOOKS in
airootfs/etc/mkinitcpio.conf
- Check if official image also has that high amount of firmware
- Check if lts image contains non-lts kernel by mistake
- Check
releng/packages.x86_64
if we really need all in there
- Compare installed packages (mount/start official iso and run
- Apply shellcheck to all scripts
- Manipulate
dynamic_dat/releng/profiledef.sh
before running the iso build process- issue/9
- official profiledef.sh documentation
- example of an manipulated file
- Things to change
iso_name
iso_label
iso_publisher
iso_application
file_permissions
- own git repros in user home should have 775
- Recheck GitHub actions using things like this as an example
- Validate if we can implement the "use older kernel" feature from here to prevent failing builds when the archzfs package is not up to date to the latest linux kernel
- Add removal of
.git
directories for all "batteries included" scripts - Add cleanup section in build process to reduce iso size
- Add automatic usage of docker compose in
build.sh
if docker is available
- Update build section
3.0.0 - 20241118
- Added content of repository bht below
software
- Added
compose.yml
to be able to build iso inside a privileged docker container - Added links to openssf and badge
- Added packages mailx, ksh and nmon
- Added SECURITY.md
- Added script
create_efibootmgr_entry.sh
to ease up fixing lostZFSBootMenu
entries - Added script
start_sshd.sh
- Added section in
.env
to add or to remove packages - Added support for
-l|--lts
as kernel in upload_iso.sh
- Changed default values for replace_zfsbootmenu.sh
- Default path for old ZBM is now
/mnt/efi...
- Default path for new ZBM is now basepath of the called script
- Default path for old ZBM is now
- Moved from build image
archlinux:latest
toarchlinux/archlinux:latest
to fix issues like archinstal#2443 - Moved archzfs mirrorlist to dedicated file
/etc/pacman.d/archzfs
- Instead of different configuration files below
<project_root>/configuration/
, there is now a unified.env
file and a.env.dist
- Migration should work by executing
cat configuration/*.sh > .env
- Migration should work by executing
2.11.1 - 20231111
- Fix invalid broken ZFSBootMenu EFI (Portable) downloadpath
2.11.0 - 20231111
- Added dedicated iso building workflows for
lts_dkms
lts_no_dkms
no_lts_dkms
no_lts_no_dkms
- Added step to download latest zfsbootmenu.EFI file
- Added script
replace_zfsbootmenu.sh
to ease up updating a system to the latest zfsbootmenu
- Change default git workflow job to
linux-lts-dkms
2.10.0 - 20230526
- Added build option to use git package for
zfs-dkms-git
orzfs-linux-git
- Either use
USE_GIT_PACKAGE
in the configuration file - Or use
build.sh -g
- Either use
2.9.0 - 20230523
- Added automatically change of
iso_name
in profiledef.sh - Added support for
linux-lts
as done here, see here- Usage:
build.sh -k 'linux-lts'
orecho KERNEL='linux-lts' > configuration/build.sh
- Usage:
- Added check if dkms build failed in the
mkarchiso
call by grep'ing the logs - Workaround for issue/18 - Added logging to build.sh into file
build.sh.log
- Added
set -e
on build.sh - Added arch-linux-cd-zfs-setup to the image path
root/software/arch-linux-live-cd-zfs-setup
- Mostly for debugging and the case when neither zfs-dkms nor zfs-linux is compatible with the current/latest linux kernel [e.g. see here] - Added scorecard GitHub action
- Added explicit and dedicated function
_remove_file_path_or_exit
- Changed number of available iso file check from "greater 0" to "equal 1"
- Changed place where
last_build_date.txt
is created, moved from upload_iso.sh to build.sh - Updated upload_iso.sh to meet the shellcheck
- Updated workflow and added step that creates
configuration/build.sh
2.8.1 - 20230129
- Updated sed repro index logic
2.8.0 - 20230129
- Added configuration option
ASK_TO_DUMP_ISO
,ASK_TO_RUN_ISO
andASK_TO_UPLOAD_ISO
- Added git repository arch-linux-configuration to the image in the path
/root/software/arch-linux-configuration
- Added git repository downgrade to the image in the path
/root/software/downgrade
- Added git repository general_howtos to the image in path
/root/document/general_howtos
- Fixed not working run_iso.sh
2.7.0 - 20230111
- Added
touch
to update creation date oflast_build_date.txt
- Added
git
as mandatory package to ease up using arch-linux-configuration - Added "possible errors" section in the readme
- Added flag
-u|--use-dkms
to usezfs-dkms
instead ofzfs-linux
- Changed some of the
_echo_if_be_verbose
calls by adding the variable name before outputing its content` - Added removal of
last_build_date.txt
if exists whenupload_iso.sh
is executed - Updated
source/pacman-init.service
- Moved from
qemu
toqemu-full
2.6.0 - 20220419
- Fixed issue/8
2.5.0 - 20220418
- Added
-d
,-h
and-v
toupload_iso.sh
- Implemented code from pull request/6 with an additional flag "-r|--repo-index <string: last|week|month|yyyy/mm/dd>"
- If you just provide
-r
,week
is used
- If you just provide
- Added configuration file for build.sh
- Added
-d|--dry-run
inbuild.sh
- Remove usage of
BE_VERBOSE
inconfiguration/upload_iso.sh
since this is superseeded by-v
2.4.0 - released at 20220330
- Added if
[[ ${?} -ne 0 ]];
for each fitting command call - Added dump_iso.sh to dd a created iso
- Added check if build was successful
- The next steps where only executed if build was successful
- Added output of flags when verbosity is enabled
- Added way more output if run in verbose mode
- Added addtional check in the step after bulding the iso to validate that an iso was build
- Added doc block to each function
- Added argument check in each function
- Fixed an issue if script is not calld as root
- Previous to this fix, all arguments where lost (like
-f
)
- Previous to this fix, all arguments where lost (like
- Centralized code by creating
_create_directory_of_exit
an_remove_path_or_exit
2.3.0 - released at 20220328
- Added flag
-h | --help
- Added flag
-f | --force
- Added flag
-v | --verbose
2.2.0 - released at 20220320
- added the
auto_elevate_if_not_called_from_root
from build.sh in run_iso.sh - added upload_iso.sh
- if not available, it creates a local configuration file in configuration
- if user says yes, this is executed after a successful build.sh
- created archzfs.stevleibelt.de
- Aligned release date
- Fixed link in release 2.1.0
2.1.0 - released at 20220319
- added a CHANGELOG.md
- added list of contributers
- replaced current handlig of "exit if not executed from root" with "restart script by using sudo if not executed from root" - thanks to gardar
2.0.0 - released at 20220207
- added support to run an existing iso
- added usage of pacman-init.service including check of expected content
- added output if iso building is not successful
- major rework of internal code - adapted to archiso changes
- all code is now running into dedicated functions
- aligned output
- moveing the existing iso to $somewhere
- fixed issue with not enough access when generating the checksum files
1.3.0 - released at 20160823
- implemented user input to select fitting archzfs-linux repository
1.2.0 - released at 20160706
- added automatically renaming each created iso file to archlinux.iso
- added automatically md5sum and sha1sum file creation of created archlinux.iso
1.1.0 - released at 20160514
- added README.md
- renamed "build" directory to "dynamic_data" to ease up execution of "build.sh"
1.0.0 - released at 20160512
- initial commit