diff options
Diffstat (limited to 'configs/releng/build.sh')
-rwxr-xr-x | configs/releng/build.sh | 51 |
1 files changed, 22 insertions, 29 deletions
diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 72b1e3f..31323ec 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -44,27 +44,31 @@ run_once() { fi } -# Setup custom pacman.conf with current cache directories. +# Setup custom pacman.conf with current cache directories and custom mirrorlist. 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.conf + 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 } # Base installation, plus needed packages (airootfs) make_basefs() { - setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" init - setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "haveged intel-ucode memtest86+ mkinitcpio-nfs-utils nbd zsh" install + setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" -D "${install_dir}" init + setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" -D "${install_dir}" -p "haveged intel-ucode memtest86+ mkinitcpio-nfs-utils nbd zsh" install } # Additional packages (airootfs) make_packages() { - setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install + setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install } # Needed packages for x86_64 EFI boot make_packages_efi() { - setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "efitools" install + setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" -D "${install_dir}" -p "efitools" install } # Copy mkinitcpio archiso hooks and build initramfs (airootfs) @@ -85,7 +89,7 @@ make_setup_mkinitcpio() { gpg --export ${gpg_key} >${work_dir}/gpgkey exec 17<>${work_dir}/gpgkey fi - ARCHISO_GNUPG_FD=${gpg_key:+17} setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/archiso.img' run + ARCHISO_GNUPG_FD=${gpg_key:+17} setarch ${arch} mkarchiso ${verbose} -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 if [[ ${gpg_key} ]]; then exec 17<&- fi @@ -95,11 +99,11 @@ make_setup_mkinitcpio() { make_customize_airootfs() { cp -af ${script_path}/airootfs ${work_dir}/${arch} - curl -o ${work_dir}/${arch}/airootfs/etc/pacman.d/mirrorlist 'https://www.archlinux.org/mirrorlist/?country=all&protocol=http&use_mirror_status=on' + curl -o ${work_dir}/${arch}/airootfs/etc/pacman.d/mirrorlist 'https://raw.githubusercontent.com/archlinux32/packages/master/core/pacman-mirrorlist/mirrorlist' lynx -dump -nolist 'https://wiki.archlinux.org/index.php/Installation_Guide?action=render' >> ${work_dir}/${arch}/airootfs/root/install.txt - setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r '/root/customize_airootfs.sh' run + setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman-${arch}.conf" -D "${install_dir}" -r '/root/customize_airootfs.sh' run rm ${work_dir}/${arch}/airootfs/root/customize_airootfs.sh } @@ -146,10 +150,7 @@ make_isolinux() { # Prepare /EFI make_efi() { mkdir -p ${work_dir}/iso/EFI/boot - cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/iso/EFI/boot/bootx64.efi - cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/iso/EFI/boot/ - - cp ${work_dir}/x86_64/airootfs/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${work_dir}/iso/EFI/boot/loader.efi + cp ${work_dir}/i686/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/iso/EFI/boot/ mkdir -p ${work_dir}/iso/loader/entries cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/ @@ -176,16 +177,13 @@ make_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/x86_64/vmlinuz ${work_dir}/efiboot/EFI/archiso/vmlinuz.efi - cp ${work_dir}/iso/${install_dir}/boot/x86_64/archiso.img ${work_dir}/efiboot/EFI/archiso/archiso.img + 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 mkdir -p ${work_dir}/efiboot/EFI/boot - cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi - cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/efiboot/EFI/boot/ - - cp ${work_dir}/x86_64/airootfs/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${work_dir}/efiboot/EFI/boot/loader.efi + cp ${work_dir}/i686/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/efiboot/EFI/boot/ mkdir -p ${work_dir}/efiboot/loader/entries cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/ @@ -213,7 +211,7 @@ make_prepare() { # Build ISO make_iso() { - mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-x86_64.iso" + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-i686.iso" } if [[ ${EUID} -ne 0 ]]; then @@ -221,11 +219,6 @@ if [[ ${EUID} -ne 0 ]]; then _usage 1 fi -if [[ ${arch} != x86_64 ]]; then - echo "This script needs to be run on x86_64" - _usage 1 -fi - while getopts 'N:V:L:D:w:o:g:vh' arg; do case "${arg}" in N) iso_name="${OPTARG}" ;; @@ -249,19 +242,19 @@ mkdir -p ${work_dir} run_once make_pacman_conf # Do all stuff for each airootfs -for arch in x86_64; do +for arch in i686; do run_once make_basefs run_once make_packages done run_once make_packages_efi -for arch in x86_64; do +for arch in i686; do run_once make_setup_mkinitcpio run_once make_customize_airootfs done -for arch in x86_64; do +for arch in i686; do run_once make_boot done @@ -272,7 +265,7 @@ run_once make_isolinux run_once make_efi run_once make_efiboot -for arch in x86_64; do +for arch in i686; do run_once make_prepare done |