Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Lance R. Vick 2024-02-05 15:47:56 -08:00
commit 87c6fcc38d
No known key found for this signature in database
GPG key ID: 8E47A1EC35A1551D
66 changed files with 911 additions and 186 deletions

@ -1 +1 @@
Subproject commit 8621e56191c635c04fa68687e411016c2b1deab7 Subproject commit d49733d3e89538b2845f2be90ca6839deabf0042

View file

@ -98,7 +98,7 @@ class Generator():
mkfs_args = ['-d', os.path.join(target.path, 'external')] mkfs_args = ['-d', os.path.join(target.path, 'external')]
target.add_disk("external", filesystem="ext3", mkfs_args=mkfs_args) target.add_disk("external", filesystem="ext3", mkfs_args=mkfs_args)
elif using_kernel: elif using_kernel:
mkfs_args = ['-d', os.path.join(target.path, 'disk')] mkfs_args = ['-F', '-d', os.path.join(target.path, 'disk')]
target.add_disk("disk", target.add_disk("disk",
filesystem="ext3", filesystem="ext3",
size=(str(target_size) + "M") if target_size else "16G", size=(str(target_size) + "M") if target_size else "16G",

View file

@ -417,8 +417,8 @@ bzip2 1.0.8
``bzip2`` is rebuilt unpatched with the new tcc and musl fixing issues ``bzip2`` is rebuilt unpatched with the new tcc and musl fixing issues
with reading files from stdin that existed in the previous build. with reading files from stdin that existed in the previous build.
m4 1.4.7 m4 1.4.10
======== =========
``m4`` is the first piece of software we need in the autotools suite, ``m4`` is the first piece of software we need in the autotools suite,
flex 2.6.4 and bison. It allows macros to be defined and files to be flex 2.6.4 and bison. It allows macros to be defined and files to be
@ -1224,3 +1224,46 @@ to ensure the compiler is suitable for downstream consumption;
really be handled by the libc, which is what most distributions do. really be handled by the libc, which is what most distributions do.
* LTO now fully functions correctly, despite both the linker and the compiler * LTO now fully functions correctly, despite both the linker and the compiler
being static binaries. being static binaries.
libmd 1.1.0
===========
libmd provides message digest functions. In GNU/Linux, this is typically
provided by glibc, but we need libmd to provide it since we are using musl.
libbsd 0.11.8
=============
libbsd provides BSD-centric functions. We need this in order to build shadow,
which expects either glibc or libbsd.
shadow 4.14.3
=============
shadow provides a variety of command line utilites to work with users and
groups, avoiding the need for manual modification of ``/etc/passwd`` and
``/etc/group``. This allows unprivileged users to be created by, or for,
post-bootstrap build systems.
opendoas 6.8.2
==============
opendoas is a port of 'doas' from OpenBSD to Linux. It has all functions of sudo
that could be conceivably needed in live-bootstrap, and is much simpler to
build. This allows build systems that expect sudo after live-bootstrap to use
it.
gzip 1.13
=========
The version of gzip we have been using up until now is really old, all the way
back from mes libc era! Somehow we've managed not to have any problems with it,
though. This builds a gzip that is properly packaged and can be handled by all
modern build systems.
diffutils 3.10
==============
We already have a perfectly functional diffutils, but some core modern software
does require newer diffutils (understandably, given our diffutils is from 1994).
This also gives the additional diffutils commands ``diff3`` and ``sdiff``.

View file

@ -168,6 +168,9 @@ def main():
else: else:
args.swap = 0 args.swap = 0
# Set constant umask
os.umask(0o022)
# bootstrap.cfg # bootstrap.cfg
try: try:
os.remove(os.path.join('steps', 'bootstrap.cfg')) os.remove(os.path.join('steps', 'bootstrap.cfg'))

View file

@ -7,10 +7,10 @@
#define MAX_TOKEN 64 #define MAX_TOKEN 64
#define MAX_STRING 2048 #define MAX_STRING 2048
#include <bootstrappable.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <bootstrappable.h>
struct Token { struct Token {
char *val; char *val;
@ -22,7 +22,7 @@ typedef struct Token Token;
#define TYPE_IMPROVE 2 #define TYPE_IMPROVE 2
#define TYPE_DEFINE 3 #define TYPE_DEFINE 3
#define TYPE_JUMP 4 #define TYPE_JUMP 4
#define TYPE_MAINT 5 #define TYPE_UNINSTALL 5
struct Directive { struct Directive {
Token *tok; Token *tok;
@ -360,7 +360,7 @@ Token *define(Token *tok, Directive *directive) {
} }
int interpret(Directive *directive) { int interpret(Directive *directive) {
/* directive = (build | improve | define | jump | maint) predicate? */ /* directive = (build | improve | define | jump | uninstall) predicate? */
Token *tok = directive->tok; Token *tok = directive->tok;
if (strcmp(tok->val, "build:") == 0) { if (strcmp(tok->val, "build:") == 0) {
tok = fill(tok->next, directive, TYPE_BUILD); tok = fill(tok->next, directive, TYPE_BUILD);
@ -368,11 +368,23 @@ int interpret(Directive *directive) {
tok = fill(tok->next, directive, TYPE_IMPROVE); tok = fill(tok->next, directive, TYPE_IMPROVE);
} else if (strcmp(tok->val, "jump:") == 0) { } else if (strcmp(tok->val, "jump:") == 0) {
tok = fill(tok->next, directive, TYPE_JUMP); tok = fill(tok->next, directive, TYPE_JUMP);
} else if (strcmp(tok->val, "maint:") == 0) {
tok = fill(tok->next, directive, TYPE_MAINT);
} else if (strcmp(tok->val, "define:") == 0) { } else if (strcmp(tok->val, "define:") == 0) {
tok = define(tok->next, directive); tok = define(tok->next, directive);
return 1; /* There is no codegen for a define. */ return 1; /* There is no codegen for a define. */
} else if (strcmp(tok->val, "uninstall:") == 0) {
tok = fill(tok->next, directive, TYPE_UNINSTALL);
while (tok != NULL) {
if (strcmp(tok->val, "(") == 0) {
break;
}
if (strlen(directive->arg) + strlen(tok->val) + 1 > MAX_STRING) {
fputs("somehow you have managed to have too many uninstall arguments.\n", stderr);
exit(1);
}
directive->arg = strcat(directive->arg, " ");
directive->arg = strcat(directive->arg, tok->val);
tok = tok->next;
}
} }
if (tok != NULL) { if (tok != NULL) {
@ -557,7 +569,7 @@ void generate(Directive *directives) {
*/ */
generate_preseed_jump(counter); generate_preseed_jump(counter);
} }
bash_build = 1; bash_build += 1;
/* Create call to new script. */ /* Create call to new script. */
output_call_script(out, "", int2str(counter, 10, 0), bash_build, 0); output_call_script(out, "", int2str(counter, 10, 0), bash_build, 0);
fclose(out); fclose(out);
@ -620,8 +632,10 @@ void generate(Directive *directives) {
fclose(out); fclose(out);
out = start_script(counter, bash_build); out = start_script(counter, bash_build);
counter += 1; counter += 1;
} else if (directive->type == TYPE_MAINT) { } else if (directive->type == TYPE_UNINSTALL) {
output_call_script(out, "maint", directive->arg, bash_build, 1); fputs("uninstall ", out);
fputs(directive->arg, out);
fputs("\n", out);
} }
} }
fclose(out); fclose(out);

View file

@ -1,13 +1,13 @@
2dac610769286171ca81e736d729f5227938596cf44a0a8a764009715c55d23b autoconf-2.52_0.tar.bz2 b74448efbd2174ac7e9be469710a5a69e5218392ee6d81bd0837dc7a956626db autoconf-2.52_0.tar.bz2
7345a49227ed69774e01097c514f1ebd3abaeed0b2b9136b7f5ee1b0fe573390 autoconf-2.53_0.tar.bz2 97854afe32b6f79df6344d6e9cb8ebf1b011d87bda2a5b03716d602df6123e65 autoconf-2.53_0.tar.bz2
22418f18b0dbf0476efb1823dcebdf70d7619113ca10076ba9b078ab3597a578 autoconf-2.54_0.tar.bz2 22eb03cf83aed5234bb4242d412c7459ef83d3a490b0edf700eb04c66584c755 autoconf-2.54_0.tar.bz2
8e74f93f12599f883ba62fe2bf4f69c70270ce368f71aa782f8f42a36a752d19 autoconf-2.55_0.tar.bz2 639cf40f168ae7ca581e31ce956d6e640926fb8f7ccccc91ad7c84ce14bafff0 autoconf-2.55_0.tar.bz2
1bd66ca8cc6300e192afe06cd90b1250f02ca64539a4f3e98a872333ec04f44b autoconf-2.57_0.tar.bz2 229ac87bab8d6efaaeef6c2d7966c0326b048caef58f349add1b1ea759a75978 autoconf-2.57_0.tar.bz2
83235c739887f0d801e410e922553a6fd7723cbd0c9b2e96106e20538abb3a3b autoconf-2.59_0.tar.bz2 cadbb48282d6ab4ad8e208e4714576a673221794afe4cf79df22c49abe08b867 autoconf-2.59_0.tar.bz2
8912ae2a24ea40a7cd3ccab5e97dd109db7be4a86f40458ac836568aa7437b6a autoconf-2.61_0.tar.bz2 bc7628f88f4972bb6f5977ecdafe361b923eb1a7b3eaf98c3f21b49bf788d68a autoconf-2.61_0.tar.bz2
d5fcce4baea5e11f983a7e4b7148545ab6720bb4e010898c73387f6711be67f4 autoconf-2.64_0.tar.bz2 6f43e3a5b9ecaa7944b980da443450b71cc08dc382856ec1172c5be82486b8d3 autoconf-2.64_0.tar.bz2
298dcf17a439adb306237b308e3c4ed3d376cb863ae0f0f08bfdf1f3199a548b autoconf-2.69_0.tar.bz2 25eab7b767c44ba43373ed3f6015c3499ed168e21d2156538d0986b2b14cb7bb autoconf-2.69_0.tar.bz2
8c2401edf1c68910005bbcb8b8e84727a46f7d9643d2ad1267bd0259078dadc4 autoconf-2.71_0.tar.bz2 bc992209e05fdd9bf271a2705d5e4892f0212289f8edf4123813ec96e8bdc3e5 autoconf-2.71_0.tar.bz2
6ff691e3ddd4f3d1796d28b07a2a96691dbd9801844c99ccbe660da59dabd74b autoconf-archive-2021.02.19_0.tar.bz2 6ff691e3ddd4f3d1796d28b07a2a96691dbd9801844c99ccbe660da59dabd74b autoconf-archive-2021.02.19_0.tar.bz2
439fc68ab7d0a9a46caca2c7cbefbdb6ffe906f927e07d150e102bb76b393c37 autogen-5.18.16_0.tar.bz2 439fc68ab7d0a9a46caca2c7cbefbdb6ffe906f927e07d150e102bb76b393c37 autogen-5.18.16_0.tar.bz2
02a426e82a52d4a2cd7e73fe3dc5a2c58b3ed100f24a92c57e42511fd86e247c automake-1.10.3_0.tar.bz2 02a426e82a52d4a2cd7e73fe3dc5a2c58b3ed100f24a92c57e42511fd86e247c automake-1.10.3_0.tar.bz2
@ -39,6 +39,7 @@ c95fd8c51c3bfbd4d08a4a50d0033ee85394e6efe4ff82703c050e4dbc4347bf coreutils-6.10
f9efd6600ceb91918078078ff44a33f2a4fb4a59edb804866aebd288c2cfb24e curl-8.5.0_1.tar.bz2 f9efd6600ceb91918078078ff44a33f2a4fb4a59edb804866aebd288c2cfb24e curl-8.5.0_1.tar.bz2
1d4dec2d1885a6b5499a0f0d55e9c2c65dab532c4c593d848b6a542f67789627 dhcpcd-10.0.1_0.tar.bz2 1d4dec2d1885a6b5499a0f0d55e9c2c65dab532c4c593d848b6a542f67789627 dhcpcd-10.0.1_0.tar.bz2
abb9f6fe46c57ea809100b71497e04905deaad345d64485532bf6ef7f2a07f2c diffutils-2.7_0.tar.bz2 abb9f6fe46c57ea809100b71497e04905deaad345d64485532bf6ef7f2a07f2c diffutils-2.7_0.tar.bz2
cd135d51b7ecab31c510344b176b358c444e919d13554c4b18f657e71c5aff3e diffutils-3.10_0.tar.bz2
bda6afcd3a390a34a57443269a4857ccc470129f7a557981778c145fd841cbd1 dist-3.5-236_0.tar.bz2 bda6afcd3a390a34a57443269a4857ccc470129f7a557981778c145fd841cbd1 dist-3.5-236_0.tar.bz2
3a4c5143a241364019afd39af067f1e8433bab78b04096870d9bf2c70ec6ded8 e2fsprogs-1.45.7_0.tar.bz2 3a4c5143a241364019afd39af067f1e8433bab78b04096870d9bf2c70ec6ded8 e2fsprogs-1.45.7_0.tar.bz2
9c6f7e156f299f1d0948537e28f00d40e727a3debae3cce158e9bce827136214 ed-1.4_0.tar.bz2 9c6f7e156f299f1d0948537e28f00d40e727a3debae3cce158e9bce827136214 ed-1.4_0.tar.bz2
@ -59,20 +60,24 @@ dc67fc1b132fa3945349efe74c5b2197bd0b6babf4d29d2deddd04f09d9af680 gettext-0.21_0
62edfa633f64202b2d29199d11d56a897654a441c7ae39a4d59ca5fe75199f61 gperf-3.1_0.tar.bz2 62edfa633f64202b2d29199d11d56a897654a441c7ae39a4d59ca5fe75199f61 gperf-3.1_0.tar.bz2
276e073496931ff7d4caaabb53079412b88de953def88aec966c1f8506293e88 grep-2.4_0.tar.bz2 276e073496931ff7d4caaabb53079412b88de953def88aec966c1f8506293e88 grep-2.4_0.tar.bz2
8e612afb9a439aa8bf5db0fc2589eec890a6017690412d5c8e88a5838730b42c grep-3.7_0.tar.bz2 8e612afb9a439aa8bf5db0fc2589eec890a6017690412d5c8e88a5838730b42c grep-3.7_0.tar.bz2
8035da0f42b40509a1f68c91164f20fec624cf8b61017aa4e135473e547dddf4 grub-2.06_0.tar.bz2
e2a85aad6d51e52c9a30afeed058f95172fde1215f77243549274672990f6237 guile-3.0.9_0.tar.bz2 e2a85aad6d51e52c9a30afeed058f95172fde1215f77243549274672990f6237 guile-3.0.9_0.tar.bz2
6585ae3bc8149ec0e3fba766278fa30e2d7f0e7d1b9a9a4a457e0afa15b109c9 gzip-1.13_0.tar.bz2
8d2015b87337abbf287f7a39ee4cf53514120b5d3e90a93fe7d533dcc43f14fa help2man-1.36.4_0.tar.bz2 8d2015b87337abbf287f7a39ee4cf53514120b5d3e90a93fe7d533dcc43f14fa help2man-1.36.4_0.tar.bz2
f650c3b24de6edd49cd662c9e9ce11f7b0b5ea6df66d561b46a032b08fc34faa kbd-1.15_0.tar.bz2 f650c3b24de6edd49cd662c9e9ce11f7b0b5ea6df66d561b46a032b08fc34faa kbd-1.15_0.tar.bz2
50a0f881161c68fe7c9ec6836b11a905b0d54e08e99b2476e8d1f5ac3212769e kexec-linux-1.0.0_0.tar.bz2 50a0f881161c68fe7c9ec6836b11a905b0d54e08e99b2476e8d1f5ac3212769e kexec-linux-1.0.0_0.tar.bz2
1be7bf0319635b8bd22fd3c1a5a88ea267730a9a2e3cfff37473a5fea0779efb kexec-tools-2.0.22_0.tar.bz2 1be7bf0319635b8bd22fd3c1a5a88ea267730a9a2e3cfff37473a5fea0779efb kexec-tools-2.0.22_0.tar.bz2
453c10220178f097e1ab26fac6dffbee63b61890cdb8d7d24dcd6acad6ad08a3 libarchive-3.5.2_0.tar.bz2 453c10220178f097e1ab26fac6dffbee63b61890cdb8d7d24dcd6acad6ad08a3 libarchive-3.5.2_0.tar.bz2
36550df491767bb24d2ccab304ce70a3b4956e7c0c0e0c343d922fd57cdafbdd libatomic_ops-7.6.10_0.tar.bz2 36550df491767bb24d2ccab304ce70a3b4956e7c0c0e0c343d922fd57cdafbdd libatomic_ops-7.6.10_0.tar.bz2
fea96776b929569b98bc1740a9977cf8c0eff1d999a08d766bcc0f40c7b1380c libbsd-0.11.8_0.tar.bz2
b39826742e236890f3562cdf19492e7ef4224b271f3e75ddeab1f07982b03ebe libffi-3.3_0.tar.bz2 b39826742e236890f3562cdf19492e7ef4224b271f3e75ddeab1f07982b03ebe libffi-3.3_0.tar.bz2
0f6aefeb587b3d14d8ea73d7750f946a23d3e59a76a0ee5cdcdcc8132bccf73d libmd-1.1.0_0.tar.bz2
daae709e98d2df2190d1d13b4e86f7f3fe90fa7a975282fe0bb03289b6539f29 libtool-2.2.4_0.tar.bz2 daae709e98d2df2190d1d13b4e86f7f3fe90fa7a975282fe0bb03289b6539f29 libtool-2.2.4_0.tar.bz2
6cefa575362149620f8008a32c8af54f0198a18bc6ab910bd3cead196c1507d7 libtool-2.4.7_0.tar.bz2 6cefa575362149620f8008a32c8af54f0198a18bc6ab910bd3cead196c1507d7 libtool-2.4.7_0.tar.bz2
503007bbcddcf4e49d26514c59b4c9501f8b42f0c994a59dfdc388b1ae6b7900 libunistring-0.9.10_0.tar.bz2 503007bbcddcf4e49d26514c59b4c9501f8b42f0c994a59dfdc388b1ae6b7900 libunistring-0.9.10_0.tar.bz2
576c04a4b2ccbfe6b48f5f16e8bd59469e359bdc77458ed82a4025da98ad6dcb linux-4.9.10_0.tar.bz2 576c04a4b2ccbfe6b48f5f16e8bd59469e359bdc77458ed82a4025da98ad6dcb linux-4.9.10_0.tar.bz2
d15c922973c15a8206e09020e8cfe6a78f7e93614de212f2b37ff80163799c6c linux-headers-4.9.10_0.tar.bz2 d15c922973c15a8206e09020e8cfe6a78f7e93614de212f2b37ff80163799c6c linux-headers-4.9.10_0.tar.bz2
bd3885a389d3e058081e099850f95aa7938ce1d9b88a187aea6b7196124fbcfe m4-1.4.7_0.tar.bz2 a1fb0cb2744e7442dbc106df69b84180b8544060a286006649a73b81613cdd24 m4-1.4.10_0.tar.bz2
e69554b0a77b419ddd5d0a0e418ba4005ecd0f6784c92a6928a0270bd929a098 make-3.82_0.tar.bz2 e69554b0a77b419ddd5d0a0e418ba4005ecd0f6784c92a6928a0270bd929a098 make-3.82_0.tar.bz2
6d24960d6a987f68a7e0e3abf6edb52d2e0fe4c86f6ba45327e9634dbf7d40b4 make-4.2.1_0.tar.bz2 6d24960d6a987f68a7e0e3abf6edb52d2e0fe4c86f6ba45327e9634dbf7d40b4 make-4.2.1_0.tar.bz2
17cd976bc0f6e897c6fffe43dd7c55d93ce0adadf1b4dc72925b80e2d266519f mpc-1.2.1_0.tar.bz2 17cd976bc0f6e897c6fffe43dd7c55d93ce0adadf1b4dc72925b80e2d266519f mpc-1.2.1_0.tar.bz2
@ -83,36 +88,38 @@ d58d85c4be26d90f111f273929a4998d05294fe5aa37c4842d5aecaa593e6079 musl-1.1.24_2.
81f79a0faf58e105c5f12d9f538d3ea7578a3b361e633ab8f47324ec23ec9de6 musl-1.2.4_0.tar.bz2 81f79a0faf58e105c5f12d9f538d3ea7578a3b361e633ab8f47324ec23ec9de6 musl-1.2.4_0.tar.bz2
6dc5e763b747b66f72692c6820d7f46b7f4cf2e2fe05229a1d01c03919c1c936 musl-1.2.4_1.tar.bz2 6dc5e763b747b66f72692c6820d7f46b7f4cf2e2fe05229a1d01c03919c1c936 musl-1.2.4_1.tar.bz2
820203286127e7c22cee9f1b3cff664431f10d14c3f22f00b3e771fd849fd449 musl-1.2.4_2.tar.bz2 820203286127e7c22cee9f1b3cff664431f10d14c3f22f00b3e771fd849fd449 musl-1.2.4_2.tar.bz2
a18c4b2e5de2bfe5bb3ee9d360484fcfebad3df042f1859d4aa333dd60f55e56 opendoas-6.8.2_0.tar.bz2
c490016e49bbf77e7f63071f7aa60e8290a0c67f017846def1c3f65bd10d5712 openssl-1.1.1l_0.tar.bz2 c490016e49bbf77e7f63071f7aa60e8290a0c67f017846def1c3f65bd10d5712 openssl-1.1.1l_0.tar.bz2
71864d042cdc564b65eab21360902c714e9b43f80a19689c5600589529b267e7 patch-2.7.6_0.tar.bz2 71864d042cdc564b65eab21360902c714e9b43f80a19689c5600589529b267e7 patch-2.7.6_0.tar.bz2
5ae7fe43d62d1064c123d9813017015e5e8d5107d0e70f0199576141416ff81d perl-5.000_0.tar.bz2 5ae7fe43d62d1064c123d9813017015e5e8d5107d0e70f0199576141416ff81d perl-5.000_0.tar.bz2
4994c55e3832649600f190079bd4779c463478a092b167098b1d00eff3358fbe perl-5.003_0.tar.bz2 4994c55e3832649600f190079bd4779c463478a092b167098b1d00eff3358fbe perl-5.003_0.tar.bz2
74d64a8af080022432fa94dba449090419d25b103d247710dc0b6102a4ad86a6 perl-5.10.1_0.tar.bz2
fdccd3ba27a44d2149f159040414a04b39bfc72673ba36f50051b61199cc425c perl-5.32.1_0.tar.bz2
101a791b6843b997ec10d5ce6dc32af2637f687772674eb6f1cdc1c8ff836a03 perl-5.6.2_0.tar.bz2
ae6c84e55c2d9bcd7b80bf780ae6921fe890608123c9ba904e1b7d90759ade3d perl5.004-05_0.tar.bz2 ae6c84e55c2d9bcd7b80bf780ae6921fe890608123c9ba904e1b7d90759ade3d perl5.004-05_0.tar.bz2
8cedd2240bbbd5bca65a1362998ed73884756aa7ff5208226d3fa22c68868052 perl5.005-03_0.tar.bz2 8cedd2240bbbd5bca65a1362998ed73884756aa7ff5208226d3fa22c68868052 perl5.005-03_0.tar.bz2
74d64a8af080022432fa94dba449090419d25b103d247710dc0b6102a4ad86a6 perl-5.10.1_0.tar.bz2
bbbfde31441fab7fe8b825409fae8b2cd1032950d8f5a32fb8b9cf1555e11a70 perl-5.32.1_0.tar.bz2
101a791b6843b997ec10d5ce6dc32af2637f687772674eb6f1cdc1c8ff836a03 perl-5.6.2_0.tar.bz2
1b9d4260edf7b2241d10e4c4ad17d0f90047bd4bf42f2487a7133902529e9dfe pkg-config-0.29.2_0.tar.bz2 1b9d4260edf7b2241d10e4c4ad17d0f90047bd4bf42f2487a7133902529e9dfe pkg-config-0.29.2_0.tar.bz2
1e882c3206f9d1de2a9be8b5c6ae4cc65e80a4de607bd521058577bf4169c0e9 python-2.0.1_0.tar.bz2 2f7198009e4d021d52ee4ce86241b4936fb88349c20cc8b6c286261368878c3c python-2.0.1_0.tar.bz2
aba9710341db75b78c7bc1eb4ef45b9496e23f7a356128af6c2b116ee0f3f31a python-2.0.1_1.tar.bz2 b5d86ddc98cfbc684b03f1c84c786caaad810d5e4c7be38089f324eb3c276ad9 python-2.0.1_1.tar.bz2
d497c9b614194b941620bb5c5111fc72eca8cafd7d4f476eacb24fb7f909b614 python-2.3.7_0.tar.bz2 396577cdd0cc61d76420a1771c64156e49e8f9d00430c82feb88ad933b341632 python-2.3.7_0.tar.bz2
8a977205933431c2a4207f647cb683b570dfdb0146e21abf5fab3f8426e1356b python-2.3.7_1.tar.bz2 2499cb7f10f292c3506fbf1b6a876195179ec98edfe7b8c357140137a1449492 python-2.3.7_1.tar.bz2
34e5083ed3e72da5aa5950acebf9e95464089d693e3d6a047a2b69b6103f5ca9 python-2.5.6_0.tar.bz2 2dd06364e281da421a16251fa2258df201efd180461718f5a000012c4b2bdfe5 python-2.5.6_0.tar.bz2
52ffb1ea6f2b893a6fd26f930c8ff63f78ddcc31ac3ec9c2ddade555205aa1ef python-3.11.1_0.tar.bz2
3508248f299b73c50e3607c4c294d40face05170476a5026b0821aed69025863 python-3.1.5_0.tar.bz2 3508248f299b73c50e3607c4c294d40face05170476a5026b0821aed69025863 python-3.1.5_0.tar.bz2
12b1ffc7ec98ba8f807160b93ba69a694d5395567c3bcac1e49e8f8d1d50de43 python-3.1.5_1.tar.bz2 12b1ffc7ec98ba8f807160b93ba69a694d5395567c3bcac1e49e8f8d1d50de43 python-3.1.5_1.tar.bz2
52ffb1ea6f2b893a6fd26f930c8ff63f78ddcc31ac3ec9c2ddade555205aa1ef python-3.11.1_0.tar.bz2
60b93253a2078f849f81e7e1ed6233e30702f03b1893640eee95671d814f5514 python-3.3.7_0.tar.bz2 60b93253a2078f849f81e7e1ed6233e30702f03b1893640eee95671d814f5514 python-3.3.7_0.tar.bz2
da7c8ec579dd225c0d8bee63d95aeeb27ac2d5a60d4eefe298508cbf86bf506c python-3.4.10_0.tar.bz2 da7c8ec579dd225c0d8bee63d95aeeb27ac2d5a60d4eefe298508cbf86bf506c python-3.4.10_0.tar.bz2
0be505f63205b4bc1b1421896c610468ad1a2194bbc4c9abf58f61685c2023d1 python-3.8.16_0.tar.bz2 0be505f63205b4bc1b1421896c610468ad1a2194bbc4c9abf58f61685c2023d1 python-3.8.16_0.tar.bz2
34c51d3df85585a8aee7691b3500a5c3c7442b06a6f57231b76970bdd6e99bf9 sed-4.0.9_0.tar.bz2 34c51d3df85585a8aee7691b3500a5c3c7442b06a6f57231b76970bdd6e99bf9 sed-4.0.9_0.tar.bz2
e8daec00b2c2de7b18efbec057dc9290eed06668806c6f5a48914d4a5cd95eb4 sed-4.8_0.tar.bz2 e8daec00b2c2de7b18efbec057dc9290eed06668806c6f5a48914d4a5cd95eb4 sed-4.8_0.tar.bz2
96bd9f051aa665f6836efe3642127df6987b529ed53f1c539293fc049f0f4c28 shadow-4.14.3_0.tar.bz2
912d8f344104f1322255d6210c7c7e1371413ab530b2c6796e6aa565c74bf647 tar-1.34_0.tar.bz2 912d8f344104f1322255d6210c7c7e1371413ab530b2c6796e6aa565c74bf647 tar-1.34_0.tar.bz2
1667937d5d646f2bb7ec7ab54a23ddd65a0ae3ca7d5e597f3fbcd5163031d2ef tcc-0.9.27_0.tar.bz2 1667937d5d646f2bb7ec7ab54a23ddd65a0ae3ca7d5e597f3fbcd5163031d2ef tcc-0.9.27_0.tar.bz2
b20cea098c8ff635a0ce9f99430d7c9a75d081194941ab54dc92dbc8af3776a4 tcc-0.9.27_1.tar.bz2 b20cea098c8ff635a0ce9f99430d7c9a75d081194941ab54dc92dbc8af3776a4 tcc-0.9.27_1.tar.bz2
8e8cc802fccdb907cd74501dccce1ee85ffb0150b33b4719f86d6720f5b09a7a tcc-0.9.27_2.tar.bz2 8e8cc802fccdb907cd74501dccce1ee85ffb0150b33b4719f86d6720f5b09a7a tcc-0.9.27_2.tar.bz2
d4fe9460ca561fc2f546f9730f19f541b17dac0bcc42eb190abba856588c3593 tcc-0.9.27_3.tar.bz2 d4fe9460ca561fc2f546f9730f19f541b17dac0bcc42eb190abba856588c3593 tcc-0.9.27_3.tar.bz2
50ebaa1d8fcc4a03a43d431eb71e2f435cc8712ae47d400564df3716037d553a texinfo-6.7_0.tar.bz2 50ebaa1d8fcc4a03a43d431eb71e2f435cc8712ae47d400564df3716037d553a texinfo-6.7_0.tar.bz2
229d9189adac10ad2a2c76fc147a4c317fc5b34026cef1c47edc9159aee480da util-linux-2.19.1_0.tar.bz2 858f3c9b3e824d6cdff8009de171fb1ac6932adc227efd854aebf29aba0bbf7c util-linux-2.19.1_0.tar.bz2
ecdb7ffeb9256f6a9760be70969fe5dea9cde6a538cc88595281fe44340e98a1 which-2.21_0.tar.bz2 ecdb7ffeb9256f6a9760be70969fe5dea9cde6a538cc88595281fe44340e98a1 which-2.21_0.tar.bz2
3fade2079cc91f2c5624ff7247220059caee82e7de493332103d7a78155400b2 xz-5.4.1_0.tar.bz2 3fade2079cc91f2c5624ff7247220059caee82e7de493332103d7a78155400b2 xz-5.4.1_0.tar.bz2
ca8ec9876a7334f5f87e1159e0efe343b8b497ffb0dea8b548223035ecd67f9e zlib-1.2.13_0.tar.bz2 ca8ec9876a7334f5f87e1159e0efe343b8b497ffb0dea8b548223035ecd67f9e zlib-1.2.13_0.tar.bz2

View file

@ -47,10 +47,7 @@ make
# Install # Install
install bash ${PREFIX}/bin/ install bash ${PREFIX}/bin/
mkdir /bin/ install bash ${PREFIX}/bin/sh
ln -s ${PREFIX}/bin/bash /bin/bash
ln -s ${PREFIX}/bin/bash /bin/sh
ln -s ${PREFIX}/bin/bash ${PREFIX}/bin/sh
cd ../.. cd ../..

View file

@ -53,9 +53,5 @@ src_compile() {
src_install() { src_install() {
install -D bash "${DESTDIR}${PREFIX}/bin/bash" install -D bash "${DESTDIR}${PREFIX}/bin/bash"
# Work around weird symlink bug
install bash "${DESTDIR}${PREFIX}/bin/sh" install bash "${DESTDIR}${PREFIX}/bin/sh"
# Needs special handling b/c is currently running - tar doesn't like this
rm -f "${PREFIX}/bin/bash" "${PREFIX}/bin/sh"
} }

View file

@ -22,10 +22,3 @@ src_prepare() {
cp "${mk_dir}/pass2.mk" Makefile cp "${mk_dir}/pass2.mk" Makefile
} }
src_install() {
default
# perl later requires /bin/pwd
ln -s "${PREFIX}/bin/pwd" /bin/pwd
}

View file

@ -0,0 +1,99 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
../gnulib-5d2fe24/gnulib-tool --import --local-dir=gl \
--lib=libdiffutils \
--source-base=lib \
--m4-base=m4 \
--doc-base=doc \
--tests-base=gnulib-tests \
--aux-dir=build-aux \
--with-tests \
--makefile-name=gnulib.mk \
--no-conditional-dependencies \
--no-libtool \
--macro-prefix=gl \
--avoid=localename \
--avoid=lock-tests \
--avoid=setlocale \
announce-gen \
argmatch \
attribute \
binary-io \
c-stack \
config-h \
diffseq \
dirname \
do-release-commit-and-tag \
dup2 \
error \
exclude \
exitfail \
extensions \
extern-inline \
fcntl \
file-type \
filenamecat \
flexmember \
fnmatch-gnu \
getopt-gnu \
gettext-h \
gettime \
git-version-gen \
gitlog-to-changelog \
gnu-make \
gnu-web-doc-update \
gnumakefile \
gnupload \
hard-locale \
inttostr \
inttypes \
isblank \
largefile \
lstat \
maintainer-makefile \
manywarnings \
mbrtowc \
mempcpy \
mkstemp \
mktime \
nstrftime \
nullptr \
perl \
progname \
propername \
raise \
rawmemchr \
readme-release \
regex \
sh-quote \
signal \
sigprocmask \
stat \
stat-macros \
stat-time \
stdbool \
stdint \
stpcpy \
strcase \
strptime \
strtoimax \
sys_wait \
system-quote \
time_rz \
unistd \
unlocked-io \
update-copyright \
verify \
version-etc \
version-etc-fsf \
wcwidth \
xalloc \
xfreopen \
xmalloca \
xreadlink \
xstdopen \
xstrtoimax \
year2038

19
steps/diffutils-3.10/pass1.sh Executable file
View file

@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
autoreconf-2.71 -fi
rm man/*.1
# gperf
rm lib/iconv_open*.h
. ../../import-gnulib.sh
}
src_configure() {
./configure --prefix="${PREFIX}"
}

View file

@ -0,0 +1,2 @@
https://mirrors.kernel.org/gnu/diffutils/diffutils-3.10.tar.xz 90e5e93cc724e4ebe12ede80df1634063c7a855692685919bfe60b556c9bd09e
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-5d2fe24.tar.gz 72e7bb2d1d75e63d1c46d33b8dd22e8eb60afdba4af3e7251151b5c2a6f00bfb

View file

@ -14,14 +14,3 @@ src_prepare() {
src_compile() { src_compile() {
make -j1 PREFIX="${PREFIX}" make -j1 PREFIX="${PREFIX}"
} }
src_install() {
if test -d /lex; then
# Remove lex, later make install will symlink lex to flex
rm -rf /lex
rm -f "${PREFIX}/bin/lex"
rm -f "${PREFIX}/lib/mes/libl.a"
fi
default
}

View file

@ -20,7 +20,4 @@ src_install() {
cd src cd src
default default
cd .. cd ..
# Remove yacc, we won't need it any longer
rm "${PREFIX}/bin/yacc"
} }

View file

@ -0,0 +1,39 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com>
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
# Regenerate unicode files
pushd ../gnulib-d271f86/lib
gcc -Iunictype -o gen-uni-tables gen-uni-tables.c
mv ../../*.txt .
./gen-uni-tables UnicodeData-9.0.0.txt PropList-9.0.0.txt DerivedCoreProperties-9.0.0.txt ArabicShaping-9.0.0.txt Scripts-9.0.0.txt Blocks-9.0.0.txt PropList-3.0.1.txt EastAsianWidth-9.0.0.txt LineBreak-9.0.0.txt WordBreakProperty-9.0.0.txt GraphemeBreakProperty-9.0.0.txt CompositionExclusions-9.0.0.txt SpecialCasing-9.0.0.txt CaseFolding-9.0.0.txt 9.0
popd
../gnulib-d271f86/gnulib-tool --import --local-dir=gl \
--lib=libgnu \
--source-base=grub-core/lib/gnulib \
--m4-base=m4 \
--doc-base=doc \
--tests-base=tests \
--aux-dir=build-aux \
--no-conditional-dependencies \
--no-libtool \
--macro-prefix=gl \
--no-vc-files \
argp \
base64 \
error \
fnmatch \
getdelim \
getline \
gettext-h \
gitlog-to-changelog \
mbswidth \
progname \
realloc-gnu \
regex \
save-cwd

35
steps/grub-2.06/pass1.sh Normal file
View file

@ -0,0 +1,35 @@
# SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
# Remove pregenerated gnulib files
pushd ../gnulib-d271f86
rm lib/unictype/ctype*.h
rm lib/unicase/tolower.h
popd
. ../../import-gnulib.sh
for patchname in fix-base64 fix-null-deref fix-null-state-deref fix-regcomp-uninit-token \
fix-regexec-null-deref fix-uninit-structure fix-unused-value fix-width no-abort; do
patch -d grub-core/lib/gnulib -p2 < "grub-core/lib/gnulib-patches/$patchname.patch"
done
./autogen.sh
cp -a INSTALL INSTALL.grub
autoreconf-2.69 -vif
mv INSTALL.grub INSTALL
}
src_configure() {
CFLAGS="-Wno-error" ./configure --prefix="${PREFIX}" --sbindir="${PREFIX}/bin" --build=i686-pc-linux-musl
}
src_install() {
default
rm "${DESTDIR}${PREFIX}/share/info/dir"
}

16
steps/grub-2.06/sources Normal file
View file

@ -0,0 +1,16 @@
https://mirrors.kernel.org/gnu/grub/grub-2.06.tar.xz b79ea44af91b93d17cd3fe80bdae6ed43770678a9a5ae192ccea803ebb657ee1
https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-d271f86.tar.gz 31d69d3d251e39135b5194ddc6f897910d344059f7494d96a739aecbf7ac2b66
http://ftp.unicode.org/Public/9.0.0/ucd/UnicodeData.txt 68dfc414d28257b9b5d6ddbb8b466c768c00ebdf6cbf7784364a9b6cad55ee8f UnicodeData-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/PropList.txt f413ea8dbd3858de72f3148b47dd0586019761357d1481e3b65f3a025bc27f82 PropList-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/DerivedCoreProperties.txt 6662c7e30b572df5d948c092692f52bcc79ab36d49a063a73d6435042db6fb3b DerivedCoreProperties-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/ArabicShaping.txt 47cb62a53beea6d0263e2147331c7e751853c9327225d95bbe2d9e1dc3e1aa44 ArabicShaping-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/Scripts.txt fba415952f5654145acad220dc2b878f815c673474d2bb4928934e3ba6ccca1d Scripts-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/Blocks.txt 612127d4889032e55d82522e4a0c19793bda8aa8da14ecb3c696d17c83e6be13 Blocks-9.0.0.txt
http://ftp.unicode.org/Public/3.0-Update1/PropList-3.0.1.txt 909eef4adbeddbdddcd9487c856fe8cdbb8912aa8eb315ed7885b6ef65f4dc4c
http://ftp.unicode.org/Public/9.0.0/ucd/EastAsianWidth.txt 3382cb4980e0021e9d4312f2d099315cfab6100ce0ff63a22d6937bfa720bcb7 EastAsianWidth-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/LineBreak.txt e2698584982ccd96e0c688bbcd4d2c48a23805baa0a0084388ef2e50ebd30aad LineBreak-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/auxiliary/WordBreakProperty.txt cb2db065c77287e0f1d35b8c9b473d848b7566a1670439f67c357ca393084043 WordBreakProperty-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/auxiliary/GraphemeBreakProperty.txt 4bb8931857e0a698fd2ec4a51a84c6de33e48a50d8b4bf0b57d960c41d77a191 GraphemeBreakProperty-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/CompositionExclusions.txt 5623df16856ad4007c60bdfff6f054e087521becd24cb4006be69c3a1d851aee CompositionExclusions-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/SpecialCasing.txt dfc4f159c5c68328114ff17cd520451714a72ff48657287e5fe2f64344980695 SpecialCasing-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/CaseFolding.txt 37d40cf8c2c35637f4a04e746814e1fc4eb764c272bed9238a87ee96a4866857 CaseFolding-9.0.0.txt

View file

@ -0,0 +1,64 @@
#!/bin/sh
#
# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
../gnulib-5651802/gnulib-tool --import --local-dir=gl \
--lib=libgzip \
--source-base=lib \
--m4-base=m4 \
--doc-base=doc \
--tests-base=tests \
--aux-dir=build-aux \
--makefile-name=gnulib.mk \
--no-conditional-dependencies \
--no-libtool \
--macro-prefix=gl \
--avoid=getline \
--avoid=rpmatch \
announce-gen \
calloc-gnu \
close \
dirname-lgpl \
fclose \
fcntl \
fcntl-safer \
fdatasync \
fdopendir \
filename \
fprintf-posix \
fsync \
getopt-gnu \
git-version-gen \
gitlog-to-changelog \
gnu-make \
gnu-web-doc-update \
gnumakefile \
gnupload \
ignore-value \
intprops \
largefile \
lib-ignore \
lstat \
maintainer-makefile \
malloc-gnu \
manywarnings \
openat-safer \
printf-posix \
readme-release \
realloc-gnu \
savedir \
sigaction \
stat-time \
strerror \
sys_stat \
time \
unistd-safer \
unlinkat \
update-copyright \
utimens \
verify \
xalloc \
year2038 \
yesno

14
steps/gzip-1.13/pass1.sh Executable file
View file

@ -0,0 +1,14 @@
# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
autoreconf-2.71 -fi
. ../../import-gnulib.sh
}
src_configure() {
./configure --prefix="${PREFIX}"
}

2
steps/gzip-1.13/sources Normal file
View file

@ -0,0 +1,2 @@
https://mirrors.kernel.org/gnu/gzip/gzip-1.13.tar.xz 7454eb6935db17c6655576c2e1b0fabefd38b4d0936e0f87f48cd062ce91a057
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-5651802.tar.gz 56f1221eb682c3502ee097f583f44673570753cb452346ad4806d94560c3fac9

View file

@ -7,6 +7,9 @@
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
# Set constant umask
umask 022
# Get a list of files # Get a list of files
get_files() { get_files() {
echo "." echo "."
@ -79,9 +82,11 @@ _grep() {
get_revision() { get_revision() {
local pkg=$1 local pkg=$1
local oldpwd="${PWD}"
cd "/external/repo" cd "/external/repo"
# Get revision (n time this package has been built) # Get revision (n time this package has been built)
revision=$( (ls -1 "${pkg}"* 2>/dev/null || true) | wc -l | sed 's/ *//g') revision=$( (ls -1 "${pkg}"* 2>/dev/null || true) | wc -l | sed 's/ *//g')
cd "${oldpwd}"
} }
# Installs binary packages from an earlier run # Installs binary packages from an earlier run
@ -93,11 +98,6 @@ bin_preseed() {
if [ "${UPDATE_CHECKSUMS}" = "True" ] || src_checksum "${pkg}" $((revision)); then if [ "${UPDATE_CHECKSUMS}" = "True" ] || src_checksum "${pkg}" $((revision)); then
echo "${pkg}: installing prebuilt package." echo "${pkg}: installing prebuilt package."
mv "${pkg}_${revision}"* /external/repo || return 1 mv "${pkg}_${revision}"* /external/repo || return 1
if [[ "${pkg}" == bash-* ]]; then
# tar does not like overwriting running bash
# shellcheck disable=SC2153
rm -f "${PREFIX}/bin/bash" "${PREFIX}/bin/sh"
fi
cd "/external/repo" cd "/external/repo"
rm -f /tmp/filelist.txt rm -f /tmp/filelist.txt
src_apply "${pkg}" $((revision)) src_apply "${pkg}" $((revision))
@ -108,6 +108,65 @@ bin_preseed() {
return 1 return 1
} }
# Removes either an existing package or file
uninstall() {
local in_fs in_pkg symlinks
while [ $# -gt 0 ]; do
removing="$1"
case "${removing}" in
/*)
# Removing a file
echo "removing file: ${removing}."
rm -f "${removing}"
;;
*)
echo "${removing}: uninstalling."
local oldpwd="${PWD}"
mkdir -p "/tmp/removing"
cd "/tmp/removing"
get_revision "${removing}"
local filename="/external/repo/${removing}_$((revision-1)).tar.bz2"
# Initial bzip2 built against meslibc has broken pipes
bzip2 -dc "${filename}" | tar -xf -
# reverse to have files before directories
if command -v find >/dev/null 2>&1; then
find . | sort -r > ../filelist
else
get_files . | tac > ../filelist
fi
# shellcheck disable=SC2162
while read file; do
if [ -d "${file}" ]; then
if [ -z "$(ls -A "/${file}")" ]; then
rmdir "/${file}"
fi
else
# in some cases we might be uninstalling a file that has already been overwritten
# in this case we don't want to remove it
in_fs="$(sha256sum "${file}" 2>/dev/null | cut -d' ' -f1)"
in_pkg="$(sha256sum "/${file}" 2>/dev/null | cut -d' ' -f1)"
if [ "${in_fs}" = "${in_pkg}" ]; then
rm -f "/${file}"
fi
if [ -h "${file}" ]; then
symlinks="${symlinks} ${file}"
fi
fi
done < ../filelist
rm -f ../filelist
for link in ${symlinks}; do
if [ ! -e "/${link}" ]; then
rm -f "/${link}"
fi
done
cd "${oldpwd}"
rm -rf "/tmp/removing"
;;
esac
shift
done
}
# Common build steps # Common build steps
# Build function provides a few common stages with default implementation # Build function provides a few common stages with default implementation
# that can be overridden on per package basis in the build script. # that can be overridden on per package basis in the build script.
@ -169,6 +228,7 @@ build() {
call $build_stage call $build_stage
echo "${pkg}: install to fakeroot." echo "${pkg}: install to fakeroot."
mkdir -p "${DESTDIR}"
build_stage=src_install build_stage=src_install
call $build_stage call $build_stage
@ -185,7 +245,6 @@ build() {
echo "${pkg}: cleaning up." echo "${pkg}: cleaning up."
rm -rf "${SRCDIR}/${pkg}/build" rm -rf "${SRCDIR}/${pkg}/build"
rm -rf "${DESTDIR}" rm -rf "${DESTDIR}"
mkdir -p "${DESTDIR}"
echo "${pkg}: installing package." echo "${pkg}: installing package."
src_apply "${pkg}" "${revision}" src_apply "${pkg}" "${revision}"
@ -236,6 +295,7 @@ extract_file() {
*) *)
case "${f}" in case "${f}" in
*.tar* | *.tgz) *.tar* | *.tgz)
# shellcheck disable=SC2153
if test -e "${PREFIX}/libexec/rmt"; then if test -e "${PREFIX}/libexec/rmt"; then
# Again, we want to split out into words. # Again, we want to split out into words.
# shellcheck disable=SC2086 # shellcheck disable=SC2086
@ -357,7 +417,7 @@ src_pkg() {
# So this does not need a command -v grep. # So this does not need a command -v grep.
if tar --help | grep ' \-\-sort' >/dev/null 2>&1; then if tar --help | grep ' \-\-sort' >/dev/null 2>&1; then
tar -C "${DESTDIR}" --sort=name --hard-dereference \ tar -C "${DESTDIR}" --sort=name --hard-dereference \
--numeric-owner --owner=0 --group=0 --mode=go=rX,u+rw,a-s -cf "${dest_tar}" . --numeric-owner --owner=0 --group=0 --mode=go=rX,u+rw -cf "${dest_tar}" .
else else
local olddir local olddir
olddir=$PWD olddir=$PWD
@ -372,7 +432,7 @@ src_pkg() {
get_files . > ${filelist} get_files . > ${filelist}
fi fi
tar --no-recursion ${null} --files-from "${filelist}" \ tar --no-recursion ${null} --files-from "${filelist}" \
--numeric-owner --owner=0 --group=0 --mode=go=rX,u+rw,a-s -cf "${dest_tar}" --numeric-owner --owner=0 --group=0 --mode=go=rX,u+rw -cf "${dest_tar}"
rm -f "$filelist" rm -f "$filelist"
cd "$olddir" cd "$olddir"
fi fi
@ -410,6 +470,11 @@ src_apply() {
TAR_PREFIX="/tmp/" TAR_PREFIX="/tmp/"
fi fi
# Bash does not like to be overwritten
if [[ "${pkg}" == bash-* ]]; then
rm "${PREFIX}/bin/bash"
fi
# Overwriting files is mega busted, so do it manually # Overwriting files is mega busted, so do it manually
# shellcheck disable=SC2162 # shellcheck disable=SC2162
if [ -e /tmp/filelist.txt ]; then if [ -e /tmp/filelist.txt ]; then

View file

@ -10,7 +10,7 @@
. /steps/env . /steps/env
if [ "${INTERACTIVE}" = True ]; then if [ "${INTERACTIVE}" = True ]; then
env - PATH=${PREFIX}/bin PS1="\w # " bash -i env - PATH=${PREFIX}/bin PS1="\w # " setsid openvt -fec1 -- bash -i
fi fi
if [ "${CHROOT}" = False ]; then if [ "${CHROOT}" = False ]; then

View file

@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2023 Eduardo Sánchez Muñoz <eduardosm-dev@e64.io> # SPDX-FileCopyrightText: 2023 Eduardo Sánchez Muñoz <eduardosm-dev@e64.io>
# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
@ -37,6 +38,11 @@ for source in "${DISTFILES}/"*; do
rm "${source}" rm "${source}"
done done
if [ -e "/external/repo-preseeded/linux-4.9.10_0.tar.bz2" ]; then
# This is done in src_extract out of necessity usually -- I can't think of a better solution :(
rm -f "${DISTFILES}/linux-4.9.10.tar.gz"
fi
unset get_source_filename unset get_source_filename
unset pkgs pkg line unset pkgs pkg line
unset keep_sources keep_source unset keep_sources keep_source

View file

@ -0,0 +1,7 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
rm -rf /external/repo-preseeded
rm -rf /steps/*/build
rm -rf /steps/*/src

View file

@ -3,13 +3,6 @@
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space> # SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
#
# Add the rest of the FHS that we will use and is not created pre-boot
rm -rf /sbin /usr/sbin
ln -s /usr/bin /usr/sbin
for d in bin lib sbin; do
ln -s "/usr/${d}" "/${d}" || true # these might exist if rerunning
done
mkdir -p /etc /run /var/log /var/lock /var/spool /var/tmp /var/cache mkdir -p /etc /run /var/log /var/lock /var/spool /var/tmp /var/cache
@ -23,8 +16,58 @@ mount | grep '/sys' &> /dev/null || (mkdir -p /sys; mount -t sysfs sysfs /sys)
mount | grep '/tmp' &> /dev/null || (mkdir -p /tmp; mount -t tmpfs tmpfs /tmp) mount | grep '/tmp' &> /dev/null || (mkdir -p /tmp; mount -t tmpfs tmpfs /tmp)
mount | grep '/dev/shm' &> /dev/null || (mkdir -p /dev/shm; mount -t tmpfs tmpfs /dev/shm) mount | grep '/dev/shm' &> /dev/null || (mkdir -p /dev/shm; mount -t tmpfs tmpfs /dev/shm)
if [ "${EXTERNAL_SOURCES}" = "False" ]; then if [ "${CHROOT}" = False ]; then
# Add /etc/resolv.conf rm /etc/mtab
ln -s /proc/mounts /etc/mtab
fi
# Add /etc/resolv.conf
if [ ! -e "/etc/resolv.conf" ]; then
echo 'nameserver 1.1.1.1' > /etc/resolv.conf echo 'nameserver 1.1.1.1' > /etc/resolv.conf
fi
if [ ! -e "/etc/resolv.conf/head" ]; then
echo 'nameserver 1.1.1.1' > /etc/resolv.conf.head echo 'nameserver 1.1.1.1' > /etc/resolv.conf.head
fi fi
# /etc/passwd -- taken from LFS
if [ ! -e "/etc/passwd" ]; then
cat > /etc/passwd << "EOF"
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/dev/null:/usr/bin/false
daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
nobody:x:65534:65534:Unprivileged User:/dev/null:/usr/bin/false
EOF
fi
# /etc/group -- taken from LFS
if [ ! -e "/etc/group" ]; then
cat > /etc/group << "EOF"
root:x:0:
bin:x:1:daemon
sys:x:2:
kmem:x:3:
tape:x:4:
tty:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:14:
cdrom:x:15:
adm:x:16:
messagebus:x:18:
input:x:24:
mail:x:34:
kvm:x:61:
uuidd:x:80:
wheel:x:97:
users:x:999:
nogroup:x:65534:
EOF
fi

View file

@ -0,0 +1,68 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
# find the physical disk name
PHYSICAL=${DISK}
# take care of e.g. "sda1"
if echo "${DISK}" | grep -Eq '^[a-z]{3}[0-9]+$'
then
PHYSICAL=$(echo "${DISK}" | sed -E 's/^([a-z]{3})[0-9]+$/\1/')
fi
# take care of e.g. "mmcblk0p1"
if echo "${DISK}" | grep -Eq '^[a-z0-9]{3,}p[0-9]+$'
then
PHYSICAL=$(echo "${DISK}" | sed -E 's/^([a-z0-9]{3,})p[0-9]+$/\1/')
fi
grub-install "/dev/${PHYSICAL}"
cat > /boot/grub/grub.cfg <<- EOF
set timeout=5
set default=0
menuentry 'Linux live-bootstrap (4.9.10)' {
insmod part_msdos
set root='grub-probe -d /dev/${DISK} -t bios_hints | sed -e 's/ //g')'
linux /boot/linux-4.9.10 root=/dev/${DISK} rw $(cat /proc/cmdline)
}
EOF
cat > /init <<- 'EOF'
#!/usr/bin/bash
cd /steps
. ./bootstrap.cfg
. ./env
. ./helpers.sh
trap 'env PATH=${PREFIX}/bin PS1="[TRAP] \w # " bash -i' ERR
# /dev is automounted by the kernel at this point
mount | grep '/proc' &> /dev/null || (mkdir -p /proc; mount -t proc proc /proc)
mount | grep '/sys' &> /dev/null || (mkdir -p /sys; mount -t sysfs sysfs /sys)
# Make /tmp a ramdisk (speeds up configure etc significantly)
mount | grep '/tmp' &> /dev/null || (mkdir -p /tmp; mount -t tmpfs tmpfs /tmp)
mount | grep '/dev/shm' &> /dev/null || (mkdir -p /dev/shm; mount -t tmpfs tmpfs /dev/shm)
if test -f /swapfile; then
swapon /swapfile
fi
if [ "${CHROOT}" = False ]; then
dhcpcd --waitip=4
fi
env - PATH=${PREFIX}/bin PS1="\w # " setsid openvt -fec1 -- bash -i
# ignore errors due to fstab or swapfile not existing
swapoff -a &> /dev/null || true
sync
# sysrq to avoid device busy; then mount to wait for it to finish
echo u > /proc/sysrq-trigger
mount -o remount,ro /
echo o > /proc/sysrq-trigger # power off
while true; do sleep 1; done
EOF
chmod +x /init

10
steps/improve/merged_usr.sh Executable file
View file

@ -0,0 +1,10 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# Add the rest of the FHS that we will use and is not created pre-boot
ln -s bin /usr/sbin
for d in bin lib sbin; do
ln -s "usr/${d}" "/${d}" || true # these might exist if rerunning
done

View file

@ -0,0 +1,11 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
if bash --version | grep -q 'GPLv3'; then
env - PATH=${PREFIX}/bin PS1="\w # " openvt -- bash -i
else
bash -c 'while true; do printf "[early Bash - use Ctrl+D] $(pwd) # "; $(cat /dev/tty2); done' &> /dev/tty2 &
fi

View file

@ -23,6 +23,8 @@ if mount --version >/dev/null 2>&1; then
fi fi
if [ "${CHROOT}" = False ]; then if [ "${CHROOT}" = False ]; then
test -c "/dev/tty1" || mknod -m 666 "/dev/tty1" c 4 1
test -c "/dev/tty2" || mknod -m 666 "/dev/tty2" c 4 2
test -c "/dev/console" || mknod -m 666 "/dev/console" c 5 1 test -c "/dev/console" || mknod -m 666 "/dev/console" c 5 1
test -b "/dev/sda" || mknod -m 600 "/dev/sda" b 8 0 test -b "/dev/sda" || mknod -m 600 "/dev/sda" b 8 0
test -b "/dev/sda1" || mknod -m 600 "/dev/sda1" b 8 1 test -b "/dev/sda1" || mknod -m 600 "/dev/sda1" b 8 1

View file

@ -1,4 +1,3 @@
#!/bin/sh #!/bin/sh
# #
# SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com> # SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>

View file

@ -32,6 +32,7 @@ if [ $((0x$(stat -c "%T" "/dev/${DISK}") % 8)) -eq 0 ]; then
echo "Creating ext4 partition..." echo "Creating ext4 partition..."
mkfs.ext4 -F -F "/dev/${DISK}1" mkfs.ext4 -F -F "/dev/${DISK}1"
DISK="${DISK}1" DISK="${DISK}1"
echo DISK="${DISK}" >> /steps/bootstrap.cfg
fi fi
# Mount the partition, move everything into /external # Mount the partition, move everything into /external

View file

@ -1 +1 @@
f8c754de5bd9cf5a1b36dfea25e81f7b39c4e0145e10eebafccc8cdca5be91bd /usr/bin/kexec-fiwix d4f502384ab723ae4b3bf33e8024a93c71cba8481f8065182a8f21ffff0fbd6d /usr/bin/kexec-fiwix

View file

@ -82,7 +82,7 @@ int main() {
char *bare_metal = getenv("BARE_METAL"); char *bare_metal = getenv("BARE_METAL");
if (bare_metal != NULL && strcmp(bare_metal, "True") == 0) if (bare_metal != NULL && strcmp(bare_metal, "True") == 0)
{ {
sprintf(cmdline, "fiwix root=/dev/ram0 ramdisksize=%d initrd=fiwix.ext2 kexec_proto=linux kexec_size=%d kexec_cmdline=\"init=/init consoleblank=0\"", INITRD_MB * 1024, KEXEC_MB * 1024); sprintf(cmdline, "fiwix console=/dev/tty1 root=/dev/ram0 ramdisksize=%d initrd=fiwix.ext2 kexec_proto=linux kexec_size=%d kexec_cmdline=\"init=/init consoleblank=0\"", INITRD_MB * 1024, KEXEC_MB * 1024);
} }
else else
{ {

View file

@ -0,0 +1,12 @@
# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
autoreconf-2.71 -fi
}
src_configure() {
./configure --prefix="${PREFIX}" --libdir="${LIBDIR}"
}

View file

@ -0,0 +1 @@
https://libbsd.freedesktop.org/releases/libbsd-0.11.8.tar.xz 55fdfa2696fb4d55a592fa9ad14a9df897c7b0008ddb3b30c419914841f85f33

View file

@ -0,0 +1,12 @@
# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
autoreconf-2.71 -fi
}
src_configure() {
./configure --prefix="${PREFIX}" --libdir="${LIBDIR}"
}

View file

@ -0,0 +1 @@
https://archive.hadrons.org/software/libmd/libmd-1.1.0.tar.xz 1bd6aa42275313af3141c7cf2e5b964e8b1fd488025caf2f971f43b00776b332

View file

@ -7,7 +7,7 @@
src_unpack() { src_unpack() {
mkdir "${pkg}" mkdir "${pkg}"
mv "${DISTFILES}/deblob-4.9" "${pkg}/" cp "${DISTFILES}/deblob-4.9" "${pkg}/"
default || true # Predictable link errors - not a problem default || true # Predictable link errors - not a problem
rm "${DISTFILES}/${pkg}.tar.gz" rm "${DISTFILES}/${pkg}.tar.gz"
} }

View file

@ -112,7 +112,7 @@
/external/distfiles/tcc-0.9.27.tar.bz2 /external/distfiles/tcc-0.9.27.tar.bz2
/external/distfiles/sed-4.0.9.tar.gz /external/distfiles/sed-4.0.9.tar.gz
/external/distfiles/bzip2-1.0.8.tar.gz /external/distfiles/bzip2-1.0.8.tar.gz
/external/distfiles/m4-1.4.7.tar.gz /external/distfiles/m4-1.4.10.tar.gz
/external/distfiles/flex-2.6.4.tar.gz /external/distfiles/flex-2.6.4.tar.gz
/external/distfiles/bison-3.4.1.tar.gz /external/distfiles/bison-3.4.1.tar.gz
/external/distfiles/bison-3.4.1.tar.gz /external/distfiles/bison-3.4.1.tar.gz

View file

@ -7,9 +7,9 @@ CC = tcc
AR = tcc -ar AR = tcc -ar
CFLAGS = -I lib \ CFLAGS = -I lib \
-DVERSION=\"1.4.7\" \ -DVERSION=\"1.4.10\" \
-DPACKAGE_BUGREPORT=\"bug-m4@gnu.org\" \ -DPACKAGE_BUGREPORT=\"bug-m4@gnu.org\" \
-DPACKAGE_STRING=\"GNU\ M4\ 1.4.7\" \ -DPACKAGE_STRING=\"GNU\ M4\ 1.4.10\" \
-DPACKAGE=\"m4\" \ -DPACKAGE=\"m4\" \
-DPACKAGE_NAME=\"GNU\ M4\" \ -DPACKAGE_NAME=\"GNU\ M4\" \
-DHAVE_STDINT_H=1 \ -DHAVE_STDINT_H=1 \
@ -17,14 +17,16 @@ CFLAGS = -I lib \
-DHAVE_DECL___FPENDING=1 \ -DHAVE_DECL___FPENDING=1 \
-D_GNU_SOURCE=1 \ -D_GNU_SOURCE=1 \
-D_GL_UNUSED= \ -D_GL_UNUSED= \
-DGNULIB_CLOSE_STREAM=1 \
-D__getopt_argv_const=const \ -D__getopt_argv_const=const \
-DSYSCMD_SHELL=\"/bin/sh\" -DSYSCMD_SHELL=\"/bin/sh\" \
-DLIBDIR=\"$(PREFIX)/lib/i386-unknown-linux-musl\"
LDFLAGS = -L . -lm4 LDFLAGS = -L . -lm4
.PHONY: all .PHONY: all
LIB_SRC = cloexec close-stream dup-safer error exitfail fd-safer fopen-safer getopt getopt1 mkstemp-safer regex obstack tmpfile-safer verror xalloc-die xasprintf xmalloc xvasprintf LIB_SRC = clean-temp cloexec close-stream closein closeout dup-safer error exitfail fatal-signal fd-safer fopen-safer getopt getopt1 gl_avltree_oset gl_linkedhash_list gl_list gl_oset localcharset mkstemp-safer regex obstack quotearg tmpdir verror version-etc version-etc-fsf xalloc-die xasprintf xmalloc xvasprintf
LIB_OBJECTS = $(addprefix lib/, $(addsuffix .o, $(LIB_SRC))) LIB_OBJECTS = $(addprefix lib/, $(addsuffix .o, $(LIB_SRC)))
M4_SRC = m4 builtin debug eval format freeze input macro output path symtab M4_SRC = m4 builtin debug eval format freeze input macro output path symtab

9
steps/m4-1.4.10/pass1.sh Normal file
View file

@ -0,0 +1,9 @@
# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
touch lib/configmake.h
}

1
steps/m4-1.4.10/sources Normal file
View file

@ -0,0 +1 @@
https://mirrors.kernel.org/gnu/m4/m4-1.4.10.tar.gz 197fcb73c346fa669f143c3f0ec3144271f133647df00b2258bff1fd485cabe0

View file

@ -1 +0,0 @@
https://mirrors.kernel.org/gnu/m4/m4-1.4.7.tar.gz 093c993767f563a11e41c1cf887f4e9065247129679d4c1e213d0544d16d8303

View file

@ -15,6 +15,9 @@
# eg, define: BUILD_FIWIX = KERNEL_BOOTSTRAP == True || BUILD_KERNELS == True # eg, define: BUILD_FIWIX = KERNEL_BOOTSTRAP == True || BUILD_KERNELS == True
# - jump: jump (usually) to a new kernel, executes a script with that name # - jump: jump (usually) to a new kernel, executes a script with that name
# eg, jump: fiwix # eg, jump: fiwix
# - uninstall; removes a package or filenames
# eg, uninstall: perl-5.6.2
# eg, uninstall: /usr/bin/lex /usr/bin/flex
# #
# The following directives have special significance: # The following directives have special significance:
# - build directives beginning with "bash" (as well as jumps) trigger the generation of # - build directives beginning with "bash" (as well as jumps) trigger the generation of
@ -50,6 +53,10 @@ build: heirloom-devtools-070527
build: bash-2.05b build: bash-2.05b
improve: setup_repo improve: setup_repo
improve: update_env improve: update_env
improve: merged_usr
improve: populate_device_nodes
define: CONSOLES = ( INTERACTIVE == True && CHROOT == False )
improve: open_console ( CONSOLES == True )
build: flex-2.5.11 build: flex-2.5.11
build: tcc-0.9.27 build: tcc-0.9.27
improve: musl_libdir improve: musl_libdir
@ -59,8 +66,9 @@ build: musl-1.1.24
build: tcc-0.9.27 build: tcc-0.9.27
build: sed-4.0.9 build: sed-4.0.9
build: bzip2-1.0.8 build: bzip2-1.0.8
build: m4-1.4.7 build: m4-1.4.10
build: flex-2.6.4 build: flex-2.6.4
uninstall: /usr/bin/yacc
build: bison-3.4.1 build: bison-3.4.1
build: bison-3.4.1 build: bison-3.4.1
build: bison-3.4.1 build: bison-3.4.1
@ -74,7 +82,7 @@ build: perl-5.003
build: perl5.004-05 build: perl5.004-05
build: perl5.005-03 build: perl5.005-03
build: perl-5.6.2 build: perl-5.6.2
improve: populate_device_nodes uninstall: perl-5.000 perl-5.003 perl5.004-05 perl5.005-03
build: autoconf-2.52 build: autoconf-2.52
build: automake-1.6.3 build: automake-1.6.3
build: automake-1.6.3 build: automake-1.6.3
@ -122,11 +130,13 @@ jump: linux ( CHROOT == False )
jump: move_disk ( KERNEL_BOOTSTRAP == True ) jump: move_disk ( KERNEL_BOOTSTRAP == True )
improve: finalize_job_count improve: finalize_job_count
improve: finalize_fhs improve: finalize_fhs
improve: open_console ( CONSOLES == True )
improve: swap ( SWAP_SIZE != 0 ) improve: swap ( SWAP_SIZE != 0 )
build: musl-1.2.4 build: musl-1.2.4
build: curl-8.5.0 build: curl-8.5.0
improve: get_network ( CHROOT == False ) improve: get_network ( CHROOT == False )
build: bash-5.2.15 build: bash-5.2.15
improve: open_console ( CONSOLES == True )
build: xz-5.4.1 build: xz-5.4.1
build: file-5.44 build: file-5.44
build: libtool-2.4.7 build: libtool-2.4.7
@ -144,6 +154,7 @@ build: bison-3.4.2
build: perl-5.10.1 build: perl-5.10.1
build: dist-3.5-236 build: dist-3.5-236
build: perl-5.32.1 build: perl-5.32.1
uninstall: perl-5.6.2 perl-5.10.1
build: libarchive-3.5.2 build: libarchive-3.5.2
build: openssl-1.1.1l build: openssl-1.1.1l
build: ca-certificates-3.95 build: ca-certificates-3.95
@ -178,10 +189,20 @@ build: python-3.3.7
build: python-3.4.10 build: python-3.4.10
build: python-3.8.16 build: python-3.8.16
build: python-3.11.1 build: python-3.11.1
uninstall: python-2.0.1 python-2.3.7 python-3.1.5 python-3.3.7 python-3.4.10 python-3.8.16
jump: break ( INTERNAL_CI == pass1 ) # scripts are generated in pass1 jump: break ( INTERNAL_CI == pass1 ) # scripts are generated in pass1
build: gcc-10.4.0 build: gcc-10.4.0
build: binutils-2.41 build: binutils-2.41
build: gcc-13.1.0 build: gcc-13.1.0
build: grub-2.06 ( BUILD_LINUX == True )
improve: make_bootable ( CHROOT == False )
build: libmd-1.1.0
build: libbsd-0.11.8
build: shadow-4.14.3
build: opendoas-6.8.2
build: gzip-1.13
build: diffutils-3.10
improve: cleanup_filesystem
improve: null_time ( FORCE_TIMESTAMPS == True ) improve: null_time ( FORCE_TIMESTAMPS == True )
improve: update_checksums ( UPDATE_CHECKSUMS == True ) improve: update_checksums ( UPDATE_CHECKSUMS == True )
improve: after improve: after

View file

@ -28,6 +28,5 @@ src_compile() {
} }
src_install() { src_install() {
rm -rf "${PREFIX}/include"
make PREFIX="${PREFIX}" DESTDIR="${DESTDIR}" install make PREFIX="${PREFIX}" DESTDIR="${DESTDIR}" install
} }

View file

@ -0,0 +1 @@
permit nopass :wheel

View file

@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: GPL-3.0-or-later

View file

@ -0,0 +1,20 @@
# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_configure() {
./configure --prefix="${PREFIX}" \
--without-pam
}
src_compile() {
make -f GNUmakefile "${MAKEJOBS}" PREFIX="${PREFIX}"
}
src_install() {
make -f GNUmakefile install PREFIX="${PREFIX}" DESTDIR="${DESTDIR}"
ln -s doas "${DESTDIR}${PREFIX}/bin/sudo"
install -D -m 400 ../../files/doas.conf "${DESTDIR}/etc/doas.conf"
}

View file

@ -0,0 +1 @@
https://github.com/Duncaen/OpenDoas/releases/download/v6.8.2/opendoas-6.8.2.tar.xz 4e98828056d6266bd8f2c93e6ecf12a63a71dbfd70a5ea99ccd4ab6d0745adf0

View file

@ -28,10 +28,3 @@ src_prepare() {
mv ext/Digest-SHA ext/Digest/SHA mv ext/Digest-SHA ext/Digest/SHA
mv ext/Data-Dumper ext/Data/Dumper mv ext/Data-Dumper ext/Data/Dumper
} }
src_install() {
# Remove old perl
rm -rf "${PREFIX}"/lib/perl5/
default
}

View file

@ -42,9 +42,6 @@ src_configure() {
} }
src_install() { src_install() {
# Remove old perl
rm -rf "${PREFIX}"/lib/perl5/
default default
# Remove messed up manpages # Remove messed up manpages

View file

@ -37,10 +37,3 @@ src_prepare() {
src_compile() { src_compile() {
make -j1 PREFIX="${PREFIX}" make -j1 PREFIX="${PREFIX}"
} }
src_install() {
# Remove old perl
rm -rf "${PREFIX}"/lib/perl5/
default
}

View file

@ -18,10 +18,3 @@ src_prepare() {
perl ${file}.pl perl ${file}.pl
done done
} }
src_install() {
# Remove old perl
rm -rf "${PREFIX}"/lib/perl5/
default
}

View file

@ -22,10 +22,3 @@ src_prepare() {
rm -f fbyterun.h byterun.c rm -f fbyterun.h byterun.c
perl bytecode.pl perl bytecode.pl
} }
src_install() {
# Remove old perl
rm -rf "${PREFIX}"/lib/perl5/
default
}

View file

@ -204,3 +204,18 @@ Python 2.0 does not support DESTDIR, so add it in.
fi; \ fi; \
done done
@@ -249,10 +249,10 @@
$(DESTSHARED):
@for i in $(DESTDIRS); \
do \
- if test ! -d $$i; then \
- echo "Creating directory $$i"; \
- mkdir $$i; \
- chmod 755 $$i; \
+ if test ! -d $(DESTDIR)$$i; then \
+ echo "Creating directory $(DESTDIR)$$i"; \
+ mkdir $(DESTDIR)$$i; \
+ chmod 755 $(DESTDIR)$$i; \
else true; \
fi; \
done

View file

@ -0,0 +1,26 @@
SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: Python-2.0.1
Disable creation of pyc files.
--- Lib/py_compile.py 2024-01-22 11:28:00.291261389 +1100
+++ Lib/py_compile.py 2024-01-22 11:28:13.462600939 +1100
@@ -41,6 +41,7 @@
directories).
"""
+ return
import os, marshal, __builtin__
f = open(file)
try:
--- Python/import.c 2024-01-22 12:23:34.349395727 +1100
+++ Python/import.c 2024-01-22 12:23:30.299285640 +1100
@@ -672,6 +672,7 @@
static void
write_compiled_module(PyCodeObject *co, char *cpathname, long mtime)
{
+ return;
FILE *fp;
fp = open_exclusive(cpathname);

View file

@ -0,0 +1,25 @@
SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: PSF-2.0
Disable creation of pyc files.
--- Lib/py_compile.py 2024-01-22 11:28:44.333395804 +1100
+++ Lib/py_compile.py 2024-01-22 11:28:53.703636809 +1100
@@ -112,6 +112,7 @@
directories).
"""
+ return
f = open(file, 'U')
try:
timestamp = long(os.fstat(f.fileno()).st_mtime)
--- Python/import.c 2024-01-22 12:24:05.300236204 +1100
+++ Python/import.c 2024-01-22 12:24:36.513082356 +1100
@@ -807,6 +807,7 @@
static void
write_compiled_module(PyCodeObject *co, char *cpathname, long mtime)
{
+ return;
FILE *fp;
fp = open_exclusive(cpathname);

View file

@ -0,0 +1,26 @@
SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: PSF-2.0
Disable creation of pyc files.
--- Lib/py_compile.py 2024-01-22 11:28:44.333395804 +1100
+++ Lib/py_compile.py 2024-01-22 11:28:53.703636809 +1100
@@ -112,6 +112,7 @@
directories).
"""
+ return
f = open(file, 'U')
try:
timestamp = long(os.fstat(f.fileno()).st_mtime)
--- Python/import.c 2024-01-22 12:24:59.390701654 +1100
+++ Python/import.c 2024-01-22 12:25:18.643222249 +1100
@@ -869,6 +869,7 @@
static void
write_compiled_module(PyCodeObject *co, char *cpathname, time_t mtime)
{
+ return;
FILE *fp;
fp = open_exclusive(cpathname);

View file

@ -20,7 +20,7 @@ src_prepare() {
mkdir Tools/unicode/in Tools/unicode/out mkdir Tools/unicode/in Tools/unicode/out
mv ../CP437.TXT Tools/unicode/in/ mv ../CP437.TXT Tools/unicode/in/
pushd Tools/unicode pushd Tools/unicode
python gencodec.py in/ ../../Lib/encodings/ python -B gencodec.py in/ ../../Lib/encodings/
popd popd
# Regenerate unicode # Regenerate unicode
@ -29,7 +29,7 @@ src_prepare() {
mv "../${f}-3.2.0.txt" . mv "../${f}-3.2.0.txt" .
mv "../${f}-5.1.0.txt" "${f}.txt" mv "../${f}-5.1.0.txt" "${f}.txt"
done done
python Tools/unicode/makeunicodedata.py python -B Tools/unicode/makeunicodedata.py
# Regenerate sre_constants.h # Regenerate sre_constants.h
rm Modules/sre_constants.h rm Modules/sre_constants.h
@ -57,22 +57,22 @@ src_compile() {
# Temporarily break include cycle # Temporarily break include cycle
patch -Np0 -i graminit-regen.patch patch -Np0 -i graminit-regen.patch
# Build pgen # Build pgen
make "${MAKEJOBS}" Parser/pgen PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" Parser/pgen
# Regen graminit.c and graminit.h # Regen graminit.c and graminit.h
make "${MAKEJOBS}" Include/graminit.h PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" Include/graminit.h
# Regenerate some Python scripts using the other regenerated files # Regenerate some Python scripts using the other regenerated files
# Must move them out to avoid using Lib/ module files which are # Must move them out to avoid using Lib/ module files which are
# incompatible with running version of Python # incompatible with running version of Python
cp Lib/{symbol,keyword,token}.py . cp Lib/{symbol,keyword,token}.py .
python symbol.py python -B symbol.py
python keyword.py python -B keyword.py
python token.py python -B token.py
# Undo change # Undo change
patch -Np0 -R -i graminit-regen.patch patch -Np0 -R -i graminit-regen.patch
# Now build the main program # Now build the main program
make "${MAKEJOBS}" CFLAGS="-U__DATE__ -U__TIME__" PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" CFLAGS="-U__DATE__ -U__TIME__"
} }
src_install() { src_install() {

View file

@ -11,7 +11,7 @@ src_prepare() {
# Regenerate ssl_data for ssl module # Regenerate ssl_data for ssl module
rm Modules/_ssl_data_300.h Modules/_ssl_data.h rm Modules/_ssl_data_300.h Modules/_ssl_data.h
python Tools/ssl/make_ssl_data.py ../openssl-1.1.1l Modules/_ssl_data_111.h python -B Tools/ssl/make_ssl_data.py ../openssl-1.1.1l Modules/_ssl_data_111.h
sed -i 's#$(srcdir)/Modules/_ssl_data.h ##' Makefile.pre.in sed -i 's#$(srcdir)/Modules/_ssl_data.h ##' Makefile.pre.in
sed -i 's#$(srcdir)/Modules/_ssl_data_300.h ##' Makefile.pre.in sed -i 's#$(srcdir)/Modules/_ssl_data_300.h ##' Makefile.pre.in
@ -20,27 +20,27 @@ src_prepare() {
mkdir Tools/unicode/in Tools/unicode/out mkdir Tools/unicode/in Tools/unicode/out
mv ../CP437.TXT Tools/unicode/in/ mv ../CP437.TXT Tools/unicode/in/
pushd Tools/unicode pushd Tools/unicode
python gencodec.py in/ ../../Lib/encodings/ python -B gencodec.py in/ ../../Lib/encodings/
popd popd
# Regenerate stringprep # Regenerate stringprep
rm Lib/stringprep.py rm Lib/stringprep.py
mv ../rfc3454.txt . mv ../rfc3454.txt .
python Tools/unicode/mkstringprep.py > Lib/stringprep.py python -B Tools/unicode/mkstringprep.py > Lib/stringprep.py
# Regenerate unicode # Regenerate unicode
rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h
mkdir -p Tools/unicode/data mkdir -p Tools/unicode/data
mv ../*.txt ../*.zip Tools/unicode/data/ mv ../*.txt ../*.zip Tools/unicode/data/
python Tools/unicode/makeunicodedata.py python -B Tools/unicode/makeunicodedata.py
# Regenerate Lib/re/_casefix.py # Regenerate Lib/re/_casefix.py
rm Lib/re/_casefix.py rm Lib/re/_casefix.py
python Tools/scripts/generate_re_casefix.py Lib/re/_casefix.py python -B Tools/scripts/generate_re_casefix.py Lib/re/_casefix.py
# Regenerate Programs/test_frozenmain.h # Regenerate Programs/test_frozenmain.h
rm Programs/test_frozenmain.h rm Programs/test_frozenmain.h
python Programs/freeze_test_frozenmain.py Programs/test_frozenmain.h python -B Programs/freeze_test_frozenmain.py Programs/test_frozenmain.h
# Create dummy Python/stdlib_module_names.h # Create dummy Python/stdlib_module_names.h
echo 'static const char* _Py_stdlib_module_names[] = {};' > Python/stdlib_module_names.h echo 'static const char* _Py_stdlib_module_names[] = {};' > Python/stdlib_module_names.h
@ -69,7 +69,9 @@ src_compile() {
# We have to choose the order ourselves because the Makefile is extremely lax about the order # We have to choose the order ourselves because the Makefile is extremely lax about the order
# First of all, do everything that doesn't use any C # First of all, do everything that doesn't use any C
rm Modules/_blake2/blake2s_impl.c rm Modules/_blake2/blake2s_impl.c
make "${MAKEJOBS}" regen-opcode \ PYTHONDONTWRITEBYTECODE=1 \
make "${MAKEJOBS}" \
regen-opcode \
regen-opcode-targets \ regen-opcode-targets \
regen-typeslots \ regen-typeslots \
regen-token \ regen-token \
@ -82,17 +84,17 @@ src_compile() {
regen-global-objects regen-global-objects
# Do the freeze regen process # Do the freeze regen process
make "${MAKEJOBS}" regen-frozen PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-frozen
make "${MAKEJOBS}" regen-deepfreeze PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-deepfreeze
make "${MAKEJOBS}" regen-global-objects PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-global-objects
make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__" make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__"
# Regen Python/stdlib_module_names.h (you must have an existing build first) # Regen Python/stdlib_module_names.h (you must have an existing build first)
make "${MAKEJOBS}" regen-stdlib-module-names PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-stdlib-module-names
# Now rebuild with proper stdlib_module_names.h # Now rebuild with proper stdlib_module_names.h
make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__" PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__"
} }
src_install() { src_install() {

View file

@ -21,21 +21,21 @@ src_prepare() {
mkdir Tools/unicode/in Tools/unicode/out mkdir Tools/unicode/in Tools/unicode/out
mv ../CP437.TXT Tools/unicode/in/ mv ../CP437.TXT Tools/unicode/in/
pushd Tools/unicode pushd Tools/unicode
python gencodec.py in/ ../../Lib/encodings/ python -B gencodec.py in/ ../../Lib/encodings/
popd popd
# Regenerate unicode # Regenerate unicode
rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h
mv ../*.txt ../*.zip . mv ../*.txt ../*.zip .
python Tools/unicode/makeunicodedata.py python -B Tools/unicode/makeunicodedata.py
# Regenerate sre_constants.h # Regenerate sre_constants.h
rm Modules/sre_constants.h rm Modules/sre_constants.h
cp Lib/sre_constants.py . cp Lib/sre_constants.py .
python sre_constants.py python -B sre_constants.py
# Regenerate _ssl_data.h # Regenerate _ssl_data.h
python Tools/ssl/make_ssl_data.py /usr/include/openssl Modules/_ssl_data.h python -B Tools/ssl/make_ssl_data.py /usr/include/openssl Modules/_ssl_data.h
# Regenerate autoconf # Regenerate autoconf
autoreconf-2.71 -fi autoreconf-2.71 -fi
@ -55,21 +55,21 @@ src_configure() {
src_compile() { src_compile() {
# Build pgen # Build pgen
make "${MAKEJOBS}" Parser/pgen PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" Parser/pgen
# Regen graminit.c and graminit.h # Regen graminit.c and graminit.h
make "${MAKEJOBS}" Include/graminit.h PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" Include/graminit.h
# Regenerate some Python scripts using the other regenerated files # Regenerate some Python scripts using the other regenerated files
# Must move them out to avoid using Lib/ module files which are # Must move them out to avoid using Lib/ module files which are
# incompatible with running version of Python # incompatible with running version of Python
cp Lib/{symbol,keyword,token}.py . cp Lib/{symbol,keyword,token}.py .
cp token.py _token.py cp token.py _token.py
python symbol.py python -B symbol.py
python keyword.py python -B keyword.py
python token.py python -B token.py
# Now build the main program # Now build the main program
make -j1 CFLAGS="-U__DATE__ -U__TIME__" PYTHONDONTWRITEBYTECODE=1 make -j1 CFLAGS="-U__DATE__ -U__TIME__"
} }
src_install() { src_install() {

View file

@ -21,23 +21,23 @@ src_prepare() {
mkdir Tools/unicode/in Tools/unicode/out mkdir Tools/unicode/in Tools/unicode/out
mv ../CP437.TXT Tools/unicode/in/ mv ../CP437.TXT Tools/unicode/in/
pushd Tools/unicode pushd Tools/unicode
python gencodec.py in/ ../../Lib/encodings/ python -B gencodec.py in/ ../../Lib/encodings/
popd popd
# Regenerate clinic # Regenerate clinic
find . -name "*.c" -or -name "*.h" | \ find . -name "*.c" -or -name "*.h" | \
xargs grep 'clinic input' -l | \ xargs grep 'clinic input' -l | \
xargs -L 1 python Tools/clinic/clinic.py xargs -L 1 python -B Tools/clinic/clinic.py
# Regenerate unicode # Regenerate unicode
rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h
mv ../*.txt ../*.zip . mv ../*.txt ../*.zip .
python Tools/unicode/makeunicodedata.py python -B Tools/unicode/makeunicodedata.py
# Regenerate sre_constants.h # Regenerate sre_constants.h
rm Modules/sre_constants.h rm Modules/sre_constants.h
cp Lib/sre_constants.py . cp Lib/sre_constants.py .
python sre_constants.py python -B sre_constants.py
mv sre_constants.h Modules/ mv sre_constants.h Modules/
# Regenerate autoconf # Regenerate autoconf
@ -58,21 +58,21 @@ src_configure() {
src_compile() { src_compile() {
# Build pgen # Build pgen
make -j1 Parser/pgen PYTHONDONTWRITEBYTECODE=1 make -j1 Parser/pgen
# Regen graminit.c and graminit.h # Regen graminit.c and graminit.h
make -j1 Include/graminit.h PYTHONDONTWRITEBYTECODE=1 make -j1 Include/graminit.h
# Regenerate some Python scripts using the other regenerated files # Regenerate some Python scripts using the other regenerated files
# Must move them out to avoid using Lib/ module files which are # Must move them out to avoid using Lib/ module files which are
# incompatible with running version of Python # incompatible with running version of Python
cp Lib/{symbol,keyword,token}.py . cp Lib/{symbol,keyword,token}.py .
cp token.py _token.py cp token.py _token.py
python symbol.py python -B symbol.py
python keyword.py python -B keyword.py
python token.py python -B token.py
# Now build the main program # Now build the main program
make -j1 CFLAGS="-U__DATE__ -U__TIME__" PYTHONDONTWRITEBYTECODE=1 make -j1 CFLAGS="-U__DATE__ -U__TIME__"
} }
src_install() { src_install() {

View file

@ -15,24 +15,24 @@ src_prepare() {
mkdir Tools/unicode/in Tools/unicode/out mkdir Tools/unicode/in Tools/unicode/out
mv ../CP437.TXT Tools/unicode/in/ mv ../CP437.TXT Tools/unicode/in/
pushd Tools/unicode pushd Tools/unicode
python gencodec.py in/ ../../Lib/encodings/ python -B gencodec.py in/ ../../Lib/encodings/
popd popd
# Regenerate unicode # Regenerate unicode
rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h rm Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodetype_db.h
mv ../*.txt ../*.zip . mv ../*.txt ../*.zip .
python Tools/unicode/makeunicodedata.py python -B Tools/unicode/makeunicodedata.py
# Regenerate sre_constants.h # Regenerate sre_constants.h
rm Modules/sre_constants.h rm Modules/sre_constants.h
cp Lib/sre_constants.py . cp Lib/sre_constants.py .
python sre_constants.py python -B sre_constants.py
rm sre_constants.py rm sre_constants.py
mv sre_constants.h Modules/ mv sre_constants.h Modules/
# Regenerate stringprep # Regenerate stringprep
rm Lib/stringprep.py rm Lib/stringprep.py
python Tools/unicode/mkstringprep.py > Lib/stringprep.py python -B Tools/unicode/mkstringprep.py > Lib/stringprep.py
# Regenerate autoconf # Regenerate autoconf
autoreconf-2.71 -fi autoreconf-2.71 -fi
@ -42,6 +42,7 @@ src_configure() {
MACHDEP=linux ac_sys_system=Linux \ MACHDEP=linux ac_sys_system=Linux \
CPPFLAGS="-U__DATE__ -U__TIME__" \ CPPFLAGS="-U__DATE__ -U__TIME__" \
LDFLAGS="-L${LIBDIR}" \ LDFLAGS="-L${LIBDIR}" \
PYTHON_FOR_BUILD="python -B" \
./configure \ ./configure \
--build=i386-unknown-linux-musl \ --build=i386-unknown-linux-musl \
--host=i386-unknown-linux-musl \ --host=i386-unknown-linux-musl \
@ -53,9 +54,9 @@ src_configure() {
src_compile() { src_compile() {
# Regenerations # Regenerations
rm Modules/_blake2/blake2s_impl.c rm Modules/_blake2/blake2s_impl.c
make "${MAKEJOBS}" regen-all PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" regen-all
make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__" PYTHONDONTWRITEBYTECODE=1 make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__"
} }
src_install() { src_install() {

View file

@ -0,0 +1,37 @@
# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
# Pregenerated manpages
find man -name "*.[1-9]" -delete
# groups is provided by coreutils
sed -i 's/groups$(EXEEXT) //' src/Makefile.in
autoreconf-2.71 -fi
}
src_configure() {
PKG_CONFIG_PATH="${LIBDIR}/pkgconfig/" \
./configure \
--prefix="${PREFIX}" \
--sbindir="${PREFIX}/bin" \
--libdir="${LIBDIR}" \
--sysconfdir=/etc \
--localstatedir=/var
}
src_compile() {
make "${MAKEJOBS}" PREFIX="${PREFIX}"
}
src_install() {
make install PREFIX="${PREFIX}" DESTDIR="${DESTDIR}" exec_prefix="${PREFIX}"
# fix sbin
mv "${DESTDIR}"/usr/sbin/* "${DESTDIR}"/usr/bin/
rmdir "${DESTDIR}/usr/sbin"
}

View file

@ -0,0 +1 @@
https://github.com/shadow-maint/shadow/releases/download/4.14.3/shadow-4.14.3.tar.xz 6969279236fe3152768573a38c9f83cb9ca109851a5a990aec1fc672ac2cfcd2

View file

@ -6,7 +6,7 @@ src_prepare() {
default default
# We don't have gettext (autopoint) yet. # We don't have gettext (autopoint) yet.
AUTOPOINT=true AUTOMAKE=automake-1.10 ACLOCAL=aclocal-1.10 AUTOM4TE=autom4te-2.64 autoreconf-2.64 -fi AUTOPOINT=true AUTOMAKE=automake-1.10 AUTOCONF=autoconf-2.64 ACLOCAL=aclocal-1.10 AUTOM4TE=autom4te-2.64 autoreconf-2.64 -fi
} }
src_configure() { src_configure() {