change release and server script

This commit is contained in:
Tobias Powalowski 2022-09-17 14:07:22 +02:00
parent 26ffe09885
commit 946ae44c22

View file

@ -7,6 +7,7 @@ _INITRAMFS="boot/initramfs_${_ARCH}.img"
_INITRAMFS_L0="boot/initramfs_${_ARCH}-0.img"
_INITRAMFS_L1="boot/initramfs_${_ARCH}-1.img"
_INITRAMFS_LATEST="boot/initramfs_${_ARCH}-latest.img"
_INITRAMFS_LOCAL="boot/initramfs_${_ARCH}-local.img"
_INITRAMFS_LOCAL0="boot/initramfs_${_ARCH}-local-0.img"
_INITRAMFS_LOCAL1="boot/initramfs_${_ARCH}-local-1.img"
_KERNEL="boot/vmlinuz_${_ARCH}"
@ -30,6 +31,8 @@ _usage () {
_create_iso() {
mkdir -p "${1}"
cd "${1}" || exit 1
_BIND_LOOP=""
[[ "${_ARCH}" == "riscv64" ]] && _BIND_LOOP="--bind /dev/loop0"
# create container
archboot-"${_ARCH}"-create-container.sh "${_W_DIR}" -cc --install-source="${2}" || exit 1
# generate tarball in container, umount tmp it's a tmpfs and weird things could happen then
@ -40,18 +43,18 @@ _create_iso() {
echo "Generate local ISO ..."
_create_archboot_db "${_W_DIR}"/var/cache/pacman/pkg
# generate local iso in container
systemd-nspawn -q -D "${_W_DIR}" /bin/bash -c "umount /tmp;rm -rf /tmp/*; archboot-${_ARCH}-iso.sh -g -p=${_PRESET_LOCAL} \
systemd-nspawn ${_BIND_LOOP} -q -D "${_W_DIR}" /bin/bash -c "umount /tmp;rm -rf /tmp/*; archboot-${_ARCH}-iso.sh -g -p=${_PRESET_LOCAL} \
-i=${_ISONAME}-local-${_ARCH}" || exit 1
rm -rf "${_W_DIR}"/var/cache/pacman/pkg/*
echo "Generate latest ISO ..."
# generate latest iso in container
systemd-nspawn -q -D "${_W_DIR}" /bin/bash -c "umount /tmp;rm -rf /tmp/*;archboot-${_ARCH}-iso.sh -g -p=${_PRESET_LATEST} \
systemd-nspawn ${_BIND_LOOP} -q -D "${_W_DIR}" /bin/bash -c "umount /tmp;rm -rf /tmp/*;archboot-${_ARCH}-iso.sh -g -p=${_PRESET_LATEST} \
-i=${_ISONAME}-latest-${_ARCH}" || exit 1
echo "Install lvm2 to container ${_W_DIR} ..."
systemd-nspawn -D "${_W_DIR}" /bin/bash -c "pacman -Sy lvm2 --noconfirm" >/dev/null 2>&1
echo "Generate normal ISO ..."
# generate iso in container
systemd-nspawn -q -D "${_W_DIR}" /bin/bash -c "umount /tmp;archboot-${_ARCH}-iso.sh -g \
systemd-nspawn ${_BIND_LOOP} -q -D "${_W_DIR}" /bin/bash -c "umount /tmp;archboot-${_ARCH}-iso.sh -g \
-i=${_ISONAME}-${_ARCH}" || exit 1
# create Release.txt with included main archlinux packages
echo "Generate Release.txt ..."
@ -61,12 +64,13 @@ _create_iso() {
echo "Architecture: ${_ARCH}";\
echo "RAM requirement to boot: 1300 MB or greater";\
echo "Archboot:$(systemd-nspawn -q -D "${_W_DIR}" pacman -Qi "${_ARCHBOOT}" | grep Version | cut -d ":" -f2 | sed -e "s/\r//g")";\
echo "Grub:$(systemd-nspawn -q -D "${_W_DIR}" pacman -Qi grub | grep Version | cut -d ":" -f3 | sed -e "s/\r//g")";\
[[ "${_ARCH}" == "riscv64" ]] || "Grub:$(systemd-nspawn -q -D "${_W_DIR}" pacman -Qi grub | grep Version | cut -d ":" -f3 | sed -e "s/\r//g")";\
echo "Kernel:$(systemd-nspawn -q -D "${_W_DIR}" pacman -Qi linux | grep Version | cut -d ":" -f2 | sed -e "s/\r//g")";\
echo "Pacman:$(systemd-nspawn -q -D "${_W_DIR}" pacman -Qi pacman | grep Version | cut -d ":" -f2 | sed -e "s/\r//g")";\
echo "Systemd:$(systemd-nspawn -q -D "${_W_DIR}" pacman -Qi systemd | grep Version | cut -d ":" -f2 | sed -e "s/\r//g")") >>Release.txt
# move iso out of container
mv "${_W_DIR}"/*.iso ./
[[ "$(echo ./*.iso)" == "./*.iso" ]] || mv "${_W_DIR}"/*.iso ./
[[ "$(echo ./*.img)" == "./*.img" ]] || mv "${_W_DIR}"/*.iso ./
# remove container
echo "Remove container ${_W_DIR} ..."
rm -r "${_W_DIR}"
@ -76,7 +80,25 @@ _create_boot() {
# create boot directory with ramdisks
echo "Create boot directory ..."
if [[ "${_ARCH}" == "riscv64" ]]; then
mkdir -p boot/
_MP="$(mktemp -d archboot-mount.XXX)"
for i in *.img; do
if echo "${i}" | grep -v local | grep -vq latest; then
mount -o loop,offset=1048576 "${i}" "${_MP}"
cp "${_MP}/${_KERNEL}" "${_KERNEL_ARCHBOOT}"
cp "${_MP}/${_INITRAMFS}" "${_INITRAMFS}"
umount "${_MP}"
elif echo "${i}" | grep -q latest; then
mount -o loop,offset=1048576 "${i}" "${_MP}"
cp "${_MP}/${_INITRAMFS}" "${_INITRAMFS_LATEST}"
umount "${_MP}"
elif echo "${i}" | grep -q local; then
mount -o loop,offset=1048576 "${i}" "${_MP}"
cp "${_MP}/${_INITRAMFS}" "${_INITRAMFS_LOCAL}"
umount "${_MP}"
fi
done
rm -r "${_MP}"
else
mkdir -p boot/licenses/amd-ucode
[[ "${_ARCH}" == "aarch64" ]] || mkdir -p boot/licenses/intel-ucode