Variety of improvements

- Rename sources to distfiles for clarity.
- Per sys(a/c) distfiles to reduce rootfs.py processing and reduce RAM
  usage in sysa.
- Canonicalise early kaem mes/tcc files to kaem script conventions.
- Cleanup unused setup in python.
This commit is contained in:
fosslinux 2022-04-24 13:59:17 +10:00
parent acf713595c
commit f1600467a7
48 changed files with 130 additions and 138 deletions

3
.gitignore vendored
View File

@ -5,6 +5,7 @@
tmp/
kernel
sources/
sysa/distfiles/
sysc/distfiles/
__pycache__
sysa/bootstrap.cfg

View File

@ -33,7 +33,6 @@ c25b36b8af6e0ad2a875daf4d6196bd0df28a62be7dd252e5f99a4d5d7288d95 coreutils-5.0.
1d013547889f20576460249c4210632d5314531c8477378a2e046b13a8ebeb7e coreutils-6.10.tar.gz
6f7cfc0ac6717afb6ba1f41b0da43a713ba0dd97dec1227e32effc12d79f08c1 coreutils-8.32.tar.gz
af4214b851928a53ef470ed8729122b9db910a6c0769d5d46a5de0b3e96f74f3 deblob-4.9
185cfad468a033b6c69b882c3941440e50ac3e3b68617d3d93b4a8755357d65c deblob-check
d5f2489c4056a31528e3ada4adacc23d498532b0af1a980f2f76158162b139d6 diffutils-2.7.tar.gz
54437ae4211867de7ad55723f68b94c29cb2f08a23f431e0bbbc9f34ee384f47 dist-3.5-236.tar.gz
813cd9405aceec5cfecbe96400d01e90ddad7b512d3034487176ce5258ab0f78 findutils-4.2.33.tar.gz
@ -65,6 +64,7 @@ f57d86c70620271bfceb7a9be0c81744a033f08adc7ceba832c9917ab3e691b7 guile-3.0.7.ta
a4adadf76b496a6bc50795702253ecfcb6f0d159b68038f31a5362009340bca2 help2man-1.36.4.tar.gz
203c93e004ac7ad0e50423ff54d89e40fa99f45b207b2b892a4d70211feebe05 kbd-1.15.tar.gz
af618de7848142f204b57811f703de3ae7aa3f5bc5d52226db35800fa8fc4dff kexec-tools-2.0.22.tar.gz
f0b19ff39c3c9a5898a219497ababbadab99d8178acc980155c7e1271089b5a0 libarchive-3.5.2.tar.xz
587edf60817f56daf1e1ab38a4b3c729b8e846ff67b4f62a6157183708f099af libatomic_ops-7.6.10.tar.gz
72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056 libffi-3.3.tar.gz
8e8ce6175d435e7df8c9bbb0e5fd5357691cdc28c1a2d00fdd9b47b7643bec3a libtool-1.4.tar.gz
@ -83,6 +83,7 @@ a8da14d1cd6aaa1ff607a571a8ca5948258195c712de05b0f8ad11c215b6b094 mes.tar.gz
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 musl-1.1.24.tar.gz
9b969322012d796dc23dda27a35866034fa67d8fb67e0e2c45c913c3d43219dd musl-1.2.2.tar.gz
f36e4fb7dd524dc3f4b354d3d5313f69e7ce5a6ae93711e8cf6d51eaa8d2b318 nyacc-1.00.2.tar.gz
0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1 openssl-1.1.1l.tar.gz
ecb5c6469d732bcf01d6ec1afe9e64f1668caba5bfdb103c28d7f537ba3cdb8a patch-2.5.9.tar.gz
ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd patch-2.7.6.tar.xz
1ae43c8d2983404b9eec61c96e3ffa27e7b07e08215c95c015a4ab0095373ef3 perl-5.000.tar.gz
@ -101,8 +102,6 @@ c6c37e888b136ccefab903c51149f4b7bd659d69d4aea21245f61053a57aa60a tar-1.12.tar.g
de23af78fca90ce32dff2dd45b3432b2334740bb9bb7b05bf60fdbfc396ceb9c tcc-0.9.27.tar.bz2
988403c1542d15ad044600b909997ba3079b10e03224c61188117f3676b02caa texinfo-6.7.tar.xz
f694bee56099b8d72c3843d97e27f2306aa9946741e34a27391f6f6f19c7bcd0 util-linux-2.19.1.tar.gz
166c48d2842519bc4f96333bff9e265f8cdda44d38e40594ef3f9bbb52890490 xz-5.0.5.tar.bz2
4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066 zlib-1.2.11.tar.xz
f0b19ff39c3c9a5898a219497ababbadab99d8178acc980155c7e1271089b5a0 libarchive-3.5.2.tar.xz
0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1 openssl-1.1.1l.tar.gz
0cbd8d5f23a62047c75974bca21da9f004a94efffd7f37c68562a8dbc869fb2a xbps-0.59.1.tar.gz
166c48d2842519bc4f96333bff9e265f8cdda44d38e40594ef3f9bbb52890490 xz-5.0.5.tar.bz2
7db46b8d7726232a621befaab4a1c870f00a90805511c0e0090441dac57def18 zlib-1.2.12.tar.xz

View File

@ -3,7 +3,7 @@
This file contains a few functions to be shared by all Sys* classes
"""
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-License-Identifier: GPL-3.0-or-later
@ -30,9 +30,10 @@ class SysGeneral:
git_dir = None
sys_dir = None
initramfs_path = None
mounted_tmpfs = False
def __del__(self):
if not self.preserve_tmp:
if self.mounted_tmpfs and not self.preserve_tmp:
print(f"Unmounting tmpfs from {self.tmp_dir}")
umount(self.tmp_dir)
os.rmdir(self.tmp_dir)
@ -43,6 +44,7 @@ class SysGeneral:
os.mkdir(self.tmp_dir)
print(f"Mounting tmpfs on {self.tmp_dir}")
mount('tmpfs', self.tmp_dir, 'tmpfs', 'size=8G')
self.mounted_tmpfs = True
def check_file(self, file_name):
"""Check hash of downloaded source file."""

View File

@ -5,7 +5,7 @@ This file contains a few self-contained helper functions
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
import os
import shutil

View File

@ -111,10 +111,10 @@ def main():
system_c = SysC(arch=args.arch, preserve_tmp=args.preserve,
tmpdir=args.tmpdir, chroot=args.chroot)
system_b = SysB(arch=args.arch, preserve_tmp=args.preserve,
tmpdir=args.tmpdir, chroot=args.chroot)
chroot=args.chroot)
system_a = SysA(arch=args.arch, preserve_tmp=args.preserve,
tmpdir=args.tmpdir, chroot=args.chroot,
sysb_tmp=system_b.tmp_dir, sysc_tmp=system_c.tmp_dir)
sysb_dir=system_b.sys_dir, sysc_tmp=system_c.tmp_dir)
bootstrap(args, system_a, system_b, system_c)

16
sysa.py
View File

@ -3,7 +3,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com>
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
import os
from distutils.dir_util import copy_tree
@ -17,7 +17,7 @@ class SysA(SysGeneral):
Class responsible for preparing sources for System A.
"""
# pylint: disable=too-many-instance-attributes,too-many-arguments
def __init__(self, arch, preserve_tmp, tmpdir, chroot, sysb_tmp, sysc_tmp):
def __init__(self, arch, preserve_tmp, tmpdir, chroot, sysb_dir, sysc_tmp):
self.git_dir = os.path.dirname(os.path.join(__file__))
self.arch = arch
self.preserve_tmp = preserve_tmp
@ -30,8 +30,8 @@ class SysA(SysGeneral):
os.mkdir(self.tmp_dir)
self.sysa_dir = os.path.join(self.tmp_dir, 'sysa')
self.base_dir = self.sysa_dir
self.cache_dir = os.path.join(self.git_dir, 'sources')
self.sysb_tmp = sysb_tmp
self.cache_dir = os.path.join(self.sys_dir, 'distfiles')
self.sysb_dir = sysb_dir
self.sysc_tmp = sysc_tmp
self.chroot = chroot
@ -58,17 +58,15 @@ class SysA(SysGeneral):
self.sysc()
def sysa(self):
"""Copy in sysb files for sysb."""
"""Copy in sysa files for sysa."""
self.get_packages()
shutil.copytree(self.sys_dir, os.path.join(self.tmp_dir, 'sysa'),
shutil.ignore_patterns('tmp'))
# Copy in downloaded sources
shutil.copytree(self.cache_dir, os.path.join(self.tmp_dir, 'sources'))
def sysb(self):
"""Copy in sysb files for sysb."""
shutil.copytree(self.sysb_tmp, os.path.join(self.tmp_dir, 'sysb'),
shutil.copytree(self.sysb_dir, os.path.join(self.tmp_dir, 'sysb'),
shutil.ignore_patterns('tmp'))
def sysc(self):

View File

@ -45,13 +45,13 @@ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.6.3
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.6.3_1.links
fd3f08f1f36f01c60a58e673c22d24baf387753096252c6485a2c746fb5a59be automake-1.6.3_1.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.6.3_2.links
1f72ccf75607d5230edd45e87d7c193e4170f4496fb867f71dd8bbe06457cba5 automake-1.6.3_2.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.7.8_0.links
56b1db0695b9df345434d12affd890be0d2abf98e2ecc0a8db5610c2bdad5877 automake-1.7.8_0.tar.bz2
5fd895eec36ee3af58e484ffd3423a36fe231b10154c588452f31141a7f25926 automake-1.6.3_2.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.7_0.links
a2e3b4407bda56f88d78c4efed47fe6adff31e5869e4caa9c0d51bc228b03ae7 automake-1.7_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.7_1.links
a2e3b4407bda56f88d78c4efed47fe6adff31e5869e4caa9c0d51bc228b03ae7 automake-1.7_1.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.7.8_0.links
56b1db0695b9df345434d12affd890be0d2abf98e2ecc0a8db5610c2bdad5877 automake-1.7.8_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.8.5_0.links
4709bd37394a9ae54b3fd48af13a13027d9dd4b13d9b84262850078bf42f68ec automake-1.8.5_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.9.6_0.links
@ -73,7 +73,7 @@ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bison-3.4.1_2.
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bison-3.4.2_0.links
0146942b6d008d11c42d11141c2f80dbdbbf8472073db79d921bb516e20f9dcf bison-3.4.2_0.tar.bz2
07fee627dcf30aaa9beab40ffeacc3bec7afe3488d2fbc7e8a72ae782a85869a bzip2-1.0.8_0.links
d9a4b7f7b2d4113cd0c6aee962ec80f9af13acded0d796e9a3acac6af3eb2710 bzip2-1.0.8_0.tar.bz2
2375ce2aefd97cb5d26d2c3bd0fa5f64cdce28304668dcb2918d2446c37362c2 bzip2-1.0.8_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 coreutils-5.0_0.links
23adbf427dab824a9b63604ddd2226e5598ccccdaa33f6f8b723fb316b2f131b coreutils-5.0_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 coreutils-6.10_0.links
@ -99,7 +99,7 @@ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 gcc-4.0.4_0.li
b6134fabf6f8eb98c63f0218281cc5fe0140094f0dc92415653b0de28e877ba0 gcc-4.0.4_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 gcc-4.0.4_1.links
af372b5ecf41c9d9c10da58f845c5d0e32ac27e1c11f4e4a1a4a7f01fb9c71e1 gcc-4.0.4_1.tar.bz2
3d012ad16221f6cd39d35158a5d483002d53e279eed0a4d6a1ad32bac4f2fd52 gcc-4.7.4_0.x86.xbps
c2fd372b857146510db4dfc53455915702dac269e81fea1430a5e3ad6a9c614e gcc-4.7.4_0.x86.xbps
d5c08e8f48c78b9f96c38cdbcea321be57a4f5a7e8bf05c9bac5770550aab0ca gettext-0.21_0.x86.xbps
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 gmp-6.2.1_0.links
ddcc4d5e4a80855d1c59a22ad9d095be5b0ae828461f98bc1246093a797a83b4 gmp-6.2.1_0.tar.bz2
@ -153,16 +153,16 @@ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl-5.000_0.l
ed5a2422e430a4c445b0afc4bc4a0fcfd7de84b08206c8ceca106826500098bb perl-5.000_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl-5.003_0.links
9311682e86e847fe7a2fe5e68013b2643042b8409011fcb68cb8f187840cea4c perl-5.003_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl5.004-05_0.links
e58538ab8f14a17941982165de8ea3ff57d402140b86583542af6ef5ab3e35ac perl5.004-05_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl5.005-03_0.links
3247abde3ddced1efb1f418f4d03765f996503421d67a07bf21000f85f3f3309 perl5.005-03_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl-5.10.1_0.links
0e216f189404be18ef7463665e9288258058b322f0636e9b9c19b5262af7980a perl-5.10.1_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl-5.32.1_0.links
9ed0a0c9ff88af07ea2cb2eea6367365da42a346a81b537f6e4a3dc80076953d perl-5.32.1_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl-5.6.2_0.links
7cbc4e4335fd3e25a24c94e4313c9426039efa28b0eb9eecb2b1e6e23c414ff3 perl-5.6.2_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl5.004-05_0.links
e58538ab8f14a17941982165de8ea3ff57d402140b86583542af6ef5ab3e35ac perl5.004-05_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl5.005-03_0.links
3247abde3ddced1efb1f418f4d03765f996503421d67a07bf21000f85f3f3309 perl5.005-03_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 pkg-config-0.29.2_0.links
f7d06f0ea85e8ede35ffdd0c37a8996803263ca8766905e5533f36d2258fddfa pkg-config-0.29.2_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 sed-4.0.9_0.links
@ -180,10 +180,9 @@ d353c17c187960f16e7944dd4bd1d4b45678ab230ba673ab596f9ce0e87755d1 tcc-0.9.27_3.t
8cc08f90342fdbfac51c9d3d0219f2b5bbf54ef3272aa16c1cee28a97e281822 texinfo-6.7_0.x86.xbps
970cc84444fecc225becb0db24671a186888a8a8d37daf3f40d827a907181a12 util-linux-2.19.1_0.links
c5e290b56f7a148b874e148d41050660eaac62124aff8ec29f277a584c4ee672 util-linux-2.19.1_0.tar.bz2
8a93bd58e2463eeb9ec1bf9b647dffee16e4d0d4d12067c82e4124aabd875710 x86-repodata
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 xbps-0.59.1_0.links
8ac1acb6db2cb2856630d48915f5f38a45aaa2ccb0709d19df60477bcb54fcb1 xbps-0.59.1_0.tar.bz2
608d4933e5ce97723d3489ceec0944045f43d72cd76263d9eba8a232f52d57da xbps-0.59.1_0.tar.bz2
ac8c7b186195ad29d86c2d1608b0c4ba37eeb12daff8f155d69d568239cae237 xz-5.0.5_0.links
514cd101fa54861de51622f35004423e5e4b168e704127d631692b7b4eed477d xz-5.0.5_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 zlib-1.2.11_0.links
cf5118fda278108c698c53725f411da4a0939c844a3a053181d916736429642f zlib-1.2.11_0.tar.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 zlib-1.2.12_0.links
f73856b9e370cb54a44ca6167abff326d4c909aaa6822c935804766e2ef11ef3 zlib-1.2.12_0.tar.bz2

View File

@ -2,7 +2,7 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
# SPDX-FileCopyrightText: 2020-2021 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2020-2022 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@ -12,7 +12,7 @@ PATH=/${ARCH_DIR}/bin
# Set commonly used variables
sysa=/sysa
sources=/sources
distfiles=/sysa/distfiles
prefix=/usr
bindir=${prefix}/bin
libdir=${prefix}/lib
@ -22,8 +22,8 @@ TMPDIR=/tmp # tmpdir is needed for patch to work
# Environmental variables needed for mes
NYACC_PKG=nyacc-1.00.2
MES_PKG=mes
MES_PREFIX=${sysa}/${MES_PKG}/src/mes-m2-dad1744fa80f52b3b428803c06b09d39c285f500
GUILE_LOAD_PATH=${MES_PREFIX}/mes/module:${MES_PREFIX}/module:${sysa}/${MES_PKG}/src/${NYACC_PKG}/module
MES_PREFIX=${sysa}/${MES_PKG}/build/mes-m2-dad1744fa80f52b3b428803c06b09d39c285f500
GUILE_LOAD_PATH=${MES_PREFIX}/mes/module:${MES_PREFIX}/module:${sysa}/${MES_PKG}/build/${NYACC_PKG}/module
mkdir -p ${prefix} ${bindir} ${libdir} ${incdir} ${TMPDIR}
cd ${prefix}
@ -66,7 +66,7 @@ cd ${sysa}
pkg=${MES_PKG}
cd ${pkg}
kaem --file ${pkg}.kaem
cd ${sysa}
cd ..
# tcc 0.9.26
pkg="tcc-0.9.26"

View File

@ -12,7 +12,7 @@ mkdir build src
cd build
# Extract
cp ${sources}/${pkg}.tar.gz ../src/
cp ${distfiles}/${pkg}.tar.gz ../src/
gunzip -f ../src/${pkg}.tar.gz
tar xf ../src/${pkg}.tar
rm -r ../src/

View File

@ -11,7 +11,7 @@ mkdir build src
cd build
# Extract
cp ${sources}/${pkg}.tar.gz ../src/
cp ${distfiles}/${pkg}.tar.gz ../src/
gunzip -f ../src/${pkg}.tar.gz
tar xf ../src/${pkg}.tar
cd ${pkg}

View File

@ -13,7 +13,9 @@ src_compile() {
}
src_install() {
install -D bzip2 ${DESTDIR}${PREFIX}/bin/bzip2
# Manually install bzip2 (cannot replace binary while running)
install -D bzip2 ${PREFIX}/bin/bzip2
mkdir -p ${DESTDIR}${PREFIX}/bin
ln -sf ${PREFIX}/bin/bzip2 ${DESTDIR}${PREFIX}/bin/bunzip2
ln -sf ${PREFIX}/bin/bzip2 ${DESTDIR}${PREFIX}/bin/bzcat
}

View File

@ -12,7 +12,7 @@ mkdir build src
cd build
# Extract
cp ${sources}/${pkg}.tar.bz2 ../src/
cp ${distfiles}/${pkg}.tar.bz2 ../src/
bunzip2 -f ../src/${pkg}.tar.bz2
tar xf ../src/${pkg}.tar
cd ${pkg}

View File

@ -3,7 +3,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="gnulib-8e128e.tar.gz"
EXTRA_DISTFILES="gnulib-8e128e.tar.gz"
src_prepare() {
. ../../import-gnulib.sh

View File

@ -4,7 +4,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="automake-1.16.3.tar.gz"
EXTRA_DISTFILES="automake-1.16.3.tar.gz"
src_prepare() {
default

View File

@ -4,7 +4,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="automake-1.16.3.tar.gz"
EXTRA_DISTFILES="automake-1.16.3.tar.gz"
src_prepare() {
default

View File

@ -15,7 +15,7 @@ catm gzip.c.new ../../files/stat_override.c gzip.c
cp gzip.c.new gzip.c
# Extract
cp ${sources}/${pkg}.tar.gz ../src/
cp ${distfiles}/${pkg}.tar.gz ../src/
ungz ../src/${pkg}.tar.gz
untar ../src/${pkg}.tar
cd ${pkg}

View File

@ -13,7 +13,7 @@ cd build
lexdir=/lex
# Extract
cp ${sources}/${pkg}.tar.bz2 ../src/
cp ${distfiles}/${pkg}.tar.bz2 ../src/
bunzip2 -f ../src/${pkg}.tar.bz2
tar xf ../src/${pkg}.tar ${pkg}/yacc ${pkg}/lex
rm -r ../src/

View File

@ -118,7 +118,7 @@ build() {
echo "${pkg}: unpacking source."
build_stage=src_unpack
call $build_stage
unset EXTRA_SRCS
unset EXTRA_DISTFILES
cd "${dirname}" || (echo "Cannot cd into build/${dirname}!"; kill $$)
@ -153,8 +153,6 @@ build() {
echo "${pkg}: creating package."
cd "${DESTDIR}"
src_pkg
# Various shenanigans must be implemented for repoducibility
# as a result of timestamps
src_checksum
@ -171,36 +169,31 @@ build() {
cd "${SOURCES}"
unset -f src_unpack src_prepare src_configure src_compile src_install
unset checksum
}
# Default unpacking function that unpacks all source tarballs.
default_src_unpack() {
SRCS=$EXTRA_SRCS
for f in "/sources/${pkg}."*; do
SRCS="$(basename "$f") ${SRCS}"
distfiles=${EXTRA_DISTFILES}
# shellcheck disable=SC2153
for f in "${DISTFILES}/${pkg}."*; do
distfiles="$(basename "$f") ${distfiles}"
done
# Check for new tar
# shellcheck disable=SC2153
if test -e "${PREFIX}/libexec/rmt"; then
for i in $SRCS; do
tar --no-same-owner -xf "/sources/${i}"
for i in ${distfiles}; do
tar --no-same-owner -xf "${DISTFILES}/${i}"
done
else
for i in $SRCS; do
for i in ${distfiles}; do
case "$i" in
*.tar.gz)
tar -xzf "/sources/${i}"
;;
*.tar.gz) tar -xzf "${DISTFILES}/${i}" ;;
*.tar.bz2)
# Initial bzip2 built against meslibc has broken pipes
bzip2 --decompress --keep "/sources/${i}"
tar -xf "/sources/${i%.bz2}"
rm "/sources/${i%.bz2}"
;;
bzip2 -dc "${DISTFILES}/${i}" | tar -xf - ;;
*.tar.xz)
tar -xf "/sources/${i}" --use-compress-program=xz
;;
tar -xf "${DISTFILES}/${i}" --use-compress-program=xz ;;
esac
done
fi
@ -297,9 +290,8 @@ src_apply() {
rm -f "/${file}" >/dev/null 2>&1 || true
done < /tmp/filelist.txt
fi
bzip2 --decompress --keep "/usr/src/repo/${pkg}_${revision}.tar.bz2"
tar -C / -xpf "/usr/src/repo/${pkg}_${revision}.tar"
rm "/usr/src/repo/${pkg}_${revision}.tar"
bzip2 -dc "/usr/src/repo/${pkg}_${revision}.tar.bz2" | \
tar -C / -xpf -
# shellcheck disable=SC2162
# ^ read -r unsupported in old bash
while read line; do

View File

@ -1,19 +1,17 @@
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_unpack() {
mkdir "${pkg}"
mv /sources/deblob-4.9 "${pkg}/"
mv "/sources/${pkg}.tar.gz" .
mv "${DISTFILES}/deblob-4.9" "${pkg}/"
# Remove all previous source tarballs
rm /sources/*
mv ${pkg}.tar.gz /sources
mv "${DISTFILES}/${pkg}.tar.gz" .
rm -r "${DISTFILES}/"*
mv "${pkg}.tar.gz" "${DISTFILES}"
default || true # Predictable link errors - not a problem
# Clear up storage space
rm -rf "/sources/${pkg}.tar.gz"
rm -r "${DISTFILES}" # Clear storage space
}
generate_autoconf_h() {

View File

@ -4,7 +4,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
src_unpack() {
tarball="/sources/linux-headers-5.10.41.tar.gz"
tarball="${DISTFILES}/linux-headers-5.10.41.tar.gz"
tar -xzf "${tarball}" "${dirname}/scripts"
tar -xzf "${tarball}" "${dirname}/include"
tar -xzf "${tarball}" "${dirname}/arch/x86/include"

View File

@ -10,7 +10,7 @@ mkdir build src
cd build
# Extract
cp ${sources}/${pkg}.tar.gz ../src/
cp ${distfiles}/${pkg}.tar.gz ../src/
gunzip -f ../src/${pkg}.tar.gz
tar xf ../src/${pkg}.tar
cd ${pkg}

View File

@ -1,7 +1,7 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2020-2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2020-2021 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2020-2022 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@ -18,14 +18,17 @@ cp files/mescc.scm ${bindir}/
chmod 755 ${bindir}/mescc.scm
# Unpack
mkdir src
cp ${sources}/${NYACC_PKG}.tar.gz src/
cp ${sources}/${MES_PKG}.tar.gz src/
mkdir src build
cd src
cp ${distfiles}/${NYACC_PKG}.tar.gz ${NYACC_PKG}.tar.gz
ungz ${NYACC_PKG}.tar.gz
untar ${NYACC_PKG}.tar
cp ${distfiles}/${MES_PKG}.tar.gz ${MES_PKG}.tar.gz
ungz ${MES_PKG}.tar.gz
untar ${MES_PKG}.tar
cd ..
cd build
untar ../src/${NYACC_PKG}.tar
untar ../src/${MES_PKG}.tar
cp ../files/config.h ${MES_PREFIX}/include/mes
@ -287,5 +290,5 @@ cp include/sys/user.h ${incdir}/sys/user.h
cp include/sys/wait.h ${incdir}/sys/wait.h
# Checksums
cd ${sysa}/${MES_PKG}
cd ../..
sha256sum -c checksums

View File

@ -1,7 +1,9 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later
SRCS="musl-1.2.2.tar.gz"
src_configure() {
CC=gcc ./configure \
--host=i386-unknown-linux-musl \

View File

@ -10,7 +10,7 @@ mkdir build src
cd build
# Extract
cp ${sources}/${pkg}.tar.gz ../src/
cp ${distfiles}/${pkg}.tar.gz ../src/
gunzip -f ../src/${pkg}.tar.gz
tar xf ../src/${pkg}.tar
cd ${pkg}

View File

@ -14,6 +14,7 @@ set -e
export PREFIX="${prefix}"
# shellcheck disable=SC2154
export SOURCES="${sysa}"
export DISTFILES="${sysa}/distfiles"
export DESTDIR=/tmp/destdir
export REPO="${PREFIX}/src/repo"

View File

@ -12,7 +12,7 @@ mkdir build src
cd build
# Extract
cp ${sources}/${pkg}.tar.gz ../src/
cp ${distfiles}/${pkg}.tar.gz ../src/
gunzip -f ../src/${pkg}.tar.gz
tar xf ../src/${pkg}.tar
cd ${pkg}

View File

@ -12,7 +12,7 @@ mkdir build src
cd build
# Extract
cp ${sources}/${pkg}.tar.gz ../src/
cp ${distfiles}/${pkg}.tar.gz ../src/
gunzip -f ../src/${pkg}.tar.gz
untar ../src/${pkg}.tar

View File

@ -1,10 +1,10 @@
ea96f7ad93ee4f7ed33b45b5055dbd95280a7fb315d8a205c703b55d1fe127ca /usr/bin/mes-tcc
25b21459c5e111492ce4e253a9b7e51a6a7caa3922e56f804cc597dbafd8d675 /usr/bin/boot0-tcc
31bc48b1d97777769e62d4b547fdf1655d441b6d33f5036de9e0a7000b491fee /usr/bin/boot1-tcc
bcbfad01134f83382932843343874de0952afce12ee69512e53c6153f4fcd7fa /usr/bin/boot2-tcc
7d34c08f1bd8944d11cbe213f03d484b6aca5fed0585d971572f239a09746b75 /usr/bin/boot3-tcc
e5bc6851ae1f3601f6dcb775d6459277646066147726028c28a8cf47eb96dd36 /usr/bin/boot4-tcc
7edcbfa3851f78bc9708cbf2a327d04ff1a88fd1cbef652ebe862345749049ca /usr/bin/tcc
fbf055522c51b6b4f5359beb937d404d0c17b43f892d4725c5a13208d3e24ae3 /usr/bin/boot0-tcc
a0a91baa0194f6bebb658f041d6ae786b9aea002b5dc8b2b21fa725f81b31259 /usr/bin/boot1-tcc
93e7a2530dba4955c3cea9f57f156e6368a2b5febc56855e1b277c46326a917e /usr/bin/boot2-tcc
9e7c8043fb42994faa255b14e3bb0d1fc44289a8567370baef5b455fa4b85e4c /usr/bin/boot3-tcc
d7301f314697d6783f5b8b1a969160ee7628ccbb477193ab746adffeb4a85855 /usr/bin/boot4-tcc
9ae8d5f4986c6375a705bd3e56aad26150c0a7a89421fc47c4343f5cf25a7a8d /usr/bin/tcc
37e53f55da1a8ca5452016528727b0c3e4b4e60690f1c5ed1dfc7ecca6e56581 /usr/lib/mes/libc.a
12c07ae103e7e3b390150a79e5c600d88de14e9bb73a066f6342582729ef5a3f /usr/lib/mes/libgetopt.a
44b5f15e1f015685fe4c3d66eda5ba52aac77b94f2edd98b764cec05ca350d49 /usr/lib/mes/crt1.o

View File

@ -1,6 +1,6 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@ -20,15 +20,18 @@ TCC_PKG=tcc-0.9.26-1136-g5bba73cc
MES_PKG=mes-0.23
# Unpack
mkdir src
cp ${sources}/${TCC_TAR}.tar.gz src
mkdir src build
cp ${distfiles}/${TCC_TAR}.tar.gz src
cp ${distfiles}/mes-0.23.tar.gz src
cd src
ungz ${TCC_TAR}.tar.gz
untar ${TCC_TAR}.tar
cp ${sources}/mes-0.23.tar.gz mes-0.23.tar.gz
ungz mes-0.23.tar.gz
untar mes-0.23.tar
cd ..
cd build
untar ../src/${TCC_TAR}.tar
untar ../src/mes-0.23.tar
# Create config.h
cd ${TCC_PKG}

View File

@ -11,7 +11,7 @@ mkdir build src
cd build
# Extract
cp ${sources}/${pkg}.tar.bz2 ../src/
cp ${distfiles}/${pkg}.tar.bz2 ../src/
bunzip2 -f ../src/${pkg}.tar.bz2
tar xf ../src/${pkg}.tar
cd ${pkg}

20
sysb.py
View File

@ -2,36 +2,20 @@
"""System B"""
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
import os
import shutil
from lib.utils import copytree
from lib.sysgeneral import SysGeneral
class SysB(SysGeneral):
"""
Class responsible for preparing sources for System B.
"""
def __init__(self, arch, preserve_tmp, tmpdir, chroot):
def __init__(self, arch, preserve_tmp, chroot):
self.git_dir = os.path.dirname(os.path.join(__file__))
self.arch = arch
self.preserve_tmp = preserve_tmp
self.chroot = chroot
self.sys_dir = os.path.join(self.git_dir, 'sysb')
if tmpdir is None:
self.tmp_dir = os.path.join(self.sys_dir, 'tmp')
else:
self.tmp_dir = os.path.join(tmpdir, 'sysb')
os.mkdir(self.tmp_dir)
self.prepare()
def prepare(self):
"""
Prepare directory structure for System B.
"""
self.mount_tmpfs()
copytree(self.sys_dir, self.tmp_dir, ignore=shutil.ignore_patterns("tmp"))

View File

@ -24,7 +24,7 @@ class SysC(SysGeneral):
self.chroot = chroot
self.sys_dir = os.path.join(self.git_dir, 'sysc')
self.cache_dir = os.path.join(self.sys_dir, 'sources')
self.cache_dir = os.path.join(self.sys_dir, 'distfiles')
if tmpdir is None:
self.tmp_dir = os.path.join(self.sys_dir, 'tmp')
else:

View File

@ -1,8 +1,10 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
SRCS="autoconf-2.69.tar.xz"
src_prepare() {
rm doc/standards.info man/*.1
autoreconf-2.64 -f

View File

@ -1,7 +1,9 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later
SRCS="autoconf-2.71.tar.xz"
src_prepare() {
rm doc/standards.info
autoreconf-2.69 -fi

View File

@ -1,7 +1,9 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later
SRCS="autoconf-archive-2021.02.19.tar.xz"
src_prepare() {
autoreconf-2.69 -fi
}

View File

@ -3,7 +3,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="gnulib-b28236b.tar.gz"
EXTRA_DISTFILES="gnulib-b28236b.tar.gz"
src_prepare() {
default

View File

@ -3,7 +3,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="gnulib-672663a.tar.gz"
EXTRA_DISTFILES="gnulib-672663a.tar.gz"
src_prepare() {
default

View File

@ -3,7 +3,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="gnulib-d279bc.tar.gz"
EXTRA_DISTFILES="gnulib-d279bc.tar.gz"
regenerate_files() {
build-aux/gen-lists-of-programs.sh --autoconf > m4/cu-progs.m4

View File

@ -3,7 +3,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="gnulib-7daa86f.tar.gz"
EXTRA_DISTFILES="gnulib-7daa86f.tar.gz"
src_prepare() {
find . -name '*.info*' -delete

View File

@ -4,7 +4,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="gnulib-901694b9.tar.gz guile-psyntax-bootstrapping.tar.gz"
EXTRA_DISTFILES="gnulib-901694b9.tar.gz guile-psyntax-bootstrapping.tar.gz"
src_prepare() {
default

View File

@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="gnulib-52a06cb3.tar.gz"
EXTRA_DISTFILES="gnulib-52a06cb3.tar.gz"
src_prepare() {
find . -name '*.info*' -delete

View File

@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="gnulib-e017871.tar.gz"
EXTRA_DISTFILES="gnulib-e017871.tar.gz"
src_prepare() {
../../import-gnulib.sh

View File

@ -3,7 +3,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="perl-5.10.1.tar.bz2"
EXTRA_DISTFILES="perl-5.10.1.tar.bz2"
src_prepare() {
default_src_prepare

View File

@ -3,7 +3,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="perl-5f2dc80.tar.bz2"
EXTRA_DISTFILES="perl-5f2dc80.tar.bz2"
src_prepare() {
default

View File

@ -15,6 +15,7 @@ export PATH=/usr/bin:/usr/sbin
export PREFIX=/usr
export SOURCES=/usr/src
export DESTDIR=/tmp/destdir
export DISTFILES=/distfiles
create_fhs() {
# Add the rest of the FHS that we will use and is not created pre-boot
@ -36,4 +37,4 @@ create_fhs
build bash-5.1
exec env -i PATH=${PATH} PREFIX=${PREFIX} SOURCES=${SOURCES} DESTDIR=${DESTDIR} bash run2.sh
exec env -i PATH=${PATH} PREFIX=${PREFIX} SOURCES=${SOURCES} DESTDIR=${DESTDIR} DISTFILES=${DISTFILES} bash run2.sh

View File

@ -9,6 +9,7 @@
set -e
# shellcheck disable=SC2153
trap 'env - PATH=${PREFIX}/bin PS1="\w # " bash -i' EXIT
# shellcheck source=sysa/helpers.sh

View File

@ -3,7 +3,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="gnulib-30820c.tar.gz"
EXTRA_DISTFILES="gnulib-30820c.tar.gz"
src_prepare() {
default

View File

@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_SRCS="gnulib-b81ec69.tar.gz"
EXTRA_DISTFILES="gnulib-b81ec69.tar.gz"
src_prepare() {
find . -name '*.mo' -delete