Commit graph

1182 commits

Author SHA1 Message Date
fosslinux
4a822e231c
Merge pull request #389 from Googulator/after
After bootstrap, drop to a shell if needed, then shut down cleanly
2024-01-08 10:55:21 +00:00
fosslinux
e44748cce1
Merge pull request #387 from Googulator/swap-support
Support swap files in qemu or bare-metal mode
2024-01-08 10:52:05 +00:00
fosslinux
0ffe5b5e71
Merge pull request #385 from Googulator/script-generator-uninit
Fix uninitialized variables in script-generator
2024-01-08 10:47:53 +00:00
Gábor Stefanik
2a095a3301 After bootstrap, drop to a shell if needed, then shut down cleanly 2024-01-08 05:19:19 +01:00
rick-masters
1bffe44154
Upgrade Fiwix to 1.5.0-lb1, pulling from upstream Mikaku repo. (#397) 2024-01-08 01:37:15 +00:00
Gábor Stefanik
d5008f93a5 Support swap files in qemu or bare-metal mode
This can help alleviate memory pressure when bootstrapping
with high core counts.
2024-01-02 04:32:08 +01:00
Gábor Stefanik
82c570694a Make the Linux kernel & Fiwix->Linux kexec more bare-metal-friendly
* Enable additional hardware drivers in Linux for better bare metal
  display, network & input device compatibility
* Disable ATA-over-Ethernet support, because it spams the network
  with unnecessary packets, is basically useless for bootstrapping,
  and may even be a security risk
* Increase Fiwix initrd size to 1280MB to fit a larger Linux build
* Make the Fiwix kexec size configurable the same way as initrd
  (and reduce from 280MB to 256MB which is sufficient in my testing)
* Use a more conservative memory map for Fiwix & Linux
* Boot Linux with consoleblank=0 on bare metal, so the build won't
  go blind after 5 minutes
* Support kexec-fiwix with interrupts disabled (will be useful later
  when builder-hex0 is updated)
2024-01-02 01:33:09 +01:00
Gábor Stefanik
6c2144e50a Make move_disk work on bare metal
* Use -S32 -H64 --force to trick sfdisk into allowing MiB-aligned
  partitions on a drive that reports a CHS geometry
* Explicitly create partition at sector 2097152 (=1GiB)
* Force mkfs.ext4 to overwrite any existing filesystem it might find
* Wait up to 2 minutes for the disk to become readable (especially
  USB drives often show up with a delay)
2024-01-02 00:57:29 +01:00
Gábor Stefanik
8341c4e089 Use devtmpfs, and improve finalize_fhs.sh
With this, finalize_fhs.sh can be rerun as needed, e.g. when rebooting.
Also, the preferred nameserver will persist after DHCP.

Thanks to devtmpfs, we no longer need to manage /dev once Linux is up.
2024-01-02 00:15:32 +01:00
Gábor Stefanik
9384a5d432 Support "!=" comparisons in script-generator 2024-01-02 00:14:00 +01:00
Gábor Stefanik
f9cf916e5e Fix uninitialized variables in script-generator 2024-01-02 00:11:29 +01:00
Andrius Štikonas
133c05426c
Merge pull request #384 from eduardosm/update-curl
Update curl to 8.5.0
2024-01-01 21:41:39 +00:00
Eduardo Sánchez Muñoz
5610998a4d Update curl to 8.5.0 2024-01-01 22:39:24 +01:00
Andrius Štikonas
43df581f68
Merge pull request #383 from fosslinux/ca-certificates-3.95
Update ca-certificates to 3.95
2024-01-01 20:09:51 +00:00
fosslinux
fbb3e97149 Update ca-certificates to 3.95 2023-12-29 12:14:27 +11:00
fosslinux
b59170519f
Merge pull request #371 from eduardosm/sysabc-refs
Update `parts.rst` to remove remaining references to sysa/sysb/sysc
2023-12-28 22:27:51 +00:00
fosslinux
c1a1ef64e7
Merge pull request #378 from Googulator/message-fix
Fix "Bootstrapping" message being printed too late in bwrap runs
2023-12-28 22:26:36 +00:00
fosslinux
813ec9498a
Merge pull request #380 from eduardosm/patch-1
Change "tmp/" to "target/" in .gitignore
2023-12-28 22:25:51 +00:00
Eduardo Sánchez Muñoz
c42dd53634 Update parts.rst to remove remaining references to sysa/sysb/sysc 2023-12-28 20:04:37 +01:00
Eduardo Sánchez Muñoz
18919e03f4
Change "tmp/" to "target/" in .gitignore 2023-12-28 12:57:06 +01:00
Gábor Stefanik
bb067d2856 Fix "Bootstrapping" message being printed too late in bwrap runs
This should be printed at the beginning, but instead is only shown
at the end, due to output buffering - force an explicit flush.
2023-12-28 07:25:35 +01:00
fosslinux
9afe93298c
Merge pull request #373 from eduardosm/avoid-double-slash
Avoid double slash (`//`) in generated scripts
2023-12-27 23:10:54 +00:00
fosslinux
f4c1b488d6
Merge pull request #372 from Googulator/automake-fix
Fix intermittent failure to build automake-1.15.1 in bwrap (#365)
2023-12-27 22:59:48 +00:00
fosslinux
51fe3f9991
Merge pull request #368 from Googulator/always-preserve
Rename tmpdir to target and always preserve it, dropping --preserve
2023-12-27 22:59:23 +00:00
fosslinux
ca0e701ee8
Merge pull request #360 from eduardosm/fixes
Avoid deleting sources that will be needed in future builds and fix updating checksums with `--update-checksums`
2023-12-27 22:59:11 +00:00
Eduardo Sánchez Muñoz
45b635ef97 Do update checksums when building with --update-checksums 2023-12-27 12:36:46 +01:00
Eduardo Sánchez Muñoz
9042539165 Avoid deleting sources that will be needed in future builds 2023-12-27 12:36:46 +01:00
Eduardo Sánchez Muñoz
fc6aee0c5f Avoid double slash (//) in generated scripts
e.g., put `bash /steps/1.sh` instead of `bash /steps//1.sh`
2023-12-27 12:32:55 +01:00
Gábor Stefanik
c8837203c8 Fix intermittent failure to build automake-1.15.1 in bwrap (#365) 2023-12-27 08:06:51 +01:00
Gábor Stefanik
81e3123262 Rename tmpdir to target and always preserve it, dropping --preserve
There is nothing temporary about our "tmpdir" - its sole purpose is to
contain the final product of the bootstrap process. Thus, removing it
at the end of bootstrap amounts to doing the entire process for nothing.

To remedy this, --tmpdir is renamed --target, keeping the -t short form,
and defaulting to "target" instead of "tmp" to make its purpose clearer.
The --preserve option is removed, as the target is now always preserved.
2023-12-26 16:34:04 +01:00
fosslinux
9179f4bd01 Binutils 2.41 fix gprofng in pass2
A fix i forgot to include in the original PR
2023-12-26 22:50:18 +11:00
fosslinux
81790a3271
Merge pull request #361 from Googulator/fix-bwrap
Fix bubblewrap support & CI workflows after simplify
2023-12-26 05:22:30 +00:00
Gábor Stefanik
fe9cb1222f Change pass2 -> pass3 transition to the same mechanism as pass1 -> pass2
Fixes pass3 prematurely reporting success and quitting, having built nothing.
2023-12-26 13:01:24 +11:00
Gábor Stefanik
f67c7d1144 Tolerate externals/distfiles already existing (needed for CI) 2023-12-26 13:01:24 +11:00
Gábor Stefanik
896c618bd1 Re-copy distfiles on generator.reuse() 2023-12-26 13:01:24 +11:00
Gábor Stefanik
30fb367e7a Simplify bwrap setup code and support more than 3 passes 2023-12-26 13:01:24 +11:00
Gábor Stefanik
63c0a52067 Fix external & distfiles directory paths for CI 2023-12-26 13:01:24 +11:00
Gábor Stefanik
591959924f Re-acquire missing sources before each CI pass 2023-12-26 13:01:24 +11:00
Gábor Stefanik
2c6ac94974 Replace --clearenv with env - to support older bwrap
This makes bwrap work on Debian 10.
2023-12-26 13:01:24 +11:00
Gábor Stefanik
97f31072ce Add license information to break.sh
Not that it's exactly copyrightable, being just "exit 0", but linter complains about it.
2023-12-26 13:01:24 +11:00
Gábor Stefanik
2823e16325 Update CI workflows to match changes from simplify 2023-12-26 13:01:24 +11:00
Gábor Stefanik
e9787b55c8 Add breakpoints between passes for INTERNAL_CI
These are implemented as dummy jumps with a script that just exits
with success. Since this script will be sourced, rather than called,
this causes the bootstrap process to exit at that point.
The breakpoints are conditional on INTERNAL_CI (we check for "pass1"
because that's the only pass when script-generator runs, but the
resulting effect is that each pass only bootstraps its own part of
the manifest).
2023-12-26 13:01:24 +11:00
Gábor Stefanik
f66f9efa2c Update bwrap bootstrap code to match the simplify refactor 2023-12-26 13:01:24 +11:00
Gábor Stefanik
1481ad0d20 Do not try to create /dev nodes under chroot/bwrap 2023-12-26 13:01:24 +11:00
Gábor Stefanik
9ed4ae9a59 Support reusing existing directory for multipass bootstrapping 2023-12-26 13:01:24 +11:00
fosslinux
3fd101e70a
Merge pull request #359 from fosslinux/binutils-2.41
Update binutils to 2.41
2023-12-26 01:53:39 +00:00
fosslinux
6905852107
Merge pull request #354 from Googulator/script-fixes
Python script fixes and improvements
2023-12-26 00:59:34 +00:00
fosslinux
7d0e1c0e75
Merge pull request #366 from Googulator/reproducible-linux
Fix non-reproducible Linux kernel build due to timestamps
2023-12-26 00:22:32 +00:00
Gábor Stefanik
47711cfea9 Fix non-reproducible Linux kernel build due to timestamps
Linux's KBUILD doesn't follow SOURCE_DATE_EPOCH, but rather it
uses its own variable, KBUILD_BUILD_TIMESTAMP.

While we are at it, also update kexec-linux's checksum, which
didn't match either. (This one was reproducible, it was just
out of date.)
2023-12-25 10:16:17 +01:00
Gábor Stefanik
529ea4cae1 Explain significance of build-bash and improve-network directives 2023-12-22 13:12:40 +01:00