summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbuild.sh134
-rw-r--r--mkinitcpio.conf2
-rw-r--r--packages.both85
-rw-r--r--packages.i6860
-rw-r--r--packages.x86_6485
5 files changed, 145 insertions, 161 deletions
diff --git a/build.sh b/build.sh
index 72b1e3f..f5524e8 100755
--- a/build.sh
+++ b/build.sh
@@ -4,16 +4,19 @@ 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=$(readlink -f ${0%/*})
+umask 0022
+
_usage ()
{
echo "usage ${0} [options]"
@@ -25,6 +28,10 @@ _usage ()
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"
@@ -38,9 +45,9 @@ _usage ()
# Helper function to run make_*() only one time per architecture.
run_once() {
- if [[ ! -e ${work_dir}/build.${1}_${arch} ]]; then
+ if [[ ! -e ${work_dir}/build.${1} ]]; then
$1
- touch ${work_dir}/build.${1}_${arch}
+ touch ${work_dir}/build.${1}
fi
}
@@ -53,39 +60,34 @@ make_pacman_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
+ mkarchiso ${verbose} -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" init
+ mkarchiso ${verbose} -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "haveged intel-ucode memtest86+ mkinitcpio-nfs-utils nbd zsh efitools" 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
-}
-
-# 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
+ mkarchiso ${verbose} -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.x86_64)" install
}
# 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
+ mkdir -p ${work_dir}/x86_64/airootfs/etc/initcpio/hooks
+ mkdir -p ${work_dir}/x86_64/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
+ cp /usr/lib/initcpio/hooks/${_hook} ${work_dir}/x86_64/airootfs/etc/initcpio/hooks
+ cp /usr/lib/initcpio/install/${_hook} ${work_dir}/x86_64/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
+ sed -i "s|/usr/lib/initcpio/|/etc/initcpio/|g" ${work_dir}/x86_64/airootfs/etc/initcpio/install/archiso_shutdown
+ cp /usr/lib/initcpio/install/archiso_kms ${work_dir}/x86_64/airootfs/etc/initcpio/install
+ cp /usr/lib/initcpio/archiso_shutdown ${work_dir}/x86_64/airootfs/etc/initcpio
+ cp ${script_path}/mkinitcpio.conf ${work_dir}/x86_64/airootfs/etc/mkinitcpio-archiso.conf
gnupg_fd=
if [[ ${gpg_key} ]]; then
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} mkarchiso ${verbose} -w "${work_dir}/x86_64" -C "${work_dir}/pacman.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
@@ -93,54 +95,57 @@ make_setup_mkinitcpio() {
# Customize installation (airootfs)
make_customize_airootfs() {
- cp -af ${script_path}/airootfs ${work_dir}/${arch}
+ cp -af ${script_path}/airootfs ${work_dir}/x86_64
- curl -o ${work_dir}/${arch}/airootfs/etc/pacman.d/mirrorlist 'https://www.archlinux.org/mirrorlist/?country=all&protocol=http&use_mirror_status=on'
+ cp ${script_path}/pacman.conf ${work_dir}/x86_64/airootfs/etc
- lynx -dump -nolist 'https://wiki.archlinux.org/index.php/Installation_Guide?action=render' >> ${work_dir}/${arch}/airootfs/root/install.txt
+ curl -o ${work_dir}/x86_64/airootfs/etc/pacman.d/mirrorlist 'https://www.archlinux.org/mirrorlist/?country=all&protocol=http&use_mirror_status=on'
- setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r '/root/customize_airootfs.sh' run
- rm ${work_dir}/${arch}/airootfs/root/customize_airootfs.sh
+ lynx -dump -nolist 'https://wiki.archlinux.org/index.php/Installation_Guide?action=render' >> ${work_dir}/x86_64/airootfs/root/install.txt
+
+ mkarchiso ${verbose} -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r '/root/customize_airootfs.sh' run
+ rm ${work_dir}/x86_64/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
+ mkdir -p ${work_dir}/iso/${install_dir}/boot/x86_64
+ cp ${work_dir}/x86_64/airootfs/boot/archiso.img ${work_dir}/iso/${install_dir}/boot/x86_64/archiso.img
+ cp ${work_dir}/x86_64/airootfs/boot/vmlinuz-linux ${work_dir}/iso/${install_dir}/boot/x86_64/vmlinuz
}
# Add other aditional/extra files to ${install_dir}/boot/
make_boot_extra() {
- 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
- 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
+ cp ${work_dir}/x86_64/airootfs/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest
+ cp ${work_dir}/x86_64/airootfs/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING
+ cp ${work_dir}/x86_64/airootfs/boot/intel-ucode.img ${work_dir}/iso/${install_dir}/boot/intel_ucode.img
+ cp ${work_dir}/x86_64/airootfs/usr/share/licenses/intel-ucode/LICENSE ${work_dir}/iso/${install_dir}/boot/intel_ucode.LICENSE
}
# Prepare /${install_dir}/boot/syslinux
make_syslinux() {
+ _uname_r=$(file -b ${work_dir}/x86_64/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
+ cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux
+ cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux
+ cp ${work_dir}/x86_64/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/*-ARCH/modules.alias > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz
+ gzip -c -9 ${work_dir}/x86_64/airootfs/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz
+ gzip -c -9 ${work_dir}/x86_64/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/
+ cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/
+ cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/
+ cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/
}
# Prepare /EFI
@@ -204,16 +209,16 @@ make_efiboot() {
# Build airootfs filesystem image
make_prepare() {
- cp -a -l -f ${work_dir}/${arch}/airootfs ${work_dir}
- setarch ${arch} mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" pkglist
- setarch ${arch} mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" ${gpg_key:+-g ${gpg_key}} prepare
+ cp -a -l -f ${work_dir}/x86_64/airootfs ${work_dir}
+ mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" pkglist
+ mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" ${gpg_key:+-g ${gpg_key}} prepare
rm -rf ${work_dir}/airootfs
- # rm -rf ${work_dir}/${arch}/airootfs (if low space, this helps)
+ # rm -rf ${work_dir}/x86_64/airootfs (if low space, this helps)
}
# 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}" -P "${iso_publisher}" -A "${iso_application}" -o "${out_dir}" iso "${iso_name}-${iso_version}-x86_64.iso"
}
if [[ ${EUID} -ne 0 ]]; then
@@ -221,16 +226,13 @@ 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
+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}" ;;
@@ -247,33 +249,15 @@ done
mkdir -p ${work_dir}
run_once make_pacman_conf
-
-# Do all stuff for each airootfs
-for arch in x86_64; do
- run_once make_basefs
- run_once make_packages
-done
-
-run_once make_packages_efi
-
-for arch in x86_64; do
- run_once make_setup_mkinitcpio
- run_once make_customize_airootfs
-done
-
-for arch in x86_64; do
- run_once make_boot
-done
-
-# Do all stuff for "iso"
+run_once make_basefs
+run_once make_packages
+run_once make_setup_mkinitcpio
+run_once make_customize_airootfs
+run_once make_boot
run_once make_boot_extra
run_once make_syslinux
run_once make_isolinux
run_once make_efi
run_once make_efiboot
-
-for arch in x86_64; do
- run_once make_prepare
-done
-
+run_once make_prepare
run_once make_iso
diff --git a/mkinitcpio.conf b/mkinitcpio.conf
index 2f46da4..c04f1dc 100644
--- a/mkinitcpio.conf
+++ b/mkinitcpio.conf
@@ -1,2 +1,2 @@
-HOOKS="base udev memdisk archiso_shutdown archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_kms block pcmcia filesystems keyboard"
+HOOKS=(base udev memdisk archiso_shutdown archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_kms block filesystems keyboard)
COMPRESSION="xz"
diff --git a/packages.both b/packages.both
deleted file mode 100644
index 68e5f9b..0000000
--- a/packages.both
+++ /dev/null
@@ -1,85 +0,0 @@
-arch-install-scripts
-archzfs-linux-git
-b43-fwcutter
-bash
-binutils
-borg
-btrfs-progs
-cifs-utils
-clonezilla
-crda
-curl
-darkhttpd
-ddrescue
-dhclient
-dialog
-dmraid
-dnsmasq
-dnsutils
-dosfstools
-elinks
-ethtool
-f2fs-tools
-fsarchiver
-git
-git
-gnu-netcat
-gpm
-gptfdisk
-grml-zsh-config
-grub
-haveged
-hdparm
-htop
-ipw2100-fw
-ipw2200-fw
-irssi
-lftp
-linux-atm
-lsb-release
-lsof
-mc
-mtools
-mtr
-nfs-utils
-nilfs-utils
-nmap
-ntfs-3g
-ntp
-openconnect
-openssh
-openvpn
-partclone
-parted
-partimage
-pkgfile
-ppp
-pptpclient
-python
-refind-efi
-rfkill
-rp-pppoe
-rsync
-screen
-smartmontools
-socat
-speedtouch
-strace
-sudo
-sysstat
-tcpdump
-testdisk
-tmux
-udisks2
-usb_modeswitch
-vim
-vnstat
-vpnc
-wget
-wget
-wireless_tools
-wpa_actiond
-wvdial
-xl2tpd
-zd1211-firmware
-zsh
diff --git a/packages.i686 b/packages.i686
deleted file mode 100644
index e69de29..0000000
--- a/packages.i686
+++ /dev/null
diff --git a/packages.x86_64 b/packages.x86_64
index e69de29..68e5f9b 100644
--- a/packages.x86_64
+++ b/packages.x86_64
@@ -0,0 +1,85 @@
+arch-install-scripts
+archzfs-linux-git
+b43-fwcutter
+bash
+binutils
+borg
+btrfs-progs
+cifs-utils
+clonezilla
+crda
+curl
+darkhttpd
+ddrescue
+dhclient
+dialog
+dmraid
+dnsmasq
+dnsutils
+dosfstools
+elinks
+ethtool
+f2fs-tools
+fsarchiver
+git
+git
+gnu-netcat
+gpm
+gptfdisk
+grml-zsh-config
+grub
+haveged
+hdparm
+htop
+ipw2100-fw
+ipw2200-fw
+irssi
+lftp
+linux-atm
+lsb-release
+lsof
+mc
+mtools
+mtr
+nfs-utils
+nilfs-utils
+nmap
+ntfs-3g
+ntp
+openconnect
+openssh
+openvpn
+partclone
+parted
+partimage
+pkgfile
+ppp
+pptpclient
+python
+refind-efi
+rfkill
+rp-pppoe
+rsync
+screen
+smartmontools
+socat
+speedtouch
+strace
+sudo
+sysstat
+tcpdump
+testdisk
+tmux
+udisks2
+usb_modeswitch
+vim
+vnstat
+vpnc
+wget
+wget
+wireless_tools
+wpa_actiond
+wvdial
+xl2tpd
+zd1211-firmware
+zsh