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:
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
-}