Compare commits

...

67 Commits

Author SHA1 Message Date
fosslinux eb6cbad712
Merge pull request #333 from fosslinux/tinycc_upgrade
Update to newer bootstrappable tcc snapshot.
2023-11-20 05:26:00 +00:00
Andrius Štikonas f98161581c Update to newer bootstrappable tcc snapshot. 2023-11-19 15:49:59 +00:00
Andrius Štikonas c38a58e474
Merge pull request #331 from fosslinux/mes-0.25
Mes 0.25
2023-11-15 19:18:40 +00:00
Andrius Štikonas 737bf61a26 Add amd64 and riscv64 checksums. 2023-11-15 09:56:22 +00:00
Andrius Štikonas 9b81f13714
Merge pull request #326 from nanonyme/sudo-helper
Add a wrapper for commmands needing sudo that checks if you are euid 0
2023-11-14 23:29:52 +00:00
Andrius Štikonas abb46a27b3 Update to mes-0.25. 2023-11-14 00:37:11 +00:00
Andrius Štikonas aae7c4a672 Update stage0-posix to 1.6.0 2023-11-12 20:31:17 +00:00
Seppo Yli-Olli f893df52fe Add a wrapper for commmands needing sudo that checks if you are euid 0 2023-11-08 17:34:56 +02:00
fosslinux 7747e86834
Merge pull request #325 from nanonyme/python2.5
Fix Python 2.5.6 for parallel pgen invocation
2023-11-07 23:44:31 +00: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
Andrius Štikonas 493ddfa829 Fix a typo.
Closes #318
2023-08-20 01:43:13 +01:00
fosslinux 80e65b7c23
Merge pull request #315 from ajherchenroder/Add-dev-nodes-to-sysc
Add dev nodes to sysc
2023-08-09 22:23:04 +00: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
fosslinux fd9e8d547f
Merge pull request #314 from pder/gcc-13-disable-ssp
gcc 13.1.0: don't enable default ssp or pie
2023-07-29 00:21:28 +00: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
fosslinux 46d80b8605
Merge pull request #313 from stikonas/meslibc+tcc
Build libc+tcc with mes rather than mes-m2.
2023-07-24 06:29:36 +00:00
Andrius Štikonas 10fd92f9c7 Build libc+tcc with mes rather than mes-m2. 2023-07-23 17:03:32 +01:00
Andrius Štikonas 8d96234d22
Merge pull request #311 from doraskayo/missing-dev-nodes
Mount a few missing device nodes in chroot bootstrap modes
2023-07-16 20:55:40 +01:00
Dor Askayo 2227a2053a Mount a few missing device nodes in chroot bootstrap modes
The gap between the chroot and non-chroot bootstrap modes started in,
7ecad37 because BuildStream's sandbox was missing some device nodes.

With the latest version of buildbox-run-bubblewrap, a few of the
missing devices were made available to BuildStream's sandbox and
there is no longer a need to keep this gap. In fact, compatibilty
with newer BuildStream versions now requires these devices to be
present.

This change also partially reverts d0a5221, which had to remove
/dev/ptmx as a consequence of the aforementioned gap.
2023-07-16 01:41:01 +03: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
Andrius Štikonas 9638a796e9
Merge pull request #309 from doraskayo/clean-run-env 2023-07-14 08:52:59 +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 6276da59cd Avoid exporting base_dir in linux-headers-5.10.41
It's not expected to be used by child processes.
2023-07-14 09:57:18 +03:00
Dor Askayo 1026440104 Avoid exporting the DISK variable
It's not expected to be used by child processes.
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 b58c513e8f Define PATH in the sysb .env file 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
fosslinux 49a2676551
Merge pull request #308 from rick-masters/fix-collect2-faults-with-new-fiwix
Update Fiwix to v1.4.0-lb3 to pull in timestamp improvements
2023-07-07 23:21:08 +00:00
rick-masters 5e5f309db7 Update Fiwix to v1.4.0-lb3 to pull in timestamp improvements and other fixes. 2023-07-06 23:29:37 +00:00
Andrius Štikonas 83013cea5e
Merge pull request #305 from pder/bare-metal-no-serial-console
Boot Fiwix and Linux without serial console on bare metal
2023-06-25 14:01:19 +01:00
Paul Dersey 5b9fd08dc0 Don't use serial console with bare metal option and user provided kernel 2023-06-19 09:24:55 -04:00
Paul Dersey c61b4afd8a Boot Fiwix and Linux without serial console on bare metal 2023-06-15 11:18:51 -04:00
Andrius Štikonas 7a31257eaa
Merge pull request #302 from eduardosm/reuse-cleanup
Clean up reuse information of files that do not exist any longer
2023-06-13 19:44:58 +01:00
Eduardo Sánchez Muñoz d75114d4a4 Clean up reuse information of files that do not exist any longer 2023-06-13 18:03:23 +02:00
fosslinux 48df095226
Merge pull request #301 from stikonas/musl-1.2.4
Update to musl 1.2.4.
2023-06-13 08:03:24 +00:00
Andrius Štikonas 914b84377a Update to musl 1.2.4. 2023-06-12 19:31:30 +01:00
Andrius Štikonas f531e1cc5f Remove -nostdlib when linking mes. 2023-06-09 23:22:30 +01:00
fosslinux e3a2ca1b3f
Merge pull request #299 from pder/gzip-regen-crc
gzip: Regenerate crc table in util.c using makecrc
2023-06-06 07:49:32 +00:00
Paul Dersey 247b2a2a89 gzip: Regenerate crc table in util.c using makecrc 2023-06-05 10:50:57 -04:00
Paul Dersey 87601931b2 Write simple-patch binary to ${bindir} and remove hard coded paths 2023-06-05 10:50:57 -04:00
fosslinux 82f2204f91
Merge pull request #298 from rick-masters/fix-baremetal-config
Generate bootstrap.cfg for bare metal.
2023-05-27 23:25:36 +00:00
rick-masters d2870cf17a Generate bootstrap.cfg for bare metal. 2023-05-26 12:16:06 +00:00
fosslinux 9dffcd7c8a
Merge pull request #296 from emilytrau/uniq-fopen
Backport `uniq` fopen patch
2023-05-22 21:38:00 +00:00
Emily Trau a8752029f6 Backport `uniq` fopen patch 2023-05-22 21:30:22 +10:00
Andrius Štikonas 87e9d7db9d
Merge pull request #295 from rick-masters/kernel-bootstrap-phase2-v1
Kernel bootstrap phase2 v1
2023-05-21 01:26:04 +01:00
rick-masters ef08891401 Convert file size to 32-bit type before writing. 2023-05-21 00:11:37 +00:00
rick-masters 1603b81602 Fix printf calls and use puts when possible. 2023-05-20 15:20:01 +00:00
rick-masters 0d4394aa0d Build kexec-linux later as a package for musl lib calls instead of asm. 2023-05-20 15:16:27 +00:00
Andrius Štikonas 26552a928f Increase disk size to 16G. 2023-05-20 12:46:22 +01:00
rick-masters 8604871997 Pull builder-hex0-x86-stage1 from updated stage0-posix and lint fixes. 2023-05-18 10:59:46 +00:00
rick-masters 68429917c0 Use code blocks and capitalize consistently and other improvements. 2023-05-18 10:58:53 +00:00
rick-masters 12026cb100 Document the new builder-hex0-x86 boot stages.
Describe the kernel bootstrap steps first to avoid confusion because
we do not actually start with the stage0-posix binary seeds if the default
kernel bootstrap option is used.
2023-05-10 17:21:16 +00:00
rick-masters a2fcf1ced9 Complete the kernel bootstrap by adding kexec of Linux from Fiwix.
A tiny bootloader bootstrap has been added to compile the builder-hex0 kernel from hex0 source.
The boot compiler is builder-hex0-x86-stage1.hex0 and builder-hex0-x86-stage1.bin.
The builder-hex0 kernel is now named builder-hex0-x86-stage2.hex0.
The inclusion of a binary seed resolves the problem with the previous strategy which used an
architecture-specific hex0 compiler.

If sysb detects a full disk (i.e. DISK=sda) it now partitions the disk unconditionally because
previously fdisk was reporting existing but empty partitions which resulted in no
parititions being created.

e2fsprogs is now built with --disable-tls because musl was built on Fiwix without full threading
support and mkfs.ext4 was crashing without disabling thread local storage.

kexec-linux writes the linux kernel and initramfs to a RAM drive on Fiwix which ensure
a pre-allocated contiguous memory block. The following is written to the ram drive:
a 32-bit number which is the size of the kernel in bytes, a 32-bit number which is the size
of the initramfs in bytes, followed by the Linux kernel image, followed by the initramfs.

kexec-fiwix invokes a sync syscall to ensure all writes are flushed to
the ram drive and then initiates the kexec by shutting down Fiwix with a reboot syscall.
Fiwix knows whether and how to perform the kexec based on kernel parameters passed to it.
2023-05-10 14:33:42 +00: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 724c6cca13
Merge pull request #293 from fosslinux/gcc-13
GCC 13
2023-05-10 07:30:40 +00:00
fosslinux a4e5829971
Merge pull request #290 from emilytrau/coreutils-pass-1
Enable additional tools in coreutils-5.0 phase 1
2023-05-09 12:45:01 +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 e2ceb13e57 Expand sysc disk 2023-05-09 22:41:04 +10:00
fosslinux ce33a6e9f9 Actually, split into 3, sysc is too long 2023-05-04 22:15:35 +10:00
fosslinux f124bc86be Work around GH actions time limit
by splitting sysa and sysc into 2
2023-05-04 07:33:17 +10:00
Emily Trau 7a13158e79 Enable additional tools in coreutils-5.0 phase 1
These utilities can be enabled with only a small amount of additional
patches. In particular sort, expr, uniq,and hostname are used by some
./configure.sh scripts.
2023-05-02 23:21:46 +10:00
fosslinux dd7905c05c
Merge pull request #289 from rick-masters/fix-sysc-dhcpcd
Fix dhcpd version in sysc/init.
2023-05-01 21:39:22 +00:00
rick-masters 9b37fa2ed7 Fix dhcpd version in sysc/init. 2023-05-01 21:06:40 +00:00
fosslinux 3723747562 Add internal-ci argument for ci passes to rootfs.py 2023-05-01 20:53:48 +10:00
92 changed files with 1383 additions and 963 deletions

View File

@ -12,8 +12,8 @@ on:
- master
jobs:
run:
name: Run under bubblewrap
sysa:
name: Run sysa under bubblewrap
runs-on: ubuntu-latest
steps:
- name: Install bubblewrap
@ -45,8 +45,78 @@ jobs:
sysc/distfiles
key: cache-${{ hashFiles('sys*/*/sources') }}
- name: Run bootstrap
id: bootstrap
run: ./rootfs.py --bwrap --external-sources --build-kernels --preserve --cores 2
run: ./rootfs.py --bwrap --external-sources --build-kernels --preserve --cores 2 --internal-ci pass1
- name: Archive created packages
if: failure() # archive failed builds progress
uses: actions/upload-artifact@v3
with:
name: packages
path: tmp/sysa/usr/src/repo/**
- name: Tar sysc_image
run: tar -cf sysc_image.tar tmp/sysa/sysc_image/
- name: Archive sysc_image
uses: actions/upload-artifact@v3
with:
name: internal_sysc_image
path: sysc_image.tar
sysc1:
name: Run sysc (part 1) under bubblewrap
needs: sysa
runs-on: ubuntu-latest
steps:
- name: Install bubblewrap
run: sudo apt install bubblewrap
- name: Checkout repo
uses: actions/checkout@v3
with:
submodules: recursive
# There is a strange bug(?) in nongnu, when you clone a git repository
# against a commit != HEAD with depth=1, it errors out.
fetch-depth: 0
- name: Get sysc_image
uses: actions/download-artifact@v3
with:
name: internal_sysc_image
- name: Extract sysc_image
run: tar -xf sysc_image.tar
- name: Run bootstrap
run: ./rootfs.py --bwrap --external-sources --build-kernels --preserve --cores 2 --internal-ci pass2
- name: Archive created packages
if: always() # archive failed builds progress
uses: actions/upload-artifact@v3
with:
name: internal_packages_sysc1
path: tmp/sysa/sysc_image/usr/src/repo/**
sysc2:
name: Run sysc (part 2) under bubblewrap
needs: sysc1
runs-on: ubuntu-latest
steps:
- name: Install bubblewrap
run: sudo apt install bubblewrap
- name: Checkout repo
uses: actions/checkout@v3
with:
submodules: recursive
# There is a strange bug(?) in nongnu, when you clone a git repository
# against a commit != HEAD with depth=1, it errors out.
fetch-depth: 0
- name: Get sysc_image
uses: actions/download-artifact@v3
with:
name: internal_sysc_image
- name: Extract sysc_image
run: tar -xf sysc_image.tar
# By doing this, all packages that have already been compiled will come from the preseed.
- name: Get packages repo progress
uses: actions/download-artifact@v3
with:
name: internal_packages_sysc1
path: tmp/sysa/sysc_image/usr/src/repo-preseeded/
- name: Run bootstrap
run: ./rootfs.py --bwrap --external-sources --build-kernels --preserve --cores 2 --internal-ci pass3
- name: Archive created packages
if: always() # archive failed builds
uses: actions/upload-artifact@v3

View File

@ -9,6 +9,6 @@ Source: https://github.com/fosslinux/live-bootstrap
# Copyright: $YEAR $NAME <$CONTACT>
# License: ...
Files: sys*/*/sources sys*/SHA256SUMS.sources sysa/checksum-transcriber.*.SHA256SUM sysa/pre-sha.sha256sums sysa/*/*.checksums sysa/SHA256SUMS.pkgs sysc/musl-1.2.3/ld-musl-i386.path sysa/*/simple-patches/*
Files: sys*/*/sources sysa/checksum-transcriber.*.SHA256SUM sysa/*/*.checksums sysa/SHA256SUMS.pkgs sysa/*/simple-patches/*
Copyright: none
License: MIT

View File

@ -12,7 +12,7 @@ import getpass
import os
import shutil
from lib.utils import mount, umount, create_disk, run
from lib.utils import mount, umount, create_disk, run_as_root
class TmpType(enum.Enum):
"""Different types of tmpdirs we can have"""
@ -45,7 +45,7 @@ class Tmpdir:
if not self.preserve:
for disk in self._disks.values():
print(f"Detaching {disk}")
run("sudo", "losetup", "-d", disk)
run_as_root("losetup", "-d", disk)
if self._type == TmpType.TMPFS:
print(f"Unmounting tmpdir from {self.path}")
@ -69,13 +69,13 @@ class Tmpdir:
os.mkdir(sys_path)
return sys_path
def add_disk(self, name, size="8G", filesystem="ext4"):
def add_disk(self, name, size="16G", filesystem="ext4"):
"""Add a disk"""
disk_path = os.path.join(self.path, f"{name}.img")
self._disks[name] = create_disk(disk_path, "msdos", filesystem, size)
self._disk_filesystems[name] = filesystem
# Allow executing user to access it
run("sudo", "chown", getpass.getuser(), self._disks[name])
run_as_root("chown", getpass.getuser(), self._disks[name])
def mount_disk(self, name, mountpoint=None):
"""Mount the disk"""
@ -85,7 +85,7 @@ class Tmpdir:
os.mkdir(mountpoint)
mount(self._disks[name] + "p1", mountpoint, self._disk_filesystems[name])
# Allow executing user to access it
run("sudo", "chown", getpass.getuser(), mountpoint)
run_as_root("chown", getpass.getuser(), mountpoint)
self._mountpoints[name] = mountpoint
return mountpoint

View File

@ -25,27 +25,34 @@ def run(*args, **kwargs):
print("Bootstrapping failed")
sys.exit(1)
def run_as_root(*args, **kwargs):
"""A helper for run that invokes sudo when unprivileged"""
if os.geteuid() != 0:
run("sudo", *args, **kwargs)
else:
run(*args, **kwargs)
def create_disk(image, disk_type, fs_type, size):
"""Create a disk image, with a filesystem on it"""
run('truncate', '-s', size, image)
# First find the device we will use, then actually use it
loop_dev = run('sudo', 'losetup', '-f', capture_output=True).stdout.decode().strip()
run('sudo', 'losetup', '-P', loop_dev, image)
loop_dev = run_as_root('losetup', '-f', capture_output=True).stdout.decode().strip()
run_as_root('losetup', '-P', loop_dev, image)
# Create the partition
if disk_type != "none":
run('sudo', 'parted', '--script', image, 'mklabel', disk_type, 'mkpart',
run_as_root('parted', '--script', image, 'mklabel', disk_type, 'mkpart',
'primary', 'ext4', '0%', '100%')
run('sudo', 'partprobe', loop_dev)
run('sudo', 'mkfs.' + fs_type, loop_dev + "p1")
run_as_root('partprobe', loop_dev)
run_as_root('mkfs.' + fs_type, loop_dev + "p1")
return loop_dev
def mount(source, target, fs_type, options='', **kwargs):
"""Mount filesystem"""
run('sudo', 'mount', source, target, '-t', fs_type, '-o', options, **kwargs)
run_as_root('mount', source, target, '-t', fs_type, '-o', options, **kwargs)
def umount(target, **kwargs):
"""Unmount filesystem"""
run('sudo', 'umount', '--recursive', target, **kwargs)
run_as_root('umount', '--recursive', target, **kwargs)
def copytree(src, dst, ignore=shutil.ignore_patterns('*.git*')):
"""Copy directory tree into another directory"""

File diff suppressed because one or more lines are too long

View File

@ -15,10 +15,11 @@ you can run bootstap inside chroot.
import argparse
import os
import shutil
from sysa import SysA
from sysc import SysC
from lib.utils import run
from lib.utils import run, run_as_root
from lib.sysgeneral import stage0_arch_map
from lib.tmpdir import Tmpdir
@ -34,10 +35,13 @@ def create_configuration_file(args):
config.write(f"CHROOT_ONLY_SYSA={args.bwrap}\n")
config.write(f"UPDATE_CHECKSUMS={args.update_checksums}\n")
config.write(f"JOBS={args.cores}\n")
config.write("DISK=sda1\n")
config.write(f"INTERNAL_CI={args.internal_ci}\n")
config.write(f"BARE_METAL={args.bare_metal}\n")
if (args.bare_metal or args.qemu) and not args.kernel:
config.write("DISK=sda\n")
config.write("KERNEL_BOOTSTRAP=True\n")
else:
config.write("DISK=sda1\n")
config.write("KERNEL_BOOTSTRAP=False\n")
config.write(f"BUILD_KERNELS={args.update_checksums or args.build_kernels}\n")
@ -84,6 +88,7 @@ def main():
help="Path to prebuilt binary packages.", nargs=None)
parser.add_argument("--early-preseed",
help="Skip early stages of live-bootstrap.", nargs=None)
parser.add_argument("--internal-ci", help="INTERNAL for github CI")
# QEMU arguments
parser.add_argument("-q", "--qemu", help="Use QEMU",
@ -120,7 +125,7 @@ def main():
# Arch validation
if args.arch != "x86":
raise ValueError("Only x86 is supported at the moment.")
print("Only x86 is supported at the moment, other arches are for development only.")
# Tmp validation
if args.bwrap and args.tmpfs:
@ -131,9 +136,6 @@ def main():
raise ValueError("Must use one or more cores.")
# bootstrap.cfg
if args.bare_metal:
args.no_create_config = True
try:
os.remove(os.path.join('sysa', 'bootstrap.cfg'))
except FileNotFoundError:
@ -166,53 +168,61 @@ def bootstrap(args, system_a, system_c, tmpdir):
import shutil
print(shutil.which('chroot'))
"""
chroot_binary = run('sudo', 'python3', '-c', find_chroot,
capture_output=True).stdout.decode().strip()
chroot_binary = run_as_root('python3', '-c', find_chroot,
capture_output=True).stdout.decode().strip()
system_c.prepare(create_disk_image=False)
system_a.prepare(create_initramfs=False)
arch = stage0_arch_map.get(args.arch, args.arch)
init = os.path.join(os.sep, 'bootstrap-seeds', 'POSIX', arch, 'kaem-optional-seed')
run('sudo', 'env', '-i', 'PATH=/bin', chroot_binary, system_a.tmp_dir, init)
run_as_root('env', '-i', 'PATH=/bin', chroot_binary, system_a.tmp_dir, init)
elif args.bwrap:
system_c.prepare(create_disk_image=False)
system_a.prepare(create_initramfs=False)
if not args.internal_ci or args.internal_ci == "pass1":
system_c.prepare(create_disk_image=False)
system_a.prepare(create_initramfs=False)
arch = stage0_arch_map.get(args.arch, args.arch)
init = os.path.join(os.sep, 'bootstrap-seeds', 'POSIX', arch, 'kaem-optional-seed')
run('bwrap', '--unshare-user',
'--uid', '0',
'--gid', '0',
'--unshare-net',
'--clearenv',
'--setenv', 'PATH', '/usr/bin',
'--bind', system_a.tmp_dir, '/',
'--dir', '/dev',
'--dev-bind', '/dev/null', '/dev/null',
'--dev-bind', '/dev/zero', '/dev/zero',
'--dev-bind', '/dev/random', '/dev/random',
'--dev-bind', '/dev/urandom', '/dev/urandom',
init)
arch = stage0_arch_map.get(args.arch, args.arch)
init = os.path.join(os.sep, 'bootstrap-seeds', 'POSIX', arch, 'kaem-optional-seed')
run('bwrap', '--unshare-user',
'--uid', '0',
'--gid', '0',
'--unshare-net',
'--clearenv',
'--setenv', 'PATH', '/usr/bin',
'--bind', system_a.tmp_dir, '/',
'--dir', '/dev',
'--dev-bind', '/dev/null', '/dev/null',
'--dev-bind', '/dev/zero', '/dev/zero',
'--dev-bind', '/dev/random', '/dev/random',
'--dev-bind', '/dev/urandom', '/dev/urandom',
'--dev-bind', '/dev/ptmx', '/dev/ptmx',
'--dev-bind', '/dev/tty', '/dev/tty',
init)
run('bwrap', '--unshare-user',
'--uid', '0',
'--gid', '0',
'--unshare-net' if args.external_sources else None,
'--clearenv',
'--setenv', 'PATH', '/usr/bin',
'--bind', system_a.tmp_dir + "/sysc_image", '/',
'--dir', '/dev',
'--dev-bind', '/dev/null', '/dev/null',
'--dev-bind', '/dev/zero', '/dev/zero',
'--dev-bind', '/dev/random', '/dev/random',
'--dev-bind', '/dev/urandom', '/dev/urandom',
'--tmpfs', '/dev/shm',
'--proc', '/proc',
'--bind', '/sys', '/sys',
'--tmpfs', '/tmp',
'/init')
if not args.internal_ci or args.internal_ci == "pass2" or args.internal_ci == "pass3":
shutil.copy2(os.path.join('sysa', 'bootstrap.cfg'),
os.path.join('tmp', 'sysa', 'sysc_image', 'usr', 'src', 'bootstrap.cfg'))
run('bwrap', '--unshare-user',
'--uid', '0',
'--gid', '0',
'--unshare-net' if args.external_sources else None,
'--clearenv',
'--setenv', 'PATH', '/usr/bin',
'--bind', system_a.tmp_dir + "/sysc_image", '/',
'--dir', '/dev',
'--dev-bind', '/dev/null', '/dev/null',
'--dev-bind', '/dev/zero', '/dev/zero',
'--dev-bind', '/dev/random', '/dev/random',
'--dev-bind', '/dev/urandom', '/dev/urandom',
'--dev-bind', '/dev/ptmx', '/dev/ptmx',
'--dev-bind', '/dev/tty', '/dev/tty',
'--tmpfs', '/dev/shm',
'--proc', '/proc',
'--bind', '/sys', '/sys',
'--tmpfs', '/tmp',
'/init')
elif args.bare_metal:
if args.kernel:

21
sysa.py
View File

@ -13,7 +13,6 @@ import shutil
import tarfile
from lib.sysgeneral import SysGeneral, stage0_arch_map
from lib.utils import run
# pylint: disable=consider-using-with
# pylint: disable=too-many-instance-attributes
@ -113,6 +112,8 @@ class SysA(SysGeneral):
for root, _, filepaths in os.walk(dirpath):
if 'stage0-posix' in root:
continue
if root == os.path.join('sysc', 'distfiles'):
continue
with open(file_list_path, 'a', encoding="utf-8") as file_list:
for filepath in filepaths:
file_list.write(f"/{os.path.join(root, filepath)}\n")
@ -193,12 +194,20 @@ class SysA(SysGeneral):
def create_builder_hex0_disk_image(self, image_file_name):
"""Create builder-hex0 disk image"""
run(os.path.join('sysa', 'stage0-posix', 'src',
'bootstrap-seeds', 'POSIX', 'x86', 'hex0-seed'),
os.path.join('kernel-bootstrap', 'builder-hex0-x86.hex0'),
image_file_name)
shutil.copyfile(os.path.join('sysa', 'stage0-posix', 'src', 'bootstrap-seeds',
'NATIVE', 'x86', 'builder-hex0-x86-stage1.img'),
image_file_name)
with open(image_file_name, 'ab') as image_file:
# Append stage2 hex0 source
with open(os.path.join('kernel-bootstrap', 'builder-hex0-x86-stage2.hex0'),
encoding="utf-8") as infile:
image_file.write(infile.read().encode())
# Pad to next sector
current_size = os.stat(image_file_name).st_size
while current_size % 512 != 0:
image_file.write(b'\0')
current_size += 1
self.append_srcfs(image_file)
current_size = os.stat(image_file_name).st_size
@ -213,6 +222,6 @@ class SysA(SysGeneral):
# fill file with zeros up to desired size, one megabyte at a time
with open(image_file_name, 'ab') as image_file:
while current_size < 1008 * megabyte:
while current_size < 16384 * megabyte:
image_file.write(b'\0' * megabyte)
current_size += megabyte

View File

@ -9,7 +9,7 @@ d5fcce4baea5e11f983a7e4b7148545ab6720bb4e010898c73387f6711be67f4 autoconf-2.64_
298dcf17a439adb306237b308e3c4ed3d376cb863ae0f0f08bfdf1f3199a548b autoconf-2.69_0.tar.bz2
8c2401edf1c68910005bbcb8b8e84727a46f7d9643d2ad1267bd0259078dadc4 autoconf-2.71_0.tar.bz2
6ff691e3ddd4f3d1796d28b07a2a96691dbd9801844c99ccbe660da59dabd74b autoconf-archive-2021.02.19_0.tar.bz2
ebd9b5168122561aca6f9c686f97cf1b61b035eccb716f36710efe72aad694f0 autogen-5.18.16_0.tar.bz2
6a5cc1eb9ebc7e0ace8365e4c4aad5607ad1878ec9a90b384b55f8399cdbcb14 autogen-5.18.16_0.tar.bz2
02a426e82a52d4a2cd7e73fe3dc5a2c58b3ed100f24a92c57e42511fd86e247c automake-1.10.3_0.tar.bz2
34925adeaa2876a5e068adeb17b71fe7c7105244c3cb5439d33f7406310674da automake-1.11.2_0.tar.bz2
a7bd12bd0c639783ce1c0e9f640cf004a87460bbda8154bc550c5e6884457b48 automake-1.15.1_0.tar.bz2
@ -20,98 +20,99 @@ e8ff13753943e43972a8cf1672819f001718ed38e5497cf7b554c21a507ba22b automake-1.7.8
ef08694bf8e78ffcf56f9c8a63b0f189e301c06f02ab240e15e4c7fe354c2a0d automake-1.7_0.tar.bz2
9922651b64ad2e29b944082f26db223008220155048f25d64df1f6d82071ff1c automake-1.8.5_0.tar.bz2
c5807850a377e4bb9aa4121d9781d145bdd80327626a9419630a75ce2c8d9c71 automake-1.9.6_0.tar.bz2
46282b2a7c2e3d50bac2d3f90fee56629c4a533a962ad61eabac6395a3b676db bash-5.2.15_0.tar.bz2
05bcb569640576e53e40c2bfbeea988fd4fc4e0b5b1311668eabd5cdaacd6657 bc-1.07.1_0.tar.bz2
5078d40dbdf5910cf9e89853765342366c19d9f2638e103b8158facd5655b6f6 bash-5.2.15_0.tar.bz2
f6e0a6d1a10c399101d2178063918750d271dab4da3db56955acf77ce11b6ba4 bc-1.07.1_0.tar.bz2
7b8ea17311f22e987a39b814658c72b46201650c4dfbc707e8fd9eb42bf1ed28 binutils-2.30_0.tar.bz2
543fb17af4d08fe3ba6bfbd824aa607f7eda5fd09bc11c2384bd91667c052053 binutils-2.38_0.tar.bz2
868e1e600754638674c626e2b5fa017be18c03cbabc94f0c9d7b3e070779b9e8 binutils-2.38_1.tar.bz2
2e2102a9a41f3ad35683e67f6f9cc09e4edad25b7acb1ae0ca3ad94e19fbbdaf bison-2.3_0.tar.bz2
abc76e210e1cae4a02b56686ed555ef6e5167deccdb96c021718e93fdb420ec4 binutils-2.38_0.tar.bz2
d7aac3185d1b19193f535e2c5377e2e41be872d55a6ae9a3c3d14b488df88277 binutils-2.38_1.tar.bz2
f0bb18831983493b82fde53917e8d16c6a380761ac5e71e14769a82193fee788 bison-2.3_0.tar.bz2
df9539b52384757d927bca5a27b1b58325b6024b23b0470e557f135eb69bae30 bison-3.4.1_0.tar.bz2
fed9e13409f6378f97e8cef61e6faac992f3b767dfdac22f32453ff57cf29e7b bison-3.4.1_1.tar.bz2
44d143d9dcb4098138a8b8eee0e29de1c7e282b9582df153f75ae301336c0927 bison-3.4.1_2.tar.bz2
e38ed21c4b4fa514e9a64d2b84bad72f3d242568183b6b84a6a2d0e8c49d0af2 bison-3.4.2_0.tar.bz2
6d5e4debdec03aee096dbcefcad878fb5c6a069f895ee7ade878d9eeb97fb83e bison-3.4.2_0.tar.bz2
80e541fc4d3dfce4451318f26c31ccfe580848139672bd437131cdfd5e3664b2 bzip2-1.0.8_0.tar.bz2
c511d571d24675a141258e0e198c5ed1bcfd4889ddd736ff8e25c0d97b44e2cf ca-certificates-3.88.1_0.tar.bz2
acd3ba50a33ea0172c3ca59e341a48e4233be48ded26fa031fd2e9417a2dfb31 coreutils-5.0_0.tar.bz2
09092e187588c5d33c023ac41671b367aef9f7ee967d2c7c03430b33cc03f251 coreutils-6.10_0.tar.bz2
e41aba2caa7514704731d3b7a49f63ff8ffb2d22a64f14afdbaadbd0b24073f0 coreutils-8.32_0.tar.bz2
8df7fe3124243028cc9fd9a00fe8ab55c2143a9b7551426447867d2e1de436b6 curl-7.88.1_0.tar.bz2
d7d0a5fc9117f9b3ebd287851a48716c96a3c11991365edb8890f0e203d3b810 curl-7.88.1_1.tar.bz2
ed1581d1ef5d42c809a7db1c27614e0a900076e7ce08349ea4797944d41c7bc7 dhcpcd-10.0.1_0.tar.bz2
b19f9c44fa7711b93f62a6e7d7696219a819b7331c16662264acc43f7bd61251 coreutils-8.32_0.tar.bz2
d65348e9abcb961b6d060acb875b6ca3d75c14b1519426075d4644c6196b0ef2 curl-7.88.1_0.tar.bz2
93d5319fc83ea992f1db0fd163b4106b8bbb164475af40ce496244fed2a17422 curl-7.88.1_1.tar.bz2
0a11416b8d49f4fdf81e05ba81cc43fa3f33504f2c493935a3a7e9dbcb10a035 dhcpcd-10.0.1_0.tar.bz2
c4008ae6b168aee4120b0f3624a1875f9e413d8f0c637708b8b04a1fb5be173c diffutils-2.7_0.tar.bz2
bda6afcd3a390a34a57443269a4857ccc470129f7a557981778c145fd841cbd1 dist-3.5-236_0.tar.bz2
c0514138e251062c9ac2ff1e432e01a541777bfd61480c77479ea55f5b75cdd1 e2fsprogs-1.45.7_0.tar.bz2
d7b7453ad400eac1ba39f99971afdc392cb8a92c557ef5d6fd9fa2625124de4a ed-1.4_0.tar.bz2
258282c136145d8fba4d66f7e150800e7ca33e024483083a15d0dba3aeb5e86b file-5.44_0.tar.bz2
1219dc5ffb33251b3b8e5ee2d605f5a648acccbc593ad766004441e9904e350f e2fsprogs-1.45.7_0.tar.bz2
dd2bc9708213816b752ea40cd7ff4d5b89336be47b3c76b2aff683708f9dcbbc ed-1.4_0.tar.bz2
9a680b6aaabd7c301438579389c500cce72472af3d78d8ba8f88c99feb9cc721 file-5.44_0.tar.bz2
5984d3f2d5513dd04dc97619e2809d634fc7e3692f36f770e0202a61b6b2921d findutils-4.2.33_0.tar.bz2
3c85ce52e37c313d699a21cc741d24e808048461b105f58445a645a54ea55436 flex-2.5.11_0.tar.bz2
88d5e3cc92eaeb21f62635d2ca8bfa116d1ccc4067a782b0c3a45488125b358a flex-2.5.33_0.tar.bz2
41902ec0383ea977a8d008dee37150e022e0714cd99f54c37f29c153464b758a flex-2.5.11_0.tar.bz2
b3a8d59229289ca5a1de6a24c9c828d2847144f6662e0d5b7f41e7ff6e57abaa flex-2.5.33_0.tar.bz2
408131b1c033a5f8a6845997b049784be0b466cec107a71270e5a04dae2c1e6c flex-2.6.4_0.tar.bz2
5ff7fbe16b55563719b108260bd6a34ebabab0465d758ca98cba522932532e45 gawk-3.0.4_0.tar.bz2
6de1c1380026ef9948387e665610185b6014f47a80453177a6c81898c95cbbd3 gc-8.0.4_0.tar.bz2
cb1aca35878f7c53e7dc96294ceca2ce3c72cf89359fe2bec46336d5f0849387 gcc-10.4.0_0.tar.bz2
0c58c12e71c8571f9c958dbebf53677cb4612eaa5cfd2aaa9ed7a1b76a081dae gcc-12.2.0_0.tar.bz2
374b54f568d7c67eb91f68a95b09322c9f6dc9c55cc6d49803ca3f5a8a3f6dbc gcc-10.4.0_0.tar.bz2
e2af44250ca4a29d505ddd7182db7f9c702d7dedcc0604d6f8ddac3872a0c057 gcc-13.1.0_0.tar.bz2
b09580c3972ff4e5f6e624bdc83d5328ce017422e0b92a7c170b51b6f04a47d2 gcc-4.0.4_0.tar.bz2
58d0d431bb2e96a273965b5e7aa760fb6961a7f7f2fd98ef5fc5a6b7b44bc989 gcc-4.0.4_1.tar.bz2
a2301d8dbbfbfcdd18444f01848e8e4366780281009640acbd3af0fab9b11aea gcc-4.7.4_0.tar.bz2
36610ec18a01c43b5fa9dc032c7c66fc5a812fbc85f48e86b96b67ffd11b7cb5 gettext-0.21_0.tar.bz2
5a98486bccf976d9077f52ce56ab6a1db94d2888d17fdb87ba81ad2140f206f6 gmp-6.2.1_0.tar.bz2
db3f8088a8aa74a7ff300b45c2070397ed7538fe5cc45480ea968014ccf7bc20 gperf-3.1_0.tar.bz2
c16e9eaab6ac62df3a2a880f35c8da413be150fa00b66f992e37a1b411f32bcf gcc-4.0.4_1.tar.bz2
ed1eadc2b40eb3716801eaeaff0dbbc28c79101cf7880753d150bc8f2a4439c6 gcc-4.7.4_0.tar.bz2
dc67fc1b132fa3945349efe74c5b2197bd0b6babf4d29d2deddd04f09d9af680 gettext-0.21_0.tar.bz2
309282ba840f80b5e10897b1221f3ff3329b9e05b982c788d03652f411974524 gmp-6.2.1_0.tar.bz2
f5917ffad5dd282d5ea17e791b470455c328ea0ebc845ed5ec80937a8d0eb933 gperf-3.1_0.tar.bz2
67d706423e079a9cd764fd9607027d296c0ff2380c1104006a2230a299eb2c1d grep-2.4_0.tar.bz2
d85cff8f9ff76533287891ec2019416fa585815e514743e5b76efd9f17f5ef5c grep-3.7_0.tar.bz2
b38422d646590600444f0ff12fee6fd738baaf471338aa67899db950d3521127 guile-3.0.9_0.tar.bz2
0939a34d58ff31e2c234f6f47f964633ceae4839de49ce368ad027c016850d58 grep-3.7_0.tar.bz2
d4c6b39136bbdb4a213a4229c5c460a6abefcda76285e4019d63e61382fbb8e8 guile-3.0.9_0.tar.bz2
8d2015b87337abbf287f7a39ee4cf53514120b5d3e90a93fe7d533dcc43f14fa help2man-1.36.4_0.tar.bz2
3f06d1a7f1b1770d4550ff6316c7f06fd26e30bddad7c1b665f1fae80e409c8c kbd-1.15_0.tar.bz2
2a661da13801028f5af98e5d9f6de417c21c90df1bcef4809caf0c2094fdd8f4 kexec-tools-2.0.22_0.tar.bz2
e89e4fc8ba4f917f4f609ba781fc13e43d31479d47a9da2ba3bc7ce5fcbbe6b3 libarchive-3.5.2_0.tar.bz2
72a0f7b561b6ef5dd29f9ddb1f4fd61a60230e41c6f18967afa8af40bfdf5473 kbd-1.15_0.tar.bz2
fd35fc5e14e7cb3c018964c43bf24dec2b3575d8fea38da3a2ea93349806a33c kexec-linux-1.0.0_0.tar.bz2
ca33ded1a8769dca42d6a1f9c05395e8da856fd9eecbb747cccb57d20b84459c kexec-tools-2.0.22_0.tar.bz2
a3f47ec4d26387952b22791d4d7d6837b90d81515d0a5ffe2804cf492fb090e1 libarchive-3.5.2_0.tar.bz2
36550df491767bb24d2ccab304ce70a3b4956e7c0c0e0c343d922fd57cdafbdd libatomic_ops-7.6.10_0.tar.bz2
b39826742e236890f3562cdf19492e7ef4224b271f3e75ddeab1f07982b03ebe libffi-3.3_0.tar.bz2
daae709e98d2df2190d1d13b4e86f7f3fe90fa7a975282fe0bb03289b6539f29 libtool-2.2.4_0.tar.bz2
f255cfb75f1764460e60febccfa70fa20bc2ebb7f8ad2629be21fc188fb6dbcd libtool-2.4.7_0.tar.bz2
c1577cee0b82534699dc4385ecea9f521516303f773216d00bc30e4bf0053758 libtool-2.4.7_0.tar.bz2
503007bbcddcf4e49d26514c59b4c9501f8b42f0c994a59dfdc388b1ae6b7900 libunistring-0.9.10_0.tar.bz2
1d07aaf7049be45853fd409340cdb52bb3a1b6dfa4dbc8b69358c1ee966cd67f linux-4.9.10_0.tar.bz2
2fd5bec0c086cb89596f14894cbf078b3d1e990d297ba02b6cc4135e7d64996b linux-headers-5.10.41_0.tar.bz2
3864f2c66516fc4f5086f626f4da2b2a7635e21babca86ba478f866920868e2b m4-1.4.7_0.tar.bz2
680672991ee527836237c98cb218c050cce73af4aa0a2f35eed72cb9e3b4931b make-3.82_0.tar.bz2
7f08b1f57f55f4a2898454c27538e54902b82f3e8ce7cdbeba824211004f067a make-4.2.1_0.tar.bz2
cc203f338771ed1a99df17310bbe3e4885638d42141af8d0b3e8ed987e0fccca make-3.82_0.tar.bz2
6d24960d6a987f68a7e0e3abf6edb52d2e0fe4c86f6ba45327e9634dbf7d40b4 make-4.2.1_0.tar.bz2
17cd976bc0f6e897c6fffe43dd7c55d93ce0adadf1b4dc72925b80e2d266519f mpc-1.2.1_0.tar.bz2
6ddf27c49c59e241ad3dadbb5d7ef94b8c24e6de7b9f8717d5643352e46233e2 mpfr-4.1.0_0.tar.bz2
98a9f55c01ed375fae21913284e7fa07ff434c0810f34d791f3fbaa1df221302 mpfr-4.1.0_0.tar.bz2
a724c91a43e282c3d338a977e4eeac3b970df241db7872f9d5cf27984b609814 musl-1.1.24_0.tar.bz2
2a03a3707593997a0e03ce3aa6b2ee647cf2e5bfe1deb028357a2dfab56e33e2 musl-1.1.24_1.tar.bz2
b79e0f8a39ba8880d43aa27551b72915655c62af39125e1f4ac8f8e69e71aaca musl-1.1.24_2.tar.bz2
a675ead0f146a96973fca9cc9e4f16081b14c26630ae17405e3ba5e9510ff30d musl-1.2.3_0.tar.bz2
054c6a5f1c07d124b701e590267aa8fb2ba1c88bed9a69a473724f8534cdb728 musl-1.2.3_1.tar.bz2
5ba73e250b0325f690b2c5c3afd4a14cf4612c682e9b358727ebcb7bc6b758ef musl-1.2.3_2.tar.bz2
e0c91898e771c65e6a462600243a7858b069db5726680193f86d7dbac3f740ae openssl-1.1.1l_0.tar.bz2
69daf6ffbf26fea500426c6936e5a16e82833f03ad0dc6109697f69a8516b4c7 patch-2.7.6_0.tar.bz2
81f79a0faf58e105c5f12d9f538d3ea7578a3b361e633ab8f47324ec23ec9de6 musl-1.2.4_0.tar.bz2
6dc5e763b747b66f72692c6820d7f46b7f4cf2e2fe05229a1d01c03919c1c936 musl-1.2.4_1.tar.bz2
538a65e8a55d476099f403ef4b3d13265022efb34d365124663f320262e04f3a musl-1.2.4_2.tar.bz2
97351f0df3d08ffdbe728a4b7fb36f91b1d83396be13ef6005ce62b9b62a9e07 openssl-1.1.1l_0.tar.bz2
61eedd6037ed342d069c48cf81792f9bd131ae2e9b937cd5c5e799f62d88c15c patch-2.7.6_0.tar.bz2
914a7abf36a64723b6e9f9b0b6ccd19c8e544fa798896a2bb1151dc341890c22 perl-5.000_0.tar.bz2
887d835562d471653bcda60e652fceb4b3ef58a83321a4eb5af0431dc182781b perl-5.003_0.tar.bz2
a2e1f93eeaa3985c660cc73645930489bad6d68011e4ae6892c6b09c8f02395b perl-5.10.1_0.tar.bz2
8f2730b029a4e62792460ea0448b8f1806d15e5175f3004b31b153d16cb7f4d1 perl-5.32.1_0.tar.bz2
74d64a8af080022432fa94dba449090419d25b103d247710dc0b6102a4ad86a6 perl-5.10.1_0.tar.bz2
71ad3cadba5801cb19d4520825d4b3606713807b1eaa5eb3c49b3149bc2675ad perl-5.32.1_0.tar.bz2
9fa8850897248d77d554caa2b3d52e7890308cbf28750ffc24c09f498aee563c perl-5.6.2_0.tar.bz2
b86fc586d72a6d204d0b9017afe17aa2439529e13f43befc56648b78de17c8f8 perl5.004-05_0.tar.bz2
451ae6bb6e996a1c857fe92ec379654413fadec180c6477cf5fd4b5d7a079e26 perl5.005-03_0.tar.bz2
d0c03003eaf21045e13afd2551df952a568e97cea91dec7edb0b829016d434b4 pkg-config-0.29.2_0.tar.bz2
bbe7955df4eec1e4c21ae397545943abc0ef55d1b136d6f30f1550f82cf0cb22 python-2.0.1_0.tar.bz2
281cc79f24007f4667ae5914f89c671be3b2d008fb5296d66b65314d30a7e768 python-2.0.1_1.tar.bz2
66f1571ecc2f00cee322e419f0d53127b2465330bbd8fe01d2fe0af91b9084fc python-2.3.7_0.tar.bz2
7c65497273651adda57d156f7380f07bbeb73dfa96fd6432ed0e3b82a44b7d65 python-2.3.7_1.tar.bz2
203119d5d6bc56f9253abbf6583c9a8bccd00e7b34d2a126b7f4c61294abb0d5 python-2.5.6_0.tar.bz2
b8e03286ff4aae2a47e61dd7a11d4b272717a181cbcfa8da3fee91e67c007f94 python-3.1.5_0.tar.bz2
4857037c9db993f8feef1de8e4918692a066771713aa25b66e69392b987a0122 python-3.1.5_1.tar.bz2
284ef5e0c44e5e3f2a2e6c3a9dd55ad26a200d6701279383cdbaca0fb2dc831b python-3.11.1_0.tar.bz2
8bcf91d546333a2af3bfef23aeb0f3e98979715100b48a7c373cd2f22ebb6fb9 python-3.3.7_0.tar.bz2
4568978b5bc0cb501ff6ef5c632c0018ca0c1ed6361b8d18c2fd8bf3d03fc62e python-3.4.10_0.tar.bz2
f19dceb161ed1d1d7cdad8ef54d2688a022ab6e26fe73e66d52b2dc362acb3c5 python-3.8.16_0.tar.bz2
1b9d4260edf7b2241d10e4c4ad17d0f90047bd4bf42f2487a7133902529e9dfe pkg-config-0.29.2_0.tar.bz2
5c4d4ff26c44b92caf08350f0e24f97b343961c4fd73f511f6bcef6a5e645b3f python-2.0.1_0.tar.bz2
f0c7bb60faae8eaf6960dfaad43acc7e30d5487ae114e44ec3c184c946adbc6f python-2.0.1_1.tar.bz2
5163e798e204b0e4ea1ab5d513ad618e11fb6dd01414991f7c7408dc74d54400 python-2.3.7_0.tar.bz2
ce21de104f50a65012f42df46b53beaf1dc2d8c5bf8f09ad20f80f64a2eb4d68 python-2.3.7_1.tar.bz2
2788ab6ae1c411898de035aadfdbed9b77812c73d9c68a79813390d6f1e3f87f python-2.5.6_0.tar.bz2
eba41b855f378e004648b1b3453485d2d4401cd72cf7b993c1be06b7cebf71a2 python-3.1.5_0.tar.bz2
e10a0eceb1fcb9ca80dfcaf53bfa0d311adbaccdaf6846a6c5abfbea1e7db879 python-3.1.5_1.tar.bz2
bc87d4b8b0d2f26ed7d632c73ef9cd937bc9b6cb3bdcb57fdea78d29e38722bc python-3.11.1_0.tar.bz2
be89de80f75679c07e59f72b8d3ee4f14edcaa306dccd9d8a2c8adbb83245a43 python-3.3.7_0.tar.bz2
e4a6dd6ff78b4f46e17e2b867e1562e1fa3a6c75db890c136818382d31619b78 python-3.4.10_0.tar.bz2
1e0c73270bec02c323981d75ce4c731677672719ea34abf06ba145b56aae178e python-3.8.16_0.tar.bz2
6081832f1fc258df7dd927986821991b49fa78a71b76f4b37b5c34a8ebc9bc86 sed-4.0.9_0.tar.bz2
b3dfb430d6657233cd129c9838c2ab0de3cb02762b15a448b1a82d42fb69ffc5 sed-4.8_0.tar.bz2
edcb2a8665c58c08ca90f4e612c6931fd7a6dc95b3d6f38d1d08c1971d29773c tar-1.34_0.tar.bz2
a07edeebe88d27afe01ae4b9c2fec7d26f54d87928976927f73d9dba5f50782b tcc-0.9.27_0.tar.bz2
e58d8ec46c5b31175de9598bf0da214b88ccbd4cca7a787f3d048c44edaf3ceb sed-4.8_0.tar.bz2
912d8f344104f1322255d6210c7c7e1371413ab530b2c6796e6aa565c74bf647 tar-1.34_0.tar.bz2
a297b20252833d5c7b95ca343c85e84f9e5262e71beab9176ccf542833b75b4e tcc-0.9.27_0.tar.bz2
41a4b0fbf461dd26ecd31d77b300c979a4decae185c9e2d50c0470bc49d0b893 tcc-0.9.27_1.tar.bz2
cbfc578c709f677ec3e9792a8620e4e2a88d13d93969fd54aac93e4a29c2604d tcc-0.9.27_2.tar.bz2
2b503cd31d3326ac1ed0eb9f506ac93c93770da51164e152a812cd248961069c tcc-0.9.27_3.tar.bz2
ff1ccbe06d00d4c16f76640372e5370b6cf87fc5b9ea4f180c988188a3becc0b texinfo-6.7_0.tar.bz2
8e5d7ab54f224da30414fc8b53b47003f16a0cfe24850494ff02f25b4dea29ab util-linux-2.19.1_0.tar.bz2
c992ffabed4278588590352c824df2018e6a4492ca83865eba560692765fde11 which-2.21_0.tar.bz2
5ebfb0894b25606432d120eefabe5335abcbf123bbad23fb11871b74acd6a7e5 xz-5.4.1_0.tar.bz2
195c26bb0642eb146c6f113fe3dbbe516a35a514aee7d2fe4bcd15addf1b0f43 zlib-1.2.13_0.tar.bz2
50ebaa1d8fcc4a03a43d431eb71e2f435cc8712ae47d400564df3716037d553a texinfo-6.7_0.tar.bz2
a8e53f863b2ab7aa027ed5522702b451afd524b2c09d2f3d0daba1f460b26c91 util-linux-2.19.1_0.tar.bz2
5a1fdd2b42080f3b4808ceb1bf80a95873e614a25524545e6803b7d9f1fd5605 which-2.21_0.tar.bz2
17aa8a94450f3bb9fe6f2c6f59dde8aa6194f951bf3ab58249cb75ad472e864d xz-5.4.1_0.tar.bz2
ca8ec9876a7334f5f87e1159e0efe343b8b497ffb0dea8b548223035ecd67f9e zlib-1.2.13_0.tar.bz2

View File

@ -1 +1 @@
a11ab8528cd79c67a0514ce2581ee81f50398cea1b4c616a22c488c0cc2d619e /usr/bin/bash
79d7f5e9f4f735575a6a163023150017587a97c5f911d81fc91380cea8bb4362 /usr/bin/bash

View File

@ -1 +1 @@
532b2455e0b0c6fd3ef067776a61ebd0620437d1f55145ce56ce1ddad23844c5 /usr/bin/bzip2
ce63f5ac31e9a0b9740df12d8c1ce1dd635aac270687e5ede2e32990f301ebe2 /usr/bin/bzip2

View File

@ -0,0 +1 @@
4d1a7b8a0e42f278df20893610dd37dec62b609c2c342d9252917907e4d73c03 /usr/bin/checksum-transcriber

View File

@ -0,0 +1 @@
b6145df4b2a92d5ee75902f4367e7a1a5456a5cef7a2e1365610637b054c477a /usr/bin/checksum-transcriber

View File

@ -1,54 +1,61 @@
dafe043ca795c8bea27a6bc5cbdfbc4f59671809f6f9774b9e94831ea6405a80 /usr/bin/install
78cf8e0ee96e7428496d0fdccc60e8465f7aaf3728a463123fefb8f46bc5d073 /usr/bin/basename
70146b4ce3092cd7ccaf933d2eb6e93c1b12358240838f66a1a7743a8100e870 /usr/bin/cat
c0b5b1eb102784c8202ec82990fffc4c57ba0da5724ac44544994a1d5a50615f /usr/bin/chmod
113910e58f8bb9506f5fd3c5394e7792b47bf9c7e7479941882c1368481b2e40 /usr/bin/cksum
2f666cac19e38d7653975e68485ade9f6a4bb9414fa9364716414b294f3720d1 /usr/bin/cp
27f6fe3aa713d62cd9367ccafb2c52029f1f87e2d07cbadf7b71023240149fda /usr/bin/csplit
11068650333e2c0af8e9c8abb79c3d5c8fbe261b5a72b454ca632ad3ec5b965b /usr/bin/cut
ecbbb0202e9b8274c93e41d831eddc809f7714c6e8004136e2fc7f1a0a30e799 /usr/bin/echo
a2962caac7a407f50a94c1d6496de9ca65c8ff66a3aa3e814a69f6aa3253dea2 /usr/bin/expand
1a851ce640196e1562d392f2a71cf294937513a43fd9b52e146c803722bd6c9e /usr/bin/false
fda23f5d23a65799794b49b3befa8d515e1e0f221c4b67e9dead07ca4b492c4c /usr/bin/fmt
2241e52196cc6f204528c32d844361cb917031cdfe5efda90ee6f2f3b2fb6a1a /usr/bin/fold
813bc16b973c2d13b96980d22d8ad49974aac356226781868af68973ba8229a2 /usr/bin/head
fd55b2ed55a27de3c57dccf64c1457613a109c231dc0f8a40b650fb2f6114ab2 /usr/bin/id
9cb2877544e4dfc2521d54c3b18811dad170a6b31aeaa7556b73edcf57cb6668 /usr/bin/join
a532dfb88e4226ba1600ab8eb3c7a2801b6b7bc2d50200ba70470723322babfe /usr/bin/kill
495a20a8342ab6d61806342ef61d8ad135a7c8f2bfa8a2edbd6cb5e839d577a7 /usr/bin/link
38b90400c1be7792872bbb0781627b2dba35a70abf41899e9ee19d59ef351fe9 /usr/bin/ln
323097645c46aab33711f562ff7ed1fda4609970d7e55e6ab2fd31dd1ed0bfb0 /usr/bin/logname
354547f7467df48dd0bbaf9c7f36c8168dc8a38ccfe97409847dbb50c05cba90 /usr/bin/mkfifo
2326009b57ace4bc7da598d322fcf7c2cdcd702723c6cdb81a50a1ceb0631933 /usr/bin/mkdir
f964752c462185f7ea54246b4e53bca7ee84cfc4b590bef04baa8700312e2224 /usr/bin/mknod
a9311865c1e95766e3be810617fce3892d5ea693fd3cdb26d680f75c579670f2 /usr/bin/nl
c68b80b2dff6423f5c92ec1cf02f30c61c9560f2a3499acf617aeee7c407d7b5 /usr/bin/od
775ec8b0a5c37a7360535c1c040b5c98e6177e69f978f520ee928efab39ed519 /usr/bin/paste
b45c0d13af7f9b1cad618fdcd48ec7db80d9e59acf37ced076c4a65412b3a5a7 /usr/bin/pathchk
6375dd4cb3d1326c895844fa7128d3d7c88df9da7b85830e23bc61d99e0bc186 /usr/bin/printf
9665a522e43fb6d2a7d66c217873cc9eb02936a51ff97b426214316b76a92792 /usr/bin/ptx
7af4c3a707f382730836223ce8651850e78e9aac4079cf2e0e7996cac8449011 /usr/bin/pwd
6c2fc79aef8bcb5ce79961481b6d30fb5bf3648d71e60ab1df9a75621f0471d0 /usr/bin/readlink
3249f3b8a09e6862ce1a0c09b4e805fa03f6cfef70ee81c70704f0b481b20f45 /usr/bin/rmdir
014f6c56864a02903fcddc8f681459ab455524f12ace562fb4ff50b67cd07dab /usr/bin/seq
de46fe9655bad40463d8af57ec6fe0dd4d56fb4056a7fcef9e57eebf9c497959 /usr/bin/sleep
7d62c06a21c4eb9989f01bacf406bffe1b7e9d69596eac4fa6373e9ce7f7cb3b /usr/bin/split
00a0f9b9dc137193e6ddb0b7dba679ee98865dfc69589bcb619de0044fdb5550 /usr/bin/sum
38b82cf9f2a4818061cabc32e78df8cc552c1384cecf669b8a221f44fb1cf06b /usr/bin/tail
e2683f200a8c14eef6d92d6ee3b4fdbc48b4f1cf5ea58ccab57259f6b8a315d5 /usr/bin/tee
ff9492d8e088acf1a689e907c9550ba78029a778bd2818674d4989cddbc28853 /usr/bin/tr
159651d7a72db3e4752ee184288c55a1fee0484443aa67e4f3a9984ad7320e78 /usr/bin/tsort
9f6f55239fa384564f78347b70c1287310283121446d63071045f6fd3eac90b1 /usr/bin/unexpand
1c6c0306829c5c0695d9e5336682aac3494eb78b86b0806fb8b94b4edbe9e670 /usr/bin/unlink
c601ba79b716d782bd8f01e2e3804bd2a66fdc6519c7c27dc709def51558ed53 /usr/bin/wc
762c3ac63eeafd49de5f324b16b1895167110e2ddee553c6f5198c7d71880caf /usr/bin/whoami
e0a3acd8a5ea91c112bc63281f54a1e56d11991f0ec3b72d5a5becaf11bf6c9a /usr/bin/tac
a728386f022a00b79a683ab39f9f85a2561e110ff6e6786d304320d8ed9e4e97 /usr/bin/test
3948a25742e25552b30b018269038723d7f6eb80a4c18c2f85bb84fe13729930 /usr/bin/touch
f4f039c380c8f979bd40b02fc458840db3f1086d7e7f9a209e860340a548a42b /usr/bin/true
43e5a7794084a505fdfd367d6d66e5f0b8ba3c3d843cdc6036416d49c68b79b5 /usr/bin/yes
3e187de38d3c75ef52d74c4bba8dae228dad81e81e9209e3994a6bffe8ee09c9 /usr/bin/ls
4917fb8bb8a4fb9e24b6cc27de9dd1944acef84b8f5f9b150c0aa9f87b37f6ca /usr/bin/md5sum
8c8ed60125c5b34b4d3d156baf2b4c682dee313bc795bb1b4b15427827d62ca8 /usr/bin/mv
48c1f9f1847bff208be5bf04ea5897a0c1454f5b8e748a451e755631519c85f1 /usr/bin/rm
5d717b9176ebb05216c869e7ee9711e0fdc6ac2f8dec15d9e94a2ed35832c9c9 /usr/bin/sha1sum
292fcbf47ee383832767bb2bb8b378f96a14dd68725270ae0db5539a94d031f3 /usr/bin/install
a57f7328c2a81bd50fe5c83015406634baa8747211f912c9090e162e70735110 /usr/bin/basename
f2e6cf099ee87d2f4a3b1e62db57075fab98ee3d2d5839ff9e81eb0ac0e37137 /usr/bin/cat
9c77061b24adf9ba42951f8008dc457bcefff17b87d867f09a61f0c96817f083 /usr/bin/chmod
669211c275348cff62c580d96119af225735746c0168edb63492116bf9647bd1 /usr/bin/cksum
5be51d83898d33ffced444433fb977bd576e7bd3c37330f311458502f990083a /usr/bin/cp
e72996b66d573cfb1f27120ade2fd29bc9582e79057d8d43b6081aea510562d4 /usr/bin/csplit
a22cc2f79c70fac946e79fd93551578505c69a76beba68cbebb8d32e323a3e49 /usr/bin/cut
9e2b178412eaa6b8442940b632452d931af50dc8be1c770d47e752248d9fd4ea /usr/bin/dirname
42d8967cdfdd14e9f6f4ad6feb3e899f491ce2dcb6cb62f5160b6bd217bc4a04 /usr/bin/echo
dda7112d7c33fe77486f4336d5d57cc3228ce9a18082332250af2c0be57391b0 /usr/bin/expand
6f32c1383580aa37c9877eaed65090839dd3d12d8868ded3147c1adbdeb9a909 /usr/bin/expr
d8eaa5d9d8e601fdbbe4715e5632a55efa986e691027590ac5905c150d8e4f94 /usr/bin/factor
9f1f38e219d15070ece6229c3f75e40f11e5a3aaf426ee17745b95bb5205c94d /usr/bin/false
98915280c8bad059cfb1bf99636dc69bf33532f7a982bd086d2114e0daa39a76 /usr/bin/fmt
a8f6d99bc641f486ebdbc1bc5adb1b9fa424aceb4d9e0cc62ce08ceb43541c88 /usr/bin/fold
4d215db24218e8b6dfeeea05268477fac56b11651d789a5972945a15ab7b2917 /usr/bin/head
52718fa65c99150a773da13f4b155f8843391219f89d4aa0d5fe1d3cc9cf36b0 /usr/bin/hostname
fc845714f8d461698daaadcd7bb507d4228c09504b886a679c129226727186d0 /usr/bin/id
2fbe6af8f5c01521edacff2d145b8ee392489684e1624157e1e1841aade290a2 /usr/bin/join
ea4e13ec9e2f622600d961be4f41de96251e429e7ed8a881be8fb70c379b80de /usr/bin/kill
5c606a0febaeca39455847b11ea2ad1445cd4bfd40e187e4e3499c23e0dc2d43 /usr/bin/link
52c561306a91197034106b20678da1b06e77228ab77a3ce40639fa1c132d44bc /usr/bin/ln
2d7450a962ffdb434d2061aa36e74aa18e1e3e5d237eb39ccd3851a34a819694 /usr/bin/logname
bb651823aa51315576d30c79c84248577bce2daab9be4cbcaedabdf2aef882a5 /usr/bin/mkfifo
051a8465ba5e34d0f8c84f34f618b2ff059e566bf52d36c572d164762eca3618 /usr/bin/mkdir
50be768057f0284b4b9cc034b990cc739228b96449c1c2062d9d98c778b1d4b5 /usr/bin/mknod
e7c50e668907ce88388f127b2f07aed6dc10ddb6a8c9313f4269ed5b7e923c92 /usr/bin/nl
ae1033bcc79daca95df1feefa3b4d64c0313cc2bf021efcf14760cccc5b42215 /usr/bin/od
79aa11388de19028de66b06ce6e0983ba0d558b146aed51ce293d599fcaec627 /usr/bin/paste
70eb12b8db8550d5b642df34d28f19e76a768a425efccaa8dfaee18c41db1228 /usr/bin/pathchk
1fa81f879efc48472ab093eb82edc429736a10078aecab04d2b2cfb9634b47ef /usr/bin/pr
8913fd449afc122c42b99b89b04428a22e7f07e032eaa530cbd076e611849a23 /usr/bin/printf
b87663d81cc361221e643ca9f064995c7333f7c650f918393c9bb4482d8667e3 /usr/bin/ptx
d31910a5308cfe80f2136677234d515728a06c84f60441f131d2b8dd878ce3aa /usr/bin/pwd
84290d1d0a662ffc8d0ec314bbffa53aaacdae4104d8ba8f9a56d8896e97923b /usr/bin/readlink
55dfb9a4c9c1f4efe74aaceaad37baff1e9f24acea83ac92a7008b703394edd4 /usr/bin/rmdir
fec6d4f310ee0ad79fc76a23ed440b916502bc30af41c4a5e1ed578d2dca91f3 /usr/bin/seq
1d0c39f163aa5029d867a091e5d1963b8e55aec09c33cd99da237df7e5b31e60 /usr/bin/sleep
355ba0b4e1e655cfde75c493d907a68dbe2acf12adec88eaad019f231de1e75b /usr/bin/sort
96ab28039a859a5b78f142aabe75f55b560e340e350751ce3696d02903dfb31f /usr/bin/split
8852646f277cfbb01eff42c903f03248a7e3e9833cf3655c78a34f02687872ee /usr/bin/sum
79b02fef988b77c1e3adee565aa474aec05e522ef4a5fd4635ca9bb6b1e65b6c /usr/bin/tail
91038661556a3c6e91d4f45b41e44388bf62aea5a37abeca3395740344e03890 /usr/bin/tee
0c4517c49db58cd700f588281557514894e5c924bfad5df129a70ff46d4a8dae /usr/bin/tr
2d897818467998063800a4e92c50fa855b090202da11831f87be17665fd44a29 /usr/bin/tsort
f8ca50f4d91ef6233049e2bd68cf6aa05a300a16d9fba2dce2e90e085ab8f401 /usr/bin/unexpand
c8066c50b1a6f654a4cd1adc69e3a7fd58c6fa6ce987617c54b0d2668cb39daf /usr/bin/uniq
93feee6a854be3a733f9e7a4e421e274f0781d235c02421b837fee3134c47897 /usr/bin/unlink
a31f4b48b7517a348b44621e8d572eda835ffcdb7a97f64b1d7e78d67a38c84f /usr/bin/wc
fae709b45aca8b7e4630aa853681b6f1d053135b4a5c8f72477a1e311f1e4616 /usr/bin/whoami
11a17c10d03e56012685851f96145fe8a4701fd4ecbf05bad1c19b92fe97f347 /usr/bin/tac
ceac9200b63c7b8b3cda19ca4e90b7d619c3bbd412834a7cb14ae022e5f05fa2 /usr/bin/test
958a28e582bb69c684f666e2b47b98ff27d3b9a6177549444b85c03aad746c3d /usr/bin/touch
05dc8f5f6d78716f649eb7ad5d355a67b6e133e241efcd0b99d5bd1b3c01b3b1 /usr/bin/true
2203da05ecbf1d8be50e4c9669d78f8c45aa09055e55486322e18f9874cb3b4e /usr/bin/yes
7ec9570369e239d3f295490250fc0d79c32fd6cf2d7d4eb02042c56c67d8bc86 /usr/bin/ls
8323119905c2d42d9aefafb214ae314b7b9103247263328472d909fd794ffe8a /usr/bin/md5sum
e2ed596c2adba6cab2853cea203f66bf5aeee85d3424685acffc567dc417459a /usr/bin/mv
cb67b297e4e4f124f6c0a2a392fb8934ea8c07af4155bd7d49f367b9c77f4719 /usr/bin/rm
b51e023e8e70a8cc6dadaba1a789c5c8c96dc526f224a1e8de44e57aad31ca7a /usr/bin/sha1sum

View File

@ -3,6 +3,7 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2023 Emily Trau <emily@downunderctf.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@ -39,6 +40,9 @@ patch -Np0 -i ../../patches/ls-strcmp.patch
patch -Np0 -i ../../patches/touch-getdate.patch
patch -Np0 -i ../../patches/touch-dereference.patch
patch -Np0 -i ../../patches/tac-uint64.patch
patch -Np0 -i ../../patches/expr-strcmp.patch
patch -Np0 -i ../../patches/sort-locale.patch
patch -Np0 -i ../../patches/uniq-fopen.patch
# Build and install
make -f Makefile PREFIX=${prefix}
@ -58,12 +62,16 @@ if match x${UPDATE_CHECKSUMS} xTrue; then
/usr/bin/cp \
/usr/bin/csplit \
/usr/bin/cut \
/usr/bin/dirname \
/usr/bin/echo \
/usr/bin/expand \
/usr/bin/expr \
/usr/bin/factor \
/usr/bin/false \
/usr/bin/fmt \
/usr/bin/fold \
/usr/bin/head \
/usr/bin/hostname \
/usr/bin/id \
/usr/bin/join \
/usr/bin/kill \
@ -77,6 +85,7 @@ if match x${UPDATE_CHECKSUMS} xTrue; then
/usr/bin/od \
/usr/bin/paste \
/usr/bin/pathchk \
/usr/bin/pr \
/usr/bin/printf \
/usr/bin/ptx \
/usr/bin/pwd \
@ -84,6 +93,7 @@ if match x${UPDATE_CHECKSUMS} xTrue; then
/usr/bin/rmdir \
/usr/bin/seq \
/usr/bin/sleep \
/usr/bin/sort \
/usr/bin/split \
/usr/bin/sum \
/usr/bin/tail \
@ -91,6 +101,7 @@ if match x${UPDATE_CHECKSUMS} xTrue; then
/usr/bin/tr \
/usr/bin/tsort \
/usr/bin/unexpand \
/usr/bin/uniq \
/usr/bin/unlink \
/usr/bin/wc \
/usr/bin/whoami \

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,26 @@
SPDX-FileCopyrightText: 2023 Emily Trau <emily@downunderctf.com>
SPDX-License-Identifier: GPL-2.0-or-later
strcoll() does not exist in mes libc, change it to strcmp.
--- src/expr.c
+++ src/expr.c
@@ -332,7 +332,7 @@ nextarg (char *str)
return 0;
else
{
- int r = strcoll (*args, str) == 0;
+ int r = strcmp (*args, str) == 0;
args += r;
return r;
}
@@ -668,7 +668,7 @@ eval2 (void)
r = eval3 ();
tostring (l);
tostring (r);
- lval = strcoll (l->u.s, r->u.s);
+ lval = strcmp (l->u.s, r->u.s);
rval = 0;
if (toarith (l) && toarith (r))
{

View File

@ -0,0 +1,37 @@
SPDX-FileCopyrightText: 2023 Emily Trau <emily@downunderctf.com>
SPDX-License-Identifier: GPL-2.0-or-later
strcoll() does not exist in mes libc, change it to strcmp.
hard_LC_COLLATE is used but not declared when HAVE_SETLOCALE is unset.
--- lib/memcoll.c
+++ lib/memcoll.c
@@ -47,7 +47,7 @@ memcoll (char *s1, size_t s1len, char *s2, size_t s2len)
s1[s1len++] = '\0';
s2[s2len++] = '\0';
- while (! (errno = 0, (diff = strcoll (s1, s2)) || errno))
+ while (! (errno = 0, (diff = strcmp (s1, s2)) || errno))
{
/* strcoll found no difference, but perhaps it was fooled by NUL
characters in the data. Work around this problem by advancing
--- src/sort.c
+++ src/sort.c
@@ -91,13 +91,13 @@ double strtod ();
#define NEGATION_SIGN '-'
#define NUMERIC_ZERO '0'
+/* Nonzero if the corresponding locales are hard. */
+static int hard_LC_COLLATE;
#if HAVE_SETLOCALE
static char decimal_point;
static int th_sep; /* if CHAR_MAX + 1, then there is no thousands separator */
-/* Nonzero if the corresponding locales are hard. */
-static int hard_LC_COLLATE;
# if HAVE_NL_LANGINFO
static int hard_LC_TIME;
# endif

View File

@ -0,0 +1,68 @@
SPDX-FileCopyrightText: 2005 Paul Eggert <eggert@cs.ucla.edu>
SPDX-FileCopyrightText: 2023 Emily Trau <emily@downunderctf.com>
SPDX-License-Identifier: GPL-2.0-or-later
uniq: don't assume fopen cannot return stdin or stdout.
Backport of https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=786ebb2ceca72f69aa2de701671fb41f53cb1489
--- src/uniq.c
+++ src/uniq.c
@@ -30,6 +30,7 @@
#include "error.h"
#include "hard-locale.h"
#include "posixver.h"
+#include "stdio-safer.h"
#include "xmemcoll.h"
#include "xstrtol.h"
#include "memcasecmp.h"
@@ -267,20 +268,26 @@ check_file (const char *infile, const char *outfile)
FILE *ostream;
struct linebuffer lb1, lb2;
struct linebuffer *thisline, *prevline;
+ bool is_stdin = STREQ (infile, "-");
+ bool is_stdout = STREQ (outfile, "-");
- if (STREQ (infile, "-"))
+ if (is_stdin)
istream = stdin;
else
- istream = fopen (infile, "r");
- if (istream == NULL)
- error (EXIT_FAILURE, errno, "%s", infile);
+ {
+ istream = fopen_safer (infile, "r");
+ if (! istream)
+ error (EXIT_FAILURE, errno, "%s", infile);
+ }
- if (STREQ (outfile, "-"))
+ if (is_stdout)
ostream = stdout;
else
- ostream = fopen (outfile, "w");
- if (ostream == NULL)
- error (EXIT_FAILURE, errno, "%s", outfile);
+ {
+ ostream = fopen_safer (outfile, "w");
+ if (! ostream)
+ error (EXIT_FAILURE, errno, "%s", outfile);
+ }
thisline = &lb1;
prevline = &lb2;
@@ -377,12 +384,12 @@ check_file (const char *infile, const char *outfile)
}
closefiles:
- if (ferror (istream) || fclose (istream) == EOF)
+ if (!is_stdin && (ferror (istream) || fclose (istream) != 0))
error (EXIT_FAILURE, errno, _("error reading %s"), infile);
/* Close ostream only if it's not stdout -- the latter is closed
via the atexit-invoked close_stdout. */
- if (ostream != stdout && (ferror (ostream) || fclose (ostream) == EOF))
+ if (!is_stdout && (ferror (ostream) || fclose (ostream) != 0))
error (EXIT_FAILURE, errno, _("error writing %s"), outfile);
free (lb1.buffer);

View File

@ -28,8 +28,11 @@ src_prepare() {
}
src_configure() {
# defrag fails to build with musl 1.2.4
./configure --prefix="${PREFIX}" \
--sbindir="${PREFIX}/bin" \
--disable-tls \
--disable-defrag \
with_udev_rules_dir=no \
with_systemd_unit_dir=no
}

View File

@ -1 +0,0 @@
dd9e799311b3c505fa8efe045b969b851c60499ab41db546e5c8b545b3e19ec8 /boot/fiwix

View File

@ -1 +0,0 @@
https://github.com/rick-masters/Fiwix/releases/download/v1.4.0-lb1/fiwix-1.4.0-lb1.tar.gz ff57d1fbf0547a27dec4d7146eb9c17d01158ca5886de54e5b9bac2bec473ef3

View File

@ -0,0 +1 @@
eda65efb4ca7b1e37cb5e0872e8267251870cdf86b341e6d967c856a926cc3f5 /boot/fiwix

View File

@ -18,9 +18,9 @@ cd build
untar --file ../src/${pkg}.tar
cd ${pkg}
alias as="tcc -m32 -march=i386 -std=c89 -D__KERNEL__ -DMAX_PID_VALUE=64000000 -DCONFIG_MMAP2 -DCONFIG_64BIT_SYSCALLS -DNR_PROCS=4096 -DCHILD_MAX=4096 -DOPEN_MAX=1536 -DNR_OPENS=1536 -DINIT_PROGRAM=\"/init\" -DUTS_SYSNAME=\"Linux\" -D__VERSION__=\"tcc\" -traditional -I/sysa/fiwix-1.4.0-lb1/build/fiwix-1.4.0-lb1/include"
alias as="tcc -m32 -march=i386 -std=c89 -D__KERNEL__ -DMAX_PID_VALUE=64000000 -DCONFIG_MMAP2 -DNO_CONFIG_OFFSET64 -DCONFIG_64BIT_SYSCALLS -DCONFIG_KEXEC -DNR_PROCS=4096 -DCHILD_MAX=4096 -DOPEN_MAX=1536 -DNR_OPENS=1536 -DINIT_PROGRAM=\"/init\" -DUTS_SYSNAME=\"Linux\" -D__VERSION__=\"tcc\" -traditional -I/sysa/${pkg}/build/${pkg}/include"
alias cc="tcc -m32 -march=i386 -std=c89 -D__KERNEL__ -DMAX_PID_VALUE=64000000 -DCONFIG_MMAP2 -DCONFIG_64BIT_SYSCALLS -DNR_PROCS=4096 -DCHILD_MAX=4096 -DOPEN_MAX=1536 -DNR_OPENS=1536 -DINIT_PROGRAM=\"/init\" -DUTS_SYSNAME=\"Linux\" -D__VERSION__=\"tcc\" -I/sysa/fiwix-1.4.0-lb1/build/fiwix-1.4.0-lb1/include -O2 -fno-pie -fno-common -ffreestanding -Wall -Wstrict-prototypes"
alias cc="tcc -m32 -march=i386 -std=c89 -D__KERNEL__ -DMAX_PID_VALUE=64000000 -DCONFIG_MMAP2 -DNO_CONFIG_OFFSET64 -DCONFIG_64BIT_SYSCALLS -DCONFIG_KEXEC -DNR_PROCS=4096 -DCHILD_MAX=4096 -DOPEN_MAX=1536 -DNR_OPENS=1536 -DINIT_PROGRAM=\"/init\" -DUTS_SYSNAME=\"Linux\" -D__VERSION__=\"tcc\" -I/sysa/${pkg}/build/${pkg}/include -O2 -fno-pie -fno-common -ffreestanding -Wall -Wstrict-prototypes"
cd kernel
as -c -o boot.o boot.S
@ -42,6 +42,7 @@ cc -c -o sleep.o sleep.c
cc -c -o signal.o signal.c
cc -c -o process.o process.c
cc -c -o multiboot.o multiboot.c
cc -c -o kexec.o kexec.c
cd syscalls
cc -c -o umount.o umount.c
@ -278,6 +279,7 @@ cc -c -o floppy.o floppy.c
cc -c -o part.o part.c
cc -c -o ata.o ata.c
cc -c -o ata_hd.o ata_hd.c
cc -c -o ata_pci.o ata_pci.c
cc -c -o atapi.o atapi.c
cc -c -o atapi_cd.o atapi_cd.c
cc -c -o ramdisk.o ramdisk.c
@ -321,6 +323,7 @@ tcc -m32 -Wl,-Ttext=0xC0100000 -static -nostdlib -nostdinc \
kernel/signal.o \
kernel/process.o \
kernel/multiboot.o \
kernel/kexec.o \
kernel/syscalls/umount.o \
kernel/syscalls/getgid.o \
kernel/syscalls/getppid.o \
@ -529,6 +532,7 @@ tcc -m32 -Wl,-Ttext=0xC0100000 -static -nostdlib -nostdinc \
drivers/block/part.o \
drivers/block/ata.o \
drivers/block/ata_hd.o \
drivers/block/ata_pci.o \
drivers/block/atapi.o \
drivers/block/atapi_cd.o \
drivers/block/ramdisk.o \

View File

@ -0,0 +1 @@
https://github.com/rick-masters/Fiwix/releases/download/v1.4.0-lb3/fiwix-1.4.0-lb3.tar.gz 525a24e32571e574da76e2a8c898f4eab371dfb85302d545c498a21c8028283d

View File

@ -1 +1 @@
6608aee8c4a8fdb0945e8b7b0a6f9fe3ca5336394bbcbc564879971e0129a6f1 /usr/bin/gzip
2eea6424aebf9d68e674c48c729e2eff72cfe330f5d4a5cc3918b7275c36e679 /usr/bin/gzip

View File

@ -26,6 +26,18 @@ cp ../../mk/main.mk Makefile
catm gzip.c.new ../../files/stat_override.c gzip.c
cp gzip.c.new gzip.c
# Remove generated crc table from util.c
patch -Np0 -i ../../patches/removecrc.patch
# Since IO redirection is not available yet, patch makecrc.c so that it writes
# C code to file crc.c that can be appended to util.c
patch -Np0 -i ../../patches/makecrc-write-to-file.patch
tcc -static -o makecrc sample/makecrc.c
./makecrc
catm util.c.new util.c crc.c
cp util.c.new util.c
# Build
make

View File

@ -0,0 +1,31 @@
SPDX-FileCopyrightText: 2023 Paul Dersey <pdersey@gmail.com>
SPDX-License-Identifier: GPL-2.0-or-later
Modify makecrc so that it outputs C code to a file that
can be appended to util.c
--- sample/makecrc.c
+++ sample/makecrc.c
@@ -47,7 +47,9 @@ main()
e |= 1L << (31 - p[i]);
/* Compute and print table of CRC's, five per line */
- printf(" 0x00000000L");
+ FILE *output = fopen("crc.c", "w");
+ fprintf(output, "ulg crc_32_tab[] = {\n");
+ fprintf(output," 0x00000000L");
for (i = 1; i < 256; i++)
{
c = i;
@@ -56,8 +58,8 @@ main()
*/
for (k = 8; k; k--)
c = c & 1 ? (c >> 1) ^ e : c >> 1;
- printf(i % 5 ? ", 0x%08lxL" : ",\n 0x%08lxL", c);
+ fprintf(output, i % 5 ? ", 0x%08lxL" : ",\n 0x%08lxL", c);
}
- putchar('\n');
+ fprintf(output,"\n};\n");
return 0;
}

View File

@ -0,0 +1,66 @@
SPDX-FileCopyrightText: 2023 Paul Dersey <pdersey@gmail.com>
SPDX-License-Identifier: GPL-2.0-or-later
Remove generated CRC table
--- util.c
+++ util.c
@@ -406,57 +406,3 @@ voidp xmalloc (size)
/* ========================================================================
* Table of CRC-32's of all single-byte values (made by makecrc.c)
*/
-ulg crc_32_tab[] = {
- 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
- 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
- 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
- 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
- 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
- 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
- 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
- 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
- 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
- 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
- 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
- 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
- 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
- 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
- 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
- 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
- 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
- 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
- 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
- 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
- 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
- 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
- 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
- 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
- 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
- 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
- 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
- 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
- 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
- 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
- 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
- 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
- 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
- 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
- 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
- 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
- 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
- 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
- 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
- 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
- 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
- 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
- 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
- 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
- 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
- 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
- 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
- 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
- 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
- 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
- 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
- 0x2d02ef8dL
-};

View File

@ -1,5 +1,5 @@
9f5186c86f8a2c7a0eb39d11f7017fc70d5a3940d56c648f93f6a3189ac1d67f /usr/bin/yacc
0fa43f12e3e32987211a433a9692f939b2c5d0dc32cd5523f9ad50bb441ac580 /usr/bin/lex
671a1b5f07f5c5facc7cf502d5471ceabd82927180b127fe61f9ada04dfb4de0 /usr/bin/yacc
c8c51b6f773d5d14deb73216181a2c3975376082d411cd044d7033b3b5553202 /usr/bin/lex
ffe696afc1bda32a5f4035e29b3275cab73a27df7635ccbe02ed49a30374ccdd /usr/lib/mes/libl.a
bf3fb293f1ff89ee3dbcb08166c64b7a6793b49a12673d7633e3353ebea80d4d /yaccpar
ee0f187b844f50d64c912bfcb5d73706662846d6d8a90b8b1fb20dda60464734 /lex/ncform

View File

@ -472,12 +472,14 @@ populate_device_nodes() {
test -c "/dev/random" || mknod -m 444 "/dev/random" c 1 8
test -c "/dev/urandom" || mknod -m 444 "/dev/urandom" c 1 9
test -c "/dev/ptmx" || mknod -m 666 "/dev/ptmx" c 5 2
test -c "/dev/tty" || mknod -m 666 "/dev/tty" c 5 0
if command -v mount >/dev/null 2>&1; then
test -d "/dev/shm" || (mkdir /dev/shm && mount -t tmpfs tmpfs /dev/shm)
fi
if [ "${CHROOT}" = False ]; then
test -c "/dev/tty" || mknod -m 666 "/dev/tty" c 5 0
test -c "/dev/console" || mknod -m 666 "/dev/console" c 5 1
fi
}

View File

@ -1 +1 @@
afb30f2e80adefc979bdffdb525cf2862897f0beefbb0740fbd05ab3246a32c9 /usr/bin/kexec-fiwix
6301eb2b25e777b464b5de79a1c6c453708a5f15de7a396e638eb51141a16440 /usr/bin/kexec-fiwix

View File

@ -77,10 +77,19 @@ int main() {
puts("Preparing multiboot info for kernel...");
char cmdline[256];
sprintf(cmdline, "fiwix console=/dev/ttyS0 root=/dev/ram0 ramdisksize=%d initrd=sysa.ext2", INITRD_MB * 1024);
/* Don't use a serial console if configured for bare metal */
char *bare_metal = getenv("BARE_METAL");
if (bare_metal != NULL && strcmp(bare_metal, "True") == 0)
{
sprintf(cmdline, "fiwix root=/dev/ram0 ramdisksize=%d initrd=sysa.ext2 kexec_proto=linux kexec_size=67000 kexec_cmdline=\"init=/init\"", INITRD_MB * 1024);
}
else
{
sprintf(cmdline, "fiwix console=/dev/ttyS0 root=/dev/ram0 ramdisksize=%d initrd=sysa.ext2 kexec_proto=linux kexec_size=67000 kexec_cmdline=\"init=/init console=ttyS0\"", INITRD_MB * 1024);
}
char * boot_loader_name = "kexec-fiwix";
unsigned int next_avail_mem = 0x8000;
unsigned int next_avail_mem = 0x9800;
multiboot_info_t * pmultiboot_info = (multiboot_info_t *) next_avail_mem;
memset(pmultiboot_info, 0, sizeof(multiboot_info_t));

View File

@ -0,0 +1,82 @@
/* SPDX-FileCopyrightText: 2023 Richard Masters <grick23@gmail.com> */
/* SPDX-License-Identifier: MIT */
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <unistd.h>
#include <sys/reboot.h>
#include <sys/stat.h>
#include <time.h>
int append_file(FILE *dst_file, char *src_file_name);
int main(int argc, char **argv) {
char *ramdrive_file_name, *kernel_file_name, *initramfs_file_name;
FILE *ramdrive_file;
struct stat stats;
uint32_t size;
if (argc < 3) {
puts("Usage: fiwix-kexec-linux <ram-drive-name> <kernel-file-name> <initramfs-file-name>");
exit(1);
}
ramdrive_file_name = argv[1];
kernel_file_name = argv[2];
initramfs_file_name = argv[3];
ramdrive_file = fopen(ramdrive_file_name, "wb");
/* Write length of kernel */
if (stat(kernel_file_name, &stats) == 0) {
size = (uint32_t) stats.st_size;
fwrite(&size, sizeof(size), 1, ramdrive_file);
} else {
fprintf(stderr, "Cannot stat kernel file '%s'\n", kernel_file_name);
exit(1);
}
/* Write length of initramfs */
if (stat(initramfs_file_name, &stats) == 0) {
size = (uint32_t) stats.st_size;
fwrite(&size, sizeof(size), 1, ramdrive_file);
} else {
fprintf(stderr, "Cannot stat initramfs file '%s'\n", initramfs_file_name);
exit(1);
}
if (append_file(ramdrive_file, kernel_file_name)) {
fprintf(stderr, "Cannot append kernel '%s'\n", kernel_file_name);
exit(1);
}
if (append_file(ramdrive_file, initramfs_file_name)) {
fprintf(stderr, "Cannot append initramfs '%s'\n", initramfs_file_name);
exit(1);
}
fclose(ramdrive_file);
/* Flush ram drive writes to device */
sync();
/* Perform syscall reboot to initiate kexec */
reboot(RB_HALT_SYSTEM);
}
int append_file(FILE *dst_file, char *src_file_name) {
FILE *src_file;
char buff[BUFSIZ];
size_t n;
if (src_file = fopen(src_file_name, "rb")) {
while ((n = fread(buff, 1, BUFSIZ, src_file)) != 0) {
fwrite(buff, 1, n, dst_file );
}
fclose(src_file);
return 0;
} else {
printf("Cannot open file '%s'\n", src_file_name);
return 1;
}
}

View File

@ -0,0 +1,15 @@
#!/bin/bash
# SPDX-FileCopyrightText: 2023 Richard Masters <grick23@gmail.com>
# SPDX-License-Identifier: MIT
src_get() {
:
}
src_unpack() {
dirname=kexec-linux-1.0.0
mkdir ${dirname}
}
src_install() {
install -D "kexec-linux" "${DESTDIR}${PREFIX}/bin/kexec-linux"
}

View File

@ -0,0 +1,4 @@
# SPDX-FileCopyrightText: 2023 Richard Masters <grick23@gmail.com>
# SPDX-License-Identifier: MIT
kexec-linux: kexec-linux.c
gcc -static -m32 -march=i386 -o $@ $^

View File

@ -23,7 +23,7 @@ src_compile() {
}
src_install() {
export base_dir="${PWD}"
base_dir="${PWD}"
# We "compile" the headers here because it is easier
for d in include/uapi arch/x86/include/uapi; do
cd "${d}"

View File

@ -21,6 +21,7 @@
/usr/bin/checksum-transcriber
/usr/bin/tcc
/usr/bin/tcc-0.9.26
/usr/bin/kexec-linux
/usr/lib/mes/libc.a
/usr/lib/mes/libgetopt.a
/usr/lib/mes/crt1.o
@ -72,6 +73,7 @@
/usr/include/mes/config.h
/usr/include/mes/constants.h
/usr/include/mes/lib.h
/usr/include/mes/lib-cc.h
/usr/include/mes/lib-mini.h
/usr/include/mes/mes.h
/usr/include/mes/symbols.h

View File

@ -71,7 +71,7 @@ static bool open_filedev(void)
file_dev_name_set(input_name);
bd = file_dev_get();
if (!bd) {
printf("open_filedev: fail\n");
puts("open_filedev: fail");
return false;
}
return true;
@ -85,7 +85,7 @@ bool lwext4_mount(struct ext4_blockdev *bdev, struct ext4_bcache *bcache)
bd = bdev;
if (!bd) {
printf("lwext4_mount: no block device\n");
puts("lwext4_mount: no block device");
return false;
}
@ -155,21 +155,21 @@ bool copy_file(char *src_path, char *dest_path)
err = ext4_fopen(&dest_file, dest_path, "wb");
if (err != EOK) {
printf("ext4_open error: %d \n", err);
printf("ext4_open error: %d\n", err);
return EXIT_FAILURE;
}
if (src_len > 0) {
err = ext4_fwrite(&dest_file, src_mem, src_len, 0);
if (err != EOK) {
printf("ext4_fwrite error: %d \n", err);
printf("ext4_fwrite error: %d\n", err);
return EXIT_FAILURE;
}
}
err = ext4_fclose(&dest_file);
if (err != EOK) {
printf("ext4_fclose error: %d \n", err);
printf("ext4_fclose error: %d\n", err);
return EXIT_FAILURE;
}
@ -226,7 +226,7 @@ int main(int argc, char **argv)
err = ext4_mkfs(&fs, bd, &info, F_SET_EXT2_V0);
if (err != EOK) {
printf("ext4_mkfs error: %d \n", err);
printf("ext4_mkfs error: %d\n", err);
return EXIT_FAILURE;
}
@ -255,32 +255,44 @@ int main(int argc, char **argv)
if (!lwext4_mount(bd, bc))
return EXIT_FAILURE;
printf("ext4_dir_mk /mp/dev\n");
puts("ext4_dir_mk /mp/dev");
err = ext4_dir_mk("/mp/dev");
if (err != EOK) {
printf("ext4_dir_mk error: %d \n", err);
printf("ext4_dir_mk error: %d\n", err);
}
printf("ext4_mknod /mp/dev/console\n");
puts("ext4_mknod /mp/dev/console");
err = ext4_mknod("/mp/dev/console", EXT4_DE_CHRDEV, MKDEV(5, 1));
if (err != EOK) {
printf("ext4_mknod error: %d \n", err);
printf("ext4_mknod error: %d\n", err);
return EXIT_FAILURE;
}
puts("ext4_mknod /mp/dev/ram0");
err = ext4_mknod("/mp/dev/ram0", EXT4_DE_BLKDEV, MKDEV(1, 0));
if (err != EOK) {
printf("ext4_mknod error: %d\n", err);
return EXIT_FAILURE;
}
puts("ext4_mknod /mp/dev/ram1");
err = ext4_mknod("/mp/dev/ram1", EXT4_DE_BLKDEV, MKDEV(1, 1));
if (err != EOK) {
printf("ext4_mknod error: %d\n", err);
return EXIT_FAILURE;
}
copy_file("/usr/bin/kaem", "/mp/init");
copy_file("/sysa/after2.kaem", "/mp/kaem.run");
copy_file_list("/sysa/lwext4-1.0.0-lb1/files/fiwix-file-list.txt");
printf("ext4_dir_mk /mp/tmp\n");
puts("ext4_dir_mk /mp/tmp");
ext4_dir_mk("/mp/tmp");
printf("ext4_dir_mk /mp/usr\n");
puts("ext4_dir_mk /mp/usr");
ext4_dir_mk("/mp/usr");
printf("ext4_dir_mk /mp/usr/src\n");
puts("ext4_dir_mk /mp/usr/src");
ext4_dir_mk("/mp/usr/src");
if (!lwext4_umount())
return EXIT_FAILURE;
printf("Fiwix ext2 initrd created successfully.\n");
puts("Fiwix ext2 initrd created successfully.");
return EXIT_SUCCESS;
}

View File

@ -1 +1 @@
0a3f0012c01cb5aee0643f1674f265e68b5eeadb37596bcc4fe60aad55c9d3d7 /usr/bin/make_fiwix_initrd
a1c3fc496659b55e3600c06c76c374b76da5f19d153f44dbf5796fe7a0d8283d /usr/bin/make_fiwix_initrd

View File

@ -1 +1 @@
aa57178c15d44020d30cc893a5cf75278a38a801361f0373cf17600cf534c73c /usr/bin/make
7dac94ec2651bb6ca9666c2234171ebe51278cbb7ff533ee84ab0fb1b3dd432e /usr/bin/make

View File

@ -1,14 +0,0 @@
b2a48b2724a7b791df66efc2384a405a91d26579459a6797514dec89c2e76658 /usr/bin/mes
148ce096422535832802494f1128c26b6580cf3b66635e56abb33f7b3fc26043 /usr/bin/mes-m2
17c86665c2f925d88e3c1f827f312bbc7575b9e6006ef57833e895b6e73b8087 /usr/bin/mescc.scm
4feafab424611c976dc4628aa862e37b4e92b5869aebbcf7655e684c3f589041 /usr/lib/x86-mes/crt1.s
69e9ec2ee2ebf065575cdaf878629178b85330257dde0da790a428c0280d1ecb /usr/lib/x86-mes/crt1.o
c9944a799d584abfa76f385c14ac0caf6f46d03b34bf2712493602b12826c6b2 /usr/lib/x86-mes/x86.M1
d8646707db6aa2a76fdc5dbb3521376439e357f9f1de1d67f02a1afeefd342ac /usr/lib/x86-mes/libmescc.s
7ec49fbcbc70b49648150b021a2ff9ab2b27e89eb8815919a7ffabe375ab1edc /usr/lib/x86-mes/libc+tcc.s
b935d4c30213b49d899ab8bccce33117057ea0f3a1a8d3afc5e07fb8ce4590db /usr/lib/x86-mes/libc.s
52f697278ccdff5e457f27e10f465a91ab9858f0c6cee0683831cadb3109bbb7 /usr/lib/x86-mes/libmescc.a
840ee884db456e1982f40bce82209515a8e0b09bc404c4bc2a26d237bfa4d9ca /usr/lib/x86-mes/libc+tcc.a
32be26479096c52dbffe9c8bf14765f753d6882c3ae43760eda03406c0cf2539 /usr/lib/x86-mes/libc.a
b16ab368bc4c7b8bd896d03cba565a60e97760dea4da9f5c8a1a3d2902a79df6 /usr/lib/linux/x86-mes/elf32-header.hex2
f9873d9aab12e70f24d97f8319e17a1e698ca60779ae9a6ab3ede648cd60fc61 /usr/lib/linux/x86-mes/elf32-footer-single-main.hex2

View File

@ -0,0 +1,14 @@
7493daf2b2777dcaddbc2fcdac7898b76b224ab3a6092deee03cddbda42e3185 /usr/bin/mes
5729f623e8175ea5cbd611798b4765bc747e086344a9788d8162f2fc70b81fa5 /usr/bin/mes-m2
8867e32ca3c3f50628918033bcb5e2773a0c92e3d7fe2fc1e802e6efb6348de5 /usr/bin/mescc.scm
c66de1ba72b8019eee113271638e4e30543aa7d34f45c9cc751346dba0d8817c /usr/lib/x86_64-mes/crt1.s
d0a80b94228deb99bda15244f0ed3736badd0632c78a3379195ba24a78f68a75 /usr/lib/x86_64-mes/crt1.o
ff5640d78b9924dd40157596438da4108a97fe658806fbbadced38b4020395f4 /usr/lib/x86_64-mes/x86_64.M1
684bfcde34f118026d875acf2dbe2e4a39dce96d5f938f534995b582ba1a4241 /usr/lib/x86_64-mes/libmescc.s
aaee649b01e8792d87c3f4e3224d3af7b50ca8ff8990884176d3399fa533fac3 /usr/lib/x86_64-mes/libc+tcc.s
53de3c338d82cb45848193b95d319b7a860d289a14824f1961c655b167aabd68 /usr/lib/x86_64-mes/libc.s
ad1f1e390f675db2a3545aecc63df798d49317cad2ae5eadb9382df960bbd9f3 /usr/lib/x86_64-mes/libmescc.a
de562df5c7232ee87629a4cf93ca63be9b91453f9a1538c1c62ad09c597840c9 /usr/lib/x86_64-mes/libc+tcc.a
264bfb52a14957759e65c9c1224f0ca750713107586db367a2e235729797ecda /usr/lib/x86_64-mes/libc.a
48c57492e80a99bf16eeba55e242b60b9e759992482b651d1b512f07ddd9a65a /usr/lib/linux/x86_64-mes/elf64-header.hex2
94c796cb34a6e581491d0cf609e7fad01715c84a17b8b2017178a36568a80e48 /usr/lib/linux/x86_64-mes/elf64-footer-single-main.hex2

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,14 @@
4c722a7455db030122072f3bb7b2733a1b826460c1022308d314775685838447 /usr/bin/mes
c149469a741b170bfe3da4e737b3d68490996cc957d593ea5555301de0329afc /usr/bin/mes-m2
3296b313d02fe4a4f7ba37446b5cdf9e7c472426a942b7e7227fe7f9929ad97f /usr/bin/mescc.scm
50441b03b915bd51fb811749901a56b3c42186b45f7f466dbf23337eafad520c /usr/lib/riscv64-mes/crt1.s
a96a0a8f1b2dd1e5a7dad8264c92b5448be7d29aa7706d40d67be978d5ddc305 /usr/lib/riscv64-mes/crt1.o
1511e99da81caa02490078c7a880ac97d439b6fec99cf846dc2044468e2444b8 /usr/lib/riscv64-mes/riscv64.M1
8f7e94270c7cbb076ff5fe3cdd0d6c891537e7945e5aa4bdbf167867471bfbc2 /usr/lib/riscv64-mes/libmescc.s
dc017df6d381bd13909f01eea43a9baf5210312715e1bb95c8d4df5f35566276 /usr/lib/riscv64-mes/libc+tcc.s
409ef724a5f67bcfec1696e5f99d15b089e7e2b9d8c9a91134d6e2bcdb515d9c /usr/lib/riscv64-mes/libc.s
5027a055f6c564417bf5194a9b43a8a93ae59d9a26ce75a55895f253a6aab2c2 /usr/lib/riscv64-mes/libmescc.a
938cbb375ca287c3a3e19d3b86ccf1e805963f6b47c4f7fcf3c857edf77f19f3 /usr/lib/riscv64-mes/libc+tcc.a
a994b9aeeff0b7a0cc36e0214848ede3b0dc9d11dd3986562713a672dcb6d3f6 /usr/lib/riscv64-mes/libc.a
22ad5f7b6e5ea07b275619956bddd913b061d6ad492a442e4b6b2f28898e50ae /usr/lib/linux/riscv64-mes/elf64-header.hex2
94c796cb34a6e581491d0cf609e7fad01715c84a17b8b2017178a36568a80e48 /usr/lib/linux/riscv64-mes/elf64-footer-single-main.hex2

View File

@ -0,0 +1,14 @@
bd873a7b98939a9430c278755db485daaaa92f8fc8990b5dcad6895d0f714db1 /usr/bin/mes
6572d1298f3a25da5a3543b783ec8cb5798ccfe4b11dcaebffa633f47c246f84 /usr/bin/mes-m2
5b158971c9bb6eceba00d438dc605fe186b46058b89e7118aca4037f5678834c /usr/bin/mescc.scm
234c264965116a24583dd569050adc766d7cc2da83b1db38085210f26031b70c /usr/lib/x86-mes/crt1.s
494f184a87175abc485a898c250c3831b2b5dcf5aead46591e00b39d1c5529fc /usr/lib/x86-mes/crt1.o
8afe05c3e1e8848b6f3e8de751524de5f69818eb8524659827918e3fddde3e1e /usr/lib/x86-mes/x86.M1
771988b1df0dfa04bf5f1ab72af18c32b1a8205a07f10e5235d79dac0a072b00 /usr/lib/x86-mes/libmescc.s
89024362827679beffb4a70287d66609d07a3cf4a1972c1c40797bfa0324a49e /usr/lib/x86-mes/libc+tcc.s
5ea659501bda293f9297b599b1385ed4d54bab0e6daf3207fc61429adc9abc78 /usr/lib/x86-mes/libc.s
52f697278ccdff5e457f27e10f465a91ab9858f0c6cee0683831cadb3109bbb7 /usr/lib/x86-mes/libmescc.a
7c737307c870d74a309cec58f6b67fa4961d582614f3ed0f39b5794e3705794a /usr/lib/x86-mes/libc+tcc.a
db62874a6cebeb0652945cb91cb91ade9783e631aaef5ec279e11aeca6adc421 /usr/lib/x86-mes/libc.a
82cac4353375a52efecc6fda1f8b37373988fe41ed197b63d8e906321b105d77 /usr/lib/linux/x86-mes/elf32-header.hex2
f9873d9aab12e70f24d97f8319e17a1e698ca60779ae9a6ab3ede648cd60fc61 /usr/lib/linux/x86-mes/elf32-footer-single-main.hex2

View File

@ -1,2 +1,2 @@
https://mirrors.kernel.org/gnu/mes/mes-0.24.2.tar.gz 7ddae0854e46ebfa18c13ab37e64839a7b86ea88aeed366a8d017efd11dae86e
https://mirrors.kernel.org/gnu/mes/mes-0.25.tar.gz 325250b3567ed9203ba70161c835af01079e73ebed97b4b5bb77ca500b828940
https://download.savannah.gnu.org/releases/nyacc/nyacc-1.00.2.tar.gz f36e4fb7dd524dc3f4b354d3d5313f69e7ce5a6ae93711e8cf6d51eaa8d2b318

View File

@ -1 +0,0 @@
https://musl.libc.org/releases/musl-1.2.3.tar.gz 7d5b0b6062521e4627e099e4c9dc8248d32a30285e959b7eecaa780cf8cfd4a4

1
sysa/musl-1.2.4/sources Normal file
View File

@ -0,0 +1 @@
https://musl.libc.org/releases/musl-1.2.4.tar.gz 7a35eae33d5372a7c0da1188de798726f68825513b7ae3ebe97aaaa52114f039

View File

@ -1 +1 @@
0ad4338d5aaf61d126984508172e731da3162fea3d46b9fb34b2dc71beb96a1c /usr/bin/patch
cdb22238dfa7f659c3d7afae6e93f27b4c84a40e082b20bc78a8b19a0dc79536 /usr/bin/patch

View File

@ -15,8 +15,8 @@ cd build
# Extract
cp ${distfiles}/${pkg}.tar.gz ../src/
gzip -d -f ../src/${pkg}.tar.gz
tar xf ../src/${pkg}.tar
ungz --file ../src/${pkg}.tar.gz --output ../src/${pkg}.tar
untar --file ../src/${pkg}.tar
cd ${pkg}
cp ../../mk/main.mk Makefile

View File

@ -39,6 +39,12 @@ cd ${pkg}
kaem --file ${pkg}.kaem
cd ..
# patch
pkg="patch-2.5.9"
cd ${pkg}
kaem --file ${pkg}.kaem
cd ..
# gzip
pkg="gzip-1.2.4"
cd ${pkg}
@ -57,12 +63,6 @@ cd ${pkg}
kaem --file ${pkg}.kaem
cd ..
# patch
pkg="patch-2.5.9"
cd ${pkg}
kaem --file ${pkg}.kaem
cd ..
# bzip2
pkg="bzip2-1.0.8"
cd ${pkg}

View File

@ -15,11 +15,11 @@ M2-Mesoplanet --architecture ${ARCH} -f checksum-transcriber.c -o ${bindir}/chec
sha256sum -c checksum-transcriber.${ARCH}.SHA256SUM
# simple patch tool based on before and after chunks
M2-Mesoplanet --architecture x86 -f simple-patch.c -o /x86/bin/simple-patch
M2-Mesoplanet --architecture x86 -f simple-patch.c -o ${bindir}/simple-patch
# Environmental variables needed for mes
NYACC_PKG=nyacc-1.00.2
MES_VERSION=0.24.2
MES_VERSION=0.25
MES_PKG=mes-${MES_VERSION}
MES_PKG_DIR=${MES_PKG}
MES_PREFIX=${sysa}/${MES_PKG}/build/${MES_PKG_DIR}
@ -57,7 +57,7 @@ fi
if match x${BUILD_FIWIX} xTrue; then
# The Fiwix kernel
pkg="fiwix-1.4.0-lb1"
pkg="fiwix-1.4.0-lb3"
cd ${pkg}
kaem --verbose --file ${pkg}.kaem
cd ..

View File

@ -25,16 +25,26 @@ create_sysb() {
}
go_sysb() {
# Mount proc for kexec
mkdir /proc /etc
mount -t proc proc /proc
# kexec time
echo "Loading kernel + sysb initramfs using kexec"
kexec -l "/boot/linux-4.9.10" --console-serial \
--initrd="/boot/initramfs-sysb.cpio.gz" \
--append="init=/init console=ttyS0"
echo "kexecing into sysb"
kexec -e
if [ "${KERNEL_BOOTSTRAP}" = True ]; then
kexec-linux "/dev/ram1" "/boot/linux-4.9.10" "/boot/initramfs-sysb.cpio.gz"
else
# Mount proc for kexec
mkdir /proc /etc
mount -t proc proc /proc
# kexec time
echo "Loading kernel + sysb initramfs using kexec"
if [ "${BARE_METAL}" = True ]; then
kexec -l "/boot/linux-4.9.10" \
--initrd="/boot/initramfs-sysb.cpio.gz" \
--append="init=/init"
else
kexec -l "/boot/linux-4.9.10" --console-serial \
--initrd="/boot/initramfs-sysb.cpio.gz" \
--append="init=/init console=ttyS0"
fi
echo "kexecing into sysb"
kexec -e
fi
}
build automake-1.15.1
@ -53,7 +63,7 @@ build gcc-4.0.4 pass1.sh
build findutils-4.2.33
build musl-1.2.3
build musl-1.2.4
build linux-headers-5.10.41 '' '' linux-5.10.41
@ -75,33 +85,30 @@ build bc-1.07.1
if [ "${CHROOT}" = False ] || [ "${BUILD_KERNELS}" = True ]; then
# Save because linux deletes all distfiles to save space
cp "${DISTFILES}"/musl-1.2.3.tar.gz "${SOURCES}"/musl-1.2.3
cp "${DISTFILES}"/musl-1.2.4.tar.gz "${SOURCES}"/musl-1.2.4
fi
mkdir -p /sysc/distfiles
cp "${DISTFILES}"/curl-7.88.1.tar.bz2 /sysc/distfiles
# Clear up some RAM space
grep --no-filename '^build' "${SOURCES}"/run*.sh | grep -v musl-1.2.3 | sed "s/build //" | sed "s/ .*$//" | while read -r p ; do
grep --no-filename '^build' "${SOURCES}"/run*.sh | grep -v musl-1.2.4 | sed "s/build //" | sed "s/ .*$//" | while read -r p ; do
rm -rf "${SOURCES:?}/${p:?}"
done
if [ "${CHROOT}" = False ] || [ "${BUILD_KERNELS}" = True ]; then
build kexec-linux-1.0.0
build kexec-tools-2.0.22
build linux-4.9.10
fi
build musl-1.2.3 '' no-patches
build musl-1.2.4 '' no-patches
if [ "${CHROOT}" = False ]; then
create_sysb
if [ "${KERNEL_BOOTSTRAP}" = True ]; then
echo "Kernel bootstrapping successful."
echo "NOTE: Transition to Linux and building remaining packages is under development."
else
go_sysb
fi
go_sysb
else
# In chroot mode transition directly into System C.
SYSC=/sysc_image

View File

@ -1 +1 @@
bf0d4ef807c706a2b201c7d132c70314ad96aa24353d444bcaed4eca6c95a528 /usr/bin/sed
27dbc29d04ad2a2905ab56c198660510010377062d716bc791a8d0e281fec4d4 /usr/bin/sed

@ -1 +1 @@
Subproject commit fe529ef2e1053cb0551fb71276f9ced9fe229d87
Subproject commit a5c382e9ab5d070d192841122e453ca72754eec1

View File

@ -1 +1 @@
2186b01ab8d953222f15cab0d257f80215f4a17c53b30a5a7467b80e49c2cc34 /usr/bin/tar
0b14f1849c2c8dab671399905753e0503f7ba60bfc807b0be13132da6c9814e9 /usr/bin/tar

View File

@ -1 +1 @@
https://lilypond.org/janneke/tcc/tcc-0.9.26-1136-g5bba73cc.tar.gz 23cacd448cff2baf6ed76c2d1e2d654ff4e557046e311dfb6be7e1c631014ef8 tcc-0.9.26.tar.gz
https://lilypond.org/janneke/tcc/tcc-0.9.26-1147-gee75a10c.tar.gz 6b8cbd0a5fed0636d4f0f763a603247bc1935e206e1cc5bda6a2818bab6e819f tcc-0.9.26.tar.gz

View File

@ -1,13 +0,0 @@
7897c2ba182e92765856a9e3ddd2bdfcd69988b3ddc45b3ef932dc3ec041041a /usr/bin/mes-tcc
64bdb36f0048744957454b6ad186d37db4a7fcc392f67bf052b9bc7ec033b963 /usr/bin/boot0-tcc
18af79e0e3c4bfeaced2b0867561bc9fd370cbfcc78860de5a70926374ba7c53 /usr/bin/boot1-tcc
d6fa0c2006f6c8fefb4f3750fade14aa884670637098857d06aef3c7a9bd02d8 /usr/bin/boot2-tcc
93b2c1c567f5938435fbe6c0115276f6073bd46a0a92791b164ca2752180caf5 /usr/bin/boot3-tcc
a40305e6d2acb3dc64dbc80f64952431f4728eeff03f6e7c91c737cbf6e1bdda /usr/bin/boot4-tcc
c56d99e284dfecae047e792b049c0cee022452f13262d6b3c869ec1c9935b276 /usr/bin/tcc
96f93f2d281ee6996767b25fbff4441e8335e7eeaeab060c1d4b698366b277c9 /usr/lib/mes/libc.a
12c07ae103e7e3b390150a79e5c600d88de14e9bb73a066f6342582729ef5a3f /usr/lib/mes/libgetopt.a
d1168ee9b528e39f0b40e8d51fb7fa3619c4a5ee928137f7faf6d0879b0916b0 /usr/lib/mes/crt1.o
09d4f9821a2566f7e56381a19259c41bd97f3c5ed83f490705acbfd1139a7736 /usr/lib/mes/crti.o
461ca1494737fab86fe1c1d3addeaf9d0ece413e353abcdea8674db3f700cda3 /usr/lib/mes/crtn.o
ac11f09698f092ed76ae40ebcd56cf3f2b903ea1333ef7537a00673dd6f73da7 /usr/lib/mes/tcc/libtcc1.a

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,10 @@
22c74eec2ee1694247fae2958979c2326bab41ecbf5ba279b38417f63bf8892d /usr/bin/tcc-mes
4aff7e61488c03322a682a086405831aa4d99681b2761ddc8b0a76888395a11b /usr/bin/tcc-boot0
9973b5e730c0b9d65aa0ad2332a51adbb247546478d2e86697bba6de4f2f03fc /usr/bin/tcc-boot1
5b5b131cc6bb7f62b11bc99092a1e48c2975af00c7d22fb52de5f561dbdc749a /usr/bin/tcc
93fbb5473bfaf2abaf6598a21dd5f0ac3c6237bfa15bc0c85328608233de55bc /usr/lib/mes/libc.a
98e2d2d543a113c82c8de39f32d4d43b1fe7f3159c5956c5e3224e7f4162601f /usr/lib/mes/libgetopt.a
c05ad094fbadc8914806566c4ee512c6deb92b2b8d33325a607c3577826b8a54 /usr/lib/mes/crt1.o
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /usr/lib/mes/crti.o
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /usr/lib/mes/crtn.o
ec63d619a871831066e028e63a5b9e48ceeeffee91d9556bfcc41724d59bd3f8 /usr/lib/mes/tcc/libtcc1.a

View File

@ -0,0 +1,10 @@
df26fbd23970aabf234c4788079a48f12b6ca371edf35108d91b6a48df6123e1 /usr/bin/tcc-mes
bf1740e71fc255b9debb5dc8211ea640c7a7fcf46b20c81657dcfa4fb4de3d07 /usr/bin/tcc-boot0
627e9263fb7746a0356937d514cf4eb2fb688b36c8a4101a35f62c55e246c3a1 /usr/bin/tcc-boot1
dca963a46a4b9828bb279201486a90b2f6db8aa6ff2cbb270f2c9838f8af9fdd /usr/bin/tcc
3bfd10dfe347c4fb40fbf5f2f705cd806c77e0f80cf4ad1ecfd4beddada2937c /usr/lib/mes/libc.a
12c07ae103e7e3b390150a79e5c600d88de14e9bb73a066f6342582729ef5a3f /usr/lib/mes/libgetopt.a
76d280e0733f2c84aad180968167d789a825ac56526bddba4f100d6d74851027 /usr/lib/mes/crt1.o
09d4f9821a2566f7e56381a19259c41bd97f3c5ed83f490705acbfd1139a7736 /usr/lib/mes/crti.o
461ca1494737fab86fe1c1d3addeaf9d0ece413e353abcdea8674db3f700cda3 /usr/lib/mes/crtn.o
136f97c356445ef95c35ae1b6fb2f7a0546e3cf47b45cb4ee79d0a8f29cd04b4 /usr/lib/mes/tcc/libtcc1.a

View File

@ -1 +1 @@
e5f00ef66c5796f436089d3f6e67af001182e6fbb439d13bb65eef8cf82f5973 /usr/bin/tcc
428251dc2b2de01b9cfe27b3bfd5c8fdc170e442027361e7070f3bc41841a4b7 /usr/bin/tcc

File diff suppressed because one or more lines are too long

View File

@ -37,7 +37,10 @@ install_tar util-linux-2.19.1 0
# Begin sysb bootstrapping process
cd "${SOURCES}"
echo "PREFIX=${PREFIX}" > .env
echo "SOURCES=${SOURCES}" >> .env
cat > .env <<- EOF
export PATH=${PATH}
PREFIX=${PREFIX}
SOURCES=${SOURCES}
EOF
exec ./run.sh
exec env -i bash run.sh

View File

@ -65,17 +65,17 @@ if [ -z "${DISK}" ] || ! [ -e "/dev/${DISK}" ]; then
echo "DISK=${DISK}" >> /usr/src/bootstrap.cfg
fi
# Is it a full disk, and not a partition
# Is it a full disk, and not a partition?
# shellcheck disable=SC2012
if [ $(($(ls -l "/dev/${DISK}" | sed "s/.*, *//" | sed "s/ .*//") % 8)) -eq 0 ]; then
if ! fdisk -l "/dev/${DISK}" | grep -qE "${DISK}p?[0-9]" ; then
echo "Creating partition table and partition"
echo ";" | sfdisk "/dev/${DISK}"
mkfs.ext4 "/dev/${DISK}1"
DISK="${DISK}1"
fi
echo "Creating partition table..."
echo ";" | sfdisk "/dev/${DISK}"
fdisk -l "/dev/${DISK}"
echo "Creating ext4 partition..."
mkfs.ext4 "/dev/${DISK}1"
DISK="${DISK}1"
fi
echo "export DISK=${DISK}" >> /usr/src/bootstrap.cfg
echo "DISK=${DISK}" >> /usr/src/bootstrap.cfg
SYSC=/sysc

View File

@ -37,7 +37,7 @@ class SysC(SysGeneral):
if self.external_sources:
if create_disk_image:
rootfs_dir = self._tmpdir.mount_disk("sysc")
rootfs_dir = self._tmpdir.mount_disk("sysc", size="16G")
else:
rootfs_dir = self.tmp_dir
source_manifest = self.get_source_manifest()

View File

@ -4,7 +4,35 @@
# SPDX-License-Identifier: MIT
# Replace this hook if you wish to do more
# Add Dev Nodes
# Disk Nodes
# 3 disks 3 partitions
major=0
alpha="a b c"
# For each disk...
for a in ${alpha}; do
mknod -m 600 "/dev/sd${a}" b 8 "$((major*16))"
#For each partition do...
minor=1
for p in $(seq 3); do
mknod -m 600 "/dev/sd${a}${p}" b 8 "$((major*16+minor++))"
done
((major++))
done
# NVME Nodes
# 3 NVME disk with 3 partitions
major=0
# For each disk...
for a in $(seq 3); do
mknod -m 600 "/dev/nvme${a}" c 259 0 # NVME CHAR node
mknod -m 600 "/dev/nvme${a}n1" b 259 "$((major))"
((major++))
# For each partition...
for q in $(seq 3); do
mknod -m 600 "/dev/nvme${a}n1p${q}" b 259 "$((major++))"
done
done
# add cd-rom drive
mknod -m 600 /dev/sr0 b 11 0
. /usr/src/.env
exec env - PATH="${PREFIX}/bin" PS1="\w # " bash -i

View File

@ -15,13 +15,13 @@ src_prepare() {
src_compile() {
(
set -e
export PKG_CONFIG_PATH="${LIBDIR}/pkgconfig"
declare -x PKG_CONFIG_PATH="${LIBDIR}/pkgconfig"
sed -i "s/make install/make install DESTDIR=\${DESTDIR}/" bootstrap_tarball.sh
sed -i "/make check/d" bootstrap_tarball.sh
export FINALPREFIX="${PREFIX}"
export GUILE_STATIC="--static"
export GNULIBDIR="${PWD}"/../gnulib-8f4538a5
export MAN_PAGE_DATE=1970-01-01
declare -x FINALPREFIX="${PREFIX}"
declare -x GUILE_STATIC="--static"
declare -x GNULIBDIR="${PWD}"/../gnulib-8f4538a5
declare -x MAN_PAGE_DATE=1970-01-01
SKIP_MAIN=1 . ./bootstrap_tarball.sh
prepare_tarball
@ -41,7 +41,7 @@ src_compile() {
SOURCE_DIR="$PWD" ./config/bootstrap
# Specify timeout to avoid non-reproducibility
./configure \
CPPFLAGS=-D_LARGEFILE64_SOURCE=1 ./configure \
--prefix="${FINALPREFIX}" \
--libdir="${FINALPREFIX}/lib/i386-unknown-linux-musl" \
--disable-shared \

View File

@ -1,43 +0,0 @@
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
SPDX-FileCopyrightText: 2022 Thomas Schwinge <thomas@codesourcery.com>
SPDX-License-Identifier: GPL-3.0-or-later
Backport of commit 25861cf3a88a07c8dca3fb32d098c0ad756bbe38
====
With that, we may then run plain 'autoreconf' for all of GCC's subpackages,
instead of for some of those (that don't use Automake) manually having to run
the applicable combination of 'aclocal', 'autoconf', 'autoheader'.
See also 'AC_CONFIG_MACRO_DIRS'/'AC_CONFIG_MACRO_DIR' usage elsewhere.
diff --git gcc/configure.ac gcc/configure.ac
index e1ef2ecf026..45bf7560e6f 100644
--- gcc/configure.ac
+++ gcc/configure.ac
@@ -25,6 +25,7 @@
AC_INIT
AC_CONFIG_SRCDIR(tree.cc)
+AC_CONFIG_MACRO_DIRS([../config] [..])
AC_CONFIG_HEADER(auto-host.h:config.in)
gcc_version=`cat $srcdir/BASE-VER`
diff --git libobjc/configure libobjc/configure
index a8fdc643349..6da20b8e4ff 100755
diff --git libobjc/configure.ac libobjc/configure.ac
index f8f577cfbef..6f58a45d4cb 100644
--- libobjc/configure.ac
+++ libobjc/configure.ac
@@ -20,6 +20,7 @@
AC_INIT(package-unused, version-unused,, libobjc)
AC_CONFIG_SRCDIR([objc/objc.h])
+AC_CONFIG_MACRO_DIRS([../config] [..])
GCC_TOPLEV_SUBDIRS
# We need the following definitions because AC_PROG_LIBTOOL relies on them
--
2.31.1

View File

@ -1,34 +0,0 @@
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
SPDX-FileCopyrightText: 2022 Simon Marchi <simon.marchi@efficios.com>
SPDX-License-Identifier: GPL-3.0-or-later
Backport of commit 1f237573caa5cf72218ea31fe78eb3983a717ca6
====
Add
AC_CONFIG_MACRO_DIRS([../config])
So that just running:
$ autoreconf -vf
... does the right thing (no need to specify -I ../config).
diff --git libiberty/configure.ac libiberty/configure.ac
index 84a7b378fad..28d996f9cf7 100644
--- libiberty/configure.ac
+++ libiberty/configure.ac
@@ -2,6 +2,7 @@ dnl Process this file with autoconf to produce a configure script
AC_INIT
AC_CONFIG_SRCDIR([xmalloc.c])
+AC_CONFIG_MACRO_DIRS([../config])
# This works around the fact that libtool configuration may change LD
# for this particular configuration, but some shells, instead of
--
2.31.1

View File

@ -1,35 +0,0 @@
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
SPDX-FileCopyrightText: 2020 Timo Teräs <timo.teras@iki.fi>
SPDX-License-Identifier: GPL-3.0-or-later
The original motivation from this patch from Alpine Linux:
Subject: [PATCH] Alpine musl package provides libssp_nonshared.a. We link to
it unconditionally, as otherwise we get link failures if some objects are
-fstack-protector built and final link happens with -fno-stack-protector.
This seems to be the common case when bootstrapping gcc, the piepatches do
not seem to fully fix the crosstoolchain and bootstrap sequence wrt.
stack-protector flag usage.
Which matches precisely the problem when compiling GCC with --enable-bootstrap
in live-bootstrap.
---
gcc/gcc.cc | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git gcc/gcc.cc gcc/gcc.cc
index cc99d0b7aa1..c60a75371f8 100644
--- gcc/gcc.cc
+++ gcc/gcc.cc
@@ -1004,8 +1004,7 @@ proper position among the other output files. */
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
-#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
- "|fstack-protector-strong|fstack-protector-explicit:}"
+#define LINK_SSP_SPEC "-lssp_nonshared"
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \

View File

@ -1 +0,0 @@
http://ftp.gnu.org/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.xz e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff

View File

@ -84,8 +84,6 @@ src_configure() {
--host=i386-unknown-linux-musl \
--enable-bootstrap \
--enable-static \
--enable-default-pie \
--enable-default-ssp \
--disable-plugins \
--disable-libssp \
--disable-libsanitizer \

1
sysc/gcc-13.1.0/sources Normal file
View File

@ -0,0 +1 @@
https://ftp.gnu.org/gnu/gcc/gcc-13.1.0/gcc-13.1.0.tar.xz 61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86

View File

@ -45,7 +45,7 @@ install_tar binutils-2.30 0
install_tar bzip2-1.0.8 0
install_tar bison-3.4.1 2
install_tar coreutils-6.10 0
install_tar dhcpcd-9.5.0 0
install_tar dhcpcd-10.0.1 0
install_tar diffutils-2.7 0
install_tar findutils-4.2.33 0
install_tar flex-2.6.4 0
@ -57,7 +57,7 @@ install_tar libtool-2.2.4 0
install_tar linux-headers-5.10.41 0
install_tar m4-1.4.7 0
install_tar make-3.82 0
install_tar musl-1.2.3 1
install_tar musl-1.2.4 1
install_tar perl-5.6.2 0
install_tar util-linux-2.19.1 0
@ -68,9 +68,9 @@ ln -s /usr/bin/bash /usr/bin/sh
cd "${SOURCES}"
cat > .env <<- EOF
export PATH="${PREFIX}/bin:${PREFIX}/sbin"
export HOME=/tmp
export SOURCE_DATE_EPOCH=0
export PATH=${PATH}
export HOME=${HOME}
export SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH}
PREFIX=${PREFIX}
LIBDIR=${LIBDIR}
SOURCES=${SOURCES}
@ -78,6 +78,7 @@ DESTDIR=${DESTDIR}
DISTFILES=${DISTFILES}
SRCDIR=${SRCDIR}
MAKEJOBS=${MAKEJOBS}
INTERNAL_CI=${INTERNAL_CI}
EOF
exec ./run.sh
exec env -i bash run.sh

View File

@ -1 +0,0 @@
https://musl.libc.org/releases/musl-1.2.3.tar.gz 7d5b0b6062521e4627e099e4c9dc8248d32a30285e959b7eecaa780cf8cfd4a4

View File

@ -14,19 +14,11 @@ src_configure() {
src_compile() {
make "${MAKEJOBS}" CROSS_COMPILE=
# Provide libssp_nonshared.a to avoid GCC's messy libssp
# (Taken from Alpine Linux)
gcc -c __stack_chk_fail_local.c -o __stack_chk_fail_local.o
ar r libssp_nonshared.a __stack_chk_fail_local.o
}
src_install() {
default
# Install libssp_nonshared.a
install -m 644 libssp_nonshared.a "${DESTDIR}${PREFIX}/lib/"
# Make dynamic linker symlink relative in ${PREFIX}/lib
rm "${DESTDIR}/lib/ld-musl-i386.so.1"
rmdir "${DESTDIR}/lib"

1
sysc/musl-1.2.4/sources Normal file
View File

@ -0,0 +1 @@
https://musl.libc.org/releases/musl-1.2.4.tar.gz 7a35eae33d5372a7c0da1188de798726f68825513b7ae3ebe97aaaa52114f039

View File

@ -23,7 +23,7 @@ src_configure() {
}
src_compile() {
export SOURCE_DATE_EPOCH=1638831119
declare -x SOURCE_DATE_EPOCH=1638831119
default
}

View File

@ -1 +1 @@
http://gentoo.osuosl.org/distfiles/pkg-config-0.29.2.tar.gz 6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591
http://distfiles.macports.org/pkgconfig/pkg-config-0.29.2.tar.gz 6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591

View File

@ -0,0 +1,36 @@
SPDX-FileCopyrightText: 2011 Antoine Pitrou <solipsis@pitrou.net>
SPDX-License-Identifier: PSF-2.0
Don't run pgen twice when using make -j
Don't ignore pgen error (on "make Parser/pgen.stamp")
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 25a82aff01..03f85fd04b 100644
--- Makefile.pre.in
+++ Makefile.pre.in
@@ -471,10 +471,12 @@ Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
Modules/python.o: $(srcdir)/Modules/python.c
$(MAINCC) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/python.c
-
-$(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
+# Use a stamp file to prevent make -j invoking pgen twice
+$(GRAMMAR_H) $(GRAMMAR_C): Parser/pgen.stamp
+Parser/pgen.stamp: $(PGEN) $(GRAMMAR_INPUT)
-@ mkdir Include
- -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
+ $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
+ -touch Parser/pgen.stamp
$(PGEN): $(PGENOBJS)
$(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
@@ -1030,7 +1032,7 @@ clean: pycremoval
clobber: clean
-rm -f $(BUILDPYTHON) $(PGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
- tags TAGS \
+ tags TAGS Parser/pgen.stamp \
config.cache config.log pyconfig.h Modules/config.c
-rm -rf build platform
-rm -rf $(PYTHONFRAMEWORKDIR)

View File

@ -62,4 +62,4 @@ fi
build bash-5.2.15
exec env -i PATH="${PATH}" HOME="${HOME}" SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH}" bash run2.sh
exec env -i bash run2.sh

View File

@ -96,7 +96,7 @@ build sed-4.8
build autogen-5.18.16 autogen-5.18.16.sh
build musl-1.2.3
build musl-1.2.4
build python-2.0.1 stage1.sh
@ -120,11 +120,13 @@ build python-3.8.16
build python-3.11.1
[ "${INTERNAL_CI}" = "pass2" ] && exit 0
build gcc-10.4.0
build binutils-2.38 pass2.sh
build gcc-12.2.0
build gcc-13.1.0
if [ "$FORCE_TIMESTAMPS" = True ] ; then
echo 'Forcing all files timestamps to be 0 unix time.'