Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 71a2e1ad88 | |||
| 32c39ff7e1 | |||
| 56806ba880 | |||
| 7f62dbb3ee | |||
| 812e861152 | |||
| e601e50570 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -23,3 +23,4 @@
|
||||
/screenlog*
|
||||
/logs
|
||||
*.swp
|
||||
*.lck
|
||||
|
||||
1
TODO
1
TODO
@@ -17,6 +17,7 @@
|
||||
-autodetection/configuration of network. DHCP is currently running by default, but does it need to support IPv6? if so, how would the user configure their network?
|
||||
-WISH: support iPXE? would save on ISO file size (letting us create MUCH bigger squash systems), but the downside is we lose EFI support and it requires a working network configuration- which defeats the purpose of a diagnostic disc.
|
||||
-SECURE SSH: https://stribika.github.io/2015/01/04/secure-secure-shell.html
|
||||
-DISABLE NETWORKMANAGER AND "fi.w1.wpa_supplicant1"??? keeps spawning wpa_supplicant (and thusly killing networking proper)
|
||||
|
||||
|
||||
## Building ##
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# We need to install all X drivers.
|
||||
abs
|
||||
acpi
|
||||
acpidump
|
||||
#acpidump
|
||||
afflib
|
||||
aircrack-ng
|
||||
apr
|
||||
|
||||
57
extra/pre-build.d/etc/apacman.conf
Normal file
57
extra/pre-build.d/etc/apacman.conf
Normal file
@@ -0,0 +1,57 @@
|
||||
#
|
||||
# /etc/apacman.conf
|
||||
#
|
||||
# See the apacman.conf(5) manpage for options
|
||||
|
||||
#
|
||||
# GENERAL OPTIONS
|
||||
#
|
||||
|
||||
#auronly=1
|
||||
#buildonly=1
|
||||
#cachevcs=1
|
||||
#ignorearch=1
|
||||
#needed=1
|
||||
noconfirm=1
|
||||
noedit=1
|
||||
#noaur=1
|
||||
#noconfirm=1
|
||||
#noedit=1
|
||||
#nofail=1
|
||||
#preview=1
|
||||
#purgebuild=1
|
||||
#quiet=1
|
||||
#skipcache=1
|
||||
skipinteg=1
|
||||
#skiptest=1
|
||||
#warn=1
|
||||
tmpdir=/var/tmp/apacman
|
||||
TMPDIR=/var/tmp/apacman
|
||||
|
||||
#
|
||||
# CONFIGURATION
|
||||
#
|
||||
|
||||
#tmpdir="/tmp/apacmantmp-$UID"
|
||||
#makepkgconf="/etc/makepkg.conf"
|
||||
#usermakepkgconf="$HOME/.makepkg.conf"
|
||||
#pacmanconf="/etc/pacman.conf"
|
||||
#downdir="/var/cache/pacman/pkg"
|
||||
#savedir="/var/cache/apacman/pkg"
|
||||
#editor="nano -w"
|
||||
editor="vim"
|
||||
#RPCURL="https://aur.archlinux.org/rpc.php?type"
|
||||
#PKGURL="https://aur.archlinux.org"
|
||||
#ABSURL="rsync.archlinux.org"
|
||||
|
||||
#
|
||||
# COLORIZATION
|
||||
#
|
||||
|
||||
COLOR1='\e[1;39m'
|
||||
COLOR2='\e[1;32m'
|
||||
COLOR3='\e[1;35m'
|
||||
COLOR4='\e[1;36m'
|
||||
COLOR5='\e[1;34m'
|
||||
COLOR6='\e[1;33m'
|
||||
COLOR7='\e[1;31m'
|
||||
@@ -43,6 +43,11 @@ function will_it_blend () {
|
||||
local BUILDDIR="${BUILDDIR}${ARCHSUFFIX}"
|
||||
|
||||
# now let's build the squashed image... and generate some checksums as well to verify download integrity.
|
||||
# are we building split-arch ISOs?
|
||||
if [[ "${MULTIARCH}" == "n" ]];
|
||||
then
|
||||
rm -rf ${ARCHBOOT}
|
||||
fi
|
||||
mkdir -p ${ARCHBOOT}/${AIROOT}
|
||||
|
||||
if [ ! -f "${ARCHBOOT}/${AIROOT}/airootfs.sfs" ] || [ "${CHROOTDIR}/root/.bash_history" -nt "${ARCHBOOT}/${AIROOT}/airootfs.sfs" ];
|
||||
|
||||
@@ -59,11 +59,23 @@ EOF
|
||||
# create the embedded efiboot FAT stuff
|
||||
# how big should we make the disk?
|
||||
echo "Generating the EFI embedded FAT filesystem..."
|
||||
FTSIZE=$(du -sc ${TEMPDIR}/{boot,EFI,loader} | tail -n1 | awk '{print $1}')
|
||||
FATSIZE=$((${FTSIZE} + 64)) # let's give a little wiggle room
|
||||
${RACECAR_CHK}truncate -s "${FATSIZE}"K ${TEMPDIR}/EFI/${DISTNAME}/efiboot.img
|
||||
# are we building split-arch ISOs?
|
||||
if [[ "${MULTIARCH}" == "n" ]];
|
||||
then
|
||||
rm -f ${TEMPDIR}/EFI/${DISTNAME}/efiboot.img
|
||||
fi
|
||||
# now we need to calculate the space for various files we're going to include...
|
||||
FATSIZE=$(stat --format="%s" ${TEMPDIR}/boot/${UXNAME}.64.kern) # EFI/BDISK/bdisk.efi
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${TEMPDIR}/boot/${UXNAME}.64.img))) # EFI/BDISK/bdisk.img
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${BASEDIR}/root.x86_64/usr/lib/prebootloader/PreLoader.efi))) # EFI/boot/bootx64.efi
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${BASEDIR}/root.x86_64/usr/lib/prebootloader/HashTool.efi))) # EFI/boot/HashTool.efi
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${BASEDIR}/root.x86_64/usr/lib/gummiboot/gummibootx64.efi))) # EFI/boot/loader.efi
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${TEMPDIR}/EFI/shellx64_v1.efi)))
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${TEMPDIR}/EFI/shellx64_v2.efi)))
|
||||
FATSIZE=$((${FATSIZE} + $(du -sb ${TEMPDIR}/loader | tail -n1 | awk '{print $1}'))) # loader/* (okay so i cheated a little here.)
|
||||
FATSIZE=$((${FATSIZE} + 786432)) # let's give a little wiggle room; 768k should do it. -_-
|
||||
${RACECAR_CHK}truncate -s "${FATSIZE}" ${TEMPDIR}/EFI/${DISTNAME}/efiboot.img
|
||||
${RACECAR_CHK}mkfs.vfat -F 32 -n ${DISTNAME}_EFI ${TEMPDIR}/EFI/${DISTNAME}/efiboot.img >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
#${RACECAR_CHK}mkfs.vfat -F32 -s2 -n ${DISTNAME}_EFI ${TEMPDIR}/EFI/${DISTNAME}/efiboot.img >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
mkdir -p ${SRCDIR}/efiboot
|
||||
mount ${TEMPDIR}/EFI/${DISTNAME}/efiboot.img ${SRCDIR}/efiboot
|
||||
mkdir -p ${SRCDIR}/efiboot/EFI/${DISTNAME}
|
||||
@@ -99,7 +111,7 @@ EOF
|
||||
cp ${BASEDIR}/root.x86_64/usr/lib/prebootloader/PreLoader.efi ${SRCDIR}/efiboot/EFI/boot/bootx64.efi
|
||||
cp ${BASEDIR}/root.x86_64/usr/lib/prebootloader/HashTool.efi ${SRCDIR}/efiboot/EFI/boot/.
|
||||
cp ${BASEDIR}/root.x86_64/usr/lib/gummiboot/gummibootx64.efi ${SRCDIR}/efiboot/EFI/boot/loader.efi # TODO: can i use syslinux.efi instead?
|
||||
cp ${TEMPDIR}/EFI/shellx64_v* ${SRCDIR}/efiboot/EFI/.
|
||||
cp ${TEMPDIR}/EFI/shellx64_v{1,2}.efi ${SRCDIR}/efiboot/EFI/.
|
||||
umount ${SRCDIR}/efiboot
|
||||
echo "EFI configuration complete..."
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ function mentos {
|
||||
local NEWKERN=$(curl -s "${MIRROR}" | grep linux | awk '{print $3}' | cut -f2 -d\" | egrep '^linux-[0-9].*pkg.tar.xz$' | cut -f2 -d"-")
|
||||
|
||||
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%.pacorig} ; done
|
||||
${CHROOTCMD} ${i}/ bash -c "${RACECAR_CHK}apacman --noconfirm --noedit --skipinteg -S --needed --ignore linux ${PKGLIST}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
${CHROOTCMD} ${i}/ bash -c "${RACECAR_CHK}apacman --noconfirm --noedit --skipinteg -S --needed --purgebuild --ignore linux ${PKGLIST}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%.pacorig} ; done
|
||||
${CHROOTCMD} ${i}/ /usr/bin/bash -c "mkinitcpio -p linux" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
#${CHROOTCMD} ${i}/ bash -c "apacman --noconfirm --noedit --skipinteg -S --needed ${PKGLIST}"
|
||||
@@ -53,7 +53,7 @@ function mentos {
|
||||
PKGLIST=$(sed -e '/^[[:space:]]*#/d ; /^[[:space:]]*$/d' ${BASEDIR}/extra/packages.32 | tr '\n' ' ')
|
||||
if [ -n "${PKGLIST}" ];
|
||||
then
|
||||
${CHROOTCMD} ${CHROOTDIR32}/ bash -c "yes '' | ${RACECAR_CHK}apacman --noconfirm --noedit --skipinteg -S --needed ${PKGLIST}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
${CHROOTCMD} ${CHROOTDIR32}/ bash -c "yes '' | ${RACECAR_CHK}apacman --noconfirm --noedit --skipinteg -S --needed --purgebuild ${PKGLIST}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
fi
|
||||
for x in $(find ${CHROOTDIR32}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%.pacorig} ; done
|
||||
|
||||
@@ -62,7 +62,7 @@ function mentos {
|
||||
PKGLIST=$(sed -e '/^[[:space:]]*#/d ; /^[[:space:]]*$/d' ${BASEDIR}/extra/packages.64 | tr '\n' ' ')
|
||||
if [ -n "${PKGLIST}" ];
|
||||
then
|
||||
${CHROOTCMD} ${CHROOTDIR64}/ bash -c "yes '' | ${RACECAR_CHK}apacman --noconfirm --noedit --skipinteg -S --needed ${PKGLIST}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
${CHROOTCMD} ${CHROOTDIR64}/ bash -c "yes '' | ${RACECAR_CHK}apacman --noconfirm --noedit --skipinteg -S --needed --purgebuild ${PKGLIST}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
fi
|
||||
for x in $(find ${CHROOTDIR64}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%.pacorig} ; done
|
||||
#${CHROOTCMD} ${CHROOTDIR64}/ bash -c "apacman --noconfirm --noedit --skipinteg -S --needed ${PKGLIST}"
|
||||
|
||||
@@ -94,10 +94,10 @@ function mkchroot {
|
||||
echo "Local: ${LOCSUM64}"
|
||||
echo "Remote: ${CKSUM64}"
|
||||
echo "Fetching fresh copy."
|
||||
curl -o latest.64.tar.gz "${RLSDIR}/${CURRLS64}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
curl -o latest.64.tar.gz "${RLSDIR}/${CURRLS64}"
|
||||
fi
|
||||
else
|
||||
curl -o latest.64.tar.gz "${RLSDIR}/${CURRLS64}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
curl -o latest.64.tar.gz "${RLSDIR}/${CURRLS64}"
|
||||
fi
|
||||
|
||||
if [ -f "latest.32.tar.gz" ];
|
||||
@@ -154,6 +154,11 @@ EOF
|
||||
|
||||
for i in ${CHROOTDIR32} ${CHROOTDIR64};
|
||||
do
|
||||
# Disable NetworkManager. Fuck that shit.
|
||||
ln -s /dev/null ${i}/etc/systemd/system/NetworkManager.service
|
||||
ln -s /dev/null ${i}/etc/systemd/system/NetworkManager-dispatcher.service
|
||||
# Remove the machine-id file so it's automatically generated.
|
||||
rm -f ${i}/etc/machine-id
|
||||
# Prep pacman
|
||||
echo "Prepping ${i}. This will take a while..."
|
||||
echo -n "...Key initializing..."
|
||||
|
||||
Reference in New Issue
Block a user