]>
git.ipfire.org Git - people/ms/bricklayer.git/log
Michael Tremer [Tue, 25 Mar 2025 16:02:00 +0000 (16:02 +0000)]
backend: Send all Pakfire messages up to the logger
This allows us to see any Pakfire debugging messages, too.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 Mar 2025 16:00:47 +0000 (16:00 +0000)]
passwords: Implement setting the root password
This step can now be built out as we have the execute() call back which
supports passing data into standard input.
This step is also only executed in an interactive setup where we asked
for the password before.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 12:28:18 +0000 (12:28 +0000)]
tui: Don't try to automatically size the text on progress windows
As we will change the status during the operation and we don't set a
text at the beginning, the textbox is sized as zero length and therefore
the status was never seen.
This patch always makes the text box one line high.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 12:16:07 +0000 (12:16 +0000)]
bricklayer: Allow to customize the unattended timeout on CLI
This is probably only useful when testing because I don't want to wait
so long until the process starts...
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 12:01:54 +0000 (12:01 +0000)]
tui: Receive the title in the start callback
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 11:58:21 +0000 (11:58 +0000)]
tui: Remove unused progress callbacks
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 11:55:52 +0000 (11:55 +0000)]
tui: Add a status callback
This will be called by Pakfire to tell us what it is doing...
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 18:12:00 +0000 (18:12 +0000)]
tui: Set maximum value later on progress windows
This is required because Pakfire will only tell us what the maximum is
when the progress start function is being called.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 18:06:40 +0000 (18:06 +0000)]
steps: Use the new Transaction class to install packages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 18:02:06 +0000 (18:02 +0000)]
tui: Register with the Pakfire progress callback
That way, Pakfire can inform us about what is happening...
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 17:55:39 +0000 (17:55 +0000)]
bricklayer: Read Pakfire configuration and don't pass the path
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 16:45:31 +0000 (16:45 +0000)]
backend: Create the Pakfire context only once
It would be enough to initialize this only once
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 16:51:40 +0000 (16:51 +0000)]
python: Use context to initialize Pakfire
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 16:43:29 +0000 (16:43 +0000)]
passwords: Run a quality check before accepting the password
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 16:37:43 +0000 (16:37 +0000)]
step: Fix import of Pakfire errors
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Sep 2023 15:48:05 +0000 (15:48 +0000)]
GRUB: Do not enable the VGA console when installing for serial
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Sep 2023 15:44:14 +0000 (15:44 +0000)]
Add switch to ignore kernel cmdline options
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Sep 2023 15:37:31 +0000 (15:37 +0000)]
Allow to enable serial console on the command line
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Sep 2023 15:26:11 +0000 (15:26 +0000)]
bootloader: Correctly configure the serial console for GRUB
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Sep 2023 10:48:35 +0000 (10:48 +0000)]
tui: Fix selection menu for multiple entries
The disk selection process has a list which is not hashable, and
therefore this check throws an exception.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Sep 2023 10:35:32 +0000 (10:35 +0000)]
Do not install any additional packages
This was a hack when the distribution was not where it is now and so
should not be necessary any more.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Sep 2023 10:34:45 +0000 (10:34 +0000)]
Pass Pakfire configuration file as file handle
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Feb 2023 12:17:32 +0000 (12:17 +0000)]
keymaps: Apply the setting
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Feb 2023 12:17:04 +0000 (12:17 +0000)]
TUI: Ignore the default value if it does not exist
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Feb 2023 12:16:42 +0000 (12:16 +0000)]
keymaps: Refactor how we ignore any errors
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Feb 2023 12:16:05 +0000 (12:16 +0000)]
commands: Don't process output if the command failed
We don't want any error messages to be returned here.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Feb 2023 12:02:32 +0000 (12:02 +0000)]
Implement selecting a keymap
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Feb 2023 18:53:13 +0000 (18:53 +0000)]
i18n: Rename language to locale
This is actually what we ask the user to select
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Feb 2023 18:33:01 +0000 (18:33 +0000)]
master: Request installer booting from the ISO image
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Stefan Schantl [Fri, 24 Feb 2023 16:36:05 +0000 (17:36 +0100)]
Add systemd service file to launch bricklayer in install mode.
This service file will launch bricklayer in install mode
in case "install" has been given on the kernel command line.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Stefan Schantl [Fri, 24 Feb 2023 16:36:04 +0000 (17:36 +0100)]
Add systemd service file to launch bricklayer in first install mode.
This service file will launch bricklayer in first-install mode
in case the firstinstall flag on the filesystem is set.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Stefan Schantl [Fri, 24 Feb 2023 16:36:03 +0000 (17:36 +0100)]
Substitute @BINDIR@
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Feb 2023 19:50:19 +0000 (19:50 +0000)]
cmdline: Parse installer.unattended from cmdline
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Feb 2023 19:47:49 +0000 (19:47 +0000)]
cmdline: Use installer as a prefix instead of bricklayer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Feb 2023 19:43:43 +0000 (19:43 +0000)]
bootloaders: Set kernel command line options
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Feb 2023 19:04:42 +0000 (19:04 +0000)]
bootloaders: Configure serial console in GRUB
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Feb 2023 19:00:29 +0000 (19:00 +0000)]
Parse the kernel command line
This allows to change any configuration values, but mainly tries to
figure out whether we are being launched on a serial console.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Feb 2023 18:28:42 +0000 (18:28 +0000)]
bootloaders: Enable serial console for GRUB if enabled
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Feb 2023 17:59:42 +0000 (17:59 +0000)]
bootloaders: Write a proper GRUB configuration file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Dec 2022 13:58:08 +0000 (13:58 +0000)]
disk: Set filesystem to auto
Sometimes, the names that parted uses are different from what mount/the
kernel expect. Therefore we let it automatically detect the filesystem
unless a partition is a swap space.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 29 Nov 2022 14:37:24 +0000 (14:37 +0000)]
disk: Write /etc/fstab to the installed system
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 29 Nov 2022 14:36:54 +0000 (14:36 +0000)]
bootloader: Don't use Pakfire jail to run GRUB commands
GRUB seems to be very pissy when it does not have full access to the
system - understandably :)
We now create a very simple chroot environment for GRUB to install
itself.
Signed-off-by: root <root@michael.haj.ipfire.org>
Michael Tremer [Mon, 28 Nov 2022 18:17:34 +0000 (18:17 +0000)]
Set root password
Fixes: #13009
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 28 Nov 2022 17:40:24 +0000 (17:40 +0000)]
bootloaders: Map /dev into jail & generate config
This fixes that GRUB could not be installed.
Fixes: #13008
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 28 Nov 2022 17:40:00 +0000 (17:40 +0000)]
bootloaders: Disable GRUB EFI
The package seems to be broken
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 28 Nov 2022 17:03:41 +0000 (17:03 +0000)]
packages: Log which packages are being installed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 28 Nov 2022 17:02:58 +0000 (17:02 +0000)]
Install some more packages
This is a little bit hacky, but for now we need to make sure that we are
getting some useful packages on the system.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 19 Nov 2022 12:45:23 +0000 (12:45 +0000)]
master: Install the installer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 19 Nov 2022 12:45:10 +0000 (12:45 +0000)]
Makefile: Replace @PACKAGE@ with the package name
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 19 Nov 2022 12:36:32 +0000 (12:36 +0000)]
master: Make the script generate itself
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 19 Nov 2022 12:32:52 +0000 (12:32 +0000)]
configure: Package files in gzip instead of XZ
It feels like xz is slightly falling out of fashion these days?
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 19 Nov 2022 12:15:01 +0000 (12:15 +0000)]
configure: Check for required Python modules
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 19 Nov 2022 11:50:23 +0000 (11:50 +0000)]
master: Fix "--without-recommended" switch for base system
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 19 Nov 2022 11:48:36 +0000 (11:48 +0000)]
master: Shorten partition label
The partition label for the EFI partition can only contain up to 11
characters and has therefore been shortened.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 17 Nov 2022 20:42:54 +0000 (20:42 +0000)]
master: Don't let pakfire ask any questions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 9 Nov 2022 17:54:44 +0000 (17:54 +0000)]
master: Do not throw away error output from dracut
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 9 Nov 2022 10:35:05 +0000 (10:35 +0000)]
Stop installing "@Base" since Pakfire no longer supports groups
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 9 Nov 2022 10:34:36 +0000 (10:34 +0000)]
master: Fix recommended switch
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 9 Nov 2022 10:26:00 +0000 (10:26 +0000)]
pakfire: Remove confirm callback
Pakfire should not ask any interactive questions.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 9 May 2022 17:53:20 +0000 (17:53 +0000)]
unattended: Show a success message at the end of the process
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 9 May 2022 17:39:55 +0000 (17:39 +0000)]
unattended: Move warning message later to show more information
It does not make too much sense to start the unattended installation
with a countdown that cannot be stopped.
Instead, we collect some information now and will then show a dialogue
that shows the disks and has a cancellation button.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 9 May 2022 16:55:19 +0000 (16:55 +0000)]
disk: Use wipefs(8) to remove any previous signatures
wipefs(8) is a lot smarter than me trying to erase the first couple of
blocks.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 9 May 2022 16:51:55 +0000 (16:51 +0000)]
disks: Moving scan into an extra step
This avoids slight code duplication
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 9 May 2022 16:48:50 +0000 (16:48 +0000)]
disks: Fix automatic disk selection in unattended mode
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 9 May 2022 16:17:14 +0000 (16:17 +0000)]
pakfire: Allow passing a specific configuration file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 9 May 2022 16:13:10 +0000 (16:13 +0000)]
pakfire: Use new status callback feature
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 9 May 2022 10:31:44 +0000 (10:31 +0000)]
pakfire: Configure confirm callback
This can be used by Pakfire to have the user confirm an operation.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 9 May 2022 10:25:28 +0000 (10:25 +0000)]
master: Add kernel command line arguments for live OS
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 9 May 2022 10:25:12 +0000 (10:25 +0000)]
master: Install filesystem package
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 9 Dec 2021 13:42:56 +0000 (13:42 +0000)]
packages: Make it clearer what is being installed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 9 Dec 2021 13:29:10 +0000 (13:29 +0000)]
packages: Use Pakfire callbacks to show progress
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 9 Dec 2021 10:50:09 +0000 (10:50 +0000)]
tui: Export some callbacks for the progress window
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 9 Dec 2021 10:47:53 +0000 (10:47 +0000)]
disk: Set PARTITION_ESP if unset
On Debian Bullseye which I have been using for developing Bricklayer,
PARTITION_ESP is suddenly non-existant.
parted still knows this parameter which is why we try to set this
manually as a fallback.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 28 May 2021 16:14:32 +0000 (16:14 +0000)]
master: Enable graphical boot and install unicode font
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 28 May 2021 14:43:41 +0000 (14:43 +0000)]
master: Use standard GRUB image for legacy boot, too
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 28 May 2021 14:04:18 +0000 (14:04 +0000)]
master: Create a basic GRUB configuration file
This does not fully work yet, but the menu is shown and a kernel is
being booted.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 28 May 2021 10:23:58 +0000 (10:23 +0000)]
master: Create GRUB EFI image on ISO9660 filesystem, too
Previously, the GRUB EFI image was only installed on the FAT file system
and not on the ISO9660 one.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 28 May 2021 09:42:49 +0000 (09:42 +0000)]
master: Install the same GRUB modules in EFI mode
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 27 May 2021 15:46:23 +0000 (15:46 +0000)]
master: Create a minimal GRUB EFI image
This is making the boot process more similar to what we are using in
IPFire 2 by jumping back to the "regular" bootloader when in EFI mode.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 27 May 2021 15:45:29 +0000 (15:45 +0000)]
master: Generate a random label for the disk image
This can also be set by the user by using the --label switch.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 May 2021 15:51:11 +0000 (15:51 +0000)]
master: Install a kernel and device-mapper for build
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 May 2021 15:01:49 +0000 (15:01 +0000)]
master: Throw away dracut logs
Dracut currently has a bug where loads of console output is generated
which slows down the build process.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 May 2021 15:01:22 +0000 (15:01 +0000)]
master: Ensure that the kernel in the build and live environment is the same
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 May 2021 15:42:46 +0000 (15:42 +0000)]
master: Pakfire now supports different architectures than the host
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 May 2021 15:41:40 +0000 (15:41 +0000)]
master: Install kernel and create an initramdisk
The initramdisk is very minimal and will only come with some basic
kernel modules as well as scripts to mount the squashfs and jump into
it.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 13 May 2021 13:41:11 +0000 (13:41 +0000)]
master: Install some extra modules which not pre-loaded
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 13 May 2021 12:47:45 +0000 (12:47 +0000)]
master: Install temporary system and call grub-mkstandalone in it
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 12 May 2021 12:05:35 +0000 (12:05 +0000)]
bricklayer-master: Experimentally install GRUB on CD
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 12 May 2021 10:54:12 +0000 (10:54 +0000)]
Add debug shell
This shell can be accessed by typing Ctrl-Z and lays the installer in
the background and opens a shell.
This is very useful on serial consoles where there is no TTYs that can
be changed to for debugging.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 11 May 2021 21:40:07 +0000 (21:40 +0000)]
disk: Switch to btrfs as default filesystem
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 11 May 2021 21:34:20 +0000 (21:34 +0000)]
disk: Drop test disk size
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 10 May 2021 21:42:24 +0000 (21:42 +0000)]
Add scaffolding of a script that masters an ISO image
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 10 May 2021 20:42:26 +0000 (20:42 +0000)]
Set the first install status in unattended installations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 10 May 2021 20:29:55 +0000 (20:29 +0000)]
Add dummy systemd files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 10 May 2021 20:10:21 +0000 (20:10 +0000)]
tui: Fix return values when the callback wasn't callable
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 10 May 2021 20:05:21 +0000 (20:05 +0000)]
disks: Do not scan for disks before the step is run
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 10 May 2021 19:57:33 +0000 (19:57 +0000)]
Add "first install" mode to do configuration later
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 10 May 2021 19:47:14 +0000 (19:47 +0000)]
steps: Move TUI into Step class
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 10 May 2021 19:41:03 +0000 (19:41 +0000)]
bootloaders: Remove comment from package install code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 10 May 2021 19:40:23 +0000 (19:40 +0000)]
bootloaders: Create special partitions only if needed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>