Commit Graph

22047 Commits

Author SHA1 Message Date
Michael Tremer
64192acb7f make.sh: Use less aggressive compression for Zstandard
Otherwise this takes way too long.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
4830e79f3c make.sh: Rewrite how we are looking for rootfiles
No function changes, just performance.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
3e9cb47e0e flash-images: Don't mess with depmod
This file could not be created anyways as the directory did not exist.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
20280ed337 images: Ensure that all mount points are created
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
d4ad987a5d make.sh: Drop stripping
This will massively improve the build process because we will only strip
the files that we need. The build system will remain as is.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
8f1c5b617d make.sh: Correctly pass ZSTD_OPT
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
cd89b58820 make.sh: Use --long for Zstandard compression
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
de44376208 flash-images: Collect files again instead of relying on the tarball
This has always been an ugly hack.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
1a9127ca54 flash-images: There is no need to for the mount check any more
We always start with a fresh mount namespace, so there cannot be
anything left.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
f8aa7ceda3 Config: Create common functions to create archives
The compression code is very messy because it has changed so many times.
This cleans this up and creates common functions that can be used for
the ISO images as well as packages.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
abfebe255c cdrom: Fix syntax error
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
319619f3b6 archive.files: Make this slightly more efficient
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
15b38c6387 Config: Remove debugging code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
36fb6a6605 make.sh: Create Core Update packages, too
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
f43ebebce4 make.sh: Create loop devices as block devices
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
eba9f280f8 make.sh: Don't drop into the lfs/ directory when entering a shell
This is not a very useful place to be.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
20e4920621 make.sh: Refactor building packages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
27d0a2c477 make.sh: Simplify the initial configuration a little bit more
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
ba844d1dc8 make.sh: Change execute() so that it can be used outside the namespaces, too
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
560b9ecc81 make.sh: Use the new package function to download sources
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
abbcbd1a97 make.sh: tail on the preparation log file, too
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
dd813c6bc8 make.sh: Explicitely download packages when building the toolchain
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
761e95ad0c make.sh: Don't revalidate the images all the time
Calling b2 causes make to verify all source which creates a lot of IO.

This is not really necessary because install will do the same and the
build would fail if the source checksums didn't match.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
449f2879af make.sh: Refactor the execute function
The first version was a little bit messy with all the checks in all
sorts of places. We now create one large array and update it whenever
the configuration changes.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
9fc24981fa make.sh: Create a large unified function to run commands
This now includes the toolchain for which we need to set up the same
environment, except slightly differently.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
e9fcb8c36d cdrom+flash-images: Write images to the images directory
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
28fa687731 make.sh: Split environment and make variables
This got very messed up in the past and I think we would benefit greatly
from splitting this again for a less cluttered environment in the build
chroot and reusability of the make commands for the different stages.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
878f864c1a make.sh: Call the correct target for checksum check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
5db99637ae make.sh: Bind-mount the QEMU helper instead of copying the binary
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
92a2ed67be make.sh: Install the QEMU helper only once
This needs to be done only once when we initialize the environment.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
3a272cfe40 make.sh: Pass variables before the commands
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
7a6c3fb0d0 make.sh: Correctly pass the command return code in run_command
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:20 +00:00
Michael Tremer
a4578c6928 flash-images: No need to sleep for automount any more
I am not sure whether automount is being used at all any more, but since
we are now running in our own namespace, it certainly has no business
here.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
68fea175f5 make.sh: Create and mount and images directory
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
90e508839f make.sh: Add a tail command to stream any logs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
a061f9a535 make.sh: Pass on individual build arguments
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
6b4cb7d793 make.sh: Don't generate any documentation in the source directory
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
6a7053fd82 make.sh: Kill all child processes if unshare terminates
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
6e6cb04630 make.sh: Update the runtime after the interrupt
This is a lot better because this puts the code where it is being
executed and allows us to run run_command in a subshell, too.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
513814ab98 make.sh: Build the entire distribution in one go
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
ce2cea174f make.sh: Fix indentation
No functional changes.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
8af25b83a3 make.sh: Move a comment to where it should be
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
37d4fcc9b3 make.sh: Launch the timer only when we need it
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
b55434ff46 make.sh: Have the background timer update the process runtime
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
9d9c7cef74 make.sh: Create a timer co-process
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
dfb583fee3 make.sh: Don't export loads of variables in the main script
We clear and reset the environment when we launch any build commands and
therefore don't need to do this here.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
e7601c7a93 make.sh: Don't mess with Bash's command hashing
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
e2e0d0879e make.sh: Refactor downloading sources
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
0059a357de make.sh: run_command: Fix basedir in and outside the chroot
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00
Michael Tremer
7ee70f04ea make.sh: Disconnect standard input from make commands
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-07-22 15:21:19 +00:00