From f73bc3835679622088d9d7d2ae179964266c4d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Fabian=20Silva=20Delgado?= Date: Fri, 4 May 2012 06:58:35 -0300 Subject: adding a new parabola-archiso for test --- parabola-archiso-TEST/aitab.core | 8 + parabola-archiso-TEST/aitab.netinstall | 4 + parabola-archiso-TEST/build.sh | 565 +++++++++++++++++++++ parabola-archiso-TEST/core.exclude.i686 | 4 + parabola-archiso-TEST/core.exclude.x86_64 | 4 + parabola-archiso-TEST/efiboot/EFI/boot/startup.nsh | 10 + parabola-archiso-TEST/isolinux/isolinux.cfg | 5 + parabola-archiso-TEST/mkinitcpio.conf | 2 + parabola-archiso-TEST/packages.i686 | 40 ++ parabola-archiso-TEST/packages.x86_64 | 40 ++ parabola-archiso-TEST/root-image/etc/arch-release | 1 + .../root-image/etc/archiso/functions | 20 + parabola-archiso-TEST/root-image/etc/hosts | 9 + parabola-archiso-TEST/root-image/etc/inittab | 48 ++ parabola-archiso-TEST/root-image/etc/issue | 5 + parabola-archiso-TEST/root-image/etc/motd | 12 + parabola-archiso-TEST/root-image/etc/pam.d/su | 6 + parabola-archiso-TEST/root-image/etc/rc.conf | 33 ++ .../etc/rc.d/functions.d/automated_script | 23 + .../etc/rc.d/functions.d/prepare_locale_gen | 11 + .../etc/rc.d/functions.d/setup_special_console | 25 + .../rc.d/functions.d/symlink_used_block_devices | 7 + .../root-image/etc/sudoers.d/g_wheel | 1 + .../root-image/libre/report-issues | 1 + parabola-archiso-TEST/root-image/libre/setup | 3 + parabola-archiso-TEST/root-image/usr/bin/autologin | 2 + parabola-archiso-TEST/root-image/usr/bin/km | 2 + parabola-archiso-TEST/syslinux.dual/archiso.cfg | 11 + .../syslinux.dual/archiso_head.cfg | 25 + .../syslinux.dual/archiso_pxe32.cfg | 32 ++ .../syslinux.dual/archiso_pxe64.cfg | 32 ++ .../syslinux.dual/archiso_pxe_32_inc.cfg | 3 + .../syslinux.dual/archiso_pxe_both_inc.cfg | 4 + .../syslinux.dual/archiso_pxe_choose.cfg | 11 + .../syslinux.dual/archiso_sys32.cfg | 9 + .../syslinux.dual/archiso_sys64.cfg | 9 + .../syslinux.dual/archiso_sys_32_inc.cfg | 3 + .../syslinux.dual/archiso_sys_both_inc.cfg | 4 + .../syslinux.dual/archiso_sys_choose.cfg | 11 + .../syslinux.dual/archiso_tail.cfg | 27 + parabola-archiso-TEST/syslinux.dual/syslinux.cfg | 5 + parabola-archiso-TEST/syslinux/archiso.cfg | 11 + parabola-archiso-TEST/syslinux/archiso_head.cfg | 25 + parabola-archiso-TEST/syslinux/archiso_pxe.cfg | 32 ++ parabola-archiso-TEST/syslinux/archiso_pxe_inc.cfg | 3 + parabola-archiso-TEST/syslinux/archiso_sys.cfg | 9 + parabola-archiso-TEST/syslinux/archiso_sys_inc.cfg | 3 + parabola-archiso-TEST/syslinux/archiso_tail.cfg | 27 + parabola-archiso-TEST/syslinux/splash.png | Bin 0 -> 9932 bytes parabola-archiso-TEST/syslinux/syslinux.cfg | 5 + 50 files changed, 1192 insertions(+) create mode 100644 parabola-archiso-TEST/aitab.core create mode 100644 parabola-archiso-TEST/aitab.netinstall create mode 100755 parabola-archiso-TEST/build.sh create mode 100644 parabola-archiso-TEST/core.exclude.i686 create mode 100644 parabola-archiso-TEST/core.exclude.x86_64 create mode 100644 parabola-archiso-TEST/efiboot/EFI/boot/startup.nsh create mode 100644 parabola-archiso-TEST/isolinux/isolinux.cfg create mode 100644 parabola-archiso-TEST/mkinitcpio.conf create mode 100644 parabola-archiso-TEST/packages.i686 create mode 100644 parabola-archiso-TEST/packages.x86_64 create mode 100644 parabola-archiso-TEST/root-image/etc/arch-release create mode 100644 parabola-archiso-TEST/root-image/etc/archiso/functions create mode 100644 parabola-archiso-TEST/root-image/etc/hosts create mode 100644 parabola-archiso-TEST/root-image/etc/inittab create mode 100644 parabola-archiso-TEST/root-image/etc/issue create mode 100644 parabola-archiso-TEST/root-image/etc/motd create mode 100644 parabola-archiso-TEST/root-image/etc/pam.d/su create mode 100644 parabola-archiso-TEST/root-image/etc/rc.conf create mode 100644 parabola-archiso-TEST/root-image/etc/rc.d/functions.d/automated_script create mode 100644 parabola-archiso-TEST/root-image/etc/rc.d/functions.d/prepare_locale_gen create mode 100644 parabola-archiso-TEST/root-image/etc/rc.d/functions.d/setup_special_console create mode 100644 parabola-archiso-TEST/root-image/etc/rc.d/functions.d/symlink_used_block_devices create mode 100644 parabola-archiso-TEST/root-image/etc/sudoers.d/g_wheel create mode 100755 parabola-archiso-TEST/root-image/libre/report-issues create mode 100755 parabola-archiso-TEST/root-image/libre/setup create mode 100755 parabola-archiso-TEST/root-image/usr/bin/autologin create mode 100755 parabola-archiso-TEST/root-image/usr/bin/km create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso_head.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso_pxe32.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso_pxe64.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso_pxe_32_inc.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso_pxe_both_inc.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso_pxe_choose.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso_sys32.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso_sys64.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso_sys_32_inc.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso_sys_both_inc.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso_sys_choose.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/archiso_tail.cfg create mode 100644 parabola-archiso-TEST/syslinux.dual/syslinux.cfg create mode 100644 parabola-archiso-TEST/syslinux/archiso.cfg create mode 100644 parabola-archiso-TEST/syslinux/archiso_head.cfg create mode 100644 parabola-archiso-TEST/syslinux/archiso_pxe.cfg create mode 100644 parabola-archiso-TEST/syslinux/archiso_pxe_inc.cfg create mode 100644 parabola-archiso-TEST/syslinux/archiso_sys.cfg create mode 100644 parabola-archiso-TEST/syslinux/archiso_sys_inc.cfg create mode 100644 parabola-archiso-TEST/syslinux/archiso_tail.cfg create mode 100644 parabola-archiso-TEST/syslinux/splash.png create mode 100644 parabola-archiso-TEST/syslinux/syslinux.cfg diff --git a/parabola-archiso-TEST/aitab.core b/parabola-archiso-TEST/aitab.core new file mode 100644 index 0000000..5f89111 --- /dev/null +++ b/parabola-archiso-TEST/aitab.core @@ -0,0 +1,8 @@ +# +root-image / %ARCH% xz ext4 50% +lib-modules /lib/modules %ARCH% xz ext4 50% +usr-share /usr/share any xz ext4 50% +repo-libre-%ARCH% /repo/libre/%ARCH% %ARCH% xz none 0 +repo-libre-any /repo/libre/any any xz none 0 +repo-core-%ARCH% /repo/core/%ARCH% %ARCH% xz none 0 +repo-core-any /repo/core/any any xz none 0 diff --git a/parabola-archiso-TEST/aitab.netinstall b/parabola-archiso-TEST/aitab.netinstall new file mode 100644 index 0000000..2231154 --- /dev/null +++ b/parabola-archiso-TEST/aitab.netinstall @@ -0,0 +1,4 @@ +# +root-image / %ARCH% xz ext4 50% +lib-modules /lib/modules %ARCH% xz ext4 50% +usr-share /usr/share any xz ext4 50% diff --git a/parabola-archiso-TEST/build.sh b/parabola-archiso-TEST/build.sh new file mode 100755 index 0000000..7bc1d62 --- /dev/null +++ b/parabola-archiso-TEST/build.sh @@ -0,0 +1,565 @@ +#!/bin/bash + +set -e -u + +iso_name=parabola +iso_label="LIBRE_$(date +%Y%m)" +iso_version=$(date +%Y.%m.%d) +install_dir=libre +arch=$(uname -m) +work_dir=work +out_dir=out +verbose="" +cmd_args="" + +script_path=$(readlink -f ${0%/*}) + +# Base installation (root-image) +make_basefs() { + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" init + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -p "memtest86+ mkinitcpio-nfs-utils nbd curl" install +} + +# Additional packages (root-image) +make_packages() { + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -p "$(grep -v ^# ${script_path}/packages.${arch})" install +} + +# Copy mkinitcpio archiso hooks (root-image) +make_setup_mkinitcpio() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + local _hook + 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}/root-image/usr/lib/initcpio/hooks + cp /usr/lib/initcpio/install/${_hook} ${work_dir}/root-image/usr/lib/initcpio/install + done + cp /usr/lib/initcpio/install/archiso_kms ${work_dir}/root-image/usr/lib/initcpio/install + cp /usr/lib/initcpio/archiso_shutdown ${work_dir}/root-image/usr/lib/initcpio + cp /usr/lib/initcpio/archiso_pxe_nbd ${work_dir}/root-image/usr/lib/initcpio + cp ${script_path}/mkinitcpio.conf ${work_dir}/root-image/etc/mkinitcpio-archiso.conf + : > ${work_dir}/build.${FUNCNAME} + fi +} + +# Prepare ${install_dir}/boot/ +make_boot() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + local _src=${work_dir}/root-image + local _dst_boot=${work_dir}/iso/${install_dir}/boot + mkdir -p ${_dst_boot}/${arch} + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" \ + -r 'mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux-libre -g /boot/archiso.img' \ + run + mv ${_src}/boot/archiso.img ${_dst_boot}/${arch}/libreiso.img + mv ${_src}/boot/vmlinuz-linux-libre ${_dst_boot}/${arch}/vmlinuz + cp ${_src}/boot/memtest86+/memtest.bin ${_dst_boot}/memtest + cp ${_src}/usr/share/licenses/common/GPL2/license.txt ${_dst_boot}/memtest.COPYING + : > ${work_dir}/build.${FUNCNAME} + fi +} + +# Prepare EFI "El Torito" boot image (using Linux >= 3.3 EFI boot stub) +make_boot_efi() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + if [[ ${arch} == "x86_64" ]]; then + mkdir -p ${work_dir}/iso/EFI/archiso + dd of=${work_dir}/iso/EFI/archiso/efiboot.img bs=1 seek=20M count=0 + mkfs.vfat ${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/x86_64/vmlinuz ${work_dir}/efiboot/EFI/archiso/vmlinuz.efi + cp ${work_dir}/iso/${install_dir}/boot/x86_64/libreiso.img ${work_dir}/efiboot/EFI/archiso/libreiso.img + + # There are plans to support command line options via a config file (not yet in linux-3.3) + #cp ${work_dir}/iso/${install_dir}/boot/x86_64/vmlinuz ${work_dir}/efiboot/EFI/boot/bootx64.efi + #cp ${work_dir}/iso/${install_dir}/boot/x86_64/libreiso.img ${work_dir}/efiboot/EFI/boot/linux-libre.img + #echo "archisolabel=${iso_label} initrd=\EFI\boot\linux-libre.img" | iconv -f ascii -t ucs2 > ${work_dir}/iso/EFI/boot/linux-libre.conf + + # For now, provide an EFI-shell until 'linux-libre.conf' hits mainline. + mkdir -p ${work_dir}/efiboot/EFI/boot + # EFI Shell 2.0 for UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=UEFI_Shell ) + #wget -O ${work_dir}/efiboot/EFI/boot/bootx64.efi https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/ShellBinPkg/UefiShell/X64/Shell.efi + # EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell ) + wget -O ${work_dir}/efiboot/EFI/boot/bootx64.efi https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi + + # Add an EFI shell script for automatic boot if ESC-key is not pressed within 5 seconds timeout. + sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/efiboot/EFI/boot/startup.nsh > ${work_dir}/efiboot/EFI/boot/startup.nsh + + umount ${work_dir}/efiboot + fi + : > ${work_dir}/build.${FUNCNAME} + fi +} + +# Prepare /${install_dir}/boot/syslinux +make_syslinux() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + local _src_syslinux=${work_dir}/root-image/usr/lib/syslinux + local _dst_syslinux=${work_dir}/iso/${install_dir}/boot/syslinux + mkdir -p ${_dst_syslinux} + for _cfg in ${script_path}/syslinux/*.cfg; do + sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%INSTALL_DIR%|${install_dir}|g; + s|%ARCH%|${arch}|g" ${_cfg} > ${_dst_syslinux}/${_cfg##*/} + done + cp ${script_path}/syslinux/splash.png ${_dst_syslinux} + cp ${_src_syslinux}/*.c32 ${_dst_syslinux} + cp ${_src_syslinux}/*.com ${_dst_syslinux} + cp ${_src_syslinux}/*.0 ${_dst_syslinux} + cp ${_src_syslinux}/memdisk ${_dst_syslinux} + mkdir -p ${_dst_syslinux}/hdt + wget -O - http://pciids.sourceforge.net/v2.2/pci.ids | gzip -9 > ${_dst_syslinux}/hdt/pciids.gz + cat ${work_dir}/root-image/lib/modules/*-LIBRE/modules.alias | gzip -9 > ${_dst_syslinux}/hdt/modalias.gz + : > ${work_dir}/build.${FUNCNAME} + fi +} + +# Prepare /isolinux +make_isolinux() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + 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}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/root-image/usr/lib/syslinux/isohdpfx.bin ${work_dir}/iso/isolinux/ + : > ${work_dir}/build.${FUNCNAME} + fi +} + +# Customize installation (root-image) +make_customize_root_image() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + cp -af ${script_path}/root-image ${work_dir} + chmod 750 ${work_dir}/root-image/etc/sudoers.d + chmod 440 ${work_dir}/root-image/etc/sudoers.d/g_wheel + mkdir -p ${work_dir}/root-image/etc/pacman.d + wget -O ${work_dir}/root-image/etc/pacman.d/mirrorlist https://parabolagnulinux.org/mirrorlist/all/ + sed -i "s/#Server/Server/g" ${work_dir}/root-image/etc/pacman.d/mirrorlist + sed -i 's/#\(en_US\.UTF-8\)/\1/' ${work_dir}/root-image/etc/locale.gen + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" \ + -r 'locale-gen' \ + run + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" \ + -r 'useradd -m -p "" -g users -G "audio,disk,optical,wheel" libre' \ + run + : > ${work_dir}/build.${FUNCNAME} + fi +} + +# Split out /lib/modules from root-image (makes more "dual-iso" friendly) +make_lib_modules() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + mv ${work_dir}/root-image/lib/modules ${work_dir}/lib-modules + : > ${work_dir}/build.${FUNCNAME} + fi +} + +# Split out /usr/share from root-image (makes more "dual-iso" friendly) +make_usr_share() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + mv ${work_dir}/root-image/usr/share ${work_dir}/usr-share + : > ${work_dir}/build.${FUNCNAME} + fi +} + +# Make [libre] repository, keep "any" pkgs in a separate fs (makes more "dual-iso" friendly) +make_libre_repo() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + local _url _urls _pkg_name _cached_pkg _dst _pkgs + mkdir -p ${work_dir}/repo-libre-any + mkdir -p ${work_dir}/repo-libre-${arch} + mkdir -p ${work_dir}/pacman.db/var/lib/pacman + pacman -Sy -r ${work_dir}/pacman.db + _pkgs=$(comm -2 -3 <(pacman -Sql -r ${work_dir}/pacman.db libre | sort | sed 's@^@libre/@') \ + <(grep -v ^# ${script_path}/libre.exclude.${arch} | sort | sed 's@^@libre/@')) + _urls=$(pacman -Sddp -r ${work_dir}/pacman.db ${_pkgs}) + pacman -Swdd -r ${work_dir}/pacman.db --noprogressbar --noconfirm ${_pkgs} + for _url in ${_urls}; do + _pkg_name=${_url##*/} + _cached_pkg=/var/cache/pacman/pkg/${_pkg_name} + _dst=${work_dir}/repo-libre-${arch}/${_pkg_name} + cp ${_cached_pkg} ${_dst} + repo-add -q ${work_dir}/repo-libre-${arch}/libre.db.tar.gz ${_dst} + if [[ ${_pkg_name} == *any.pkg.tar* ]]; then + mv ${_dst} ${work_dir}/repo-libre-any/${_pkg_name} + ln -sf ../any/${_pkg_name} ${_dst} + fi + done + mkdir -p ${work_dir}/iso/${install_dir} + pacman -Sp -r ${work_dir}/pacman.db --print-format "%r/%n-%v" ${_pkgs} | sort > ${work_dir}/iso/${install_dir}/pkglist.repo-libre.${arch}.txt + : > ${work_dir}/build.${FUNCNAME} + fi +} + +# Make [core] repository, keep "any" pkgs in a separate fs (makes more "dual-iso" friendly) +make_core_repo() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + local _url _urls _pkg_name _cached_pkg _dst _pkgs + mkdir -p ${work_dir}/repo-core-any + mkdir -p ${work_dir}/repo-core-${arch} + mkdir -p ${work_dir}/pacman.db/var/lib/pacman + pacman -Sy -r ${work_dir}/pacman.db + _pkgs=$(comm -2 -3 <(pacman -Sql -r ${work_dir}/pacman.db core | sort | sed 's@^@core/@') \ + <(grep -v ^# ${script_path}/core.exclude.${arch} | sort | sed 's@^@core/@')) + _urls=$(pacman -Sddp -r ${work_dir}/pacman.db ${_pkgs}) + pacman -Swdd -r ${work_dir}/pacman.db --noprogressbar --noconfirm ${_pkgs} + for _url in ${_urls}; do + _pkg_name=${_url##*/} + _cached_pkg=/var/cache/pacman/pkg/${_pkg_name} + _dst=${work_dir}/repo-core-${arch}/${_pkg_name} + cp ${_cached_pkg} ${_dst} + repo-add -q ${work_dir}/repo-core-${arch}/core.db.tar.gz ${_dst} + if [[ ${_pkg_name} == *any.pkg.tar* ]]; then + mv ${_dst} ${work_dir}/repo-core-any/${_pkg_name} + ln -sf ../any/${_pkg_name} ${_dst} + fi + done + mkdir -p ${work_dir}/iso/${install_dir} + pacman -Sp -r ${work_dir}/pacman.db --print-format "%r/%n-%v" ${_pkgs} | sort > ${work_dir}/iso/${install_dir}/pkglist.repo-core.${arch}.txt + : > ${work_dir}/build.${FUNCNAME} + fi +} + +# Process aitab +# args: $1 (core | netinstall) +make_aitab() { + local _iso_type=${1} + if [[ ! -e ${work_dir}/build.${FUNCNAME}_${_iso_type} ]]; then + sed "s|%ARCH%|${arch}|g" ${script_path}/aitab.${_iso_type} > ${work_dir}/iso/${install_dir}/aitab + : > ${work_dir}/build.${FUNCNAME}_${_iso_type} + fi +} + +# Build all filesystem images specified in aitab (.fs .fs.sfs .sfs) +make_prepare() { + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" pkglist + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" prepare +} + +# Build ISO +# args: $1 (core | netinstall) +make_iso() { + local _iso_type=${1} + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" checksum + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-${_iso_type}-${arch}.iso" +} + +# Build dual-iso images from ${work_dir}/i686/iso and ${work_dir}/x86_64/iso +# args: $1 (core | netinstall) +make_dual() { + local _iso_type=${1} + if [[ ! -e ${work_dir}/dual/build.${FUNCNAME}_${_iso_type} ]]; then + if [[ ! -d ${work_dir}/i686/iso || ! -d ${work_dir}/x86_64/iso ]]; then + echo "ERROR: i686 or x86_64 builds does not exist." + _usage 1 + fi + local _src_one _src_two _cfg + if [[ ${arch} == "i686" ]]; then + _src_one=${work_dir}/i686/iso + _src_two=${work_dir}/x86_64/iso + else + _src_one=${work_dir}/x86_64/iso + _src_two=${work_dir}/i686/iso + fi + mkdir -p ${work_dir}/dual/iso + cp -a -l -f ${_src_one} ${work_dir}/dual + cp -a -l -n ${_src_two} ${work_dir}/dual + rm -f ${work_dir}/dual/iso/${install_dir}/aitab + rm -f ${work_dir}/dual/iso/${install_dir}/boot/syslinux/*.cfg + if [[ ${_iso_type} == "core" ]]; then + if [[ ! -e ${work_dir}/dual/iso/${install_dir}/any/repo-libre-any.sfs || + ! -e ${work_dir}/dual/iso/${install_dir}/i686/repo-libre-i686.sfs || + ! -e ${work_dir}/dual/iso/${install_dir}/x86_64/repo-libre-x86_64.sfs || + ! -e ${work_dir}/dual/iso/${install_dir}/any/repo-core-any.sfs || + ! -e ${work_dir}/dual/iso/${install_dir}/i686/repo-core-i686.sfs || + ! -e ${work_dir}/dual/iso/${install_dir}/x86_64/repo-core-x86_64.sfs ]]; then + echo "ERROR: core_iso_single build is not found." + _usage 1 + fi + else + rm -f ${work_dir}/dual/iso/${install_dir}/any/repo-libre-any.sfs + rm -f ${work_dir}/dual/iso/${install_dir}/i686/repo-libre-i686.sfs + rm -f ${work_dir}/dual/iso/${install_dir}/x86_64/repo-libre-x86_64.sfs + rm -f ${work_dir}/dual/iso/${install_dir}/pkglist.repo-libre.i686.txt + rm -f ${work_dir}/dual/iso/${install_dir}/pkglist.repo-libre.x86_64.txt + rm -f ${work_dir}/dual/iso/${install_dir}/any/repo-core-any.sfs + rm -f ${work_dir}/dual/iso/${install_dir}/i686/repo-core-i686.sfs + rm -f ${work_dir}/dual/iso/${install_dir}/x86_64/repo-core-x86_64.sfs + rm -f ${work_dir}/dual/iso/${install_dir}/pkglist.repo-core.i686.txt + rm -f ${work_dir}/dual/iso/${install_dir}/pkglist.repo-core.x86_64.txt + fi + paste -d"\n" <(sed "s|%ARCH%|i686|g" ${script_path}/aitab.${_iso_type}) \ + <(sed "s|%ARCH%|x86_64|g" ${script_path}/aitab.${_iso_type}) | uniq > ${work_dir}/dual/iso/${install_dir}/aitab + for _cfg in ${script_path}/syslinux.dual/*.cfg; do + sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%INSTALL_DIR%|${install_dir}|g" ${_cfg} > ${work_dir}/dual/iso/${install_dir}/boot/syslinux/${_cfg##*/} + done + mkarchiso ${verbose} -w "${work_dir}/dual" -D "${install_dir}" checksum + mkarchiso ${verbose} -w "${work_dir}/dual" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-${_iso_type}-dual.iso" + : > ${work_dir}/dual/build.${FUNCNAME}_${_iso_type} + fi +} + +purge_single () +{ + if [[ -d ${work_dir} ]]; then + find ${work_dir} -mindepth 1 -maxdepth 1 \ + ! -path ${work_dir}/iso -prune \ + | xargs rm -rf + fi +} + +purge_dual () +{ + if [[ -d ${work_dir}/dual ]]; then + find ${work_dir}/dual -mindepth 1 -maxdepth 1 \ + ! -path ${work_dir}/dual/iso -prune \ + | xargs rm -rf + fi +} + +clean_single () +{ + rm -rf ${work_dir} + rm -f ${out_dir}/${iso_name}-${iso_version}-*-${arch}.iso +} + +clean_dual () +{ + rm -rf ${work_dir}/dual + rm -f ${out_dir}/${iso_name}-${iso_version}-*-dual.iso +} + +make_common_single() { + make_basefs + make_packages + make_setup_mkinitcpio + make_boot + make_boot_efi + make_syslinux + make_isolinux + make_customize_root_image + make_lib_modules + make_usr_share + make_aitab $1 + make_prepare $1 + make_iso $1 +} + +_usage () +{ + echo "usage ${0} [options] command " + echo + echo " General options:" + echo " -N Set an iso filename (prefix)" + echo " Default: ${iso_name}" + echo " -V Set an iso version (in filename)" + echo " Default: ${iso_version}" + echo " -L Set an iso label (disk label)" + echo " Default: ${iso_label}" + echo " -D Set an install_dir (directory inside iso)" + echo " Default: ${install_dir}" + echo " -w Set the working directory" + echo " Default: ${work_dir}" + echo " -o Set the output directory" + echo " Default: ${out_dir}" + echo " -v Enable verbose output" + echo " -h This help message" + echo + echo " Commands:" + echo " build " + echo " Build selected .iso by and " + echo " purge " + echo " Clean working directory except iso/ directory of build " + echo " clean " + echo " Clean working directory and .iso file in output directory of build " + echo + echo " Command options:" + echo " Valid values 'single', 'dual' or 'all'" + echo " Valid values 'netinstall', 'core' or 'all'" + exit ${1} +} + +if [[ ${EUID} -ne 0 ]]; then + echo "This script must be run as root." + _usage 1 +fi + +while getopts 'N:V:L:D:w:o:vh' arg; do + case "${arg}" in + N) + iso_name="${OPTARG}" + cmd_args+=" -N ${iso_name}" + ;; + V) + iso_version="${OPTARG}" + cmd_args+=" -V ${iso_version}" + ;; + L) + iso_label="${OPTARG}" + cmd_args+=" -L ${iso_label}" + ;; + D) + install_dir="${OPTARG}" + cmd_args+=" -D ${install_dir}" + ;; + w) + work_dir="${OPTARG}" + cmd_args+=" -w ${work_dir}" + ;; + o) + out_dir="${OPTARG}" + cmd_args+=" -o ${out_dir}" + ;; + v) + verbose="-v" + cmd_args+=" -v" + ;; + h|?) _usage 0 ;; + *) + _msg_error "Invalid argument '${arg}'" 0 + _usage 1 + ;; + esac +done + +shift $((OPTIND - 1)) + +if [[ $# -lt 1 ]]; then + echo "No command specified" + _usage 1 +fi +command_name="${1}" + +if [[ $# -lt 2 ]]; then + echo "No command mode specified" + _usage 1 +fi +command_mode="${2}" + +if [[ ${command_name} == "build" ]]; then + if [[ $# -lt 3 ]]; then + echo "No build type specified" + _usage 1 + fi +command_type="${3}" +fi + +if [[ ${command_mode} == "all" && ${arch} != "x86_64" ]]; then + echo "This mode needs to be run on x86_64" + _usage 1 +fi + +if [[ ${command_mode} == "single" ]]; then + work_dir=${work_dir}/${arch} +fi + +case "${command_name}" in + build) + case "${command_mode}" in + single) + case "${command_type}" in + netinstall) + make_common_single netinstall + ;; + core) + make_core_repo + make_common_single core + ;; + all) + make_common_single netinstall + make_core_repo + make_common_single core + ;; + *) + echo "Invalid build type '${command_type}'" + _usage 1 + ;; + esac + ;; + dual) + case "${command_type}" in + netinstall) + make_dual netinstall + ;; + core) + make_dual core + ;; + all) + make_dual netinstall + make_dual core + ;; + *) + echo "Invalid build type '${command_type}'" + _usage 1 + ;; + esac + ;; + all) + case "${command_type}" in + netinstall|core|all) + $0 ${cmd_args} build single ${command_type} + $0 ${cmd_args} purge single + linux32 $0 ${cmd_args} build single ${command_type} + linux32 $0 ${cmd_args} purge single + $0 ${cmd_args} build dual ${command_type} + $0 ${cmd_args} purge dual + ;; + *) + echo "Invalid build type '${command_type}'" + _usage 1 + ;; + esac + ;; + *) + echo "Invalid build mode '${command_mode}'" + _usage 1 + ;; + esac + ;; + purge) + case "${command_mode}" in + single) + purge_single + ;; + dual) + purge_dual + ;; + all) + $0 ${cmd_args} purge single + linux32 $0 ${cmd_args} purge single + $0 ${cmd_args} purge dual + ;; + *) + echo "Invalid purge mode '${command_mode}'" + _usage 1 + ;; + esac + ;; + clean) + case "${command_mode}" in + single) + clean_single + ;; + dual) + clean_dual + ;; + all) + $0 ${cmd_args} clean single + linux32 $0 ${cmd_args} clean single + $0 ${cmd_args} clean dual + ;; + *) + echo "Invalid clean mode '${command_mode}'" + _usage 1 + ;; + esac + ;; + *) + echo "Invalid command name '${command_name}'" + _usage 1 + ;; +esac diff --git a/parabola-archiso-TEST/core.exclude.i686 b/parabola-archiso-TEST/core.exclude.i686 new file mode 100644 index 0000000..a04ceef --- /dev/null +++ b/parabola-archiso-TEST/core.exclude.i686 @@ -0,0 +1,4 @@ +gcc-ada +gcc-fortran +gcc-go +gcc-objc diff --git a/parabola-archiso-TEST/core.exclude.x86_64 b/parabola-archiso-TEST/core.exclude.x86_64 new file mode 100644 index 0000000..a04ceef --- /dev/null +++ b/parabola-archiso-TEST/core.exclude.x86_64 @@ -0,0 +1,4 @@ +gcc-ada +gcc-fortran +gcc-go +gcc-objc diff --git a/parabola-archiso-TEST/efiboot/EFI/boot/startup.nsh b/parabola-archiso-TEST/efiboot/EFI/boot/startup.nsh new file mode 100644 index 0000000..1433751 --- /dev/null +++ b/parabola-archiso-TEST/efiboot/EFI/boot/startup.nsh @@ -0,0 +1,10 @@ +@echo -off + +for %m run (0 9) + if exist fs%m:\EFI\archiso\vmlinuz.efi then + fs%m: + cd fs%m:\EFI\archiso + echo "Launching Parabola GNU/Linux-libre ISO Kernel fs%m:\EFI\archiso\vmlinuz.efi" + vmlinuz.efi archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% initrd=\EFI\archiso\libreiso.img + endif +endfor diff --git a/parabola-archiso-TEST/isolinux/isolinux.cfg b/parabola-archiso-TEST/isolinux/isolinux.cfg new file mode 100644 index 0000000..1040d3f --- /dev/null +++ b/parabola-archiso-TEST/isolinux/isolinux.cfg @@ -0,0 +1,5 @@ +DEFAULT loadconfig + +LABEL loadconfig + CONFIG /%INSTALL_DIR%/boot/syslinux/archiso.cfg + APPEND /%INSTALL_DIR%/ diff --git a/parabola-archiso-TEST/mkinitcpio.conf b/parabola-archiso-TEST/mkinitcpio.conf new file mode 100644 index 0000000..12a656d --- /dev/null +++ b/parabola-archiso-TEST/mkinitcpio.conf @@ -0,0 +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 pata scsi sata virtio usb fw pcmcia filesystems usbinput" +COMPRESSION="xz" diff --git a/parabola-archiso-TEST/packages.i686 b/parabola-archiso-TEST/packages.i686 new file mode 100644 index 0000000..109fb17 --- /dev/null +++ b/parabola-archiso-TEST/packages.i686 @@ -0,0 +1,40 @@ +aif-libre +btrfs-progs +crda +darkhttpd +ddrescue +dhclient +dialog +dmraid +dnsmasq +dnsutils +dosfstools +efibootmgr +elinks +gnu-netcat +gptfdisk +hdparm +irssi +lftp +lilo +linux-atm +mtools +netcfg +nfs-utils +nilfs-utils +nmap +ntfs-3g +ntfsprogs +ntp +openconnect +openssh +openvpn +parted +pptpclient +rp-pppoe +rsync +smartmontools +tcpdump +vpnc +wireless_tools +wpa_actiond diff --git a/parabola-archiso-TEST/packages.x86_64 b/parabola-archiso-TEST/packages.x86_64 new file mode 100644 index 0000000..109fb17 --- /dev/null +++ b/parabola-archiso-TEST/packages.x86_64 @@ -0,0 +1,40 @@ +aif-libre +btrfs-progs +crda +darkhttpd +ddrescue +dhclient +dialog +dmraid +dnsmasq +dnsutils +dosfstools +efibootmgr +elinks +gnu-netcat +gptfdisk +hdparm +irssi +lftp +lilo +linux-atm +mtools +netcfg +nfs-utils +nilfs-utils +nmap +ntfs-3g +ntfsprogs +ntp +openconnect +openssh +openvpn +parted +pptpclient +rp-pppoe +rsync +smartmontools +tcpdump +vpnc +wireless_tools +wpa_actiond diff --git a/parabola-archiso-TEST/root-image/etc/arch-release b/parabola-archiso-TEST/root-image/etc/arch-release new file mode 100644 index 0000000..d04512c --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/arch-release @@ -0,0 +1 @@ +Parabola GNU/Linux-libre Live ISO diff --git a/parabola-archiso-TEST/root-image/etc/archiso/functions b/parabola-archiso-TEST/root-image/etc/archiso/functions new file mode 100644 index 0000000..9fffdcb --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/archiso/functions @@ -0,0 +1,20 @@ +# vim: set ft=sh: + +# kernel_cmdline +# Looks for a parameter on the kernel's boot-time command line. +# +# returns: 0 if param was found. Also prints its value if it was a K=V param. +# 1 if it was not. Also prints value passed as +# +kernel_cmdline () +{ + for param in $(/bin/cat /proc/cmdline); do + case "${param}" in + $1=*) echo "${param##*=}"; return 0 ;; + $1) return 0 ;; + *) continue ;; + esac + done + [ -n "${2}" ] && echo "${2}" + return 1 +} diff --git a/parabola-archiso-TEST/root-image/etc/hosts b/parabola-archiso-TEST/root-image/etc/hosts new file mode 100644 index 0000000..ddb2a52 --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/hosts @@ -0,0 +1,9 @@ +# +# /etc/hosts: static lookup table for host names +# + +# +127.0.0.1 localhost.localdomain localhost libreiso +::1 localhost.localdomain localhost libreiso + +# End of file diff --git a/parabola-archiso-TEST/root-image/etc/inittab b/parabola-archiso-TEST/root-image/etc/inittab new file mode 100644 index 0000000..2bbc494 --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/inittab @@ -0,0 +1,48 @@ +# +# /etc/inittab +# + +# Runlevels: +# 0 Halt +# 1(S) Single-user +# 2 Not used +# 3 Multi-user +# 4 Not used +# 5 X11 +# 6 Reboot + +## Only one of the following two lines can be uncommented! +# Boot to console +id:3:initdefault: +# Boot to X11 +#id:5:initdefault: + +rc::sysinit:/etc/rc.sysinit +rs:S1:wait:/etc/rc.single +rm:2345:wait:/etc/rc.multi +rh:06:wait:/etc/rc.shutdown +su:S:wait:/sbin/sulogin -p + +# -8 options fixes umlauts problem on login +c1:2345:respawn:/sbin/agetty -8 -s -n -l /usr/bin/autologin 38400 tty1 linux +c2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linux +c3:2345:respawn:/sbin/agetty -8 -s 38400 tty3 linux +c4:2345:respawn:/sbin/agetty -8 -s 38400 tty4 linux +c5:2345:respawn:/sbin/agetty -8 -s 38400 tty5 linux +c6:2345:respawn:/sbin/agetty -8 -s 38400 tty6 linux + +# Serial Virtual Console for KVM and others VMs +#s0:2345:respawn:/sbin/agetty -8 -s 9600 ttyS0 linux + +# Hypervisor Virtual Console for Xen and KVM +#h0:2345:respawn:/sbin/agetty -8 -s 38400 hvc0 linux + +ca::ctrlaltdel:/sbin/shutdown -t3 -r now + +# Example lines for starting a login manager +x:5:respawn:/usr/bin/xdm -nodaemon +#x:5:respawn:/usr/sbin/gdm -nodaemon +#x:5:respawn:/usr/bin/kdm -nodaemon +#x:5:respawn:/usr/bin/slim >/dev/null 2>&1 + +# End of file diff --git a/parabola-archiso-TEST/root-image/etc/issue b/parabola-archiso-TEST/root-image/etc/issue new file mode 100644 index 0000000..181b704 --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/issue @@ -0,0 +1,5 @@ + +Parabola GNU/Linux-libre Live ISO (\l) +\s-\r \m. +Default logins "root" and "libre" have no password. +To begin installation, login as root diff --git a/parabola-archiso-TEST/root-image/etc/motd b/parabola-archiso-TEST/root-image/etc/motd new file mode 100644 index 0000000..af615af --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/motd @@ -0,0 +1,12 @@ +************************************************************** +* To begin installation, run /libre/setup * +* You can find documentation at * +* /usr/share/aif/docs/official_installation_guide_en * +* * +* i18n: Use the 'km' utility to change your keyboard layout * +* and console font. * +* * +* If you encounter issues and want to report them or * +* seek help, run /libre/report-issues * +* * +************************************************************** diff --git a/parabola-archiso-TEST/root-image/etc/pam.d/su b/parabola-archiso-TEST/root-image/etc/pam.d/su new file mode 100644 index 0000000..a291042 --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/pam.d/su @@ -0,0 +1,6 @@ +#%PAM-1.0 +auth sufficient pam_rootok.so +auth sufficient pam_wheel.so trust use_uid +auth required pam_unix.so +account required pam_unix.so +session required pam_unix.so diff --git a/parabola-archiso-TEST/root-image/etc/rc.conf b/parabola-archiso-TEST/root-image/etc/rc.conf new file mode 100644 index 0000000..750f47f --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/rc.conf @@ -0,0 +1,33 @@ +# +# /etc/rc.conf - Main Configuration for Parabola GNU/Linux-Libre + +. /etc/archiso/functions + +LOCALE_DEFAULT="en_US.UTF-8" +DAEMON_LOCALE_DEFAULT="no" +CLOCK_DEFAULT="UTC" +TIMEZONE_DEFAULT="Canada/Pacific" +KEYMAP_DEFAULT="us" +CONSOLEFONT_DEFAULT= +CONSOLEMAP_DEFAULT= +USECOLOR_DEFAULT="yes" + +LOCALE="$(kernel_cmdline locale ${LOCALE_DEFAULT})" +DAEMON_LOCALE="$(kernel_cmdline daemon_locale ${DAEMON_LOCALE_DEFAULT})" +HARDWARECLOCK="$(kernel_cmdline clock ${CLOCK_DEFAULT})" +TIMEZONE="$(kernel_cmdline timezone ${TIMEZONE_DEFAULT})" +KEYMAP="$(kernel_cmdline keymap ${KEYMAP_DEFAULT})" +CONSOLEFONT="$(kernel_cmdline consolefont ${CONSOLEFONT_DEFAULT})" +CONSOLEMAP="$(kernel_cmdline consolemap ${CONSOLEMAP_DEFAULT})" +USECOLOR="$(kernel_cmdline usecolor ${USECOLOR_DEFAULT})" + +MODULES=() + +UDEV_TIMEOUT=30 +USEDMRAID="no" +USEBTRFS="no" +USELVM="no" + +HOSTNAME="libreiso" + +DAEMONS=(hwclock metalog) diff --git a/parabola-archiso-TEST/root-image/etc/rc.d/functions.d/automated_script b/parabola-archiso-TEST/root-image/etc/rc.d/functions.d/automated_script new file mode 100644 index 0000000..b89ad9e --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/rc.d/functions.d/automated_script @@ -0,0 +1,23 @@ +automated_script () +{ + script="$(kernel_cmdline script)" + if [[ -n "${script}" ]]; then + stat_busy "Configuring $script" + if [[ "${script}" =~ ^http:// || "${script}" =~ ^ftp:// ]]; then + wget "${script}" -q -O /tmp/startup_script >/dev/null + rt=$? + else + cp "${script}" /tmp/startup_script + rt=$? + fi + if [ ${rt} -eq 0 ]; then + chmod +x /tmp/startup_script + echo -e '\nif [ $(tty) = "/dev/tty1" ]; then\n /tmp/startup_script\nfi\n' >> /root/.bash_profile + stat_done + else + stat_fail + fi + fi +} + +add_hook multi_end automated_script diff --git a/parabola-archiso-TEST/root-image/etc/rc.d/functions.d/prepare_locale_gen b/parabola-archiso-TEST/root-image/etc/rc.d/functions.d/prepare_locale_gen new file mode 100644 index 0000000..47ed79d --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/rc.d/functions.d/prepare_locale_gen @@ -0,0 +1,11 @@ +prepare_locale_gen () +{ + if [[ ${LOCALE} != "en_US.UTF-8" ]]; then + stat_busy "Generating locales..." + sed -i "s/#\(${LOCALE/[@.]*}\)/\1/" /etc/locale.gen + /usr/sbin/locale-gen > /dev/null + stat_done + fi +} + +add_hook sysinit_postmount prepare_locale_gen diff --git a/parabola-archiso-TEST/root-image/etc/rc.d/functions.d/setup_special_console b/parabola-archiso-TEST/root-image/etc/rc.d/functions.d/setup_special_console new file mode 100644 index 0000000..7badfe3 --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/rc.d/functions.d/setup_special_console @@ -0,0 +1,25 @@ +# If an alternate console was specified on the kernel command line, +# start agetty on it too. +setup_special_console() +{ + local cmdline_console + if cmdline_console=$(kernel_cmdline console); then + stat_busy "Starting agetty on console: ${cmdline_console}" + local port options baud rts + port=${cmdline_console%%,*} + options=${cmdline_console#${port}} + options=${options#,} + baud=${options%%[neo]*} + [[ ${options} == *r ]] && rts="-h" + if ! grep -q "^${port}" /etc/securetty; then + echo ${port} >> /etc/securetty + fi + if ! grep -q "^z0:" /etc/inittab; then + echo "z0:2345:respawn:/sbin/agetty -8 -s ${rts} ${baud:-9600} ${port} linux" >> /etc/inittab + fi + /sbin/telinit q + stat_done + fi +} + +add_hook sysinit_end setup_special_console diff --git a/parabola-archiso-TEST/root-image/etc/rc.d/functions.d/symlink_used_block_devices b/parabola-archiso-TEST/root-image/etc/rc.d/functions.d/symlink_used_block_devices new file mode 100644 index 0000000..f6b6062 --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/rc.d/functions.d/symlink_used_block_devices @@ -0,0 +1,7 @@ +symlink_used_block_devices() +{ + mkdir /run/aif + ln -s /run/archiso/used_block_devices /run/aif/ignore_block_devices +} + +add_hook multi_end symlink_used_block_devices diff --git a/parabola-archiso-TEST/root-image/etc/sudoers.d/g_wheel b/parabola-archiso-TEST/root-image/etc/sudoers.d/g_wheel new file mode 100644 index 0000000..8c45359 --- /dev/null +++ b/parabola-archiso-TEST/root-image/etc/sudoers.d/g_wheel @@ -0,0 +1 @@ +%wheel ALL=(ALL) NOPASSWD: ALL diff --git a/parabola-archiso-TEST/root-image/libre/report-issues b/parabola-archiso-TEST/root-image/libre/report-issues new file mode 100755 index 0000000..bf3b3a3 --- /dev/null +++ b/parabola-archiso-TEST/root-image/libre/report-issues @@ -0,0 +1 @@ +aif-report-issues.sh diff --git a/parabola-archiso-TEST/root-image/libre/setup b/parabola-archiso-TEST/root-image/libre/setup new file mode 100755 index 0000000..908d106 --- /dev/null +++ b/parabola-archiso-TEST/root-image/libre/setup @@ -0,0 +1,3 @@ +#!/bin/sh +# +aif -p interactive -d -l diff --git a/parabola-archiso-TEST/root-image/usr/bin/autologin b/parabola-archiso-TEST/root-image/usr/bin/autologin new file mode 100755 index 0000000..c124f9e --- /dev/null +++ b/parabola-archiso-TEST/root-image/usr/bin/autologin @@ -0,0 +1,2 @@ +#!/bin/bash +/bin/login -f root diff --git a/parabola-archiso-TEST/root-image/usr/bin/km b/parabola-archiso-TEST/root-image/usr/bin/km new file mode 100755 index 0000000..e24d780 --- /dev/null +++ b/parabola-archiso-TEST/root-image/usr/bin/km @@ -0,0 +1,2 @@ +#!/bin/bash +aif -p partial-keymap diff --git a/parabola-archiso-TEST/syslinux.dual/archiso.cfg b/parabola-archiso-TEST/syslinux.dual/archiso.cfg new file mode 100644 index 0000000..d1817af --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/archiso.cfg @@ -0,0 +1,11 @@ +DEFAULT select + +LABEL select +COM32 boot/syslinux/whichsys.c32 +APPEND -pxe- pxe -sys- sys -iso- sys + +LABEL pxe +CONFIG boot/syslinux/archiso_pxe_choose.cfg + +LABEL sys +CONFIG boot/syslinux/archiso_sys_choose.cfg diff --git a/parabola-archiso-TEST/syslinux.dual/archiso_head.cfg b/parabola-archiso-TEST/syslinux.dual/archiso_head.cfg new file mode 100644 index 0000000..e643f2d --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/archiso_head.cfg @@ -0,0 +1,25 @@ +SERIAL 0 38400 +UI boot/syslinux/vesamenu.c32 +MENU TITLE Parabola GNU/Linux-libre +MENU BACKGROUND boot/syslinux/splash.png + +MENU WIDTH 78 +MENU MARGIN 4 +MENU ROWS 5 +MENU VSHIFT 10 +MENU TABMSGROW 13 +MENU CMDLINEROW 11 +MENU HELPMSGROW 16 +MENU HELPMSGENDROW 29 + +# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu + +MENU COLOR border 30;44 #40ffffff #a0000000 std +MENU COLOR title 1;36;44 #9033ccff #a0000000 std +MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all +MENU COLOR unsel 37;44 #50ffffff #a0000000 std +MENU COLOR help 37;40 #c0ffffff #a0000000 std +MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std +MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std +MENU COLOR msg07 37;40 #90ffffff #a0000000 std +MENU COLOR tabmsg 31;40 #30ffffff #00000000 std diff --git a/parabola-archiso-TEST/syslinux.dual/archiso_pxe32.cfg b/parabola-archiso-TEST/syslinux.dual/archiso_pxe32.cfg new file mode 100644 index 0000000..3700987 --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/archiso_pxe32.cfg @@ -0,0 +1,32 @@ +LABEL arch32_nbd +TEXT HELP +Boot the Parabola GNU/Linux-libre (i686) live medium (Using NBD). It allows you to +install a libre Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NBD) +LINUX boot/i686/vmlinuz +INITRD boot/i686/libreiso.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} +IPAPPEND 3 + +LABEL arch32_nfs +TEXT HELP +Boot the Parabola GNU/Linux-libre (i686) live medium (Using NFS). It allows you to +install a libre Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NFS) +LINUX boot/i686/vmlinuz +INITRD boot/i686/libreiso.img +APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt +IPAPPEND 3 + +LABEL arch32_http +TEXT HELP +Boot the Parabola GNU/Linux-libre (i686) live medium (Using HTTP). It allows you to +install a libre Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot Parabola GNU/Linux-libre (i686) (HTTP) +LINUX boot/i686/vmlinuz +INITRD boot/i686/libreiso.img +APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ +IPAPPEND 3 diff --git a/parabola-archiso-TEST/syslinux.dual/archiso_pxe64.cfg b/parabola-archiso-TEST/syslinux.dual/archiso_pxe64.cfg new file mode 100644 index 0000000..cfb8371 --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/archiso_pxe64.cfg @@ -0,0 +1,32 @@ +LABEL arch64_nbd +TEXT HELP +Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using NBD). It allows you to +install a libre Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NBD) +LINUX boot/x86_64/vmlinuz +INITRD boot/x86_64/libreiso.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} +IPAPPEND 3 + +LABEL arch64_nfs +TEXT HELP +Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using NFS). It allows you to +install a libre Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NFS) +LINUX boot/x86_64/vmlinuz +INITRD boot/x86_64/libreiso.img +APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt +IPAPPEND 3 + +LABEL arch64_http +TEXT HELP +Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using HTTP). It allows you to +install a libre Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (HTTP) +LINUX boot/x86_64/vmlinuz +INITRD boot/x86_64/libreiso.img +APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ +IPAPPEND 3 diff --git a/parabola-archiso-TEST/syslinux.dual/archiso_pxe_32_inc.cfg b/parabola-archiso-TEST/syslinux.dual/archiso_pxe_32_inc.cfg new file mode 100644 index 0000000..e4115df --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/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/parabola-archiso-TEST/syslinux.dual/archiso_pxe_both_inc.cfg b/parabola-archiso-TEST/syslinux.dual/archiso_pxe_both_inc.cfg new file mode 100644 index 0000000..324523e --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/archiso_pxe_both_inc.cfg @@ -0,0 +1,4 @@ +INCLUDE boot/syslinux/archiso_head.cfg +INCLUDE boot/syslinux/archiso_pxe32.cfg +INCLUDE boot/syslinux/archiso_pxe64.cfg +INCLUDE boot/syslinux/archiso_tail.cfg diff --git a/parabola-archiso-TEST/syslinux.dual/archiso_pxe_choose.cfg b/parabola-archiso-TEST/syslinux.dual/archiso_pxe_choose.cfg new file mode 100644 index 0000000..6296065 --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/archiso_pxe_choose.cfg @@ -0,0 +1,11 @@ +DEFAULT choose + +LABEL choose +COM32 boot/syslinux/ifcpu64.c32 +APPEND have64 -- nohave64 + +LABEL have64 +CONFIG boot/syslinux/archiso_pxe_both_inc.cfg + +LABEL nohave64 +CONFIG boot/syslinux/archiso_pxe_32_inc.cfg diff --git a/parabola-archiso-TEST/syslinux.dual/archiso_sys32.cfg b/parabola-archiso-TEST/syslinux.dual/archiso_sys32.cfg new file mode 100644 index 0000000..cf66e23 --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/archiso_sys32.cfg @@ -0,0 +1,9 @@ +LABEL arch32 +TEXT HELP +Boot the Parabola GNU/Linux-libre (i686) live medium. It allows you to +install a libre Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot Parabola GNU/Linux-libre (i686) +LINUX boot/i686/vmlinuz +INITRD boot/i686/libreiso.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% diff --git a/parabola-archiso-TEST/syslinux.dual/archiso_sys64.cfg b/parabola-archiso-TEST/syslinux.dual/archiso_sys64.cfg new file mode 100644 index 0000000..cc7490e --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/archiso_sys64.cfg @@ -0,0 +1,9 @@ +LABEL arch64 +TEXT HELP +Boot the Parabola GNU/Linux-libre (x86_64) live medium. It allows you to +install a libre Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) +LINUX boot/x86_64/vmlinuz +INITRD boot/x86_64/libreiso.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% diff --git a/parabola-archiso-TEST/syslinux.dual/archiso_sys_32_inc.cfg b/parabola-archiso-TEST/syslinux.dual/archiso_sys_32_inc.cfg new file mode 100644 index 0000000..9e37093 --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/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 diff --git a/parabola-archiso-TEST/syslinux.dual/archiso_sys_both_inc.cfg b/parabola-archiso-TEST/syslinux.dual/archiso_sys_both_inc.cfg new file mode 100644 index 0000000..4ed6b39 --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/archiso_sys_both_inc.cfg @@ -0,0 +1,4 @@ +INCLUDE boot/syslinux/archiso_head.cfg +INCLUDE boot/syslinux/archiso_sys32.cfg +INCLUDE boot/syslinux/archiso_sys64.cfg +INCLUDE boot/syslinux/archiso_tail.cfg diff --git a/parabola-archiso-TEST/syslinux.dual/archiso_sys_choose.cfg b/parabola-archiso-TEST/syslinux.dual/archiso_sys_choose.cfg new file mode 100644 index 0000000..24c597a --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/archiso_sys_choose.cfg @@ -0,0 +1,11 @@ +DEFAULT choose + +LABEL choose +COM32 boot/syslinux/ifcpu64.c32 +APPEND have64 -- nohave64 + +LABEL have64 +CONFIG boot/syslinux/archiso_sys_both_inc.cfg + +LABEL nohave64 +CONFIG boot/syslinux/archiso_sys_32_inc.cfg diff --git a/parabola-archiso-TEST/syslinux.dual/archiso_tail.cfg b/parabola-archiso-TEST/syslinux.dual/archiso_tail.cfg new file mode 100644 index 0000000..a55548c --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/archiso_tail.cfg @@ -0,0 +1,27 @@ +LABEL existing +TEXT HELP +Boot an existing operating system. Press TAB to edit the disk and partition +number to boot. +ENDTEXT +MENU LABEL Boot existing OS +COM32 boot/syslinux/chain.c32 +APPEND hd0 0 + +# http://www.memtest.org/ +LABEL memtest +MENU LABEL Run Memtest86+ (RAM test) +LINUX boot/memtest + +# http://hdt-project.org/ +LABEL hdt +MENU LABEL Hardware Information (HDT) +COM32 boot/syslinux/hdt.c32 +APPEND modules_alias=boot/syslinux/hdt/modalias.gz pciids=boot/syslinux/hdt/pciids.gz + +LABEL reboot +MENU LABEL Reboot +COM32 boot/syslinux/reboot.c32 + +LABEL poweroff +MENU LABEL Power Off +COMBOOT boot/syslinux/poweroff.com diff --git a/parabola-archiso-TEST/syslinux.dual/syslinux.cfg b/parabola-archiso-TEST/syslinux.dual/syslinux.cfg new file mode 100644 index 0000000..3ee98de --- /dev/null +++ b/parabola-archiso-TEST/syslinux.dual/syslinux.cfg @@ -0,0 +1,5 @@ +DEFAULT loadconfig + +LABEL loadconfig + CONFIG archiso.cfg + APPEND ../../ diff --git a/parabola-archiso-TEST/syslinux/archiso.cfg b/parabola-archiso-TEST/syslinux/archiso.cfg new file mode 100644 index 0000000..126fc77 --- /dev/null +++ b/parabola-archiso-TEST/syslinux/archiso.cfg @@ -0,0 +1,11 @@ +DEFAULT select + +LABEL select +COM32 boot/syslinux/whichsys.c32 +APPEND -pxe- pxe -sys- sys -iso- sys + +LABEL pxe +CONFIG boot/syslinux/archiso_pxe_inc.cfg + +LABEL sys +CONFIG boot/syslinux/archiso_sys_inc.cfg diff --git a/parabola-archiso-TEST/syslinux/archiso_head.cfg b/parabola-archiso-TEST/syslinux/archiso_head.cfg new file mode 100644 index 0000000..e643f2d --- /dev/null +++ b/parabola-archiso-TEST/syslinux/archiso_head.cfg @@ -0,0 +1,25 @@ +SERIAL 0 38400 +UI boot/syslinux/vesamenu.c32 +MENU TITLE Parabola GNU/Linux-libre +MENU BACKGROUND boot/syslinux/splash.png + +MENU WIDTH 78 +MENU MARGIN 4 +MENU ROWS 5 +MENU VSHIFT 10 +MENU TABMSGROW 13 +MENU CMDLINEROW 11 +MENU HELPMSGROW 16 +MENU HELPMSGENDROW 29 + +# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu + +MENU COLOR border 30;44 #40ffffff #a0000000 std +MENU COLOR title 1;36;44 #9033ccff #a0000000 std +MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all +MENU COLOR unsel 37;44 #50ffffff #a0000000 std +MENU COLOR help 37;40 #c0ffffff #a0000000 std +MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std +MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std +MENU COLOR msg07 37;40 #90ffffff #a0000000 std +MENU COLOR tabmsg 31;40 #30ffffff #00000000 std diff --git a/parabola-archiso-TEST/syslinux/archiso_pxe.cfg b/parabola-archiso-TEST/syslinux/archiso_pxe.cfg new file mode 100644 index 0000000..beb6fe9 --- /dev/null +++ b/parabola-archiso-TEST/syslinux/archiso_pxe.cfg @@ -0,0 +1,32 @@ +LABEL arch_nbd +TEXT HELP +Boot the Parabola GNU/Linux-libre live medium (Using NBD). It allows you to +install a libre Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot Parabola GNU/Linux-libre (NBD) +LINUX boot/%ARCH%/vmlinuz +INITRD boot/%ARCH%/libreiso.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} +IPAPPEND 3 + +LABEL arch_nfs +TEXT HELP +Boot the Parabola GNU/Linux-libre live medium (Using NFS). It allows you to +install a libre Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot Parabola GNU/Linux-libre (NFS) +LINUX boot/%ARCH%/vmlinuz +INITRD boot/%ARCH%/libreiso.img +APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt +IPAPPEND 3 + +LABEL arch_http +TEXT HELP +Boot the Parabola GNU/Linux-libre live medium (Using HTTP). It allows you to +install a libre Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot Parabola GNU/Linux-libre (HTTP) +LINUX boot/%ARCH%/vmlinuz +INITRD boot/%ARCH%/libreiso.img +APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ +IPAPPEND 3 diff --git a/parabola-archiso-TEST/syslinux/archiso_pxe_inc.cfg b/parabola-archiso-TEST/syslinux/archiso_pxe_inc.cfg new file mode 100644 index 0000000..b2b6887 --- /dev/null +++ b/parabola-archiso-TEST/syslinux/archiso_pxe_inc.cfg @@ -0,0 +1,3 @@ +INCLUDE boot/syslinux/archiso_head.cfg +INCLUDE boot/syslinux/archiso_pxe.cfg +INCLUDE boot/syslinux/archiso_tail.cfg diff --git a/parabola-archiso-TEST/syslinux/archiso_sys.cfg b/parabola-archiso-TEST/syslinux/archiso_sys.cfg new file mode 100644 index 0000000..603e23d --- /dev/null +++ b/parabola-archiso-TEST/syslinux/archiso_sys.cfg @@ -0,0 +1,9 @@ +LABEL arch +TEXT HELP +Boot the Parabola GNU/Linux-libre live medium. It allows you to +install a libre Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot Parabola GNU/Linux-libre +LINUX boot/%ARCH%/vmlinuz +INITRD boot/%ARCH%/libreiso.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% diff --git a/parabola-archiso-TEST/syslinux/archiso_sys_inc.cfg b/parabola-archiso-TEST/syslinux/archiso_sys_inc.cfg new file mode 100644 index 0000000..56c6a17 --- /dev/null +++ b/parabola-archiso-TEST/syslinux/archiso_sys_inc.cfg @@ -0,0 +1,3 @@ +INCLUDE boot/syslinux/archiso_head.cfg +INCLUDE boot/syslinux/archiso_sys.cfg +INCLUDE boot/syslinux/archiso_tail.cfg diff --git a/parabola-archiso-TEST/syslinux/archiso_tail.cfg b/parabola-archiso-TEST/syslinux/archiso_tail.cfg new file mode 100644 index 0000000..a55548c --- /dev/null +++ b/parabola-archiso-TEST/syslinux/archiso_tail.cfg @@ -0,0 +1,27 @@ +LABEL existing +TEXT HELP +Boot an existing operating system. Press TAB to edit the disk and partition +number to boot. +ENDTEXT +MENU LABEL Boot existing OS +COM32 boot/syslinux/chain.c32 +APPEND hd0 0 + +# http://www.memtest.org/ +LABEL memtest +MENU LABEL Run Memtest86+ (RAM test) +LINUX boot/memtest + +# http://hdt-project.org/ +LABEL hdt +MENU LABEL Hardware Information (HDT) +COM32 boot/syslinux/hdt.c32 +APPEND modules_alias=boot/syslinux/hdt/modalias.gz pciids=boot/syslinux/hdt/pciids.gz + +LABEL reboot +MENU LABEL Reboot +COM32 boot/syslinux/reboot.c32 + +LABEL poweroff +MENU LABEL Power Off +COMBOOT boot/syslinux/poweroff.com diff --git a/parabola-archiso-TEST/syslinux/splash.png b/parabola-archiso-TEST/syslinux/splash.png new file mode 100644 index 0000000..43d4692 Binary files /dev/null and b/parabola-archiso-TEST/syslinux/splash.png differ diff --git a/parabola-archiso-TEST/syslinux/syslinux.cfg b/parabola-archiso-TEST/syslinux/syslinux.cfg new file mode 100644 index 0000000..3ee98de --- /dev/null +++ b/parabola-archiso-TEST/syslinux/syslinux.cfg @@ -0,0 +1,5 @@ +DEFAULT loadconfig + +LABEL loadconfig + CONFIG archiso.cfg + APPEND ../../ -- cgit v1.2.3