logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>
commit: 76929dbf1b0c386a992947ef8565520d1a360c8b
parent 79c47f21ff87006bb077a785e6f42d9a036d8704
Author: fosslinux <fosslinux@aussies.space>
Date:   Thu, 21 Apr 2022 20:51:13 +1000

Merge pull request #149 from stikonas/rootfs_refactor

rootfs.py refactoring.

Diffstat:

M.cirrus.yml2+-
M.reuse/dep52+-
Mlib/sysgeneral.py32++++++--------------------------
Mlib/utils.py29+++++++++++++----------------
Mparts.rst2+-
Msysa.py32+++++++++++---------------------
Asysa/SHA256SUMS.pkgs189+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msysa/after.kaem16++++++++--------
Msysa/bash-2.05b/bash-2.05b.kaem6++++--
Msysa/bzip2-1.0.8/bzip2-1.0.8.kaem3++-
Msysa/bzip2-1.0.8/bzip2-1.0.8.sh6+-----
Msysa/coreutils-5.0/coreutils-5.0.kaem4+++-
Msysa/coreutils-5.0/coreutils-5.0.sh10+---------
Msysa/findutils-4.2.33/findutils-4.2.33.sh4+++-
Msysa/gcc-4.0.4/pass1.sh4+++-
Msysa/gcc-4.0.4/pass2.sh4+++-
Msysa/gzip-1.2.4/gzip-1.2.4.kaem3++-
Msysa/heirloom-devtools-070527/heirloom-devtools-070527.kaem4+++-
Asysa/helpers.sh359+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msysa/linux-4.9.10/linux-4.9.10.sh11++++++++---
Msysa/linux-headers-5.10.41/linux-headers-5.10.41.sh11++++++-----
Msysa/make-3.80/make-3.80.kaem3++-
Msysa/mes/mes.kaem5++++-
Msysa/patch-2.5.9/patch-2.5.9.kaem3++-
Msysa/run.sh11++++++-----
Msysa/sed-4.0.9/sed-4.0.9.kaem3++-
Msysa/tar-1.12/tar-1.12.kaem3++-
Msysa/tcc-0.9.26/tcc-0.9.26.kaem4+++-
Msysa/tcc-0.9.27/tcc-0.9.27.kaem3++-
Msysb.py15++-------------
Msysb/init2++
Msysb/run.sh7++++---
Msysc.py23++++-------------------
Msysc/bison-2.3/bison-2.3.sh3+++
Msysc/bison-3.4.2/bison-3.4.2.sh3+++
Msysc/coreutils-8.32/coreutils-8.32.sh3+++
Msysc/gettext-0.21/gettext-0.21.sh3+++
Msysc/guile-3.0.7/guile-3.0.7.sh4+++-
Msysc/init5+++++
Msysc/libunistring-0.9.10/libunistring-0.9.10.sh4+++-
Msysc/patch-2.7.6/patch-2.7.6.sh4+++-
Msysc/perl-5.10.1/perl-5.10.1.sh3+++
Msysc/perl-5.32.1/perl-5.32.1.sh4+++-
Msysc/run.sh4++--
Msysc/run2.sh6+++---
Msysc/tar-1.34/tar-1.34.sh4+++-
Msysc/texinfo-6.7/texinfo-6.7.sh4+++-
Dsysglobal/SHA256SUMS.pkgs189-------------------------------------------------------------------------------
Dsysglobal/helpers.sh352-------------------------------------------------------------------------------
49 files changed, 706 insertions(+), 704 deletions(-)

diff --git a/.cirrus.yml b/.cirrus.yml @@ -24,7 +24,7 @@ shell_lint_task: - apt-get -y install shellcheck - apt-get -y clean check_script: - - shellcheck sysa/run.sh sysb/run.sh sysc/run.sh sysc/run2.sh sysglobal/helpers.sh + - shellcheck sysa/run.sh sysb/run.sh sysc/run.sh sysc/run2.sh sysa/helpers.sh reuse_lint_task: container: diff --git a/.reuse/dep5 b/.reuse/dep5 @@ -9,6 +9,6 @@ Source: https://github.com/fosslinux/live-bootstrap # Copyright: $YEAR $NAME <$CONTACT> # License: ... -Files: SHA256SUMS.sources sysa/pre-sha.sha256sums sysa/*/checksums sysglobal/SHA256SUMS.pkgs +Files: SHA256SUMS.sources sysa/pre-sha.sha256sums sysa/*/checksums sysa/SHA256SUMS.pkgs Copyright: none License: MIT diff --git a/lib/sysgeneral.py b/lib/sysgeneral.py @@ -9,13 +9,12 @@ This file contains a few functions to be shared by all Sys* classes import os import hashlib -import shutil import glob import subprocess import requests -from lib.utils import mount, umount, get_target, copytree +from lib.utils import mount, umount class SysGeneral: """ @@ -26,6 +25,7 @@ class SysGeneral: # All of these are variables defined in the individual Sys* classes preserve_tmp = None tmp_dir = None + cache_dir = None base_dir = None git_dir = None sys_dir = None @@ -71,16 +71,14 @@ this script the next time") """ Download a single source archive. """ - cache_dir = os.path.join(self.git_dir, 'sources') - # Automatically determine file name based on URL. if file_name is None: file_name = os.path.basename(url) - abs_file_name = os.path.join(cache_dir, file_name) + abs_file_name = os.path.join(self.cache_dir, file_name) # Create a cache directory for downloaded sources - if not os.path.isdir(cache_dir): - os.mkdir(cache_dir) + if not os.path.isdir(self.cache_dir): + os.mkdir(self.cache_dir) # Actually download the file if not os.path.isfile(abs_file_name): @@ -109,37 +107,19 @@ this script the next time") # Single URL if isinstance(url, str): assert output is None or isinstance(output, str) - file_name = url if output is None else output urls = [url] outputs = [output] # Multiple URLs elif isinstance(url, list): assert output is None or len(output) == len(url) - file_name = url[0] if output is None else output[0] urls = url outputs = output if output is not None else [None] * len(url) else: raise TypeError("url must be either a string or a list of strings") - # Determine installation directory - target_name = get_target(file_name) - target_src_dir = os.path.join(self.base_dir, target_name, 'src') # Install base files - src_tree = os.path.join(self.sys_dir, target_name) - copytree(src_tree, self.base_dir) - if not os.path.isdir(target_src_dir): - os.mkdir(target_src_dir) for i, _ in enumerate(urls): # Download files into cache directory - tarball = self.download_file(urls[i], outputs[i]) - # Install sources into target directory - shutil.copy2(tarball, target_src_dir) - - def deploy_sysglobal_files(self): - """Deploy files common to all Sys*""" - sysglobal_files = ['helpers.sh', 'SHA256SUMS.pkgs'] - for file in sysglobal_files: - shutil.copy2(os.path.join(self.git_dir, 'sysglobal', file), - self.base_dir) + self.download_file(urls[i], outputs[i]) def make_initramfs(self): """Package binary bootstrap seeds and sources into initramfs.""" diff --git a/lib/utils.py b/lib/utils.py @@ -48,19 +48,16 @@ def umount(target, **kwargs): def copytree(src, dst, ignore=shutil.ignore_patterns('*.git*')): """Copy directory tree into another directory""" - file_name = os.path.basename(src) - shutil.copytree(src, os.path.join(dst, file_name), ignore=ignore) - -def get_target(file_name): - """Determine package installation directory""" - bname = os.path.basename(file_name) - - # Remove file extension. This is not completely trivial because - # tar archives often come with double extensions. - first_ext = os.path.splitext(os.path.basename(bname)) - second_ext = os.path.splitext(first_ext[0]) - if second_ext[1] == '.tar': - bname = second_ext[0] - else: - bname = first_ext[0] - return bname + if not os.path.exists(dst): + os.makedirs(dst) + lst = os.listdir(src) + if ignore: + excl = ignore(src, lst) + lst = [x for x in lst if x not in excl] + for item in lst: + source = os.path.join(src, item) + dest = os.path.join(dst, item) + if os.path.isdir(source): + copytree(source, dest, ignore) + else: + shutil.copy2(source, dest) diff --git a/parts.rst b/parts.rst @@ -504,7 +504,7 @@ automake 1.10.3 GNU Automake from 1.10 series. ``aclocal`` is slightly patched to work with our ``perl``. -autoconf 2.65 +autoconf 2.64 ============= Slightly newer version of GNU Autoconf. At this stage Autoconf is mostly diff --git a/sysa.py b/sysa.py @@ -24,12 +24,13 @@ class SysA(SysGeneral): self.sys_dir = os.path.join(self.git_dir, 'sysa') if tmpdir is None: - self.tmp_dir = os.path.join(self.sys_dir, 'tmp') + self.tmp_dir = os.path.join(self.git_dir, 'tmp') else: self.tmp_dir = os.path.join(tmpdir, 'sysa') 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.sysc_tmp = sysc_tmp self.chroot = chroot @@ -46,7 +47,6 @@ class SysA(SysGeneral): Rest of the files are unpacked into more structured directory /sysa """ self.mount_tmpfs() - os.mkdir(self.sysa_dir) self.stage0_posix() self.sysa() @@ -57,6 +57,15 @@ class SysA(SysGeneral): if self.chroot: self.sysc() + def sysa(self): + """Copy in sysb files for sysb.""" + 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'), @@ -81,25 +90,6 @@ class SysA(SysGeneral): shutil.copy2(os.path.join(self.sys_dir, 'after.kaem'), os.path.join(self.tmp_dir, 'after.kaem')) - def sysa(self): - """ - Prepare sources in /sysa directory. - After stage0-posix we get into our own directory because - the stage0-posix one is hella messy. - """ - - self.deploy_extra_files() - self.deploy_sysglobal_files() - self.get_packages() - - def deploy_extra_files(self): - """Deploy misc files""" - extra_files = ['run.sh', 'bootstrap.cfg'] - for extra_file in extra_files: - shutil.copy2(os.path.join(self.sys_dir, extra_file), self.sysa_dir) - - shutil.copy2(os.path.join(self.git_dir, 'SHA256SUMS.sources'), self.sysa_dir) - # pylint: disable=line-too-long,too-many-statements def get_packages(self): """Prepare remaining sources""" diff --git a/sysa/SHA256SUMS.pkgs b/sysa/SHA256SUMS.pkgs @@ -0,0 +1,189 @@ +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.12_0.links +0315f21016b38981aa40e2fd2d3d12b9fa2f0ddd9ef13576eb0ab3c82295af74 autoconf-2.12_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.13_0.links +cd8c61bd1d22239efd9a7a4932e1f973285c9c890d9b62e0c9dab3c1f4080106 autoconf-2.13_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.52_0.links +a5bead63a06e0a023855f6aa6605bbb2b1d62a7774eb89437eed845c728a6a27 autoconf-2.52_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.52_1.links +28154e19e6c346f90217b2b85ca3b77631f2dca539146e0cb64c4e2427d62cea autoconf-2.52_1.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.53_0.links +2dcbb81e7ba55cb7a3a6e0d8a2afd7aad99e4f626b8b6fe8485ef0f48f7e4474 autoconf-2.53_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.53_1.links +2dcbb81e7ba55cb7a3a6e0d8a2afd7aad99e4f626b8b6fe8485ef0f48f7e4474 autoconf-2.53_1.tar.bz2 +ad6c385e96d8c7ee9fa026e096b65821030adcc1c873547b4f6e3dc55e9d4669 autoconf-2.54_0.links +6ebd53013ebbbe4df2d6b93490aa64ae977cd240a1dc6477a73df186d7bdcdba autoconf-2.54_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.54_1.links +6ebd53013ebbbe4df2d6b93490aa64ae977cd240a1dc6477a73df186d7bdcdba autoconf-2.54_1.tar.bz2 +1fd322fa08bd65b9630b03983933dd6a85d32090d49e16029b2dae16f5f7208a autoconf-2.55_0.links +053a755b214722c010316b917e91e0c4f12a47b0a0dc381ce6349b01a8bdd74e autoconf-2.55_0.tar.bz2 +a5910f038266cf25281f770f13486979543e1b4ecd3d8c3d929812f052167ed5 autoconf-2.57_0.links +ab2fda41322186056b168a3bf517703863a0b4353a6db19b9a910a6a9e06e0c7 autoconf-2.57_0.tar.bz2 +ba8ac111cb1ce8de6d35086e198541c620cbedb2525552b98d8f6c399b449ffa autoconf-2.59_0.links +29346e72b90e039d3bcb96b3f565748fcaf2f3aa1707e4bec4311c2abcf241b3 autoconf-2.59_0.tar.bz2 +95c7b832abbc66673ec1d0a4254224d7ee4b8450c817121e67195ff8719229ef autoconf-2.61_0.links +95466f9440a1278a95fb9708c528cfd7657b3aa7d38f1a52669c1d09edce5233 autoconf-2.61_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.61_1.links +060fddab8b884b95842a46aacc1d0d9a067195dafea562082ef8da0e63279aed autoconf-2.61_1.tar.bz2 +48032a5174c2d346f43f43e00e82610cda23ca868c1202f001e241033d15a206 autoconf-2.64_0.links +a6c4340135a23c3934ce1357c7ee21bf963ae56ab49a86d27e57af15437bfad9 autoconf-2.64_0.tar.bz2 +6c73d920d88a96d1f971f98afe04dbc456522383777a42bb758f765630019f26 autoconf-2.69_0.links +2551d80c3fbe422fa1c807f810e947206959ed24da7ed12010bb6826c46920de autoconf-2.69_0.tar.bz2 +d713ac1840e82250414ee4f7cd75c79ee44ecb4e8dfc659704eed3d75e7d348c autoconf-2.71_0.x86.xbps +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-archive-2021.02.19_0.links +6ff691e3ddd4f3d1796d28b07a2a96691dbd9801844c99ccbe660da59dabd74b autoconf-archive-2021.02.19_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.10.3_0.links +9b804909afa19740fc0cf3ebd19f60a628f69f3ee5ea3089e86323b3c1d9dac8 automake-1.10.3_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.11.2_0.links +9589441d3c9dff00aa97946dbca7a6819fb2e5600e2919d5b60475adeb6f500a automake-1.11.2_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.15.1_0.links +3303c358637697a6d73f1562966a7ba72408e88c48d85163a9bda75bf7ace9cb automake-1.15.1_0.tar.bz2 +708d854632c90e3706194a1a7555a3dc2fafb7ccae65872ad3420083f2781143 automake-1.16.3_0.x86.xbps +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.4-p6_0.links +b2042326843b83a6d11b03455739179b9db8eabda6a06d0b2e2fe563a8e7f80d automake-1.4-p6_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.6.3_0.links +6b7133a5a9fa9b0a17f2a3288937560aa50b4a959a8ed660a1c838dea0a8e0f2 automake-1.6.3_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.6.3_1.links +fd3f08f1f36f01c60a58e673c22d24baf387753096252c6485a2c746fb5a59be automake-1.6.3_1.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.6.3_2.links +5fd895eec36ee3af58e484ffd3423a36fe231b10154c588452f31141a7f25926 automake-1.6.3_2.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.7.8_0.links +56b1db0695b9df345434d12affd890be0d2abf98e2ecc0a8db5610c2bdad5877 automake-1.7.8_0.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.8.5_0.links +4709bd37394a9ae54b3fd48af13a13027d9dd4b13d9b84262850078bf42f68ec automake-1.8.5_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.9.6_0.links +4d384100a10a3d8735b1a15f702ed3e6f6600c63a82510b4840c253fe6ea13e8 automake-1.9.6_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.9.6_1.links +4d384100a10a3d8735b1a15f702ed3e6f6600c63a82510b4840c253fe6ea13e8 automake-1.9.6_1.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bash-5.1_0.links +c21699b507d6303b954fb94a8d32eb36273a7cd62ed3e95ad3b841be247399a0 bash-5.1_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 binutils-2.14_0.links +118b5f654d48113e4327df161cf8780d1275775fbfe1ca70f107d6d34b15d01c binutils-2.14_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bison-2.3_0.links +93c3ca8187d8b8c34d08c027a8fcb9740e08413c4195c654267a567b745dc48a bison-2.3_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bison-3.4.1_0.links +a13065b727f7375f13c8a5c55fcc5996f71da25ea9f1d3a00f0841c66a5267c5 bison-3.4.1_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bison-3.4.1_1.links +eeb74409f87963e8d58078ef5d4278baa18d07b357ecef2b3c7ba66ca01d14fa bison-3.4.1_1.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bison-3.4.1_2.links +019bd3972382e761ac499d3a9f0f4fa9408268d7a608ee1de147593aaff1f7da bison-3.4.1_2.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bison-3.4.2_0.links +bee0a471e61748abb1e2b4cfd7092d17c68c091750156461d123c1aa5748a485 bison-3.4.2_0.tar.bz2 +07fee627dcf30aaa9beab40ffeacc3bec7afe3488d2fbc7e8a72ae782a85869a bzip2-1.0.8_0.links +d9a4b7f7b2d4113cd0c6aee962ec80f9af13acded0d796e9a3acac6af3eb2710 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 +3c826ca62e5e2f46008e091dda7776af866f55ba90f6c5842e579cd73cde518f coreutils-6.10_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 coreutils-8.32_0.links +19d3214553736d7f6d144c8826be50553c6cb961fa0cc2ccba400f4902250796 coreutils-8.32_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diffutils-2.7_0.links +c073d63ed17670197d026065557bc5da902db9b2213d89e1e5ceb130304e7c02 diffutils-2.7_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 dist-3.5-236_0.links +de6d9df33107ae63b8e0f30902fe9d00e42f78f44a60b256bb0b3c82ff75bd45 dist-3.5-236_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 findutils-4.2.33_0.links +8aad38864b8a4b003f37c11fb2564b51dc49fb78f38bde68fd569a21e0c440a0 findutils-4.2.33_0.tar.bz2 +865b57db33fc860abd00efc6b239366c3c1354ab4e699d8506e21a4316352863 flex-2.5.11_0.links +0404450ea64bce895204d0d05b8d2c554bc849fc6f66524cf28f0ffb0cb8d351 flex-2.5.11_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 flex-2.5.33_0.links +d1b62a9ea3516cd6399d67ea2e6641d922cb763f665b4d776dbfcd980925cd59 flex-2.5.33_0.tar.bz2 +a0ab924b46c0c11740a52958313d0543182053f476d42879128c57c52131a956 flex-2.6.4_0.links +f849859f234110ea0af9af126238d5a153655ac2945073f8cc680c40a3b275f8 flex-2.6.4_0.tar.bz2 +85c6ea124aa20e758ac334689782eeda694a35e32eacf320b588130be15d746a gawk-3.0.4_0.links +63f5eb2b7c24630ddca14ad97afd664277552566482d2dd16288f963ec3cda62 gawk-3.0.4_0.tar.bz2 +452767f7321aef2eeff9d3a935a574f0680f834f89f2589f3a43951a159b3948 gc-8.0.4_0.x86.xbps +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 gcc-4.0.4_0.links +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 +d5c08e8f48c78b9f96c38cdbcea321be57a4f5a7e8bf05c9bac5770550aab0ca gettext-0.21_0.x86.xbps +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 gmp-6.2.1_0.links +ddcc4d5e4a80855d1c59a22ad9d095be5b0ae828461f98bc1246093a797a83b4 gmp-6.2.1_0.tar.bz2 +507f79f3c07b212154053caae665ee7ed3a53bc420987ec381cf637339fef7de gperf-3.1_0.x86.xbps +ae0b200220b4a6d40571764d065ddf35d9535e94582c6bdb2c95316d937c4dce grep-2.4_0.links +38017521e32810dc6365a62d0647aadf42f7a4519e6cc7a3120f63bc39abff97 grep-2.4_0.tar.bz2 +e86436389d960515efdc1ba08c8178c1134dbed693ccce01ea82b05e6d9874f7 guile-3.0.7_0.x86.xbps +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 help2man-1.36.4_0.links +ff24fb2db6ac1231341aed7ba34607833a64c7583966f9c4e045b92adafe0efc help2man-1.36.4_0.tar.bz2 +7eeeb832b400a11419e4ef14bf778b8177bbc6a77f5a37c0c0f2965f66ab4d51 kbd-1.15_0.links +4ba1f2f0878a0450815842debc7e0a7a7565cf3ba7a1fe19a06cdb3bdf2011c2 kbd-1.15_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 kexec-tools-2.0.22_0.links +371f3301c7c2a594a2d664673497568e74e4562588e0e463ecec983cbc748c4e kexec-tools-2.0.22_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 libarchive-3.5.2_0.links +a481bde6169a5c9bec7a73782a1d2649d0db025adecc87b02e08e218c0251b43 libarchive-3.5.2_0.tar.bz2 +3a9d7649afe75a76583305283c8606e717cbab01b098f094f806e8e37045a658 libatomic_ops-7.6.10_0.x86.xbps +019bf569a1374e7fff7a106b11eb2c91dfd8da7f3a8b04e98d7e9403c27fc781 libffi-3.3_0.x86.xbps +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 libtool-1.4_0.links +7de31e089182cb00b611bd97afe3376d5df40b8e130f0fe9da731c42775fe77d libtool-1.4_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 libtool-2.2.4_0.links +d5a622df5eb4bf80a2e697262158e46c4b9cc95122b3f2ebf8df0a650643e8fb libtool-2.2.4_0.tar.bz2 +19bde5b058c188e976f4cfcea35d9f0d897daf593479a7db00eb6a6eabefd131 libunistring-0.9.10_0.x86.xbps +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 linux-4.9.10_0.links +a575a37f05006915c532698500bcc6476c0d2e09ac447cb1b7aa9679e7b593c5 linux-4.9.10_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 linux-headers-5.10.41_0.links +73a0ba95a62bf30c794c4025b36b73b3140371e2419b502937c5ce83a0febe5a linux-headers-5.10.41_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 m4-1.4.7_0.links +e26e62fda9ac8e85db7145b1f5fb870cfacd75edfd57fe7714922615dba6f45a m4-1.4.7_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 make-3.82_0.links +1f3cabc0beec65e4adb7a3dc720ea94ef49090692eca717b4f2c75d4a7ee16a3 make-3.82_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 make-4.2.1_0.links +34b87eca72afe922e8ea88f154af2b89d7920efd701babef53a05a1ea6c8bc78 make-4.2.1_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 mes-0.23_0.links +b5441c4bbb30765c0ef23863583f456e0383c50318f20ac0d1aebbd104fc1b45 mes-0.23_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 mpc-1.2.1_0.links +0f88b1715bde14c5d65ffeff54903fae5a11cd02d0e95cad9629c76d42e8d739 mpc-1.2.1_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 mpfr-4.1.0_0.links +b6d39f777d6770894844a64715149e1f4440668da28b91902e23be38086a0358 mpfr-4.1.0_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 musl-1.1.24_0.links +daf045916ee58babea4a0c60af45b756e1cca2dbf37a75877a8d9a9fb4cb6195 musl-1.1.24_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 musl-1.1.24_1.links +add489a4cc25f54d1527b7160395f4af483e7a80ce9391ca30b862f00a27a03a musl-1.1.24_1.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 musl-1.1.24_2.links +1298143458b0132825ed0673059b9e61a1b9f0a4bab865dfb9d4e387d44b32be musl-1.1.24_2.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 musl-1.2.2_0.links +7d841aa6f22320447443cc0edad29b2950f932a5361c2e0ffbbda392a53624fd musl-1.2.2_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 openssl-1.1.1l_0.links +bdf100e847adcf98e278d942c942cfa589afc7084744fc74df0e91fc5ae4a7d9 openssl-1.1.1l_0.tar.bz2 +863e44f0df017895ca6aecfca668971b9c445aa2958ea29134e03cd905502007 patch-2.7.6_0.x86.xbps +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl-5.000_0.links +ed5a2422e430a4c445b0afc4bc4a0fcfd7de84b08206c8ceca106826500098bb perl-5.000_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl-5.003_0.links +9311682e86e847fe7a2fe5e68013b2643042b8409011fcb68cb8f187840cea4c perl-5.003_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 +32672e07d3b571067084878edfe0b12b18379f3a63aa69523191f26fb6347e7d sed-4.0.9_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 tar-1.34_0.links +4ce969cac1ad1baee8cc9f30d480a02a49fb37e56012e061a65f0cbefe32b84d tar-1.34_0.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 tcc-0.9.27_0.links +bc592f7d9a0d41968a4a07e6b9f8964df969a6f73d492b03688f821de003072a tcc-0.9.27_0.tar.bz2 +b69c042a33cbf18e5a2a5a886d675ebcced92f57eec95b0f47345df8f1e89cf0 tcc-0.9.27_1.links +7cab26ac700fee9d445d0f56f285ce2c5c95685a359b231de76b4bf51c85b141 tcc-0.9.27_1.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 tcc-0.9.27_2.links +34cc5e95c3dedb4ab84d0cda8552d2b0957bb6c406fb627f6ef143f510d3b71b tcc-0.9.27_2.tar.bz2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 tcc-0.9.27_3.links +d353c17c187960f16e7944dd4bd1d4b45678ab230ba673ab596f9ce0e87755d1 tcc-0.9.27_3.tar.bz2 +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 +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 diff --git a/sysa/after.kaem b/sysa/after.kaem @@ -11,20 +11,20 @@ set -ex PATH=/${ARCH_DIR}/bin # Set commonly used variables -sources=/sysa +sysa=/sysa +sources=/sources prefix=/usr bindir=${prefix}/bin libdir=${prefix}/lib incdir=${prefix}/include -tmpdir=/tmp # tmpdir is needed for patch to work -TMPDIR=/tmp +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=${sources}/${MES_PKG}/src/mes-m2-dad1744fa80f52b3b428803c06b09d39c285f500 -GUILE_LOAD_PATH=${MES_PREFIX}/mes/module:${MES_PREFIX}/module:${sources}/${MES_PKG}/src/${NYACC_PKG}/module -mkdir -p ${prefix} ${bindir} ${libdir} ${incdir} ${tmpdir} +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 +mkdir -p ${prefix} ${bindir} ${libdir} ${incdir} ${TMPDIR} cd ${prefix} # Remove remaining dependencies on /bin (stage0-posix directory) @@ -60,13 +60,13 @@ chmod 755 bin/untar PATH=${bindir} -cd ${sources} +cd ${sysa} # mes pkg=${MES_PKG} cd ${pkg} kaem --file ${pkg}.kaem -cd ${sources} +cd ${sysa} # tcc 0.9.26 pkg="tcc-0.9.26" diff --git a/sysa/bash-2.05b/bash-2.05b.kaem b/sysa/bash-2.05b/bash-2.05b.kaem @@ -1,6 +1,6 @@ #!/bin/sh -# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com> # SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> # @@ -8,12 +8,14 @@ set -ex -mkdir build +mkdir build src cd build # Extract +cp ${sources}/${pkg}.tar.gz ../src/ gunzip -f ../src/${pkg}.tar.gz tar xf ../src/${pkg}.tar +rm -r ../src/ cd ${pkg} cp ../../mk/main.mk Makefile cp ../../mk/builtins.mk builtins/Makefile diff --git a/sysa/bzip2-1.0.8/bzip2-1.0.8.kaem b/sysa/bzip2-1.0.8/bzip2-1.0.8.kaem @@ -7,10 +7,11 @@ set -ex -mkdir build +mkdir build src cd build # Extract +cp ${sources}/${pkg}.tar.gz ../src/ gunzip -f ../src/${pkg}.tar.gz tar xf ../src/${pkg}.tar cd ${pkg} diff --git a/sysa/bzip2-1.0.8/bzip2-1.0.8.sh b/sysa/bzip2-1.0.8/bzip2-1.0.8.sh @@ -1,13 +1,9 @@ # SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com> # SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # # SPDX-License-Identifier: GPL-3.0-or-later -src_unpack() { - src_dir="${base_dir}/src" - tar -xf "${src_dir}/${pkg}.tar" -} - src_prepare() { : } diff --git a/sysa/coreutils-5.0/coreutils-5.0.kaem b/sysa/coreutils-5.0/coreutils-5.0.kaem @@ -8,10 +8,11 @@ set -ex -mkdir build +mkdir build src cd build # Extract +cp ${sources}/${pkg}.tar.bz2 ../src/ bunzip2 -f ../src/${pkg}.tar.bz2 tar xf ../src/${pkg}.tar cd ${pkg} @@ -33,6 +34,7 @@ make -f Makefile PREFIX=${prefix} make -f Makefile PREFIX=${prefix} install cd ../.. +rm -r src/ # Checksums sha256sum -c checksums diff --git a/sysa/coreutils-5.0/coreutils-5.0.sh b/sysa/coreutils-5.0/coreutils-5.0.sh @@ -1,17 +1,9 @@ # SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com> # SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # # SPDX-License-Identifier: GPL-3.0-or-later -src_unpack() { - src_dir="${base_dir}/src" - - # Remove previous source diretory - rm -rf "${pkg}" - - tar -xf "${src_dir}/${pkg}.tar" -} - src_prepare() { cp lib/fnmatch_.h lib/fnmatch.h cp lib/ftw_.h lib/ftw.h diff --git a/sysa/findutils-4.2.33/findutils-4.2.33.sh b/sysa/findutils-4.2.33/findutils-4.2.33.sh @@ -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 +EXTRA_SRCS="gnulib-8e128e.tar.gz" + src_prepare() { . ../../import-gnulib.sh diff --git a/sysa/gcc-4.0.4/pass1.sh b/sysa/gcc-4.0.4/pass1.sh @@ -1,9 +1,11 @@ -# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com> # SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space> # SPDX-License-Identifier: GPL-3.0-or-later +EXTRA_SRCS="automake-1.16.3.tar.gz" + src_prepare() { default # This is needed for building with TCC diff --git a/sysa/gcc-4.0.4/pass2.sh b/sysa/gcc-4.0.4/pass2.sh @@ -1,9 +1,11 @@ -# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com> # SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> # SPDX-License-Identifier: GPL-3.0-or-later +EXTRA_SRCS="automake-1.16.3.tar.gz" + src_prepare() { default diff --git a/sysa/gzip-1.2.4/gzip-1.2.4.kaem b/sysa/gzip-1.2.4/gzip-1.2.4.kaem @@ -8,13 +8,14 @@ set -ex -mkdir build +mkdir build src cd build catm gzip.c.new ../../files/stat_override.c gzip.c cp gzip.c.new gzip.c # Extract +cp ${sources}/${pkg}.tar.gz ../src/ ungz ../src/${pkg}.tar.gz untar ../src/${pkg}.tar cd ${pkg} diff --git a/sysa/heirloom-devtools-070527/heirloom-devtools-070527.kaem b/sysa/heirloom-devtools-070527/heirloom-devtools-070527.kaem @@ -7,14 +7,16 @@ set -ex -mkdir build +mkdir build src cd build lexdir=/lex # Extract +cp ${sources}/${pkg}.tar.bz2 ../src/ bunzip2 -f ../src/${pkg}.tar.bz2 tar xf ../src/${pkg}.tar ${pkg}/yacc ${pkg}/lex +rm -r ../src/ cd ${pkg} # Prepare and patch diff --git a/sysa/helpers.sh b/sysa/helpers.sh @@ -0,0 +1,359 @@ +#!/bin/bash -e + +# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> +# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> +# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com> +# SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# shellcheck source=/dev/null +. bootstrap.cfg + +# Find a list of links +get_links() { + original="${1:-${PWD}/}" + if [ -n "$(ls)" ]; then + for f in *; do + # Bash link detection is broken + # and we don't always have grep, hence this pretty dodgy solution + case "$(ls -ld "${f}")" in + *" -> "*) + fullpath="${PWD}/${f}" + # shellcheck disable=SC2001 + echo "$(readlink "${f}") /$(echo "${fullpath}" | sed "s:^${original}::")" + rm "${f}" # Don't include in tarball + ;; + *) + if [ -d "${f}" ]; then + cd "${f}" + get_links "${original}" + cd .. + fi + ;; + esac + done + fi +} + +# Reset all timestamps to unix time 0 +reset_timestamp() { + args= + # touch -h is not avaliable until after grep is built. + if command -v grep >/dev/null 2>&1; then + if touch --help | grep ' \-h' >/dev/null; then + args="-h" + fi + fi + if command -v find >/dev/null 2>&1; then + # find does not error out on exec error + find . -print0 | xargs -0 touch ${args} -t 197001010000.00 + else + # A rudimentary find implementation that does the trick + fs= + if [ -n "$(ls 2>/dev/null)" ]; then + fs=$(echo ./*) + fi + if [ -n "$(ls .[0-z]* 2>/dev/null)" ]; then + fs="${fs} $(echo .[0-z]*)" + fi + for f in ${fs}; do + touch ${args} -t 197001010000.00 "${f}" + if [ -d "${f}" ]; then + cd "${f}" + reset_timestamp + cd .. + fi + done + fi +} + +# Fake grep +_grep() { + text="${1}" + fname="${2}" + if command -v grep >/dev/null 2>&1; then + grep "${text}" "${fname}" + else + # shellcheck disable=SC2162 + while read line; do + case "${line}" in *"${text}"*) + echo "${line}" ;; + esac + done < "${fname}" + fi +} + +# Common build steps +# Build function provides a few common stages with default implementation +# that can be overridden on per package basis in the build script. +# build takes three arguments: +# 1) name-version of the package +# 2) optionally specify build script. Default is name-version.sh +# 3) optionally specify name of checksum file. Default is checksums +# 4) directory of patches. Default is patches +# 5) directory to cd into. Default is ${pkg} +build() { + pkg=$1 + script_name=${2:-${pkg}.sh} + dirname=${5:-${pkg}} + + cd "${SOURCES}/${pkg}" || (echo "Cannot cd into ${pkg}!"; kill $$) + echo "${pkg}: beginning build using script ${script_name}" + base_dir="${PWD}" + patch_dir="${base_dir}/${4:-patches}" + mk_dir="${base_dir}/mk" + files_dir="${base_dir}/files" + + rm -rf "build" + mkdir "build" + cd "build" + + build_script="${base_dir}/${script_name}" + if test -e "${build_script}"; then + # shellcheck source=/dev/null + . "${build_script}" + fi + + echo "${pkg}: unpacking source." + build_stage=src_unpack + call $build_stage + unset EXTRA_SRCS + + cd "${dirname}" || (echo "Cannot cd into build/${dirname}!"; kill $$) + + echo "${pkg}: preparing source." + build_stage=src_prepare + call $build_stage + + echo "${pkg}: configuring source." + build_stage=src_configure + call $build_stage + + echo "${pkg}: compiling source." + build_stage=src_compile + call $build_stage + + echo "${pkg}: install to fakeroot." + build_stage=src_install + call $build_stage + + cd /usr/src/repo + # Get revision (n time this package has been built) + revision="$(echo "${pkg}"*)" + # Different versions of bash + if [ "${revision}" = "${pkg}*" ] || [ -z "${revision}" ]; then + revision=0 + else + revision="${revision##*_}" + revision="${revision%%.*}" + revision=$((++revision)) + fi + + echo "${pkg}: creating package." + cd "${DESTDIR}" + src_pkg + # Various shenanigans must be implemented for repoducibility + # as a result of timestamps + + src_checksum + + echo "${pkg}: cleaning up." + rm -rf "${SOURCES}/${pkg}/build" + rm -rf "${DESTDIR}" + mkdir -p "${DESTDIR}" + + echo "${pkg}: installing package." + src_apply + + echo "${pkg}: build successful" + + 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}" + done + + # Check for new tar + if test -e "${PREFIX}/libexec/rmt"; then + for i in $SRCS; do + tar --no-same-owner -xf "/sources/${i}" + done + else + for i in $SRCS; do + case "$i" in + *.tar.gz) + tar -xzf "/sources/${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}" + ;; + *.tar.xz) + tar -xf "/sources/${i}" --use-compress-program=xz + ;; + esac + done + fi +} + +# Default function to prepare source code. +# It applies all patches from patch_dir (at the moment only -p0 patches are supported). +# Then it copies our custom makefile and any other custom files from files directory. +default_src_prepare() { + if test -d "${patch_dir}"; then + for p in "${patch_dir}"/*.patch; do + echo "Applying patch: ${p}" + patch -Np0 < "${p}" + done + fi + + makefile="${mk_dir}/main.mk" + if test -e "${makefile}"; then + cp "${makefile}" Makefile + fi + + if test -d "${files_dir}"; then + cp "${files_dir}"/* "${PWD}/" + fi +} + +# Default function for configuring source. +default_src_configure() { + : +} + +# Default function for compiling source. It simply runs make without any parameters. +default_src_compile() { + make -f Makefile PREFIX="${PREFIX}" +} + +# Default installing function. PREFIX should be set by run.sh script. +# Note that upstream makefiles might ignore PREFIX and have to be configured in configure stage. +default_src_install() { + make -f Makefile install PREFIX="${PREFIX}" DESTDIR="${DESTDIR}" +} + +create_tarball_pkg() { + # If grep is unavailable, then tar --sort is unavailable. + # So this does not need a command -v grep. + if tar --help | grep ' \-\-sort' >/dev/null 2>&1; then + tar -C "${DESTDIR}" --sort=name --hard-dereference -cf "/usr/src/repo/${pkg}_${revision}.tar" . + elif command -v find >/dev/null 2>&1 && command -v sort >/dev/null 2>&1; then + cd "${DESTDIR}" + tar --no-recursion --null -T /tmp/filelist.txt -cf "/usr/src/repo/${pkg}_${revision}.tar" + cd - + else + tar -C "${DESTDIR}" -cf "/usr/src/repo/${pkg}_${revision}.tar" . + fi + touch -t 197001010000.00 "${pkg}_${revision}.tar" + bzip2 --best "${pkg}_${revision}.tar" +} + +src_pkg() { + touch -t 197001010000.00 . + reset_timestamp + if command -v xbps-create >/dev/null 2>&1; then + cd /usr/src/repo + xbps-create -A "${ARCH}" -n "${pkg}_${revision}" -s "${pkg}" --compression xz "${DESTDIR}" + echo "${pkg}: adding package to repository." + xbps-rindex --compression xz -a "/usr/src/repo/${pkg}_${revision}.${ARCH}.xbps" + else + cd "${DESTDIR}" + # All symlinks are dereferenced, which is BAD + get_links > "/usr/src/repo/${pkg}_${revision}.links" + if command -v find >/dev/null 2>&1 && command -v sort >/dev/null 2>&1; then + find . -print0 | LC_ALL=C sort -z > /tmp/filelist.txt + fi + cd /usr/src/repo + create_tarball_pkg + fi +} + +src_checksum() { + if ! [ "$UPDATE_CHECKSUMS" = True ] ; then + echo "${pkg}: checksumming created package." + _grep "${pkg}_${revision}" "${SOURCES}/SHA256SUMS.pkgs" | sha256sum -c + fi +} + +src_apply() { + if command -v xbps-install >/dev/null 2>&1; then + xbps-install -y -R /usr/src/repo "${pkg%%-[0-9]*}" + else + # Overwriting files is mega busted, so do it manually + # shellcheck disable=SC2162 + if [ -e /tmp/filelist.txt ]; then + while IFS= read -d $'\0' file; do + 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" + # shellcheck disable=SC2162 + # ^ read -r unsupported in old bash + while read line; do + # shellcheck disable=SC2001 + # ^ cannot use variable expansion here + fname="$(echo "${line}" | sed 's/.* //')" + rm -f "${fname}" + # shellcheck disable=SC2226,SC2086 + # ^ ${line} expands into two arguments + ln -s ${line} + touch -t 197001010000.00 "${fname}" + done < "/usr/src/repo/${pkg}_${revision}.links" + fi +} + +# Check if bash function exists +fn_exists() { + test "$(type -t "$1")" == 'function' +} + +# Call package specific function or default implementation. +call() { + if fn_exists "$1"; then + $1 + else + default_"${1}" + fi +} + +# Call default build stage function +default() { + "default_${build_stage}" +} + +# Set modified dates of all files to be 0 unix time. +# Should be called at the end of bootstrapping process. +# This function needs `touch` that supports --no-dereference +# (at least coreutils 8.1). +canonicalise_all_files_timestamp() { + find / -exec touch --no-dereference -t 197001010000.00 {} + +} + +populate_device_nodes() { + # http://www.linuxfromscratch.org/lfs/view/6.1/chapter06/devices.html + mkdir -p "${1}/dev" + rm "${1}/dev/null" -f + test -c "${1}/dev/null" || mknod -m 666 "${1}/dev/null" c 1 3 + test -c "${1}/dev/zero" || mknod -m 666 "${1}/dev/zero" c 1 5 + test -c "${1}/dev/random" || mknod -m 444 "${1}/dev/random" c 1 8 + test -c "${1}/dev/urandom" || mknod -m 444 "${1}/dev/urandom" c 1 9 + + if [ "${CHROOT}" = False ]; then + test -c "${1}/dev/ptmx" || mknod -m 666 "${1}/dev/ptmx" c 5 2 + test -c "${1}/dev/tty" || mknod -m 666 "${1}/dev/tty" c 5 0 + test -c "${1}/dev/console" || mknod -m 666 "${1}/dev/console" c 5 1 + fi +} diff --git a/sysa/linux-4.9.10/linux-4.9.10.sh b/sysa/linux-4.9.10/linux-4.9.10.sh @@ -1,14 +1,19 @@ # SPDX-FileCopyrightText: 2021 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" . + # Remove all previous source tarballs + rm /sources/* + mv ${pkg}.tar.gz /sources default || true # Predictable link errors - not a problem - cp ../src/deblob-4.9 ${pkg}/ - # Clear up storage space - rm -rf ../src + rm -rf "/sources/${pkg}.tar.gz" } generate_autoconf_h() { diff --git a/sysa/linux-headers-5.10.41/linux-headers-5.10.41.sh b/sysa/linux-headers-5.10.41/linux-headers-5.10.41.sh @@ -1,13 +1,14 @@ # 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() { - src_dir="${base_dir}/src" - tar -xzf "${src_dir}/"*.tar.gz "${dirname}/scripts" - tar -xzf "${src_dir}/"*.tar.gz "${dirname}/include" - tar -xzf "${src_dir}/"*.tar.gz "${dirname}/arch/x86/include" - tar -xzf "${src_dir}/"*.tar.gz "${dirname}/arch/x86/entry" + tarball="/sources/linux-headers-5.10.41.tar.gz" + tar -xzf "${tarball}" "${dirname}/scripts" + tar -xzf "${tarball}" "${dirname}/include" + tar -xzf "${tarball}" "${dirname}/arch/x86/include" + tar -xzf "${tarball}" "${dirname}/arch/x86/entry" } src_prepare() { diff --git a/sysa/make-3.80/make-3.80.kaem b/sysa/make-3.80/make-3.80.kaem @@ -6,10 +6,11 @@ set -ex -mkdir build +mkdir build src cd build # Extract +cp ${sources}/${pkg}.tar.gz ../src/ gunzip -f ../src/${pkg}.tar.gz tar xf ../src/${pkg}.tar cd ${pkg} diff --git a/sysa/mes/mes.kaem b/sysa/mes/mes.kaem @@ -18,6 +18,9 @@ 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/ cd src ungz ${NYACC_PKG}.tar.gz untar ${NYACC_PKG}.tar @@ -284,5 +287,5 @@ cp include/sys/user.h ${incdir}/sys/user.h cp include/sys/wait.h ${incdir}/sys/wait.h # Checksums -cd ${sources}/${MES_PKG} +cd ${sysa}/${MES_PKG} sha256sum -c checksums diff --git a/sysa/patch-2.5.9/patch-2.5.9.kaem b/sysa/patch-2.5.9/patch-2.5.9.kaem @@ -6,10 +6,11 @@ set -ex -mkdir build +mkdir build src cd build # Extract +cp ${sources}/${pkg}.tar.gz ../src/ gunzip -f ../src/${pkg}.tar.gz tar xf ../src/${pkg}.tar cd ${pkg} diff --git a/sysa/run.sh b/sysa/run.sh @@ -1,19 +1,19 @@ #!/bin/bash -# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> # SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com> # # SPDX-License-Identifier: GPL-3.0-or-later set -e -# shellcheck source=sysglobal/helpers.sh +# shellcheck source=sysa/helpers.sh . helpers.sh # shellcheck disable=SC2154 export PREFIX="${prefix}" # shellcheck disable=SC2154 -export SOURCES="${sources}" +export SOURCES="${sysa}" export DESTDIR=/tmp/destdir export REPO="${PREFIX}/src/repo" @@ -25,7 +25,8 @@ create_sysb() { # Minimise RAM (storage) use - use hard links cp -rl "${PREFIX}/${d}" "/sysb${PREFIX}/${d}" done - cp "${SOURCES}/bootstrap.cfg" /sysb/usr/src/bootstrap.cfg + mkdir /sysb/usr/src + cp "${SOURCES}/helpers.sh" "${SOURCES}/SHA256SUMS.pkgs" "${SOURCES}/bootstrap.cfg" /sysb/usr/src/ cp -rl "${REPO}" "/sysb/${REPO}" populate_device_nodes /sysb echo "Creating sysb initramfs" @@ -257,5 +258,5 @@ fi # In chroot mode transition directly into System C. SYSC="/sysc" cp -R "${PREFIX}" "${SYSC}" -cp "${SOURCES}/bootstrap.cfg" "${SYSC}/usr/src/" +cp "${SOURCES}/helpers.sh" "${SOURCES}/SHA256SUMS.pkgs" "${SOURCES}/bootstrap.cfg" "${SYSC}/usr/src/" exec chroot "${SYSC}" /init diff --git a/sysa/sed-4.0.9/sed-4.0.9.kaem b/sysa/sed-4.0.9/sed-4.0.9.kaem @@ -8,10 +8,11 @@ set -ex -mkdir build +mkdir build src cd build # Extract +cp ${sources}/${pkg}.tar.gz ../src/ gunzip -f ../src/${pkg}.tar.gz tar xf ../src/${pkg}.tar cd ${pkg} diff --git a/sysa/tar-1.12/tar-1.12.kaem b/sysa/tar-1.12/tar-1.12.kaem @@ -8,10 +8,11 @@ set -ex -mkdir build +mkdir build src cd build # Extract +cp ${sources}/${pkg}.tar.gz ../src/ gunzip -f ../src/${pkg}.tar.gz untar ../src/${pkg}.tar diff --git a/sysa/tcc-0.9.26/tcc-0.9.26.kaem b/sysa/tcc-0.9.26/tcc-0.9.26.kaem @@ -20,11 +20,13 @@ TCC_PKG=tcc-0.9.26-1136-g5bba73cc MES_PKG=mes-0.23 # Unpack +mkdir src +cp ${sources}/${TCC_TAR}.tar.gz src cd src ungz ${TCC_TAR}.tar.gz untar ${TCC_TAR}.tar -cp ../../mes-0.23/src/mes-0.23.tar.gz mes-0.23.tar.gz +cp ${sources}/mes-0.23.tar.gz mes-0.23.tar.gz ungz mes-0.23.tar.gz untar mes-0.23.tar diff --git a/sysa/tcc-0.9.27/tcc-0.9.27.kaem b/sysa/tcc-0.9.27/tcc-0.9.27.kaem @@ -7,10 +7,11 @@ set -ex -mkdir build +mkdir build src cd build # Extract +cp ${sources}/${pkg}.tar.bz2 ../src/ bunzip2 -f ../src/${pkg}.tar.bz2 tar xf ../src/${pkg}.tar cd ${pkg} diff --git a/sysb.py b/sysb.py @@ -7,6 +7,7 @@ import os import shutil +from lib.utils import copytree from lib.sysgeneral import SysGeneral class SysB(SysGeneral): @@ -25,7 +26,6 @@ class SysB(SysGeneral): else: self.tmp_dir = os.path.join(tmpdir, 'sysb') os.mkdir(self.tmp_dir) - self.base_dir = os.path.join(self.tmp_dir, 'usr', 'src') self.prepare() @@ -34,15 +34,4 @@ class SysB(SysGeneral): Prepare directory structure for System B. """ self.mount_tmpfs() - os.makedirs(self.base_dir) - - # Misc files/scripts - self.deploy_sysglobal_files() - self.deploy_scripts() - - def deploy_scripts(self): - """Add the scripts to the chroot""" - # init script - shutil.copy2(os.path.join(self.sys_dir, 'init'), self.tmp_dir) - # run.sh - shutil.copy2(os.path.join(self.sys_dir, 'run.sh'), self.base_dir) + copytree(self.sys_dir, self.tmp_dir, ignore=shutil.ignore_patterns("tmp")) diff --git a/sysb/init b/sysb/init @@ -1,11 +1,13 @@ #!/usr/bin/bash # SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # # SPDX-License-Identifier: GPL-3.0-or-later set -e # Begin sysb bootstrapping process +mv ./run.sh /usr/src cd /usr/src ./run.sh diff --git a/sysb/run.sh b/sysb/run.sh @@ -6,7 +6,7 @@ set -e -# shellcheck source=sysglobal/helpers.sh +# shellcheck source=sysa/helpers.sh . helpers.sh # Unload the current kernel before things go weird @@ -65,10 +65,11 @@ mount -t ext4 "/dev/${DISK}" /sysc # Copy over appropriate data echo "Copying data into sysc" cp -r /dev /sysc/ +mkdir -p /sysc/usr/src # Don't include /usr/src find /usr -mindepth 1 -maxdepth 1 -type d -not -name src -exec cp -r {} /sysc/{} \; -# Except for bootstrap.cfg -cp /usr/src/bootstrap.cfg /sysc/usr/src/bootstrap.cfg +# Except for a few files +cp /usr/src/helpers.sh /usr/src/SHA256SUMS.pkgs /usr/src/bootstrap.cfg /sysc/usr/src/ cp -r /usr/src/repo /sysc/usr/src/repo sync diff --git a/sysc.py b/sysc.py @@ -8,7 +8,7 @@ import os import shutil import getpass -from lib.utils import mount, umount, create_disk, run +from lib.utils import mount, umount, create_disk, run, copytree from lib.sysgeneral import SysGeneral # pylint: disable=consider-using-with @@ -24,6 +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') if tmpdir is None: self.tmp_dir = os.path.join(self.sys_dir, 'tmp') else: @@ -59,30 +60,14 @@ class SysC(SysGeneral): else: self.rootfs_dir = self.tmp_dir - # Expand to the full base dir - self.base_dir = os.path.join(self.rootfs_dir, 'usr', 'src') - os.makedirs(self.base_dir) - - # Misc files/scripts - self.deploy_scripts() - self.deploy_sysglobal_files() - self.get_packages() + copytree(self.sys_dir, self.rootfs_dir, ignore=shutil.ignore_patterns("tmp")) + # Unmount tmp/mnt if it exists if not self.chroot: umount(self.rootfs_dir) - def deploy_scripts(self): - """Add the scripts to the chroot""" - src_files = ['run.sh', 'run2.sh'] - for file in src_files: - shutil.copy2(os.path.join(self.sys_dir, file), - os.path.join(self.base_dir, file)) - # init script - os.mkdir(os.path.join(self.rootfs_dir, 'sbin')) - shutil.copy2(os.path.join(self.sys_dir, 'init'), self.rootfs_dir) - # pylint: disable=line-too-long,too-many-statements def get_packages(self): """Prepare remaining sources""" diff --git a/sysc/bison-2.3/bison-2.3.sh b/sysc/bison-2.3/bison-2.3.sh @@ -1,7 +1,10 @@ # SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # # SPDX-License-Identifier: GPL-3.0-or-later +EXTRA_SRCS="gnulib-b28236b.tar.gz" + src_prepare() { default diff --git a/sysc/bison-3.4.2/bison-3.4.2.sh b/sysc/bison-3.4.2/bison-3.4.2.sh @@ -1,7 +1,10 @@ # SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # # SPDX-License-Identifier: GPL-3.0-or-later +EXTRA_SRCS="gnulib-672663a.tar.gz" + src_prepare() { default diff --git a/sysc/coreutils-8.32/coreutils-8.32.sh b/sysc/coreutils-8.32/coreutils-8.32.sh @@ -1,7 +1,10 @@ # SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # # SPDX-License-Identifier: GPL-3.0-or-later +EXTRA_SRCS="gnulib-d279bc.tar.gz" + regenerate_files() { build-aux/gen-lists-of-programs.sh --autoconf > m4/cu-progs.m4 build-aux/gen-lists-of-programs.sh --automake > src/cu-progs.mk diff --git a/sysc/gettext-0.21/gettext-0.21.sh b/sysc/gettext-0.21/gettext-0.21.sh @@ -1,7 +1,10 @@ # SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> +# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> # # SPDX-License-Identifier: GPL-3.0-or-later +EXTRA_SRCS="gnulib-7daa86f.tar.gz" + src_prepare() { find . -name '*.info*' -delete find . -name '*.gmo' -delete diff --git a/sysc/guile-3.0.7/guile-3.0.7.sh b/sysc/guile-3.0.7/guile-3.0.7.sh @@ -1,9 +1,11 @@ -# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # SPDX-FileCopyrightText: 2021 Michael Schierl <schierlm@gmx.de> # SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space> # # SPDX-License-Identifier: GPL-3.0-or-later +EXTRA_SRCS="gnulib-901694b9.tar.gz guile-psyntax-bootstrapping.tar.gz" + src_prepare() { default diff --git a/sysc/init b/sysc/init @@ -6,6 +6,11 @@ set -e +# Prepare sysc directory structure +mkdir -p /usr/src +mv run*.sh /usr/src +mv /*-* /usr/src # build scripts + # Begin sysc bootstrapping process cd /usr/src exec ./run.sh diff --git a/sysc/libunistring-0.9.10/libunistring-0.9.10.sh b/sysc/libunistring-0.9.10/libunistring-0.9.10.sh @@ -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 +EXTRA_SRCS="gnulib-52a06cb3.tar.gz" + src_prepare() { find . -name '*.info*' -delete diff --git a/sysc/patch-2.7.6/patch-2.7.6.sh b/sysc/patch-2.7.6/patch-2.7.6.sh @@ -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 +EXTRA_SRCS="gnulib-e017871.tar.gz" + src_prepare() { ../../import-gnulib.sh diff --git a/sysc/perl-5.10.1/perl-5.10.1.sh b/sysc/perl-5.10.1/perl-5.10.1.sh @@ -1,7 +1,10 @@ # SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # # SPDX-License-Identifier: GPL-3.0-or-later +EXTRA_SRCS="perl-5.10.1.tar.bz2" + src_prepare() { default_src_prepare diff --git a/sysc/perl-5.32.1/perl-5.32.1.sh b/sysc/perl-5.32.1/perl-5.32.1.sh @@ -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 +EXTRA_SRCS="perl-5f2dc80.tar.bz2" + src_prepare() { default diff --git a/sysc/run.sh b/sysc/run.sh @@ -1,6 +1,6 @@ #!/usr/bin/bash -# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> # SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com> # @@ -8,7 +8,7 @@ set -e -# shellcheck source=sysglobal/helpers.sh +# shellcheck source=sysa/helpers.sh . helpers.sh export PATH=/usr/bin:/usr/sbin diff --git a/sysc/run2.sh b/sysc/run2.sh @@ -1,6 +1,6 @@ #!/bin/bash -# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> +# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space> # SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com> # SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com> @@ -11,7 +11,7 @@ set -e trap 'env - PATH=${PREFIX}/bin PS1="\w # " bash -i' EXIT -# shellcheck source=sysglobal/helpers.sh +# shellcheck source=sysa/helpers.sh . helpers.sh trap bash EXIT @@ -92,7 +92,7 @@ fi if [ "$UPDATE_CHECKSUMS" = True ] ; then pushd /usr/src/repo - sha256sum ./* | tee "${SOURCES}/SHA256SUMS.pkgs" + sha256sum -- * | tee "${SOURCES}/SHA256SUMS.pkgs" popd fi diff --git a/sysc/tar-1.34/tar-1.34.sh b/sysc/tar-1.34/tar-1.34.sh @@ -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 +EXTRA_SRCS="gnulib-30820c.tar.gz" + src_prepare() { default diff --git a/sysc/texinfo-6.7/texinfo-6.7.sh b/sysc/texinfo-6.7/texinfo-6.7.sh @@ -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 +EXTRA_SRCS="gnulib-b81ec69.tar.gz" + src_prepare() { find . -name '*.mo' -delete find . -name '*.gmo' -delete diff --git a/sysglobal/SHA256SUMS.pkgs b/sysglobal/SHA256SUMS.pkgs @@ -1,189 +0,0 @@ -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.12_0.links -24fa8d902356692c938367a98a47a4e6a4c18f2c9f517322fb41c5ec0cd30713 autoconf-2.12_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.13_0.links -c527a1560bb12e2848da285eec94dbc5b8dc33c0c62b8f2724c844f1626a0593 autoconf-2.13_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.52_0.links -7c92699f3b1c2f63a18b8a771d00128aa8992403c47a9e552cccad741ced61ac autoconf-2.52_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.52_1.links -51bb5ba7d787cf33c74d7c79a843c5e615c050e0c0ee3ac724c4a1dea3a8b75a autoconf-2.52_1.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.53_0.links -a824987c1e30d13cf2b9d1af8e354eb33f54ef7a8544743c5d7243410894df44 autoconf-2.53_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.53_1.links -ae4958fad5a258de859a34e22e46bccb492bf40b18cc2cc6cf9de333afa7e401 autoconf-2.53_1.tar.gz -ad6c385e96d8c7ee9fa026e096b65821030adcc1c873547b4f6e3dc55e9d4669 autoconf-2.54_0.links -9dce2fc83085a9e20f7a9f57cea1c9c3d111dc51102d688ecdafea08376f582e autoconf-2.54_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.54_1.links -d5f8657c7ce9aaa624838f2ea7fc624c28f01d9e189459d325bfc04ded36b2e5 autoconf-2.54_1.tar.gz -1fd322fa08bd65b9630b03983933dd6a85d32090d49e16029b2dae16f5f7208a autoconf-2.55_0.links -848e41d3fe64464a1c76c566d0c31b154c75f0ff6e66fb79ed66e2cf3a46a3a0 autoconf-2.55_0.tar.gz -a5910f038266cf25281f770f13486979543e1b4ecd3d8c3d929812f052167ed5 autoconf-2.57_0.links -d5cf501d7f69dbf3c21427cc3718b7d3bb79a216d3ece41dec96fd98ea18b04d autoconf-2.57_0.tar.gz -ba8ac111cb1ce8de6d35086e198541c620cbedb2525552b98d8f6c399b449ffa autoconf-2.59_0.links -55f4e138de7eedffef459061d7180e40e733cfd1dd9aa57572098111a70599fb autoconf-2.59_0.tar.gz -95c7b832abbc66673ec1d0a4254224d7ee4b8450c817121e67195ff8719229ef autoconf-2.61_0.links -f123f798e1135347ffb9a84bd09a4a3c569e0941454fb094ba177a384c2a2619 autoconf-2.61_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-2.61_1.links -9b21657a7c62214a59cb4724c6b676e50ead136bef67f647cba072d061afbbf1 autoconf-2.61_1.tar.gz -48032a5174c2d346f43f43e00e82610cda23ca868c1202f001e241033d15a206 autoconf-2.64_0.links -a13a7569b9b9a050b0278c066ec86e7d65966af27e3808a4da7ae4934e73421c autoconf-2.64_0.tar.gz -6c73d920d88a96d1f971f98afe04dbc456522383777a42bb758f765630019f26 autoconf-2.69_0.links -2dbbb16b7c723c7dd4dba772a1e03a4d6f15faf17eb7c2e1854a28e2fb747a6a autoconf-2.69_0.tar.gz -d713ac1840e82250414ee4f7cd75c79ee44ecb4e8dfc659704eed3d75e7d348c autoconf-2.71_0.x86.xbps -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 autoconf-archive-2021.02.19_0.links -3f6c27d6743f926c9b08cccd921c3d6179105c681dd5aa9ab362895c71c106c9 autoconf-archive-2021.02.19_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.10.3_0.links -3c3d5f935e0555694f7cf8d0d09281d9c3a1a6e0b18d0393c50d9c2359d1ea80 automake-1.10.3_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.11.2_0.links -8d367d6144ead0aa37e561f62a9873c5019adcba3973c9fe44772c0774a04997 automake-1.11.2_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.15.1_0.links -e09245752b6c221c0127ba9dc4cc10db0e62d9301fd79766ae09103c356655ca automake-1.15.1_0.tar.gz -708d854632c90e3706194a1a7555a3dc2fafb7ccae65872ad3420083f2781143 automake-1.16.3_0.x86.xbps -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.4-p6_0.links -2e603260980ec9d6f0cd560e02350a002575bb6fb2279229430c57d45cb29f86 automake-1.4-p6_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.6.3_0.links -b19f3bd68f1c9c22efc46e3bc1b685ebc9c90f384e3d25c0c47e5f3a789f3093 automake-1.6.3_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.6.3_1.links -a4810ca31d5fb1ce968a889c19de8def4470a6a941b6a274b894c6bcb966c6dd automake-1.6.3_1.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.6.3_2.links -e0e13b46d2aaee18d6dd0bbd86c47c1ca951c78e7c5e8e76f79fd14c2502e6ea automake-1.6.3_2.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.7.8_0.links -57de0e448b3b334ea728cf1eac5f3a4d75953ec09b0f41c76ada93ef8a1621c0 automake-1.7.8_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.7_0.links -ef1e4f793f2e53ddb86f39719aac302038d40a5b49a0c7acfb5ec5cdb8462ecd automake-1.7_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.7_1.links -a4f8b44f15dd79202fd1900e670b2b789aa2b27a632b6b174300c244986b9d0d automake-1.7_1.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.8.5_0.links -39e6fda316adc0c0f0dd59c7c2793d46583f292aca61e2f08c3bd6d0fb23c45c automake-1.8.5_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.9.6_0.links -9c4e3e511aaaec495a23bac4e79442cda26430f9d63fd7c4392ab4949fb5815a automake-1.9.6_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 automake-1.9.6_1.links -ce2252cf0e4e402248f06bff1f425829ba68a79a4e34efa2105234cfd0b76ca1 automake-1.9.6_1.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bash-5.1_0.links -d0e325c6dbe339c00e21851ef3f868fd4a1c405c3cda2d9c747f5307ff3011f8 bash-5.1_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 binutils-2.14_0.links -d6fc119b88047e4515b651f2d5132392eb636b91b444a3f2b24b6471936e8662 binutils-2.14_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bison-2.3_0.links -cc5861e27fbd75167bb89fc8504ff6c4e24a2e171a0fe31dd23188b66e12cd48 bison-2.3_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bison-3.4.1_0.links -d3000f037c98722a308c8fa856641b40b6870ed032a25bfffb6218c32ec303e3 bison-3.4.1_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bison-3.4.1_1.links -6c4758005c9634d7cf79812d7d419ebdff044aa0902b19b0c4651afda1f10306 bison-3.4.1_1.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bison-3.4.1_2.links -d9c4cb1c6bd07db46cdbf5cfc9b8d2cee4abc4cb970502770c0c1d5b0f3f37fd bison-3.4.1_2.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bison-3.4.2_0.links -ecea2e3965d335bf580c95616541bbbb19431e5f0309993470f46e289ce01ecd bison-3.4.2_0.tar.gz -07fee627dcf30aaa9beab40ffeacc3bec7afe3488d2fbc7e8a72ae782a85869a bzip2-1.0.8_0.links -e693059d3ea981d8fdfb65fb89e0f32a32bc6695f48f58e34c92d72d0f818f3f bzip2-1.0.8_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 coreutils-5.0_0.links -748512d89578c2b454cee350c81707c4a27bc02637429ee5f5d9b32c6d76f73a coreutils-5.0_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 coreutils-6.10_0.links -7ee4b097f5a896af925b53eee7055ba87dad89949f44d14695566249f45a5eaf coreutils-6.10_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 coreutils-8.32_0.links -92bd1a88bf688ab6ec6922c4f4be3f20fa657208c9ea5f1e9e07b2738c9c7478 coreutils-8.32_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diffutils-2.7_0.links -2cd5ac019b73c1be35bf08bf7a879b49962d666020a8fdf2823e249d2a13a9e5 diffutils-2.7_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 dist-3.5-236_0.links -ad8e113ecc22a49b1c40e670f0620da86bde6199ec56366c3d46368cf46c184c dist-3.5-236_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 findutils-4.2.33_0.links -23cdcd99ce1d90b13b7fb51c59ce71ec244558d72b670966832392448546b5a0 findutils-4.2.33_0.tar.gz -865b57db33fc860abd00efc6b239366c3c1354ab4e699d8506e21a4316352863 flex-2.5.11_0.links -8c0c50860613d0223d36892013493b069c1855eb002b95526d55d590207635ec flex-2.5.11_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 flex-2.5.33_0.links -052bbc8984c7a792e33ca8736436bc47c3290372e997574642f68d62c9230629 flex-2.5.33_0.tar.gz -a0ab924b46c0c11740a52958313d0543182053f476d42879128c57c52131a956 flex-2.6.4_0.links -e4150bd14b0e3f2ab3afa918971c8589ed79be0fb1f2beb85f27989c873461fd flex-2.6.4_0.tar.gz -85c6ea124aa20e758ac334689782eeda694a35e32eacf320b588130be15d746a gawk-3.0.4_0.links -4c151b8fac8731d6f7ffb5279353d4f16e2cbfe7374d48c48a571ae09d7a9c50 gawk-3.0.4_0.tar.gz -452767f7321aef2eeff9d3a935a574f0680f834f89f2589f3a43951a159b3948 gc-8.0.4_0.x86.xbps -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 gcc-4.0.4_0.links -3e3bd9b0c83a8a7120b8b3329ac60c8932d26793a7b38983e7e7b35e039ca260 gcc-4.0.4_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 gcc-4.0.4_1.links -6c9033ccedeb1d4c8d10487390fdef71cc1a4f687fc1e9d9413ab94314a0a935 gcc-4.0.4_1.tar.gz -3d012ad16221f6cd39d35158a5d483002d53e279eed0a4d6a1ad32bac4f2fd52 gcc-4.7.4_0.x86.xbps -d5c08e8f48c78b9f96c38cdbcea321be57a4f5a7e8bf05c9bac5770550aab0ca gettext-0.21_0.x86.xbps -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 gmp-6.2.1_0.links -cb28e5554c51291c456027e38f5563cc787c8e2f8656bb1f4dfcc085d0639016 gmp-6.2.1_0.tar.gz -507f79f3c07b212154053caae665ee7ed3a53bc420987ec381cf637339fef7de gperf-3.1_0.x86.xbps -ae0b200220b4a6d40571764d065ddf35d9535e94582c6bdb2c95316d937c4dce grep-2.4_0.links -5e48a54d2cfcdfea2803d7f60d6a57b1fd563920064beb6b13fa8bb96155bb5b grep-2.4_0.tar.gz -e86436389d960515efdc1ba08c8178c1134dbed693ccce01ea82b05e6d9874f7 guile-3.0.7_0.x86.xbps -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 help2man-1.36.4_0.links -7857bf4cbfabdf0e46a4cd222fb3c526d79661a329b9edf9c704f2ad7585bb49 help2man-1.36.4_0.tar.gz -7eeeb832b400a11419e4ef14bf778b8177bbc6a77f5a37c0c0f2965f66ab4d51 kbd-1.15_0.links -3b136d1840f66968807e0b4478d95dea584cded12b6582b3191bf11d9a74a6fa kbd-1.15_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 kexec-tools-2.0.22_0.links -d1156eda9b3d01cc65b554de76c99a29df2646541f4d7b2453b3b2a4dec24d74 kexec-tools-2.0.22_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 libarchive-3.5.2_0.links -ff3f08d39379fec2d1575495ec9c69d846f3e014d2088760c148161d9a50535f libarchive-3.5.2_0.tar.gz -3a9d7649afe75a76583305283c8606e717cbab01b098f094f806e8e37045a658 libatomic_ops-7.6.10_0.x86.xbps -019bf569a1374e7fff7a106b11eb2c91dfd8da7f3a8b04e98d7e9403c27fc781 libffi-3.3_0.x86.xbps -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 libtool-1.4_0.links -1c6698869f0996980b25515fd68ad47d4da7bde04754e3e355059a01a9276bbb libtool-1.4_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 libtool-2.2.4_0.links -71f03d2fd3ee2b224d95bfcb438610626f71dc6db98b523ae23b17fcc7f53f55 libtool-2.2.4_0.tar.gz -19bde5b058c188e976f4cfcea35d9f0d897daf593479a7db00eb6a6eabefd131 libunistring-0.9.10_0.x86.xbps -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 linux-4.9.10_0.links -59b2ec2edd1cfc2276187ef9a9ea11048f8fbd5e1b811eaab228a4e34a21da6b linux-4.9.10_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 linux-headers-5.10.41_0.links -16218b84f6958608e1163954cb3c50ed64dcbb9c280a85e2ff1ec07b4e15619b linux-headers-5.10.41_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 m4-1.4.7_0.links -8e6afb2fd2684d9a653ac8f307212dd206fc1c0e1cbf76f85f8eb45c3028ceb2 m4-1.4.7_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 make-3.82_0.links -7539898e15dc769b899838f65b0358b67b02350094b0170ae129ecc7a51e6678 make-3.82_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 make-4.2.1_0.links -8a36a31a26fc7737b10f8944892206e69787b98f6eb94cbaa9b89e5de56f97e5 make-4.2.1_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 mes-0.23_0.links -a23eef4bf67c43659f71b3ebe8c106276d97c82f02619a16766037be9cfef27d mes-0.23_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 mpc-1.2.1_0.links -94409e5aa78c758b80fcb6bd2d8d094bd14f4a4c02bc3cf7163b8d1d7414e1bc mpc-1.2.1_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 mpfr-4.1.0_0.links -f376fcd4747a8215095fae0d11c58bfec825302ad5c8a0f05cf49de3a6b4b924 mpfr-4.1.0_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 musl-1.1.24_0.links -b910a41d4606d88b402cc5e478c83bb6dd1ee2287e391d30ffb6427276d27ed0 musl-1.1.24_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 musl-1.1.24_1.links -5426777e1135a0bfbf14f350f861837e835c9d8ab28a949f01fa07780c13ba37 musl-1.1.24_1.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 musl-1.1.24_2.links -308180a2674c0434bb9d659d96f02cdd99d515e8968fc98043208fccd36b6384 musl-1.1.24_2.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 musl-1.2.2_0.links -b4171d36461bfe34df2100583c57d3a328c448d18238829280edc671811cfee6 musl-1.2.2_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 openssl-1.1.1l_0.links -2e386f4b34188fd7f3a95693fb5fd0c9213c815e7813774ccacf0c31090c10d2 openssl-1.1.1l_0.tar.gz -863e44f0df017895ca6aecfca668971b9c445aa2958ea29134e03cd905502007 patch-2.7.6_0.x86.xbps -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl-5.000_0.links -48303fa5a3dd7b132fbf032e349246a44e21955af64f5f2a3b941269ed931bbb perl-5.000_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl-5.003_0.links -6d54d6258d52af74461c9b15c623fd7641675f603910d7ac71027de614ea14df perl-5.003_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl-5.10.1_0.links -39cc484f9920f033605bc74e3b9246e56d574f4a2701f9e1bf4cac0f7d8aeb2f perl-5.10.1_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl-5.32.1_0.links -7206b8534ceccb20264ebecd2ea418dbd471d566f50438dc1a715610c9bbf3a0 perl-5.32.1_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl-5.6.2_0.links -b3cc813d409a9e45b57d56a796cd38083a72ade5508019cc58012595e7a1bd5e perl-5.6.2_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl5.004-05_0.links -b4b808257944bdb611c2f633ca1b5eaf5869173e4782101be7dfa7d4ea248876 perl5.004-05_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 perl5.005-03_0.links -6f7314054e18bfaa01604e8c06c9688e3cf652760abe2115cc508894268f6faf perl5.005-03_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 pkg-config-0.29.2_0.links -8ff0d5eb1c813eafd54180f125b6dcb7da347dacd705171faf034babc3c349f5 pkg-config-0.29.2_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 sed-4.0.9_0.links -aa900b99ec2fedc1bf9a1bc366b208f73f3f866c2b82d27ed8f4fccf538cb0e5 sed-4.0.9_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 tar-1.34_0.links -d75e019512d08d5eb99963632d9860189623ef19179b6b3f03dec37fefbbdfc5 tar-1.34_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 tcc-0.9.27_0.links -66c799097c8dcc5505b383dcb07ce77fc6720b58e8441311fdb4b4dc6ede66ba tcc-0.9.27_0.tar.gz -b69c042a33cbf18e5a2a5a886d675ebcced92f57eec95b0f47345df8f1e89cf0 tcc-0.9.27_1.links -dfc3a3750ed9122270c4ec906dffb00bcbeea2379d20ce4d420eb217e5fa9db6 tcc-0.9.27_1.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 tcc-0.9.27_2.links -2c02ed382ffb88b9ba2236250436915ccfe92f5f34299d93b09d4aefeeadf7c2 tcc-0.9.27_2.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 tcc-0.9.27_3.links -766e43802f86f49f63fefec21e9530544a452359298202fc9754979beabe4b2f tcc-0.9.27_3.tar.gz -8cc08f90342fdbfac51c9d3d0219f2b5bbf54ef3272aa16c1cee28a97e281822 texinfo-6.7_0.x86.xbps -970cc84444fecc225becb0db24671a186888a8a8d37daf3f40d827a907181a12 util-linux-2.19.1_0.links -12bf9cc888eecaf84d8799f01162d825c7c4574a129271272332a8facb65212c util-linux-2.19.1_0.tar.gz -8a93bd58e2463eeb9ec1bf9b647dffee16e4d0d4d12067c82e4124aabd875710 x86-repodata -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 xbps-0.59.1_0.links -0c71ba060376098d4b76aaa22f097cec8525ac010cbc957ad24e60f4175370c9 xbps-0.59.1_0.tar.gz -ac8c7b186195ad29d86c2d1608b0c4ba37eeb12daff8f155d69d568239cae237 xz-5.0.5_0.links -42746b3ac497a4e6aca198657a832e75810e64cc71bc7c40505d76bacae74f3b xz-5.0.5_0.tar.gz -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 zlib-1.2.11_0.links -be2c295f7e55e7f26c2d21a8497d38a2da2f5d2c5f629337531e43e6570c41e1 zlib-1.2.11_0.tar.gz diff --git a/sysglobal/helpers.sh b/sysglobal/helpers.sh @@ -1,352 +0,0 @@ -#!/bin/bash -e - -# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu> -# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> -# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com> -# SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -# shellcheck source=/dev/null -. bootstrap.cfg - -# Find a list of links -get_links() { - original="${1:-${PWD}/}" - if [ -n "$(ls)" ]; then - for f in *; do - # Bash link detection is broken - # and we don't always have grep, hence this pretty dodgy solution - case "$(ls -ld "${f}")" in - *" -> "*) - fullpath="${PWD}/${f}" - # shellcheck disable=SC2001 - echo "$(readlink "${f}") /$(echo "${fullpath}" | sed "s:^${original}::")" - rm "${f}" # Don't include in tarball - ;; - *) - if [ -d "${f}" ]; then - cd "${f}" - get_links "${original}" - cd .. - fi - ;; - esac - done - fi -} - -# Reset all timestamps to unix time 0 -reset_timestamp() { - args= - # touch -h is not avaliable until after grep is built. - if command -v grep >/dev/null 2>&1; then - if touch --help | grep ' \-h' >/dev/null; then - args="-h" - fi - fi - if command -v find >/dev/null 2>&1; then - # find does not error out on exec error - find . -print0 | xargs -0 touch ${args} -t 197001010000.00 - else - # A rudimentary find implementation that does the trick - fs= - if [ -n "$(ls 2>/dev/null)" ]; then - fs=$(echo ./*) - fi - if [ -n "$(ls .[0-z]* 2>/dev/null)" ]; then - fs="${fs} $(echo .[0-z]*)" - fi - for f in ${fs}; do - touch ${args} -t 197001010000.00 "${f}" - if [ -d "${f}" ]; then - cd "${f}" - reset_timestamp - cd .. - fi - done - fi -} - -# Fake grep -_grep() { - text="${1}" - fname="${2}" - if command -v grep >/dev/null 2>&1; then - grep "${text}" "${fname}" - else - # shellcheck disable=SC2162 - while read line; do - case "${line}" in *"${text}"*) - echo "${line}" ;; - esac - done < "${fname}" - fi -} - -# Common build steps -# Build function provides a few common stages with default implementation -# that can be overridden on per package basis in the build script. -# build takes three arguments: -# 1) name-version of the package -# 2) optionally specify build script. Default is name-version.sh -# 3) optionally specify name of checksum file. Default is checksums -# 4) directory of patches. Default is patches -# 5) directory to cd into. Default is ${pkg} -build() { - pkg=$1 - script_name=${2:-${pkg}.sh} - dirname=${5:-${pkg}} - - cd "${SOURCES}/${pkg}" || (echo "Cannot cd into ${pkg}!"; kill $$) - echo "${pkg}: beginning build using script ${script_name}" - base_dir="${PWD}" - patch_dir="${base_dir}/${4:-patches}" - mk_dir="${base_dir}/mk" - files_dir="${base_dir}/files" - - mkdir -p "build" - cd "build" - - build_script="${base_dir}/${script_name}" - if test -e "${build_script}"; then - # shellcheck source=/dev/null - . "${build_script}" - fi - - echo "${pkg}: unpacking source." - build_stage=src_unpack - call $build_stage - - cd "${dirname}" || (echo "Cannot cd into build/${dirname}!"; kill $$) - - echo "${pkg}: preparing source." - build_stage=src_prepare - call $build_stage - - echo "${pkg}: configuring source." - build_stage=src_configure - call $build_stage - - echo "${pkg}: compiling source." - build_stage=src_compile - call $build_stage - - echo "${pkg}: install to fakeroot." - build_stage=src_install - call $build_stage - - cd /usr/src/repo - # Get revision (n time this package has been built) - revision="$(echo "${pkg}"*)" - # Different versions of bash - if [ "${revision}" = "${pkg}*" ] || [ -z "${revision}" ]; then - revision=0 - else - revision="${revision##*_}" - revision="${revision%%.*}" - revision=$((++revision)) - fi - - echo "${pkg}: creating package." - cd "${DESTDIR}" - src_pkg - # Various shenanigans must be implemented for repoducibility - # as a result of timestamps - - src_checksum - - echo "${pkg}: cleaning up." - rm -rf "${SOURCES}/${pkg}/build" - rm -rf /tmp/destdir/ - mkdir -p /tmp/destdir/ - - echo "${pkg}: installing package." - src_apply - - echo "${pkg}: build successful" - - 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() { - src_dir="${base_dir}/src" - - # Check for new tar - if test -e "${PREFIX}/libexec/rmt"; then - for i in "${src_dir}"/*; do - tar --no-same-owner -xf "${i}" - done - else - for i in "${src_dir}"/*.tar.gz; do - [ -e "${i}" ] || continue - tar -xzf "${i}" - done - for i in "${src_dir}"/*.tar.bz2; do - [ -e "${i}" ] || continue - tar -xf "${i}" --use-compress-program=bzip2 - done - for i in "${src_dir}"/*.tar.xz; do - [ -e "${i}" ] || continue - tar -xf "${i}" --use-compress-program=xz - done - for i in "${src_dir}"/*.tar; do - [ -e "${i}" ] || continue - tar -xf "${i}" - done - fi -} - -# Default function to prepare source code. -# It applies all patches from patch_dir (at the moment only -p0 patches are supported). -# Then it copies our custom makefile and any other custom files from files directory. -default_src_prepare() { - if test -d "${patch_dir}"; then - for p in "${patch_dir}"/*.patch; do - echo "Applying patch: ${p}" - patch -Np0 < "${p}" - done - fi - - makefile="${mk_dir}/main.mk" - if test -e "${makefile}"; then - cp "${makefile}" Makefile - fi - - if test -d "${files_dir}"; then - cp "${files_dir}"/* "${PWD}/" - fi -} - -# Default function for configuring source. -default_src_configure() { - : -} - -# Default function for compiling source. It simply runs make without any parameters. -default_src_compile() { - make -f Makefile PREFIX="${PREFIX}" -} - -# Default installing function. PREFIX should be set by run.sh script. -# Note that upstream makefiles might ignore PREFIX and have to be configured in configure stage. -default_src_install() { - make -f Makefile install PREFIX="${PREFIX}" DESTDIR="${DESTDIR}" -} - -create_tarball_pkg() { - # If grep is unavailable, then tar --sort is unavailable. - # So this does not need a command -v grep. - if tar --help | grep ' \-\-sort' >/dev/null 2>&1; then - tar -C "${DESTDIR}" --sort=name --hard-dereference -cf "/usr/src/repo/${pkg}_${revision}.tar" . - elif command -v find >/dev/null 2>&1 && command -v sort >/dev/null 2>&1; then - cd "${DESTDIR}" - tar --no-recursion --null -T /tmp/filelist.txt -cf "/usr/src/repo/${pkg}_${revision}.tar" - cd - - else - tar -C "${DESTDIR}" -cf "/usr/src/repo/${pkg}_${revision}.tar" . - fi - touch -t 197001010000.00 "${pkg}_${revision}.tar" - gzip "${pkg}_${revision}.tar" -} - -src_pkg() { - touch -t 197001010000.00 . - reset_timestamp - if command -v xbps-create >/dev/null 2>&1; then - cd /usr/src/repo - xbps-create -A "${ARCH}" -n "${pkg}_${revision}" -s "${pkg}" --compression xz "${DESTDIR}" - echo "${pkg}: adding package to repository." - xbps-rindex --compression xz -a "/usr/src/repo/${pkg}_${revision}.${ARCH}.xbps" - else - cd "${DESTDIR}" - # All symlinks are dereferenced, which is BAD - get_links > "/usr/src/repo/${pkg}_${revision}.links" - if command -v find >/dev/null 2>&1 && command -v sort >/dev/null 2>&1; then - find . -print0 | LC_ALL=C sort -z > /tmp/filelist.txt - fi - cd /usr/src/repo - create_tarball_pkg - fi -} - -src_checksum() { - if ! [ "$UPDATE_CHECKSUMS" = True ] ; then - echo "${pkg}: checksumming created package." - _grep "${pkg}_${revision}" "${SOURCES}/SHA256SUMS.pkgs" | sha256sum -c - fi -} - -src_apply() { - if command -v xbps-install >/dev/null 2>&1; then - xbps-install -y -R /usr/src/repo "${pkg%%-[0-9]*}" - else - # Overwriting files is mega busted, so do it manually - # shellcheck disable=SC2162 - if [ -e /tmp/filelist.txt ]; then - while IFS= read -d $'\0' file; do - rm -f "/${file}" >/dev/null 2>&1 || true - done < /tmp/filelist.txt - fi - tar -C / -xzpf "/usr/src/repo/${pkg}_${revision}.tar.gz" - # shellcheck disable=SC2162 - # ^ read -r unsupported in old bash - while read line; do - # shellcheck disable=SC2001 - # ^ cannot use variable expansion here - fname="$(echo "${line}" | sed 's/.* //')" - rm -f "${fname}" - # shellcheck disable=SC2226,SC2086 - # ^ ${line} expands into two arguments - ln -s ${line} - touch -t 197001010000.00 "${fname}" - done < "/usr/src/repo/${pkg}_${revision}.links" - fi -} - -# Check if bash function exists -fn_exists() { - test "$(type -t "$1")" == 'function' -} - -# Call package specific function or default implementation. -call() { - if fn_exists "$1"; then - $1 - else - default_"${1}" - fi -} - -# Call default build stage function -default() { - "default_${build_stage}" -} - -# Set modified dates of all files to be 0 unix time. -# Should be called at the end of bootstrapping process. -# This function needs `touch` that supports --no-dereference -# (at least coreutils 8.1). -canonicalise_all_files_timestamp() { - find / -exec touch --no-dereference -t 197001010000.00 {} + -} - -populate_device_nodes() { - # http://www.linuxfromscratch.org/lfs/view/6.1/chapter06/devices.html - mkdir -p "${1}/dev" - rm "${1}/dev/null" -f - test -c "${1}/dev/null" || mknod -m 666 "${1}/dev/null" c 1 3 - test -c "${1}/dev/zero" || mknod -m 666 "${1}/dev/zero" c 1 5 - test -c "${1}/dev/random" || mknod -m 444 "${1}/dev/random" c 1 8 - test -c "${1}/dev/urandom" || mknod -m 444 "${1}/dev/urandom" c 1 9 - - if [ "${CHROOT}" = False ]; then - test -c "${1}/dev/ptmx" || mknod -m 666 "${1}/dev/ptmx" c 5 2 - test -c "${1}/dev/tty" || mknod -m 666 "${1}/dev/tty" c 5 0 - test -c "${1}/dev/console" || mknod -m 666 "${1}/dev/console" c 5 1 - fi -}