Commit Graph

174 Commits

Author SHA1 Message Date
fosslinux 946dd8ee33 Fix GCC 10
stripping breaks it
2023-02-13 19:49:11 +11:00
fosslinux a0e3e61fd9 Fix gettext autoreconf for binutils 2.38
This is the same issue as in GCC 10, doesn't change checksum.
2023-02-12 09:21:24 +11:00
fosslinux dd8bf0921f Add GCC 10.4.0
Last version of GCC that can be compiled with GCC 4.7.
2023-02-12 09:21:24 +11:00
fosslinux d854915ad3 Add file-5.44 2023-02-12 09:21:24 +11:00
fosslinux 0d81d85e05 Fix --with-sysroot in binutils (again)
--with-sysroot removal is insufficient.

There is bad behaviour somewhere that causes --with-sysroot=no as the
default, and then sysroot to be set to 'no'. In reality, we should have
literally no sysroot; so set --with-sysroot=
2023-02-12 09:21:24 +11:00
fosslinux ca9d3aa51f Patch GCC 4.7 for GCC 10
A couple of backports that ease the building of GCC 10.
2023-02-12 09:21:24 +11:00
fosslinux 712175af44 Make crt*.o available in /usr/lib
This is expected by GCC 10+ - they must be at a well defined path.
2023-02-11 20:25:47 +11:00
fosslinux 73b8916e1f Remove with-sysroot from binutils
This option is erroneous and only worked by chance.

sysroot is prepended to all library search paths when working correctly,
eg, /usr/lib turns into /usr/usr/lib when --with-sysroot=/usr.
2023-02-06 16:58:10 +11:00
fosslinux 6bed629a81 Add $triplet-$prog symlinks to binutils 2023-02-06 16:58:10 +11:00
fosslinux 5509e6bb6e Change binutils to unknown-linux-musl triplet 2023-02-06 16:58:10 +11:00
Dor Askayo 4204a180e1 Rename /usr/lib/musl to /usr/lib/i386-unknown-linux-musl 2023-01-29 00:09:39 +02:00
Dor Askayo 59a13f0d09 Add LIBDIR variable for the musl library directory
LIBDIR should be used where possible to avoid unnecessary
duplication in build scripts that target the musl toolchain.

No change in package hashes.
2023-01-29 00:09:38 +02:00
Dor Askayo c3a745c997 Truncate .env file when writing to it
This makes no functional difference in practice, but is a bit cleaner
in case init scripts are executed multiple times (for testing or
otherwise).
2023-01-29 00:06:57 +02:00
fosslinux 5e768d3752
Merge pull request #197 from doraskayo/avoid-variable-export
Avoid exporting variables in build scripts
2023-01-28 08:37:12 +11:00
Dor Askayo 3921660396 Avoid exporting variables in build scripts
Environment variables "pollute" the build environment of packages and
can affect their output.

This change results in the removal of some files from packages that
were not meant to be packaged. It also removes the need for a
workaround in automake 1.10.3 to manually remove such files.

Variables are now saved in an .env file for each system and included
in scripts that need them using the dot operation.
2023-01-27 22:19:52 +02:00
Andrius Štikonas a35196a5e4 Build python 3.11 statically. 2023-01-27 19:10:48 +00:00
Andrius Štikonas 4f9f56f006 Use relative symlinks for python installs. 2023-01-25 18:26:22 +00:00
Andrius Štikonas 26872c01bf Add --enable-ipv6 to some versions of python to make builds reproducible 2023-01-25 02:39:14 +00:00
Andrius Štikonas f2e542ef0c Do not build doc directory of automake 2.11 and 2.15.
There is a race condition there that often causes builds to fail.
Fixes: #184
2023-01-24 22:45:52 +00:00
Andrius Štikonas 89c7c10b8e Add artificial symlinks to musl package to ease its use. 2023-01-21 02:00:36 +00:00
Andrius Štikonas 5f805e65f3 Fix reproducibility issue in curl. 2023-01-20 22:16:31 +00:00
fosslinux 6ec368ce37 Change Python -> python
(lowercase convention)
2023-01-18 22:57:04 +11:00
fosslinux a4d1a445ac Add documentation 2023-01-18 08:20:35 +11:00
fosslinux d0a522113f Fix QEMU/chroot differences in outputs for Python 2023-01-18 08:20:34 +11:00
fosslinux 42fa6c24c1 Add Python-3.11.1 2023-01-18 08:20:34 +11:00
fosslinux d28ea08295 Add Python-3.8.16 2023-01-18 08:20:34 +11:00
fosslinux d1d422abc5 Add Python-3.4.10 2023-01-18 08:20:34 +11:00
fosslinux f34defc485 Add Python-3.3.7 2023-01-18 08:20:34 +11:00
fosslinux 2325df7f38 Add Python-3.1.5 2023-01-18 08:20:34 +11:00
fosslinux eadc92cf38 Add Python-2.5.6 2023-01-18 08:20:34 +11:00
fosslinux a94c8dbdce Add Python-2.3.7 2023-01-18 08:20:34 +11:00
fosslinux 13eaba86e8 Add Python-2.0.1 2023-01-18 08:20:34 +11:00
Andrius Štikonas 68c6544df0 Fix invocation of after.sh hook.
bash "${FILE}" does not work when FILE is unset.
2023-01-13 20:26:55 +00:00
Andrius Štikonas 938d919503 Fix creation of binary tar packages.
Closes #223
2023-01-13 01:09:57 +00:00
fosslinux f4ebc241ac Fix linters (whoops!) 2023-01-07 19:12:50 +11:00
fosslinux d91deb50c9 Remove XBPS 2023-01-05 20:44:19 +11:00
fosslinux a89c76cc73 Fix musl-1.2.3 when umask on host system is not 022 2023-01-02 16:44:23 +11:00
fosslinux fcaa778e93 Add SOURCE_DATE_EPOCH
Simply set SOURCE_DATE_EPOCH=0 globally.
2023-01-02 16:44:23 +11:00
fosslinux 667370a726 Set HOME 2023-01-02 16:44:23 +11:00
Andrius Štikonas e5edc55847 Update ca-certificates to 3.86.
This temporarily should fix checksum error due to certificate expiry.
2022-12-12 00:54:06 +00:00
Eduardo Sánchez Muñoz 8adab8b568 Improve reproduciblity of some packages
I figure these out when trying to run the build in docker, which provides an environment slightly different to the one used when building in qemu/chroot/bwrap with rootfs.py
2022-12-01 23:14:38 +01:00
fosslinux e6c43ebd6a Remove relic from pre-new sources 2022-10-30 21:07:57 +11:00
Andrius Štikonas effac229c1 Update to zlib-1.2.13 and fix its download url. 2022-10-21 12:14:50 +02:00
Andrius Štikonas a1505e1c68 Fix --external-sources mode.
Fixes #210
2022-10-21 12:12:52 +02:00
Andrius Štikonas 3900cf04ca Move musl build with shared libraries after autogen. 2022-10-05 01:33:19 +01:00
fosslinux 10a55522a2 Change sources getting method.
- Rather than defining the urls where they are gotten (python sysa,
  python sysc, inside sysc), a spec file is now used that is easily
  interpretable and tool-independent.
- This is interpreted by rootfs.py and inside sysc.
- This is also used to make sources available and extract sources.
- Manual dirname selection is no longer required as is tarball renaming
  upon download - all of this is handled automatically.

Fixes #188
2022-10-02 09:48:20 +11:00
Andrius Štikonas 0d4abd0223 Add autogen-5.18.16. 2022-09-29 00:00:02 +01:00
Andrius Štikonas 997cd15453 Add sed 4.8 2022-09-23 22:03:32 +01:00
Andrius Štikonas 7588bddd8e Apply a workaround from automake-1.11 to try to fix occasional build failures.
Closes #184
2022-09-21 23:01:20 +01:00
Andrius Štikonas f9d83f3a35 Add grep 3.7. 2022-09-20 00:16:43 +01:00
Andrius Štikonas e748d62a62 Build gperf statically
Build both static and shared libraries for:
* libunistring
* libatomic_ops
* libffi
* gc
2022-09-19 14:33:36 +01:00
Andrius Štikonas ee853d91fe
Merge pull request #200 from stikonas/which
Add which 2.21.
2022-09-17 14:31:30 +01:00
Andrius Štikonas 263dd982cc
Merge pull request #199 from rick-masters/fix-vars-to-make-automake
Provide same vars to make as configure in case make re-runs configure.
2022-09-17 11:29:13 +01:00
Andrius Štikonas 9f3f65f146 Add which 2.21. 2022-09-17 11:12:10 +01:00
rick-masters bbca0f1e81 Provide same vars to make as configure in case make re-runs configure. 2022-09-16 18:13:36 +00:00
Dor Askayo 9d84539a70 Set --libdir when configuring gettext 0.21 2022-09-16 00:04:38 +03:00
Dor Askayo 3e3f7036f2 Set --libdir when configuring curl 7.83.0 2022-09-16 00:01:48 +03:00
Dor Askayo 916541707a Set --libdir when configuring bison 2.3 2022-09-16 00:01:39 +03:00
Dor Askayo 4c75d729b5 Add symlink for ldd
musl's ldd functionality is built into its dynamic linker.
2022-09-15 09:16:56 +03:00
Dor Askayo 9bde9d1afe Rebuild musl 1.2.3 with support for dynamic linking
Now that GCC and binutils support musl's toolchain natively, musl can
have its dynamic linking support enabled without ill-effects.
2022-09-15 09:16:56 +03:00
Dor Askayo 238520fee7 Patch GCC 4.7.4 for native musl support
Backport upstream patches to enable native musl toolchain support in
GCC. Only the changes required for i386 were taken, excluding
changes for libgo and libfortran.

These patches enable binaries built using gcc and g++ to automatically
use musl's dynamic linker as their interpreter when present during the
build.
2022-09-14 12:37:32 +03:00
Dor Askayo 4113d60b24 Add binutils 2.38 2022-09-14 12:36:32 +03:00
Dor Askayo 5aae443d65 Add libtool 2.4.7
Instead of using the pre-generated "bootstrap" script, execute the
relevant bootstrap operations manually. This doesn't actually change
the build output; the final package hash remains identical.
2022-09-11 09:19:16 +03:00
Dor Askayo e9d53f1e6e Skip the libgo directory in GCC 4.7.4
This should avoid configuration errors caused by combining an older
automake that doesn't support Go with a newer libtool that does.

No change in package hash.
2022-09-11 09:19:16 +03:00
Dor Askayo 1663cb2940 Use --add-missing in manual invocation of automake
This is needed when using newer versions of libtool.

No change in package hash.
2022-09-11 09:19:16 +03:00
Dor Askayo 555a06b469 Create a symlink for GCC
This is required when the "CC" environment variable isn't set
explicitly, which is to be expected when using sysc_image in
downstream projects.
2022-09-02 22:09:38 +03:00
Andrius Štikonas 7e95cbbefb Switch to unversioned automake. 2022-07-07 20:43:53 +01:00
Andrius Štikonas 5209078684 Switch to unversioned autoconf.
Remove unversioned autoconf symlink from all but the latest autoconf.

This makes it clearer which autoconf is used.
2022-07-07 20:43:46 +01:00
fosslinux 5ad055d2d3 Fix bubblewrap mode 2022-06-18 09:10:11 +10:00
fosslinux 25f37ba926 Various fixes from rebase
This took a while so a bunch of stuff got broken in rebase.
2022-06-18 09:10:11 +10:00
fosslinux 0ce50a6393 Add options for;
- disk to be created (blank disk given to live-bootstrap) (default)
- disk to already exist but sources downloaded within live-bootstrap
- sources to be downloaded outside live-bootstrap (non-blank disk given
  to live-bootstrap)

Also migrate sysb to use sys_transfer in QEMU mode also.

Note that this means copy_sysc is now irrelevant. sysc is *always*
sourced from sysa.
2022-06-10 13:33:16 +10:00
fosslinux 8008de8e73 Add file downloading logic
Add urls to sysc, and modify some tarballs to http (non s) before ssl
2022-06-10 13:30:58 +10:00
fosslinux 39541e30f5 Add ca-certificates-3.78
Contains all required certificates for curl/openssl.
2022-06-10 13:30:58 +10:00
fosslinux 01129d20c2 Add curl-7.83.0 sysc rebuild
Adds ssl support.
2022-06-10 13:30:58 +10:00
fosslinux 060f44e5a5 Add curl 7.83.0 2022-06-10 13:30:58 +10:00
Andrius Štikonas a23f9d76b0 Fix reproducibility of automake manpages.
Fixes #180
2022-06-08 23:54:23 +01:00
Andrius Štikonas 0b3782d61b Allow preseeding with binary packages. 2022-05-29 00:04:57 +01:00
Andrius Štikonas 9d15314ebc Checksum source tarballs during bootstrap. 2022-05-21 23:49:37 +01:00
Andrius Štikonas c6ca548d5b Add after.sh hook to sysc (similarly to after.kaem hook in stage0-posix). 2022-05-21 00:50:37 +01:00
fosslinux fc0368aa6a
Merge pull request #169 from stikonas/links
Merge symlinks into tarball packages.
2022-05-20 22:46:30 +10:00
Andrius Štikonas 8f61b8400e Merge symlinks into tarball packages. 2022-05-20 09:39:57 +01:00
Dor Askayo 8054f60a3c Use existing mounts in sysc when available
This would be the case when bubblewrap is used for sandboxing the
bootstrap.
2022-05-19 21:54:56 +03:00
Andrius Štikonas 21f4174dc3 Fix packaging issues
* Bzip2 was manually installed directly into filesystem, so bzip2 package was empty.
  Fixed by installing it to destdir. bzip2 moves out its binary before installing
  its own package.
* sha256sum from stage0-posix was not checking any checksums because it does not
  accept piped input. Fixed by using temporary file.
* grep was broken for a short time (but with fixed bzip2 package this caused failures)
  due to touch creating grep file of zero size (egrep symlink was touched).
  Fixed by implementing touch -h

Resolves #156, resolves #166, resolves #167
2022-05-17 10:19:50 +01:00
Dor Askayo d32d0f1d51 Improve reproducibility of XBPS packages
XBPS packages don't seem to have an option to manipulate file
permissions at package creation time.

So as a best effort, set the umask as soon as possible to ensure
file permissions are the same when running the bootstrap.

This is enough to allow reproducible XBPS packages when starting the
bootstrap with a umask different than 0022.
2022-05-15 10:46:18 +03:00
Dor Askayo 24e3fa3601 Fix libtool archive reproducibility
This makes the order of objects in archives created by libtool
consistent.

It is known to affect cases where the *_LIBADD automake variable is
used to add extra objects from a separate archive.

Fixing this allows us to remove a few workarounds.
2022-05-15 00:35:39 +03:00
Andrius Štikonas 98ba2759b2 Upgrade musl to 1.2.3. 2022-05-12 00:41:17 +01:00
Andrius Štikonas 6c4b98a17a Some shellcheck fixes. 2022-05-09 22:53:46 +01:00
Andrius Štikonas ef0030bbf3 Reinstall system from packages during sysa->sysc and sysb->sysc transitions. 2022-05-09 22:53:46 +01:00
Andrius Štikonas 424aa5be38 Move from mes-m2 to mes-0.24. 2022-05-05 23:59:52 +01:00
fosslinux f1600467a7 Variety of improvements
- Rename sources to distfiles for clarity.
- Per sys(a/c) distfiles to reduce rootfs.py processing and reduce RAM
  usage in sysa.
- Canonicalise early kaem mes/tcc files to kaem script conventions.
- Cleanup unused setup in python.
2022-05-05 17:44:47 +10:00
fosslinux acf713595c Update zlib to 1.2.12 2022-05-04 11:28:47 +10:00
Andrius Štikonas 5b032cb46c rootfs.py refactoring.
Switch to bzip2 packages
Move most of the preprocessing done by rootfs.py
into kaem and bash scripts inside live-bootstrap.
2022-04-21 00:49:56 +01:00
Andrius Štikonas 7a8567dc78 Rename /after to /sysa. 2022-04-11 18:53:35 +01:00
fosslinux 7366647595 Update stage0-posix, help2man fix, refactor
- stage0-posix update to correctly exist on fail.
- help2man reproducibility fix for month.
- refactor some bits into functions.
2022-04-05 20:25:40 +10:00
fosslinux b760b3eb2b Final fixes:
- All QEMU reproducibility issues resolved
- Added SPDX licensing
- Couple other small issues
- Fix guile reproducbility
2022-03-12 16:24:25 +11:00
fosslinux 9543a47f1b Fix up checksums + other fixes 2022-03-12 16:23:24 +11:00
fosslinux e7c39af4b9 Final reproducibility fixes 2022-03-07 19:02:12 +11:00
fosslinux 931490551a Fix a variety of reproducibility issues
Include:
- Not regenerated man pages.
- Automake tarball with bad time (and completely useless).
- Ordering of files within tarballs.
- Resetting timestamp various fixes.
- Older tars not properly overwriting files leading to many issues.
- Weird lack of reproducibility in libtool scripts paths to tools.
- and more
2022-03-07 19:02:12 +11:00
fosslinux a343dcf6ed Add new tarball-based checksums to all packages 2022-03-07 19:02:12 +11:00
fosslinux 968d2ea7d1 Introduce packaging support
Utilising previously introduced DESTDIR support, everything is installed
to aformentioned DESTDIR.

Prior to the building of XBPS, we use gzip compressed tarballs as
packages. This requires a lot of strange hacks especially for old tar +
gzip (timestamps, etc causing reproducibility problems). Then we use
XBPS once built.
2022-03-07 19:02:12 +11:00