Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions DEVEL.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,19 +90,18 @@ libraries that are compiled and installed.
The format of the sources file for a HTTP source file is:

```
<url> <checksum> [filename]
f <url> <checksum> [filename]
```

For a Git repository snapshot:

```
<git url> <URL to HTTP snapshot> <checksum> [filename]
g <git url>~<reference> <URL to HTTP snapshot> <checksum> [filename]
```

The format of a git url must always be `git://<path to repository>~<reference>`.
`reference` is, for instance, a commit, tag or branch. Always use
Git protocol path, except for GitHub, in which `git://` is automagically
changed to `https://`.
The git url has the form `<url to repository>~<reference>` (for instance,
a `git://` or `https://` URL). `reference` is, for instance, a commit, tag
or branch.

The URL to HTTP snapshot may be `_` (a single underscore) if no HTTP snapshot
exists. In this case, the filename is compulsory. The checksum is of the Git
Expand Down
6 changes: 3 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,17 @@ Without using Python:
* All other files in ``seed`` into that directory.
* ``steps/`` and ``distfiles/`` into that directory.

* At least all files listed in ``steps/pre-network-sources`` must be
* At least all files listed in the pre-network entries in ``steps/manifest`` must be
copied in. All other files will be obtained from the network.
* Run ``/bootstrap-seeds/POSIX/x86/kaem-optional-seed`` in the chroot.
(Eg, ``chroot rootfs /bootstrap-seeds/POSIX/x86/kaem-optional-seed``).
b. **QEMU:** Create two blank disk images.

* Generate ``builder-hex0-x86-stage1.img`` from hex0 source:

``sed 's/[;#].*$//g' builder-hex0/builder-hex0-x86-stage1-hex0 | xxd -r -p``
``sed 's/[;#].*$//g' builder-hex0/builder-hex0-x86-stage1.hex0 | xxd -r -p``
* On the first image, write ``builder-hex0-x86-stage1.img`` to it, followed
by ``kernel-bootstrap/builder-hex0-x86-stage2.hex0``, followed by zeros
by ``builder-hex0/builder-hex0-x86-stage2.hex0``, followed by zeros
padding the disk to the next sector.
* distfiles can be obtained using ``./download-distfiles.sh``.
* See the list in part a. For every file within that list, write a line to
Expand Down
47 changes: 24 additions & 23 deletions parts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ If chroot or bwrap is specified or if a pre-existing kernel is provided then we
hex0
====

``hex0`` is fairly trivial to implement and for each pair of hexadecimals characters it outputs a byte. We have also added two types of line comments (``#`` and ``;``) to create a well commented lines like:
``hex0`` is fairly trivial to implement and for each pair of hexadecimal characters it outputs a byte. We have also added two types of line comments (``#`` and ``;``) to create well commented lines like:

.. code:: scheme

Expand Down Expand Up @@ -57,7 +57,7 @@ When kernel bootstrap is enabled, the ``builder-hex0-x86-stage2`` kernel loads a
kaem-optional
=============

``kaem-optional`` is a trivial shell that can read list of commands together with their command line arguments from a file and executes them. It also supports line comments but has no other features.
``kaem-optional`` is a trivial shell that can read a list of commands together with their command line arguments from a file and executes them. It also supports line comments but has no other features.

hex1
====
Expand Down Expand Up @@ -109,9 +109,9 @@ Thus ``M0`` code looks like:
cc_x86
======

The ``cc_x86`` implements a subset of the C language designed in ``M0`` assembly. It is a somewhat limited subset of C but complete enough to make it easy to write a more usable C compiler written in the C subset that ``cc_x86`` supports.
``cc_x86`` implements a subset of the C language designed in ``M0`` assembly. It is a somewhat limited subset of C but complete enough to make it easy to write a more usable C compiler written in the C subset that ``cc_x86`` supports.

At this stage we start using `M2libc <https://github.com/oriansj/M2libc/>`_ as our C library. In fact, ``M2libc`` ships two versions of C library. There is a single-file library that contains just enough to build ``M2-Planet`` and there is a full version that is rather well-featured.
At this stage we start using `M2libc <https://github.com/oriansj/M2libc/>`_ as our C library. In fact, ``M2libc`` ships two versions of the C library. There is a single-file library that contains just enough to build ``M2-Planet`` and there is a full version that is rather well-featured.

M2-Planet
=========
Expand Down Expand Up @@ -183,7 +183,7 @@ The following directives are supported:
live bootstrap system.
* ``define``, defines a variable evaluated from other constants/variables.
* ``jump``, moves into a new rootfs/kernel using a custom script.
* ``uninstall``, removes a previously built package for file.
* ``uninstall``, removes a previously built package or file.

checksum-transcriber 1.0
========================
Expand All @@ -199,8 +199,8 @@ simple-patch 1.0
text block given to it, and replacing it with another text block. This is
sufficient for the early patching required before we have full proper GNU patch.

mes 0.27
========
mes 0.27.1
==========

GNU ``mes`` is a scheme interpreter. It runs the sister project ``mescc``,
which is a C compiler written in scheme, which links against the Mes C
Expand Down Expand Up @@ -255,15 +255,15 @@ fiwix 1.5.0-lb1
If the kernel bootstrap option is enabled then the Fiwix kernel is built next.
This is a Linux 2.0 clone which is much simpler to understand and build than
Linux. This version of Fiwix is an intermediate release on top of 1.5.0 that
contains many modifications and enhancements to support live-boostrap.
contains many modifications and enhancements to support live-bootstrap.

lwext4 1.0.0-lb1
================

If the kernel bootstrap option is enabled then `lwext4 <https://github.com/gkostka/lwext4>`
is built next. This is a library for creating ext2/3/4 file systems from user land.
This is combined with a program called ``make_fiwix_initrd.c`` which creates
and populates an ext2 files system which Fiwix uses for an initial ram drive (initrd).
and populates an ext2 file system which Fiwix uses for an initial ram drive (initrd).
This file system contains all of the files necessary to build Linux.

kexec-fiwix
Expand All @@ -285,7 +285,7 @@ patch 2.5.9
``patch`` is a very useful tool at this stage, allowing us to make
significantly more complex edits, including just changes to lines.

gzip 1.2.5
gzip 1.2.4
==========

``gzip`` is the most common compression format used for software source
Expand Down Expand Up @@ -416,7 +416,7 @@ tcc 0.9.27 (musl)
=================

We recompile ``tcc`` against musl. This is a two stage process. First we
build tcc-0.9.27 using tcc-0.9.26 that itself links to Mes C library but produces
build tcc-0.9.27 using tcc-0.9.26 that itself links to Mes C library but produces
binaries linked to musl. Then we recompile newly produced tcc with
itself. Interestingly, tcc-0.9.27 linked against musl is self hosting.

Expand Down Expand Up @@ -617,7 +617,7 @@ autoconf macros to make it build with ``autoconf-2.53``.
autoconf 2.54
=============

Never version of ``autoconf``.
Newer version of ``autoconf``.

autoconf 2.55
=============
Expand Down Expand Up @@ -745,7 +745,7 @@ musl 1.2.5
GCC can build the latest as of the time of writing musl version.

We also don't need any of the TCC patches that we used before.
To accomodate Fiwix, there are patches to avoid syscalls set_thread_area and clone.
To accommodate Fiwix, there are patches to avoid syscalls set_thread_area and clone.

Linux headers 4.14.341-openela
==============================
Expand Down Expand Up @@ -800,7 +800,7 @@ in ``.tar.lz`` format. ``ed`` is used by ``bc`` build scripts.
bc 1.08.1
=========

``bc`` is a console based calculator that is sometime used in scripts. We need ``bc``
``bc`` is a console based calculator that is sometimes used in scripts. We need ``bc``
to rebuild some Linux kernel headers.

kexec-linux
Expand Down Expand Up @@ -927,7 +927,7 @@ Now that we have a proper interactive shell available, open another interactive
console (only in interactive mode), this time accessible using Ctrl+Shift+F3, since
Ctrl+Shift+F2 is already occupied by our previous console, running the old Bash.

xz 5.4.1
xz 5.6.4
========

XZ Utils is a set of free software command-line lossless data compressors,
Expand Down Expand Up @@ -995,7 +995,7 @@ The GNU Multiple Precision Floating-Point Reliable Library (GNU MPFR) is a libra
for arbitrary-precision binary floating-point computation with correct rounding,
based on GNU Multi-Precision Library.

mpc 3.2.1
mpc 1.2.1
=========

GNU MPC is a library for multiprecision complex arithmetic with exact rounding based
Expand Down Expand Up @@ -1095,7 +1095,7 @@ GNU Automake from 1.16 series that required newer Perl.
autoconf 2.71
=============

GNU Autoconf 2.71 is even newer version of autoconf. It does not build with miniperl,
GNU Autoconf 2.71 is an even newer version of autoconf. It does not build with miniperl,
so we postponed it until a sufficient version of perl was built.

bison 3.6.4
Expand All @@ -1109,7 +1109,7 @@ bison 3.7.6
===========

Again, a newer version of Bison -- the last version that can be built by
Bison 3.8 before running into obscure messages.
Bison 3.6 before running into obscure messages.

perl 5.22.4
===========
Expand Down Expand Up @@ -1155,17 +1155,18 @@ perl 5.42.0

5.42 is the latest version of Perl! The Perl bootstrap is complete.

openssl 3.0.13
openssl 3.6.0
==============

OpenSSL is a C library for secure communications/cryptography.

We do not use the latest 3.3.0 release because it causes lockups in curl.
We do not use the latest release in the 3.x series because some releases
have caused problems (e.g. 3.3.0 caused lockups in curl).

ca-certificates 3.119.1
=======================

Install TLS root certificates from nss. This will allows us to use HTTPS for downloads
Install TLS root certificates from nss. This will allow us to use HTTPS for downloads
once curl is rebuilt against OpenSSL.

curl 8.17.0
Expand Down Expand Up @@ -1374,7 +1375,7 @@ We use ``guile-psyntax-bootstrapping`` project on Guile 3.0.7 to bootstrap
Guile's ``psyntax.pp`` without relying on pre-expanded code. This is then
transplanted into Guile 3.0.11.

which 2.21
which 2.23
==========

``which`` shows the full path of (shell) commands. It mostly duplicates
Expand Down Expand Up @@ -1462,7 +1463,7 @@ which expects either glibc or libbsd.
shadow 4.14.3
=============

shadow provides a variety of command line utilites to work with users and
shadow provides a variety of command line utilities to work with users and
groups, avoiding the need for manual modification of ``/etc/passwd`` and
``/etc/group``. This allows unprivileged users to be created by, or for,
post-bootstrap build systems.
Expand Down
2 changes: 1 addition & 1 deletion rootfs.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
A helper application used to start bootstrapping process.
It has a few modes of operation, you can create initramfs with
binary seeds and sources that you can boot into or alternatively
you can run bootstap inside chroot.
you can run bootstrap inside chroot.
"""

# SPDX-License-Identifier: GPL-3.0-or-later
Expand Down
2 changes: 1 addition & 1 deletion seed/script-generator.c
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@ void generate_preseed_jump(int id) {

void generate(Directive *directives) {
/*
* We are separating the stages given in the mainfest into a bunch of
* We are separating the stages given in the manifest into a bunch of
* smaller scripts. The following conditions call for the creation of
* a new script:
* - a jump
Expand Down
2 changes: 1 addition & 1 deletion steps/autogen-5.18.16/pass1.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ src_compile() {
cp -ar build/autogen-5.18.16 build/tarball
cd build/tarball

# These files does not respect MAN_PAGE_DATE
# These files do not respect MAN_PAGE_DATE
sed -i "s/+%Y/+1970/; s/%m/01/; s/%d'/01'/; s/%Y/2018/" autoopts/aoconf.tpl
sed -i 's/%Y/2018/' autoopts/options_h.tpl

Expand Down
2 changes: 1 addition & 1 deletion steps/automake-1.11.2/patches/aclocal_glob.patch
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>

SPDX-License-Identifier: GPL-2.0-or-later

Fixes aclocal-1.10 to work with our Perl
Fixes aclocal-1.11 to work with our Perl

--- automake-1.11.2/aclocal.in 2021-03-25 19:18:10.489134059 +0000
+++ automake-1.11.2/aclocal.in 2021-03-25 19:18:20.159389339 +0000
Expand Down
2 changes: 1 addition & 1 deletion steps/binutils-2.30/pass1.sh
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ src_configure() {
# BUILDFIXED=1 is specifically for zlib, to avoid needing to
# regenerate inffixed.h. Instead, it generates the information from
# it at runtime.
# Similarly, DYANMIC_CRC_TABLE=1 for crc32.h.
# Similarly, DYNAMIC_CRC_TABLE=1 for crc32.h.
LD="true" AR="tcc -ar" CC="tcc" \
CFLAGS="-DBUILDFIXED=1 -DDYNAMIC_CRC_TABLE=1" \
./configure \
Expand Down
2 changes: 1 addition & 1 deletion steps/binutils-2.30/patches/new-gettext.patch
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ SPDX-FileCopyrightText: 2023 Samuel Tyler <samuel@samuelt.me>

SPDX-License-Identifier: GPL-3.0-or-later

In new gettext external is required for AM_GNU_GETTEXT.
With new gettext, the external variant is required for AM_GNU_GETTEXT.

--- binutils-2.30/intl/configure.ac 2023-02-07 18:57:56.350832016 +1100
+++ binutils-2.30/intl/configure.ac 2023-02-07 18:58:07.310054484 +1100
Expand Down
2 changes: 1 addition & 1 deletion steps/binutils-2.41/patches/new-gettext.patch
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ SPDX-FileCopyrightText: 2023 Samuel Tyler <samuel@samuelt.me>

SPDX-License-Identifier: GPL-3.0-or-later

In new gettext external is required for AM_GNU_GETTEXT.
With new gettext, the external variant is required for AM_GNU_GETTEXT.

--- binutils-2.41/intl/configure.ac 2023-02-07 18:57:56.350832016 +1100
+++ binutils-2.41/intl/configure.ac 2023-02-07 18:58:07.310054484 +1100
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Revert "diagnostics: translate bison's own tokens"

This reverts commit 2cc361387c9790b387d205f5d862f493c148e424.

This format is not suppported by Bison 3.4.
This format is not supported by Bison 3.4.
---
src/parse-gram.y | 71 ++++++++++++++++++++++++++----------------------
1 file changed, 39 insertions(+), 32 deletions(-)
Expand Down
2 changes: 1 addition & 1 deletion steps/curl-8.17.0/pass1.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ src_prepare() {
rm docs/libcurl/libcurl-symbols.md
rm -r packages/vms/curlmsg.h packages/vms/curlmsg.sdl

# Regnerate src/tool_cb_prg.c
# Regenerate src/tool_cb_prg.c
sed '/sinus/q' src/tool_cb_prg.c > src/tool_cb_prg.c.new
perl sinus.pl | sed "s/, $//" >> src/tool_cb_prg.c.new
sed '1,/^[0-9, ]*[0-9]$/d' src/tool_cb_prg.c >> src/tool_cb_prg.c.new
Expand Down
2 changes: 1 addition & 1 deletion steps/curl-8.17.0/pass2.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ src_prepare() {
rm docs/libcurl/libcurl-symbols.md
rm -r packages/vms/curlmsg.{h,sdl}

# Regnerate src/tool_cb_prg.c
# Regenerate src/tool_cb_prg.c
sed '/sinus/q' src/tool_cb_prg.c > src/tool_cb_prg.c.new
perl sinus.pl | sed "s/, $//" >> src/tool_cb_prg.c.new
sed '1,/^[0-9, ]*[0-9]$/d' src/tool_cb_prg.c >> src/tool_cb_prg.c.new
Expand Down
2 changes: 1 addition & 1 deletion steps/e2fsprogs-1.45.7/pass1.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ src_prepare() {
# Remove bison parser generated
rm intl/plural.c

# Setup for regeneratation of lib/ext2fs/utf8data.h
# Setup for regeneration of lib/ext2fs/utf8data.h
rm lib/ext2fs/utf8data.h

# Fix compile_et
Expand Down
2 changes: 1 addition & 1 deletion steps/flex-2.5.11/patches/yyin.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ SPDX-FileCopyrightText: 2021 Samuel Tyler <samuel@samuelt.me>
SPDX-License-Identifier: BSD-2-Clause

yyin has an odd redefinition error in scan.l, so we ensure that we don't
acidentally re-declare it.
accidentally re-declare it.

diff --git flexdef.h flexdef.h
index 3eb710a..94ef024 100644
Expand Down
2 changes: 1 addition & 1 deletion steps/gcc-15.2.0/pass1.sh
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ src_prepare() {
done
# Because GCC is stupid, copy depcomp back in
cp "${PREFIX}/share/automake-1.15/depcomp" .
# A odd script
# An odd script
pushd gcc/m2/gm2-libs
autoconf-2.69 -f config-host.in > config-host
popd
Expand Down
2 changes: 1 addition & 1 deletion steps/gcc-4.7.4/pass1.sh
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ src_install() {
ln -s gcc "${DESTDIR}${PREFIX}/bin/cc"
cp gcc/gsyslimits.h "${DESTDIR}${LIBDIR}/gcc/${TARGET}/4.7.4/include/syslimits.h"

# Very strange mis-versoning error
# Very strange mis-versioning error
mkdir -p "${DESTDIR}${LIBDIR}/gcc/${TARGET}/4.7.4/include/"
mv "${DESTDIR}${LIBDIR}/gcc/${TARGET}/4.0.4/include/"* "${DESTDIR}${LIBDIR}/gcc/${TARGET}/4.7.4/include/"
rmdir "${DESTDIR}${LIBDIR}/gcc/${TARGET}/4.0.4/include"
Expand Down
2 changes: 1 addition & 1 deletion steps/gperf-3.3/pass1.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ src_prepare() {
rm doc/gperf.{1,dvi,info,pdf,ps} doc/*.html
touch doc/gperf.info doc/gperf.pdf

# Useless tests things
# Useless test things
rm tests/*.exp tests/{languages,charsets}.gperf tests/lang-ucs2.in

# Remove date from manpage
Expand Down
2 changes: 1 addition & 1 deletion steps/improve/clean_sources.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ for source in "${DISTFILES}/"*; do
source_name="$(basename "${source}")"
for keep_source in ${keep_sources}; do
if [ "${keep_source}" = "${source_name}" ]; then
# Countinue the outer loop to skip deletion
# Continue the outer loop to skip deletion
continue 2
fi
done
Expand Down
2 changes: 1 addition & 1 deletion steps/libtool-2.2.4/pass1.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ src_install() {
make install MAKEINFO=true DESTDIR="${DESTDIR}"

sed -i -e "s/{EGREP=.*/{EGREP='egrep'}/" \
-e "s/{FGREP=.*/{FREGP='fgrep'}/" \
-e "s/{FGREP=.*/{FGREP='fgrep'}/" \
-e "s/{GREP=.*/{GREP='grep'}/" \
-e "s/{SED=.*/{SED='sed'}/" \
"${DESTDIR}/usr/bin/libtool"
Expand Down
2 changes: 1 addition & 1 deletion steps/libtool-2.4.7/bootstrap-helper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#
# SPDX-License-Identifier: GPL-2.0-or-later

EXIT_FALURE=1
EXIT_FAILURE=1

#######################################
# Extracted from the output of: #
Expand Down
Loading
Loading