mirror of
https://gitlab.archlinux.org/tpowa/archboot.git
synced 2024-09-20 03:50:37 +02:00
shellcheck code cleanup, enable parallel building for both architectures
This commit is contained in:
parent
68e2a39c4f
commit
c2b8f99d1f
13 changed files with 61 additions and 62 deletions
|
@ -5,7 +5,7 @@ source /usr/lib/archboot/container_functions
|
|||
source /usr/lib/archboot/repository_functions
|
||||
_ARCHBOOT="archboot-arm"
|
||||
[[ -d "${1}" ]] || (echo "Create directory ${1} ..."; mkdir "${1}")
|
||||
_REPODIR="$(mktemp -d ${1}/repository.XXX)"
|
||||
_REPODIR="$(mktemp -d "${1}"/repository.XXX)"
|
||||
_CACHEDIR="${_REPODIR}/var/cache/pacman/pkg"
|
||||
[[ -z "${1}" ]] && _usage
|
||||
_root_check
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# created by Tobias Powalowski <tpowa@archlinux.org>
|
||||
source /usr/lib/archboot/functions
|
||||
_DIR=""
|
||||
_LATEST_ARM64="http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz"
|
||||
_PACMAN_CHROOT="pacman-aarch64-chroot"
|
||||
_KEYRING="archlinuxarm"
|
||||
|
@ -10,61 +9,52 @@ _usage () {
|
|||
echo "CREATE AARCH64 PACMAN CHROOT"
|
||||
echo "-----------------------------"
|
||||
echo "This will create an aarch64 pacman chroot tarball on x86_64"
|
||||
echo "Usage: ${_BASENAME} <directory> <options>"
|
||||
echo "Usage: ${_BASENAME} <directory>"
|
||||
exit 0
|
||||
}
|
||||
|
||||
[[ -z "${1}" ]] && _usage
|
||||
|
||||
_DIR="$1"
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case ${1} in
|
||||
-cc|--cc) _SAVE_RAM="1" ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
_root_check
|
||||
_x86_64_check
|
||||
|
||||
echo "Starting container creation ..."
|
||||
echo "Create directory ${_DIR} ..."
|
||||
mkdir -p "${_DIR}"/"${_PACMAN_CHROOT}"
|
||||
echo "Create directory ${1} ..."
|
||||
mkdir -p "${1}"/"${_PACMAN_CHROOT}"
|
||||
echo "Downloading archlinuxarm aarch64..."
|
||||
! [[ -f ArchLinuxARM-aarch64-latest.tar.gz ]] && wget "${_LATEST_ARM64}" >/dev/null 2>&1
|
||||
bsdtar -xf ArchLinuxARM-aarch64-latest.tar.gz -C "${_DIR}"
|
||||
bsdtar -xf ArchLinuxARM-aarch64-latest.tar.gz -C "${1}"
|
||||
echo "Removing installation tarball ..."
|
||||
rm ArchLinuxARM-aarch64-latest.tar.gz
|
||||
_generate_locales
|
||||
_generate_keyring
|
||||
_generate_locales "${1}"
|
||||
_generate_keyring "${1}"
|
||||
# enable parallel downloads
|
||||
sed -i -e 's:^#ParallelDownloads:ParallelDownloads:g' "${_DIR}"/etc/pacman.conf
|
||||
sed -i -e 's:^#ParallelDownloads:ParallelDownloads:g' "${1}"/etc/pacman.conf
|
||||
# fix network in container
|
||||
rm "${_DIR}/etc/resolv.conf"
|
||||
echo "nameserver 8.8.8.8" > "${_DIR}/etc/resolv.conf"
|
||||
rm "${1}/etc/resolv.conf"
|
||||
echo "nameserver 8.8.8.8" > "${1}/etc/resolv.conf"
|
||||
# update container to latest packages
|
||||
echo "Installing pacman to container ..."
|
||||
mkdir -p "${_DIR}/${_PACMAN_CHROOT}/var/lib/pacman"
|
||||
mkdir -p "${1}/${_PACMAN_CHROOT}/var/lib/pacman"
|
||||
sleep 1
|
||||
systemd-nspawn -D "${_DIR}" pacman --root "/${_PACMAN_CHROOT}" -Sy awk pacman --ignore systemd-resolvconf --noconfirm >/dev/null 2>&1
|
||||
systemd-nspawn -D "${1}" pacman --root "/${_PACMAN_CHROOT}" -Sy awk pacman --ignore systemd-resolvconf --noconfirm >/dev/null 2>&1
|
||||
# generate pacman keyring
|
||||
echo "Generate pacman keyring in container ..."
|
||||
systemd-nspawn -D "${_DIR}/${_PACMAN_CHROOT}" pacman-key --init >/dev/null 2>&1
|
||||
systemd-nspawn -D "${_DIR}/${_PACMAN_CHROOT}" pacman-key --populate archlinuxarm >/dev/null 2>&1
|
||||
sed -i -e 's:^#ParallelDownloads:ParallelDownloads:g' "${_DIR}/${_PACMAN_CHROOT}"/etc/pacman.conf
|
||||
systemd-nspawn -D "${1}/${_PACMAN_CHROOT}" pacman-key --init >/dev/null 2>&1
|
||||
systemd-nspawn -D "${1}/${_PACMAN_CHROOT}" pacman-key --populate archlinuxarm >/dev/null 2>&1
|
||||
sed -i -e 's:^#ParallelDownloads:ParallelDownloads:g' "${1}/${_PACMAN_CHROOT}"/etc/pacman.conf
|
||||
# copy locale
|
||||
echo "Copying locales to container ..."
|
||||
cp "${_DIR}/usr/lib/locale/locale-archive" "${_DIR}/${_PACMAN_CHROOT}/usr/lib/locale/locale-archive"
|
||||
cp "${1}/usr/lib/locale/locale-archive" "${1}/${_PACMAN_CHROOT}/usr/lib/locale/locale-archive"
|
||||
# fix network in container
|
||||
rm "${_DIR}/${_PACMAN_CHROOT}/etc/resolv.conf"
|
||||
echo "nameserver 8.8.8.8" > "${_DIR}/${_PACMAN_CHROOT}/etc/resolv.conf"
|
||||
echo "Clean container, delete not needed files from ${_DIR}/${_PACMAN_CHROOT} ..."
|
||||
rm -r "${_DIR}/${_PACMAN_CHROOT}"/usr/include
|
||||
rm -r "${_DIR}/${_PACMAN_CHROOT}"/usr/share/{man,doc,info}
|
||||
rm "${1}/${_PACMAN_CHROOT}/etc/resolv.conf"
|
||||
echo "nameserver 8.8.8.8" > "${1}/${_PACMAN_CHROOT}/etc/resolv.conf"
|
||||
echo "Clean container, delete not needed files from ${1}/${_PACMAN_CHROOT} ..."
|
||||
rm -r "${1}/${_PACMAN_CHROOT}"/usr/include
|
||||
rm -r "${1}/${_PACMAN_CHROOT}"/usr/share/{man,doc,info}
|
||||
echo "Generating tarball ..."
|
||||
tar -acf ${_PACMAN_CHROOT}-latest.tar.zst -C "${_DIR}"/"${_PACMAN_CHROOT}" .
|
||||
echo " Removing ${_DIR} ..."
|
||||
rm -r "${_DIR}"
|
||||
tar -acf ${_PACMAN_CHROOT}-latest.tar.zst -C "${1}"/"${_PACMAN_CHROOT}" .
|
||||
echo " Removing ${1} ..."
|
||||
rm -r "${1}"
|
||||
echo "Finished container tarball."
|
||||
|
||||
|
|
|
@ -21,7 +21,8 @@ if [[ ! "$(cat /etc/hostname)" == "archboot" ]]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
echo $1 >binary.txt
|
||||
for i in $(pacman -Ql $1 | grep "/usr/bin/..*"$ | cut -d' ' -f2);do
|
||||
which $i >/dev/null || echo $i>>binary.txt
|
||||
echo "${1}" >binary.txt
|
||||
#shellcheck disable=SC2086
|
||||
for i in $(pacman -Ql ${1} | grep "/usr/bin/..*"$ | cut -d' ' -f2);do
|
||||
which "${i}" >/dev/null || echo "${i}">>binary.txt
|
||||
done
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# replaced GUID with uuidgen
|
||||
|
||||
echo -n "Enter a Common Name to embed in the keys: "
|
||||
read NAME
|
||||
read -r NAME
|
||||
|
||||
openssl req -new -x509 -newkey rsa:2048 -subj "/CN=$NAME PK/" -keyout PK.key \
|
||||
-out PK.crt -days 3650 -nodes -sha256
|
||||
|
@ -18,9 +18,9 @@ openssl x509 -in DB.crt -out DB.cer -outform DER
|
|||
|
||||
uuidgen > myGUID.txt
|
||||
|
||||
cert-to-efi-sig-list -g $GUID PK.crt PK.esl
|
||||
cert-to-efi-sig-list -g $GUID KEK.crt KEK.esl
|
||||
cert-to-efi-sig-list -g $GUID DB.crt DB.esl
|
||||
cert-to-efi-sig-list -g "$GUID" PK.crt PK.esl
|
||||
cert-to-efi-sig-list -g "$GUID" KEK.crt KEK.esl
|
||||
cert-to-efi-sig-list -g "$GUID" DB.crt DB.esl
|
||||
rm -f noPK.esl
|
||||
touch noPK.esl
|
||||
|
||||
|
@ -33,7 +33,7 @@ sign-efi-sig-list -t "$(date --date='1 second' +'%Y-%m-%d %H:%M:%S')" \
|
|||
sign-efi-sig-list -t "$(date --date='1 second' +'%Y-%m-%d %H:%M:%S')" \
|
||||
-k KEK.key -c KEK.crt db DB.esl DB.auth
|
||||
|
||||
chmod 0600 *.key
|
||||
chmod 0600 ./*.key
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
|
|
|
@ -90,7 +90,7 @@ if [[ "${_L_COMPLETE}" == "1" || "${_L_INSTALL_COMPLETE}" == "1" ]]; then
|
|||
[[ -d "/usr/lib/modules" ]] && rm -r "/usr/lib/modules"
|
||||
_SHARE_DIRS="efitools file grub hwdata kbd licenses makepkg nmap openvpn pacman refind tc usb_modeswitch vim zoneinfo zsh"
|
||||
for i in ${_SHARE_DIRS}; do
|
||||
#sheclcheck disable=SC2115
|
||||
#shellcheck disable=SC2115
|
||||
[[ -d "/usr/share/${i}" ]] && rm -r "/usr/share/${i}"
|
||||
done
|
||||
echo "Step 2/8: Generating archboot container in ${_W_DIR} ..."
|
||||
|
|
|
@ -5,7 +5,7 @@ source /usr/lib/archboot/container_functions
|
|||
source /usr/lib/archboot/repository_functions
|
||||
_ARCHBOOT="archboot"
|
||||
[[ -d "${1}" ]] || (echo "Create directory ${1} ..."; mkdir "${1}")
|
||||
_REPODIR="$(mktemp -d ${1}/repository.XXX)"
|
||||
_REPODIR="$(mktemp -d "${1}"/repository.XXX)"
|
||||
_CACHEDIR="${_REPODIR}/var/cache/pacman/pkg"
|
||||
[[ -z "${1}" ]] && _usage
|
||||
_root_check
|
||||
|
|
|
@ -4,7 +4,7 @@ source /usr/lib/archboot/functions
|
|||
source /usr/lib/archboot/server_functions
|
||||
_root_check
|
||||
_buildserver_check
|
||||
_x86_64_pacman_use_default || exit 1
|
||||
_update_source
|
||||
_x86_64_pacman_use_default || exit 1
|
||||
_server_release || exit 1
|
||||
_x86_64_pacman_restore || exit 1
|
||||
|
|
|
@ -75,6 +75,6 @@ _upload_efi_files() {
|
|||
|
||||
_cleanup() {
|
||||
echo "Remove ${1} directory."
|
||||
rm -r ${1}
|
||||
rm -r "${1}"
|
||||
echo "Finished ${1}."
|
||||
}
|
||||
|
|
|
@ -102,7 +102,8 @@ _create_pacman_conf() {
|
|||
_PACMAN_CONF="/etc/pacman.conf"
|
||||
else
|
||||
echo "Use custom pacman.conf ..."
|
||||
_PACMAN_CONF="$(mktemp ${1}/pacman.conf.XXX)"
|
||||
_PACMAN_CONF="$(mktemp "${1}"/pacman.conf.XXX)"
|
||||
#shellcheck disable=SC2129
|
||||
echo "[options]" >> "${_PACMAN_CONF}"
|
||||
echo "Architecture = auto" >> "${_PACMAN_CONF}"
|
||||
echo "SigLevel = Required DatabaseOptional" >> "${_PACMAN_CONF}"
|
||||
|
@ -140,18 +141,18 @@ _install_archboot() {
|
|||
|
||||
_aarch64_install_base_packages() {
|
||||
echo "Installing packages base linux and ${_LINUX_FIRMWARE} to ${1} ..."
|
||||
if [[ -e "$(basename ${_PACMAN_CONF})" ]]; then
|
||||
_PACMAN_CONF=$(basename ${_PACMAN_CONF})
|
||||
if [[ -e "$(basename "${_PACMAN_CONF}")" ]]; then
|
||||
_PACMAN_CONF=$(basename "${_PACMAN_CONF}")
|
||||
fi
|
||||
systemd-nspawn -q -D "${1}" /bin/bash -c "pacman -Sy base linux ${_LINUX_FIRMWARE} --config "${_PACMAN_CONF}" --ignore systemd-resolvconf --noconfirm" >/dev/null 2>&1
|
||||
systemd-nspawn -q -D "${1}" /bin/bash -c "pacman -Sy base linux ${_LINUX_FIRMWARE} --config ${_PACMAN_CONF} --ignore systemd-resolvconf --noconfirm" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
_aarch64_install_archboot() {
|
||||
if [[ -e "$(basename ${_PACMAN_CONF})" ]]; then
|
||||
_PACMAN_CONF=$(basename ${_PACMAN_CONF})
|
||||
if [[ -e "$(basename "${_PACMAN_CONF}")" ]]; then
|
||||
_PACMAN_CONF=$(basename "${_PACMAN_CONF}")
|
||||
fi
|
||||
echo "Installing ${_ARCHBOOT} to ${1} ..."
|
||||
systemd-nspawn -q -D "${1}" /bin/bash -c "pacman -Sy ${_ARCHBOOT} --config "${_PACMAN_CONF}" --ignore systemd-resolvconf --noconfirm" >/dev/null 2>&1
|
||||
systemd-nspawn -q -D "${1}" /bin/bash -c "pacman -Sy ${_ARCHBOOT} --config ${_PACMAN_CONF} --ignore systemd-resolvconf --noconfirm" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
_copy_mirrorlist_and_pacman_conf() {
|
||||
|
|
|
@ -38,5 +38,6 @@ _cleanup_repodir() {
|
|||
|
||||
_create_archboot_db() {
|
||||
echo "Creating archboot repository db ..."
|
||||
#shellcheck disable=SC2046
|
||||
LANG=C repo-add -q "${1}"/archboot.db.tar.gz $(find "${1}"/ -type f ! -name '*.sig')
|
||||
}
|
||||
|
|
|
@ -68,11 +68,14 @@ _update_source() {
|
|||
echo "Creating ${_ARCH} archboot repository ..."
|
||||
"archboot-${_ARCH}-create-repository.sh" "${_ISO_HOME_SOURCE}" || exit 1
|
||||
echo "Uploading files to ${_SERVER}:${_SERVER_HOME} ..."
|
||||
sudo -u "${_USER}" scp -q -r "${_ISO_HOME_SOURCE}" "${_SERVER}":"${_SERVER_HOME}"/ || exit 1
|
||||
#shellcheck disable=SC2086
|
||||
sudo -u "${_USER}" ssh "${_SERVER}" "[[ -d "${_SERVER_HOME}/${_ARCH}" ]] || mkdir -p ${_SERVER_HOME}/${_ARCH}"
|
||||
sudo -u "${_USER}" scp -q -r "${_ISO_HOME_SOURCE}" "${_SERVER}":"${_SERVER_HOME}/${_ARCH}" || exit 1
|
||||
sudo -u "${_USER}" ssh "${_SERVER}" <<EOF
|
||||
rm -r "${_SERVER_HOME}/${_ARCH}"
|
||||
rm -r "${_SERVER_SOURCE_DIR}/${_ARCH}/${_DIR}"
|
||||
rm -r "${_SERVER_SOURCE_DIR}/${_ARCH}/$(date -d "$(date +) - 3 month" +%Y.%m)"
|
||||
mv "${_DIR}" "${_SERVER_SOURCE_DIR}/${_ARCH}"
|
||||
mv "${_ARCH}/${_DIR}" "${_SERVER_SOURCE_DIR}/${_ARCH}"
|
||||
cd "${_SERVER_SOURCE_DIR}/${_ARCH}"
|
||||
rm latest
|
||||
ln -s "${_DIR}" latest
|
||||
|
@ -110,12 +113,15 @@ _server_release() {
|
|||
mv "${_ISO_BUILD_DIR}" "${_DIR}"
|
||||
# copy files to server
|
||||
echo "Uploading files to ${_SERVER}:${_SERVER_HOME} ..."
|
||||
sudo -u "${_USER}" scp -q -r "${_DIR}" "${_SERVER}":"${_SERVER_HOME}/" || exit 1
|
||||
#shellcheck disable=SC2086
|
||||
sudo -u "${_USER}" ssh "${_SERVER}" "[[ -d "${_SERVER_HOME}/${_ARCH}" ]] || mkdir -p ${_SERVER_HOME}/${_ARCH}"
|
||||
sudo -u "${_USER}" scp -q -r "${_DIR}" "${_SERVER}":"${_SERVER_HOME}/${_ARCH}" || exit 1
|
||||
# move files on server, create symlink and remove 3 month old release
|
||||
sudo -u "${_USER}" ssh "${_SERVER}" <<EOF
|
||||
rm -r "${_SERVER_HOME}/${_ARCH}"
|
||||
rm -r "${_SERVER_IMAGE_DIR}"/"${_ARCH}"/"${_DIR}"
|
||||
rm -r "${_SERVER_IMAGE_DIR}"/"${_ARCH}"/"$(date -d "$(date +) - 3 month" +%Y.%m)"
|
||||
mv "${_DIR}" "${_SERVER_IMAGE_DIR}"/"${_ARCH}"
|
||||
mv "${_ARCH}/${_DIR}" "${_SERVER_IMAGE_DIR}"/"${_ARCH}"
|
||||
cd "${_SERVER_IMAGE_DIR}"/"${_ARCH}"
|
||||
rm latest
|
||||
ln -s "${_DIR}" latest
|
||||
|
|
|
@ -72,7 +72,7 @@ build ()
|
|||
apps="login nologin"
|
||||
for i in $apps; do
|
||||
add_binary "$i"
|
||||
rm /usr/bin/$i
|
||||
rm /usr/bin/"$i"
|
||||
done
|
||||
add_file "/etc/login.defs"
|
||||
|
||||
|
@ -82,7 +82,7 @@ build ()
|
|||
apps="mount.nfs4 umount.nfs umount.nfs4 mount.nfs setfont loadkeys"
|
||||
for i in $apps; do
|
||||
add_binary "$i"
|
||||
rm /usr/bin/$i
|
||||
rm /usr/bin/"$i"
|
||||
done
|
||||
|
||||
#dbus files
|
||||
|
@ -90,7 +90,7 @@ build ()
|
|||
dbus-update-activation-environment dbus-uuidgen"
|
||||
for i in $apps; do
|
||||
add_binary "$i"
|
||||
rm /usr/bin/$i
|
||||
rm /usr/bin/"$i"
|
||||
done
|
||||
add_binary "/usr/lib/dbus-1.0/dbus-daemon-launch-helper"
|
||||
add_dir "/var/lib/dbus"
|
||||
|
@ -107,7 +107,7 @@ build ()
|
|||
systemd-cryptenroll systemd-dissect systemd-id128 systemd-sysext"
|
||||
for i in $apps; do
|
||||
add_binary "$i"
|
||||
rm /usr/bin/$i
|
||||
rm /usr/bin/"$i"
|
||||
done
|
||||
add_dir "/etc/tmpfiles.d"
|
||||
add_dir "/etc/modules-load.d"
|
||||
|
|
|
@ -11,7 +11,7 @@ build ()
|
|||
routel brctl dhclient-script"
|
||||
for i in $apps; do
|
||||
add_binary "$i"
|
||||
rm /usr/bin/$i
|
||||
rm /usr/bin/"$i"
|
||||
done
|
||||
# add iproute 2
|
||||
add_full_dir "/usr/lib/tc"
|
||||
|
|
Loading…
Reference in a new issue