Commit Graph

174 Commits

Author SHA1 Message Date
fosslinux 6ed2e09f3a Remove the notion of "sys*"
- This idea originates from very early in the project and was, at the
  time, a very easy way to categorise things.
- Now, it doesn't really make much sense - it is fairly arbitary, often
  occuring when there is a change in kernel, but not from builder-hex0
  to fiwix, and sysb is in reality completely unnecessary.
- In short, the sys* stuff is a bit of a mess that makes the project
  more difficult to understand.
- This puts everything down into one folder and has a manifest file that
  is used to generate the build scripts on the fly rather than using
  coded scripts.
- This is created in the "seed" stage.

stage0-posix -- (calls) --> seed -- (generates) --> main steps

Alongside this change there are a variety of other smaller fixups to the
general structure of the live-bootstrap rootfs.

- Creating a rootfs has become much simpler and is defined as code in
  go.sh. The new structure, for an about-to-be booted system, is

/
-- /steps (direct copy of steps/)
-- /distfiles (direct copy of distfiles/)
-- all files from seed/*
-- all files from seed/stage0-posix/*

- There is no longer such a thing as /usr/include/musl, this didn't
  really make any sense, as musl is the final libc used. Rather, to
  separate musl and mes, we have /usr/include/mes, which is much easier
  to work with.
- This also makes mes easier to blow away later.
- A few things that weren't properly in packages have been changed;
  checksum-transcriber, simple-patch, kexec-fiwix have all been given
  fully qualified package names.
- Highly breaking change, scripts now exist in their package directory
  but NOT WITH THE packagename.sh. Rather, they use pass1.sh, pass2.sh,
  etc. This avoids manual definition of passes.
  - Ditto with patches; default directory is patches, but then any patch
    series specific to a pass are named patches-passX.
2023-12-15 21:43:19 +11:00
MaxHearnden 9c8c262f24 change openssl source in sysc/python-3.11/sources 2023-11-28 04:54:46 +00:00
Googulator ed9f268bc8 Change openssl source URL because the old one redirects to HTTPS 2023-11-28 11:41:27 +11:00
Seppo Yli-Olli f9ed2d7a42 Fix Python 2.5.6 for parallel pgen invocation
Backported from 9828b56347.patch
2023-11-07 09:08:34 +02:00
fosslinux 47feb75b08 Move to a different HTTP source for pkg-config 2023-11-07 10:54:13 +11:00
ajherchenroder 7be4933ab1 Update after.sh to add dev nodes for 3 disks and 3 NVME drives with 3 partitions each.
Update after.sh to add dev nodes for 3 disks and 3 NVME drives with 3 partitions each
fix HD and NVME device major and minor numbers add cd drive
correct indentation
2023-08-09 08:23:35 -04:00
Paul Dersey 184535e2df gcc 13.1.0: don't enable default ssp or pie and remove libssp_nonshared.patch 2023-07-24 10:08:26 -04:00
Andrius Štikonas b3ffe8bb19
Merge pull request #310 from doraskayo/avoid-variable-export-2
Avoid exporting variables
2023-07-14 20:05:27 +01:00
Dor Askayo 7123b48876 Use "declare -x" to export variables in openssl-1.1.1l.sh
This avoid polluting the environment of every package build that
follows.
2023-07-14 09:57:18 +03:00
Dor Askayo 5b058a2b81 Use "declare -x" to export variables in autogen-5.18.16
Using the "declare -x" build-in instead of "export" allows variables
to be exported only to child processes that are executed in the scope
of the function in which the variables are declared, including nested
function calls.

This avoid polluting the environment of every package build that
follows.
2023-07-14 09:57:18 +03:00
Dor Askayo 3da50962fd Run run.sh with a clean environment
All expected environment variables are passed through the .env file.
Any other variable passed from /init and the environment in which it
is executed only "pollutes" the build environment.

No change in package hashes.
2023-07-13 20:56:36 +03:00
Dor Askayo 3479d65f58 Remove unnecessary definition of environment variables
These are already made available to run2.sh through the .env file.
2023-07-13 18:42:56 +03:00
Dor Askayo 5899991961 Avoid defining environment variables twice
No change in behavior.
2023-07-13 18:42:56 +03:00
Andrius Štikonas 914b84377a Update to musl 1.2.4. 2023-06-12 19:31:30 +01:00
fosslinux e86db47b6e
Merge pull request #286 from fosslinux/ci-length
split CI into three (as a temporary solution)
2023-05-10 07:30:52 +00:00
fosslinux aa2d6c4137 Update to GCC 13
The latest version of GCC.

Luckily this allows for a bunch of patches to be dropped - apart from
that, no significant change.
2023-05-09 22:41:45 +10:00
fosslinux ce33a6e9f9 Actually, split into 3, sysc is too long 2023-05-04 22:15:35 +10:00
rick-masters 9b37fa2ed7 Fix dhcpd version in sysc/init. 2023-05-01 21:06:40 +00:00
fosslinux de9f898f85 Make python 3.4.10 -j1
Fix the transient parallelism issues (same as py3.3).

Fixes #283
2023-04-30 11:47:06 +10:00
fosslinux 6835ebfaf8 Disable binutils' manpages
I have no idea where this unreproducibility is coming from and I'm not
really bothered to spend more time on it right now :)
2023-04-29 23:41:15 +10:00
fosslinux c063a86bb4 Fix binutils manpage deletion
binutils manpages were, incorrectly, not deleted - this causes issues
with reproducibility in pass2
2023-04-28 21:50:54 +10:00
fosslinux 6fb676c8c2 Add GCC 12
The latest version of GCC.
And with this, the glibc-musl-gcc toolchain is complete.

A variety of modern features (default PIE SSP) are enabled.
2023-04-27 17:25:51 +10:00
fosslinux ac4685e886 Rebuild Binutils 2.38 using all modern features
- Rather than using part-by-part build of Binutils, use autogen and full
  ./configure, make build.
- Enable some other modern features, including the gold linker, threaded
  linking and 64-bit linking.
- This allows GCC 12 to build unhindered by binutils.
2023-04-27 17:25:51 +10:00
fosslinux 8ae911162a Move libssp into musl out of GCC
The motivations for this are complicated, but on musl systems, musl
will use its own libssp implementation, so GCC's libssp is not required.

Not to mention that GCC's libssp implementation is questionable at best.

This is the approach taken by the two major musl distributions - Alpine
Linux and Void Linux.
2023-04-25 14:04:42 +10:00
fosslinux d98f97e214 Introduce parallelism
By using --cores argument to rootfs.py, JOBS= is set in the
live-bootstrap environment, and -j${JOBS} is used on builds. This speeds
larger packages up significantly.

A fair number of packages do not build properly with parallelism. Most
of these, at least for now, are disabled with -j1.
2023-04-13 17:13:53 +10:00
fosslinux f2a0d74bfb Update to Guile 3.0.9
This is achieved by transplanting 3.0.7's psyntax-pp.scm into 3.0.9
which works flawlessly.

This is required for parallelism, since <3.0.8 is irreproducible when
-jN is used.
2023-04-13 17:13:51 +10:00
Eduardo Sánchez Muñoz 787cc9c45a Update dhcpcd to version 9.5.0
Also fixes broken download link
2023-04-11 23:37:59 +02:00
rick-masters ecf99ab08b Implement kernel bootstrap up to building Linux. 2023-03-31 18:08:50 +00:00
Eduardo Sánchez Muñoz dcd43599a7 Build both stages of curl in sysc
The source tarball is provided as part of sysa distfiles and copied to sysc, which resolves the issue of finding a reliable plain HTTP mirror for curl.

Splitted from https://github.com/fosslinux/live-bootstrap/pull/253.
2023-03-23 18:35:38 +01:00
Eduardo Sánchez Muñoz bc4ecd9ed4 Update curl to 7.88.1
Patches have been regenerated to update hunk line numbers
2023-03-19 18:58:52 +01:00
Andrius Štikonas 514190c4c2
Merge pull request #269 from eduardosm/timeless-mk-ca-bundle
Patch mk-ca-bundle to make ca-certificates reproducible regardless of current date
2023-03-19 00:18:29 +00:00
Eduardo Sánchez Muñoz 3897987887 Update nss (ca-certificates) to 3.88.1 2023-03-18 20:32:56 +01:00
Andrius Štikonas c0ea746ae5 Fix curl download url. 2023-03-18 19:19:46 +00:00
fosslinux f44d4acbfb Fix permissions of python 3.1->3.4
For some reason these also install non-writable files breaking
bubblewrap mode.
2023-03-15 22:28:55 +11:00
fosslinux b304a8c6f8 Fix permissions on perl files
Also fixes stripping perl 5.32 in bubblewrap.

Fixes #263
2023-03-15 16:48:02 +11:00
fosslinux 16cd5be626 Move bash 5.2 to sysc and rebuild 2.05b in sysa
This unblocks Fiwix.
2023-03-11 16:33:40 +11:00
fosslinux 76a5639b30 Strip created binaries & libraries 2023-03-06 17:35:35 +11:00
Andrius Štikonas a2b1b92874 Fix binary packaging of dist-3.5-236. 2023-03-05 22:05:29 +00:00
Andrius Štikonas ef2deec60e Use .env file for passing environmental variables in sysa. 2023-03-05 20:27:12 +00:00
Andrius Štikonas db9dd4628a Add binutils 2.30. 2023-03-02 22:08:43 +00:00
Andrius Štikonas 57b55b8652 Use newer autotools. 2023-03-02 22:08:43 +00:00
Andrius Štikonas 1a2a4c1c6c Update to xz-5.4.1. 2023-03-02 22:08:43 +00:00
Andrius Štikonas 241717ee8d Move automake-1.15.1 to sysa. 2023-03-02 22:08:43 +00:00
Andrius Štikonas da9a2c6c50 Move bash rebuild to sysa. 2023-03-02 22:08:43 +00:00
Andrius Štikonas 5cc4d959b4 populate_device_nodes function needs /etc present, run it after create_fhs. 2023-02-28 10:33:11 +08:00
Andrius Štikonas e242f5539d Remove more pre-generated files from binutils 2.38. 2023-02-26 12:03:38 +08:00
Andrius Štikonas 3b90aae529 Upgrade to binutils 2.24:
* Move libtool 2.2.4 before binutils.
* Remove libtool 1.4.
* Switch from binutils 2.14 to 2.24.
2023-02-25 12:22:44 +08:00
Andrius Štikonas ea96519332 Move autoconf-2.69 to sysa. 2023-02-22 10:27:56 +08:00
Andrius Štikonas da11c40e37 Move automake-1.11.2 to sysa. 2023-02-22 10:27:56 +08:00
fosslinux c170152d14 Apply CRC regen to GCC 4.7
CRC generated table is regenerated using the same method as GCC 10.

Closes #243
2023-02-13 22:15:58 +11:00