summaryrefslogtreecommitdiff
path: root/build_stage3.sh
blob: c4bf30ea5acf806c30d2ae0f83ee179bf3e7b036 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/bin/sh

# shellcheck source=./default.conf
. "./default.conf"

# build all packages for stage 3 using the target system with stage 2
# packages.  packages will be installed with pacman onto the target
# system once built sucessfully. The artifacts are also copied back
# to the $STAGE3_PACKAGES to speed up rebuild of the state of the stage 3
# system in case of destroying it.

PACKAGES="iana-etc filesystem linux-api-headers tzdata
ncurses readline bash joe
attr acl m4 gmp gdbm db perl openssl
libunistring gettext perl-locale-gettext help2man
autoconf automake perl-error pcre2 git libtool
zlib pambase cracklib flex libcap coreutils
e2fsprogs expat bzip2 lz4 xz pcre less gzip
tar libarchive
icu
mpdecimal libffi 
nettle libidn libtasn1 p11-kit gnutls libgpg-error libassuan
libksba libgcrypt pinentry gnupg
elfutils sed texinfo grep findutils file diffutils ed patch
fakeroot
check kbd bison shadow
inetutils bc kmod
net-tools libmnl
libedit
mpfr gawk libmpc binutils
libatomic_ops gc
libunwind strace
argon2
groff
jfsutils
json-c
libcap-ng
libnftnl
libidn2 libnghttp2 libpsl
libpipeline libseccomp man-db man-pages
libmicrohttpd
libssh2
mdadm
nano
npth
popt logrotate
hwids pciutils
keyutils
tcl sqlite libsasl chrpath unixodbc openldap
krb5 libtirpc pam
reiserfsprogs
sysfsutils iputils
s-nail
vi
which
xfsprogs
psmisc
gpgme
sudo
autoconf-archive
linux-atm iproute2
curl pacman-mirrorlist archlinux-keyring archlinux32-keyring
pacman
wget
python quota-tools perl-xml-parser intltool
re2c python2 ninja
python-pip-bootstrap python-pip
python-pyparsing python-packaging python-appdirs python-six python-setuptools
meson
gperf systemd dbus libusb usbutils libpcap iptables util-linux
procps-ng pcmciautils openresolv netctl dhcpcd
mkinitcpio-busybox mkinitcpio
glib2 pkg-config
ldns openssh
zip nspr gyp nss
"

# gyp used for mozilla sub certs, continue to use shim?
# ca-certificates-cacerts ca-certificates
# nss:
# gyp fails with:
# ImportError: This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.

# TODO: redo make with guile
# guile, guile2_0: libtool fails to find gc (threading problem?),
# --disable-threads in toolchain causes POSIX threads to be absent, we
# wait for full toolchain to be around.
# guile, posix thread missing in toolchain
#~ make: glibc guile 
#~ gdb: python guile2.0
#~ guile2.0:  gc (with posix threads) 
# wait for posix threads, gcc toolchain rebuild

# building toolchain (gcc): again, lobtool problems
#/usr/lib/gcc/i486-pc-linux-gnu/7.3.0/ld: cannot find -lquadmath
#collect2: error: ld returned 1 exit status
#libtool: install: error: relink `libgfortran.la' with the above command before installing it
#make: Leaving directory '/build/gcc/src/gcc-build/i486-pc-linux-gnu/libgfortran'

#~ linux build full with mkinitcpio and modules
     
#~  linux 
#~ make <mpfr> <gawk> <libmpc> <binutils> <gcc> glibc
#~ <libunwind> <strace> gdb
#~ "
#~ #TODO after nasm: syslinux

# stage3 (from compute_dependencies.sh)
#~ cryptsetup: device-mapper popt libutil-linux

# ldns/unbound-cyrcle
#~ dnssec-anchors: requires unbound
#~ unbound: ldns

# the systemd knot

# lvm knot
# lvm2, device-mapper: systemd, thin-povisioning-tools
#~ thin-provisioning-tools: expat gcc-libs libaio boost
# libaio
# stack smashing and nostdlib?
# compat-0_1.c:(.text+0xaf): undefined reference to `__stack_chk_fail_local'
# boost: we can build a non-python version
# cryptsetup: device-mapper

#~ base cryptsetup
#~ base device-mapper
#~ base lvm2
#~ base 

for p in $PACKAGES; do
	"$SCRIPT_DIR/build_stage3_package.sh" "$p" || exit 1
done