Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Makefile24
-rwxr-xr-xarchiso/mkarchiso4
-rw-r--r--configs/releng/airootfs/etc/systemd/system/pacman-init.service4
-rw-r--r--configs/releng/bootstrap_packages.i6862
-rwxr-xr-xconfigs/releng/build.sh342
-rw-r--r--configs/releng/packages.i686122
-rw-r--r--configs/releng/pacman.conf6
-rw-r--r--configs/releng/profiledef.sh8
-rw-r--r--configs/releng/syslinux/archiso_pxe-linux.cfg24
-rw-r--r--configs/releng/syslinux/archiso_pxe_32_inc.cfg3
-rw-r--r--configs/releng/syslinux/archiso_sys-linux.cfg16
-rw-r--r--configs/releng/syslinux/archiso_sys.cfg2
-rw-r--r--configs/releng/syslinux/archiso_sys_32_inc.cfg3
14 files changed, 529 insertions, 33 deletions
diff --git a/.gitignore b/.gitignore
index 74a0a52..c8784c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
*~
-archiso-*.tar.gz*
+archiso32-*.tar.gz*
work/
out/
*.iso
diff --git a/Makefile b/Makefile
index c4ceb2f..f8f2374 100644
--- a/Makefile
+++ b/Makefile
@@ -30,4 +30,26 @@ install-profiles:
install-doc:
install -vDm 644 $(DOC_FILES) -t $(DOC_DIR)
-.PHONY: check install install-doc install-profiles install-scripts shellcheck
+uninstall: uninstall-scripts uninstall-profiles uninstall-doc
+
+uninstall-scripts:
+ -rm -rf "${BIN_DIR}/mkarchiso"
+ -rm -rf "${BIN_DIR}/run_archiso"
+
+uninstall-profiles:
+ -rm -rf "${PROFILE_DIR}"
+
+uninstall-doc:
+ -rm -rf "${DOC_DIR}"
+
+
+V=$(shell git describe --exact-match)
+
+dist:
+ git archive --format=tar --prefix=archiso32-$(V)/ $(V) | gzip -9 > archiso32-$(V).tar.gz
+ gpg --detach-sign --use-agent archiso32-$(V).tar.gz
+
+upload:
+ scp archiso32-$(V).tar.gz archiso32-$(V).tar.gz.sig sources.archlinux32.org:sources/
+
+.PHONY: check install install-doc install-profiles install-scripts shellcheck dist upload
diff --git a/archiso/mkarchiso b/archiso/mkarchiso
index e0806bd..bbbac55 100755
--- a/archiso/mkarchiso
+++ b/archiso/mkarchiso
@@ -33,7 +33,9 @@ iso_publisher=""
iso_application=""
iso_version=""
install_dir=""
-arch=""
+# pass architecture via environment from build-all
+arch=${arch:-$(uname -m)}
+#arch=""
pacman_conf=""
packages=""
bootstrap_packages=""
diff --git a/configs/releng/airootfs/etc/systemd/system/pacman-init.service b/configs/releng/airootfs/etc/systemd/system/pacman-init.service
index b824884..0db2b0f 100644
--- a/configs/releng/airootfs/etc/systemd/system/pacman-init.service
+++ b/configs/releng/airootfs/etc/systemd/system/pacman-init.service
@@ -8,8 +8,10 @@ Before=archlinux-keyring-wkd-sync.service
[Service]
Type=oneshot
RemainAfterExit=yes
+ExecStart=-rm -f /etc/pacman.d/gnupg
ExecStart=/usr/bin/pacman-key --init
-ExecStart=/usr/bin/pacman-key --populate
+ExecStart=-/usr/bin/pacman-key --populate archlinux
+ExecStart=-/usr/bin/pacman-key --populate archlinux32
[Install]
WantedBy=multi-user.target
diff --git a/configs/releng/bootstrap_packages.i686 b/configs/releng/bootstrap_packages.i686
new file mode 100644
index 0000000..64966d0
--- /dev/null
+++ b/configs/releng/bootstrap_packages.i686
@@ -0,0 +1,2 @@
+arch-install-scripts
+base
diff --git a/configs/releng/build.sh b/configs/releng/build.sh
new file mode 100755
index 0000000..99e0dbd
--- /dev/null
+++ b/configs/releng/build.sh
@@ -0,0 +1,342 @@
+#!/usr/bin/env bash
+
+set -e -u
+
+iso_name=archlinux
+iso_label="ARCH_$(date +%Y%m)"
+iso_publisher="Arch Linux <http://www.archlinux.org>"
+iso_application="Arch Linux Live/Rescue CD"
+iso_version=$(date +%Y.%m.%d)
+install_dir=arch
+work_dir=work
+out_dir=out
+gpg_key=""
+
+arch=$(uname -m)
+verbose=""
+script_path="$( cd -P "$( dirname "$(readlink -f "$0")" )" && pwd )"
+
+umask 0022
+
+_usage ()
+{
+ echo "usage ${0} [options]"
+ echo
+ echo " General options:"
+ echo " -N <iso_name> Set an iso filename (prefix)"
+ echo " Default: ${iso_name}"
+ echo " -V <iso_version> Set an iso version (in filename)"
+ echo " Default: ${iso_version}"
+ echo " -L <iso_label> Set an iso label (disk label)"
+ echo " Default: ${iso_label}"
+ echo " -P <publisher> Set a publisher for the disk"
+ echo " Default: '${iso_publisher}'"
+ echo " -A <application> Set an application name for the disk"
+ echo " Default: '${iso_application}'"
+ echo " -D <install_dir> Set an install_dir (directory inside iso)"
+ echo " Default: ${install_dir}"
+ echo " -w <work_dir> Set the working directory"
+ echo " Default: ${work_dir}"
+ echo " -o <out_dir> Set the output directory"
+ echo " Default: ${out_dir}"
+ echo " -v Enable verbose output"
+ echo " -h This help message"
+ exit "${1}"
+}
+
+# Helper function to run make_*() only one time per architecture.
+run_once() {
+ if [[ ! -e "${work_dir}/build.${1}_${arch}" ]]; then
+ "$1"
+ touch "${work_dir}/build.${1}_${arch}"
+ fi
+}
+
+# Setup custom pacman.conf with current cache directories and custom mirrorlist and custom architecture.
+make_pacman_conf() {
+ local _cache_dirs
+ _cache_dirs=("$(pacman -v 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g')")
+ sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n "${_cache_dirs[@]}")|g" \
+ "${script_path}/pacman.conf" > "${work_dir}/pacman-x86_64.conf"
+ sed '
+ s@/var/cache/pacman/pkg/@/var/cache/archbuild32/@
+ s@Include = /etc/pacman\.d/mirrorlist$@\032@
+ ' "${work_dir}/pacman-x86_64.conf" > "${work_dir}/pacman-i686.conf"
+ local _conf
+ for _conf in "${work_dir}/"pacman-*.conf; do
+ sed -i '
+ /^Architecture =/ s/=.*$/= '"${_conf##*/pacman-}"'/
+ T
+ s/\.conf$//
+ ' "${_conf}"
+ done
+}
+
+# Prepare working directory and copy custom airootfs files (airootfs)
+make_custom_airootfs() {
+ local _airootfs="${work_dir}/${arch}/airootfs"
+ mkdir -p -- "${_airootfs}"
+
+ if [[ -d "${script_path}/airootfs" ]]; then
+ cp -af --no-preserve=ownership -- "${script_path}/airootfs/." "${_airootfs}"
+
+ [[ -e "${_airootfs}/etc/shadow" ]] && chmod -f 0400 -- "${_airootfs}/etc/shadow"
+ [[ -e "${_airootfs}/etc/gshadow" ]] && chmod -f 0400 -- "${_airootfs}/etc/gshadow"
+ [[ -e "${_airootfs}/root" ]] && chmod -f 0750 -- "${_airootfs}/root"
+ fi
+}
+
+# Packages (airootfs)
+make_packages() {
+ if [ -n "${verbose}" ]; then
+ arch=${arch} mkarchiso -v -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" -D "${install_dir}" \
+ -p "$(grep -h -v '^#' "${script_path}/packages."{both,${arch}}| sed ':a;N;$!ba;s/\n/ /g')" install
+ else
+ arch=${arch} mkarchiso -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" -D "${install_dir}" \
+ -p "$(grep -h -v '^#' "${script_path}/packages."{both,${arch}}| sed ':a;N;$!ba;s/\n/ /g')" install
+ fi
+}
+
+# Needed packages for x86_64 EFI boot
+make_packages_efi() {
+ if [ -n "${verbose}" ]; then
+ arch=${arch} mkarchiso -v -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" -D "${install_dir}" -p "efitools" install
+ else
+ arch=${arch} mkarchiso -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" -D "${install_dir}" -p "efitools" install
+ fi
+}
+
+# Copy mkinitcpio archiso hooks and build initramfs (airootfs)
+make_setup_mkinitcpio() {
+ local _hook
+ mkdir -p "${work_dir}/${arch}/airootfs/etc/initcpio/hooks"
+ mkdir -p "${work_dir}/${arch}/airootfs/etc/initcpio/install"
+ for _hook in archiso archiso_shutdown archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_loop_mnt; do
+ cp "/usr/lib/initcpio/hooks/${_hook}" "${work_dir}/${arch}/airootfs/etc/initcpio/hooks"
+ cp "/usr/lib/initcpio/install/${_hook}" "${work_dir}/${arch}/airootfs/etc/initcpio/install"
+ done
+ sed -i "s|/usr/lib/initcpio/|/etc/initcpio/|g" "${work_dir}/${arch}/airootfs/etc/initcpio/install/archiso_shutdown"
+ cp /usr/lib/initcpio/install/archiso_kms "${work_dir}/${arch}/airootfs/etc/initcpio/install"
+ cp /usr/lib/initcpio/archiso_shutdown "${work_dir}/${arch}/airootfs/etc/initcpio"
+ cp ${script_path}/mkinitcpio.conf "${work_dir}/${arch}/airootfs/etc/mkinitcpio-archiso.conf"
+ if [[ "${gpg_key}" ]]; then
+ gpg --export "${gpg_key}" > "${work_dir}/gpgkey"
+ exec 17<>"${work_dir}/gpgkey"
+ fi
+ if [ -n "${verbose}" ]; then
+ ARCHISO_GNUPG_FD="${gpg_key:+17}" arch=${arch} mkarchiso -v -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" \
+ -D "${install_dir}" \
+ -r 'mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/archiso.img' run
+ else
+ ARCHISO_GNUPG_FD="${gpg_key:+17}" arch=${arch} mkarchiso -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" \
+ -D "${install_dir}" \
+ -r 'mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/archiso.img' run
+ fi
+ if [[ "${gpg_key}" ]]; then
+ exec 17<&-
+ fi
+}
+
+# Customize installation (airootfs)
+make_customize_airootfs() {
+ if [ -n "${verbose}" ]; then
+ arch=${arch} mkarchiso -v -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" -D "${install_dir}" \
+ -r '/root/customize_airootfs.sh' run
+ else
+ arch=${arch} mkarchiso -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" -D "${install_dir}" \
+ -r '/root/customize_airootfs.sh' run
+ fi
+ rm "${work_dir}/${arch}/airootfs/root/customize_airootfs.sh"
+}
+
+# Prepare kernel/initramfs ${install_dir}/boot/
+make_boot() {
+ mkdir -p "${work_dir}/iso/${install_dir}/boot/${arch}"
+ cp "${work_dir}/${arch}/airootfs/boot/archiso.img" "${work_dir}/iso/${install_dir}/boot/${arch}/archiso.img"
+ cp "${work_dir}/${arch}/airootfs/boot/vmlinuz-linux" "${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz"
+}
+
+# Add other aditional/extra files to ${install_dir}/boot/
+make_boot_extra() {
+ if [[ -e "${work_dir}/${arch}/airootfs/boot/memtest86+/memtest.bin" ]]; then
+ cp "${work_dir}/${arch}/airootfs/boot/memtest86+/memtest.bin" "${work_dir}/iso/${install_dir}/boot/memtest"
+ cp "${work_dir}/${arch}/airootfs/usr/share/licenses/common/GPL2/license.txt" \
+ "${work_dir}/iso/${install_dir}/boot/memtest.COPYING"
+ fi
+ if [[ -e "${work_dir}/${arch}/airootfs/boot/intel-ucode.img" ]]; then
+ cp "${work_dir}/${arch}/airootfs/boot/intel-ucode.img" "${work_dir}/iso/${install_dir}/boot/intel_ucode.img"
+ cp "${work_dir}/${arch}/airootfs/usr/share/licenses/intel-ucode/LICENSE" \
+ "${work_dir}/iso/${install_dir}/boot/intel_ucode.LICENSE"
+ fi
+ if [[ -e "${work_dir}/${arch}/airootfs/boot/amd-ucode.img" ]]; then
+ cp "${work_dir}/${arch}/airootfs/boot/amd-ucode.img" "${work_dir}/iso/${install_dir}/boot/amd_ucode.img"
+ cp "${work_dir}/${arch}/airootfs/usr/share/licenses/amd-ucode/LICENSE" \
+ "${work_dir}/iso/${install_dir}/boot/amd_ucode.LICENSE"
+ fi
+}
+
+# Prepare /${install_dir}/boot/syslinux
+make_syslinux() {
+ _uname_r=$(file -b "${work_dir}/${arch}/airootfs/boot/vmlinuz-linux"| awk 'f{print;f=0} /version/{f=1}' RS=' ')
+ mkdir -p "${work_dir}/iso/${install_dir}/boot/syslinux"
+ for _cfg in "${script_path}/syslinux/"*.cfg; do
+ sed "s|%ARCHISO_LABEL%|${iso_label}|g;
+ s|%INSTALL_DIR%|${install_dir}|g" "${_cfg}" > "${work_dir}/iso/${install_dir}/boot/syslinux/${_cfg##*/}"
+ done
+ cp "${script_path}/syslinux/splash.png" "${work_dir}/iso/${install_dir}/boot/syslinux"
+ cp "${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/"*.c32 "${work_dir}/iso/${install_dir}/boot/syslinux"
+ cp "${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/lpxelinux.0" "${work_dir}/iso/${install_dir}/boot/syslinux"
+ cp "${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/memdisk" "${work_dir}/iso/${install_dir}/boot/syslinux"
+ mkdir -p "${work_dir}/iso/${install_dir}/boot/syslinux/hdt"
+ gzip -c -9 "${work_dir}/${arch}/airootfs/usr/share/hwdata/pci.ids" > \
+ "${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz"
+ gzip -c -9 "${work_dir}/${arch}/airootfs/usr/lib/modules/${_uname_r}/modules.alias" > \
+ "${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz"
+}
+
+# Prepare /isolinux
+make_isolinux() {
+ mkdir -p "${work_dir}/iso/isolinux"
+ sed "s|%INSTALL_DIR%|${install_dir}|g" \
+ "${script_path}/isolinux/isolinux.cfg" > "${work_dir}/iso/isolinux/isolinux.cfg"
+ cp "${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/isolinux.bin" "${work_dir}/iso/isolinux/"
+ cp "${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/isohdpfx.bin" "${work_dir}/iso/isolinux/"
+ cp "${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/ldlinux.c32" "${work_dir}/iso/isolinux/"
+}
+
+# Prepare /EFI
+make_efi() {
+ mkdir -p "${work_dir}/iso/EFI/boot"
+ cp "${work_dir}/i686/airootfs/usr/lib/systemd/boot/efi/systemd-bootia32.efi" \
+ "${work_dir}/iso/EFI/boot/bootia32.efi"
+
+ mkdir -p "${work_dir}/iso/loader/entries"
+ cp "${script_path}/efiboot/loader/loader.conf" "${work_dir}/iso/loader/"
+
+ sed "s|%ARCHISO_LABEL%|${iso_label}|g;
+ s|%INSTALL_DIR%|${install_dir}|g" \
+ "${script_path}/efiboot/loader/entries/archiso-x86_64-usb.conf" > \
+ "${work_dir}/iso/loader/entries/archiso-x86_64.conf"
+
+ # edk2-shell based UEFI shell
+ # shellx64.efi is picked up automatically when on /
+ cp /usr/share/edk2-shell/x64/Shell_Full.efi "${work_dir}/iso/shellx64.efi"
+}
+
+# Prepare efiboot.img::/EFI for "El Torito" EFI boot mode
+make_efiboot() {
+ mkdir -p "${work_dir}/iso/EFI/archiso"
+ truncate -s 64M "${work_dir}/iso/EFI/archiso/efiboot.img"
+ mkfs.fat -n ARCHISO_EFI "${work_dir}/iso/EFI/archiso/efiboot.img"
+
+ mkdir -p "${work_dir}/efiboot"
+ mount "${work_dir}/iso/EFI/archiso/efiboot.img" "${work_dir}/efiboot"
+
+ mkdir -p "${work_dir}/efiboot/EFI/archiso"
+ cp "${work_dir}/iso/${install_dir}/boot/i686/vmlinuz" "${work_dir}/efiboot/EFI/archiso/vmlinuz.efi"
+ cp "${work_dir}/iso/${install_dir}/boot/i686/archiso.img" "${work_dir}/efiboot/EFI/archiso/archiso.img"
+
+ cp "${work_dir}/iso/${install_dir}/boot/intel_ucode.img" "${work_dir}/efiboot/EFI/archiso/intel_ucode.img"
+ cp "${work_dir}/iso/${install_dir}/boot/amd_ucode.img" "${work_dir}/efiboot/EFI/archiso/amd_ucode.img"
+
+ mkdir -p "${work_dir}/efiboot/EFI/boot"
+ cp "${work_dir}/i686/airootfs/usr/lib/systemd/boot/efi/systemd-bootia32.efi" \
+ "${work_dir}/efiboot/EFI/boot/bootia32.efi"
+
+ mkdir -p "${work_dir}/efiboot/loader/entries"
+ cp "${script_path}/efiboot/loader/loader.conf" "${work_dir}/efiboot/loader/"
+
+ sed "s|%ARCHISO_LABEL%|${iso_label}|g;
+ s|%INSTALL_DIR%|${install_dir}|g" \
+ "${script_path}/efiboot/loader/entries/archiso-x86_64-cd.conf" > \
+ "${work_dir}/efiboot/loader/entries/archiso-x86_64.conf"
+
+ # shellx64.efi is picked up automatically when on /
+ cp "${work_dir}/iso/shellx64.efi" "${work_dir}/efiboot/"
+
+ umount -d "${work_dir}/efiboot"
+}
+
+# Build airootfs filesystem image
+make_prepare() {
+ cp -a -l -f "${work_dir}/${arch}/airootfs" "${work_dir}"
+ if [ -n "${verbose}" ]; then
+ arch=${arch} mkarchiso -v -w "${work_dir}" -D "${install_dir}" pkglist
+ arch=${arch} mkarchiso -v -w "${work_dir}" -D "${install_dir}" ${gpg_key:+-g ${gpg_key}} prepare
+ else
+ arch=${arch} mkarchiso -w "${work_dir}" -D "${install_dir}" pkglist
+ arch=${arch} mkarchiso -w "${work_dir}" -D "${install_dir}" ${gpg_key:+-g ${gpg_key}} prepare
+ fi
+ rm -rf "${work_dir}/airootfs"
+ # rm -rf "${work_dir}/${arch}/airootfs" (if low space, this helps)
+}
+
+# Build ISO
+make_iso() {
+ if [ -n "${verbose}" ]; then
+ arch=${arch} mkarchiso -v -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -P "${iso_publisher}" \
+ -A "${iso_application}" -o "${out_dir}" iso "${iso_name}-${iso_version}-i686.iso"
+ else
+ arch=${arch} mkarchiso -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -P "${iso_publisher}" \
+ -A "${iso_application}" -o "${out_dir}" iso "${iso_name}-${iso_version}-i686.iso"
+ fi
+}
+
+if [[ ${EUID} -ne 0 ]]; then
+ echo "This script must be run as root."
+ _usage 1
+fi
+
+while getopts 'N:V:L:P:A:D:w:o:g:vh' arg; do
+ case "${arg}" in
+ N) iso_name="${OPTARG}" ;;
+ V) iso_version="${OPTARG}" ;;
+ L) iso_label="${OPTARG}" ;;
+ P) iso_publisher="${OPTARG}" ;;
+ A) iso_application="${OPTARG}" ;;
+ D) install_dir="${OPTARG}" ;;
+ w) work_dir="${OPTARG}" ;;
+ o) out_dir="${OPTARG}" ;;
+ g) gpg_key="${OPTARG}" ;;
+ v) verbose="-v" ;;
+ h) _usage 0 ;;
+ *)
+ echo "Invalid argument '${arg}'"
+ _usage 1
+ ;;
+ esac
+done
+
+mkdir -p "${work_dir}"
+
+run_once make_pacman_conf
+
+# Do all stuff for each airootfs
+for arch in i686; do
+ run_once make_custom_airootfs
+ run_once make_packages
+done
+
+run_once make_packages_efi
+
+for arch in i686; do
+ run_once make_setup_mkinitcpio
+ run_once make_customize_airootfs
+done
+
+for arch in i686; do
+ run_once make_boot
+done
+
+# Do all stuff for "iso"
+run_once make_boot_extra
+run_once make_syslinux
+run_once make_isolinux
+run_once make_efi
+run_once make_efiboot
+
+for arch in i686; do
+ run_once make_prepare
+done
+
+run_once make_iso
diff --git a/configs/releng/packages.i686 b/configs/releng/packages.i686
new file mode 100644
index 0000000..a693762
--- /dev/null
+++ b/configs/releng/packages.i686
@@ -0,0 +1,122 @@
+alsa-utils
+amd-ucode
+arch-install-scripts
+archinstall
+b43-fwcutter
+base
+bind
+brltty
+broadcom-wl
+btrfs-progs
+clonezilla
+cloud-init
+cryptsetup
+darkhttpd
+ddrescue
+dhclient
+dhcpcd
+diffutils
+dmidecode
+dmraid
+dnsmasq
+dosfstools
+e2fsprogs
+edk2-shell
+efibootmgr
+espeakup
+ethtool
+exfatprogs
+f2fs-tools
+fatresize
+fsarchiver
+gnu-netcat
+gpart
+gpm
+gptfdisk
+grml-zsh-config
+grub
+hdparm
+hyperv
+intel-ucode
+irssi
+iw
+iwd
+jfsutils
+kitty-terminfo
+less
+lftp
+libfido2
+libusb-compat
+linux
+linux-atm
+linux-firmware
+livecd-sounds
+lsscsi
+lvm2
+lynx
+man-db
+man-pages
+mc
+mdadm
+memtest86+
+mkinitcpio
+mkinitcpio-archiso
+mkinitcpio-nfs-utils
+modemmanager
+mtools
+nano
+nbd
+ndisc6
+nfs-utils
+nilfs-utils
+nmap
+ntfs-3g
+nvme-cli
+open-iscsi
+open-vm-tools
+openconnect
+openssh
+openvpn
+partclone
+parted
+partimage
+pcsclite
+ppp
+pptpclient
+pv
+qemu-guest-agent
+refind
+reflector
+reiserfsprogs
+rp-pppoe
+rsync
+rxvt-unicode-terminfo
+screen
+sdparm
+sg3_utils
+smartmontools
+sof-firmware
+squashfs-tools
+sudo
+syslinux
+systemd-resolvconf
+tcpdump
+terminus-font
+testdisk
+tmux
+tpm2-tss
+udftools
+usb_modeswitch
+usbmuxd
+usbutils
+vim
+virtualbox-guest-utils-nox
+vpnc
+wireless-regdb
+wireless_tools
+wpa_supplicant
+wvdial
+xfsprogs
+xl2tpd
+zsh
+pcmciautils
diff --git a/configs/releng/pacman.conf b/configs/releng/pacman.conf
index 5ee6c1e..5296707 100644
--- a/configs/releng/pacman.conf
+++ b/configs/releng/pacman.conf
@@ -74,16 +74,16 @@ LocalFileSigLevel = Optional
#Include = /etc/pacman.d/mirrorlist
[core]
-Include = /etc/pacman.d/mirrorlist
+Include = /etc/pacman.d/mirrorlist32
[extra]
-Include = /etc/pacman.d/mirrorlist
+Include = /etc/pacman.d/mirrorlist32
#[community-testing]
#Include = /etc/pacman.d/mirrorlist
[community]
-Include = /etc/pacman.d/mirrorlist
+Include = /etc/pacman.d/mirrorlist32
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
diff --git a/configs/releng/profiledef.sh b/configs/releng/profiledef.sh
index 4154816..834290b 100644
--- a/configs/releng/profiledef.sh
+++ b/configs/releng/profiledef.sh
@@ -1,17 +1,15 @@
#!/usr/bin/env bash
# shellcheck disable=SC2034
-iso_name="archlinux"
+iso_name="archlinux32"
iso_label="ARCH_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)"
iso_publisher="Arch Linux <https://archlinux.org>"
iso_application="Arch Linux Live/Rescue CD"
iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)"
install_dir="arch"
buildmodes=('iso')
-bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'
- 'uefi-ia32.grub.esp' 'uefi-x64.grub.esp'
- 'uefi-ia32.grub.eltorito' 'uefi-x64.grub.eltorito')
-arch="x86_64"
+bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito')
+arch="i686"
pacman_conf="pacman.conf"
airootfs_image_type="squashfs"
airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M')
diff --git a/configs/releng/syslinux/archiso_pxe-linux.cfg b/configs/releng/syslinux/archiso_pxe-linux.cfg
index 0eb1705..c18333f 100644
--- a/configs/releng/syslinux/archiso_pxe-linux.cfg
+++ b/configs/releng/syslinux/archiso_pxe-linux.cfg
@@ -1,32 +1,32 @@
-LABEL arch64_nbd
+LABEL arch32_nbd
TEXT HELP
Boot the Arch Linux install medium using NBD.
It allows you to install Arch Linux or perform system maintenance.
ENDTEXT
-MENU LABEL Arch Linux install medium (x86_64, NBD)
-LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
-INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
+MENU LABEL Arch Linux install medium (i686, NBD)
+LINUX ::/%INSTALL_DIR%/boot/i686/vmlinuz-linux
+INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/i686/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} cms_verify=y
SYSAPPEND 3
-LABEL arch64_nfs
+LABEL arch32_nfs
TEXT HELP
Boot the Arch Linux live medium using NFS.
It allows you to install Arch Linux or perform system maintenance.
ENDTEXT
-MENU LABEL Arch Linux install medium (x86_64, NFS)
-LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
-INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
+MENU LABEL Arch Linux install medium (i686, NFS)
+LINUX ::/%INSTALL_DIR%/boot/i686/vmlinuz-linux
+INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/i686/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt cms_verify=y
SYSAPPEND 3
-LABEL arch64_http
+LABEL arch32_http
TEXT HELP
Boot the Arch Linux live medium using HTTP.
It allows you to install Arch Linux or perform system maintenance.
ENDTEXT
-MENU LABEL Arch Linux install medium (x86_64, HTTP)
-LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
-INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
+MENU LABEL Arch Linux install medium (i686, HTTP)
+LINUX ::/%INSTALL_DIR%/boot/i686/vmlinuz-linux
+INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/i686/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ cms_verify=y
SYSAPPEND 3
diff --git a/configs/releng/syslinux/archiso_pxe_32_inc.cfg b/configs/releng/syslinux/archiso_pxe_32_inc.cfg
new file mode 100644
index 0000000..e4115df
--- /dev/null
+++ b/configs/releng/syslinux/archiso_pxe_32_inc.cfg
@@ -0,0 +1,3 @@
+INCLUDE boot/syslinux/archiso_head.cfg
+INCLUDE boot/syslinux/archiso_pxe32.cfg
+INCLUDE boot/syslinux/archiso_tail.cfg
diff --git a/configs/releng/syslinux/archiso_sys-linux.cfg b/configs/releng/syslinux/archiso_sys-linux.cfg
index f9d3b0d..907fb25 100644
--- a/configs/releng/syslinux/archiso_sys-linux.cfg
+++ b/configs/releng/syslinux/archiso_sys-linux.cfg
@@ -1,20 +1,20 @@
-LABEL arch64
+LABEL arch32
TEXT HELP
Boot the Arch Linux install medium on BIOS.
It allows you to install Arch Linux or perform system maintenance.
ENDTEXT
-MENU LABEL Arch Linux install medium (x86_64, BIOS)
-LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
-INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
+MENU LABEL Arch Linux install medium (i686, BIOS)
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux
+INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/i686/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
# Accessibility boot option
-LABEL arch64speech
+LABEL arch32speech
TEXT HELP
Boot the Arch Linux install medium on BIOS with speakup screen reader.
It allows you to install Arch Linux or perform system maintenance with speech feedback.
ENDTEXT
-MENU LABEL Arch Linux install medium (x86_64, BIOS) with ^speech
-LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
-INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
+MENU LABEL Arch Linux install medium (i686, BIOS) with ^speech
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux
+INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/i686/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% accessibility=on
diff --git a/configs/releng/syslinux/archiso_sys.cfg b/configs/releng/syslinux/archiso_sys.cfg
index d93bcfe..dc1a6eb 100644
--- a/configs/releng/syslinux/archiso_sys.cfg
+++ b/configs/releng/syslinux/archiso_sys.cfg
@@ -1,6 +1,6 @@
INCLUDE archiso_head.cfg
-DEFAULT arch64
+DEFAULT arch32
TIMEOUT 150
INCLUDE archiso_sys-linux.cfg
diff --git a/configs/releng/syslinux/archiso_sys_32_inc.cfg b/configs/releng/syslinux/archiso_sys_32_inc.cfg
new file mode 100644
index 0000000..9e37093
--- /dev/null
+++ b/configs/releng/syslinux/archiso_sys_32_inc.cfg
@@ -0,0 +1,3 @@
+INCLUDE boot/syslinux/archiso_head.cfg
+INCLUDE boot/syslinux/archiso_sys32.cfg
+INCLUDE boot/syslinux/archiso_tail.cfg