enable users to run build server

This commit is contained in:
Tobias Powalowski 2022-02-21 10:12:50 +01:00
parent 22245d826b
commit d405ab7a3e
11 changed files with 26 additions and 53 deletions

View file

@ -9,7 +9,6 @@ _REPODIR="$(mktemp -d "${1}"/repository.XXX)"
_CACHEDIR="${_REPODIR}/var/cache/pacman/pkg" _CACHEDIR="${_REPODIR}/var/cache/pacman/pkg"
[[ -z "${1}" ]] && _usage [[ -z "${1}" ]] && _usage
_root_check _root_check
_buildserver_check
_cachedir_check _cachedir_check
echo "Starting repository creation ..." echo "Starting repository creation ..."
if [[ "${_RUNNING_ARCH}" == "aarch64" ]]; then if [[ "${_RUNNING_ARCH}" == "aarch64" ]]; then

View file

@ -3,7 +3,6 @@ _ARCH="aarch64"
source /usr/lib/archboot/functions source /usr/lib/archboot/functions
source /usr/lib/archboot/server_functions source /usr/lib/archboot/server_functions
_root_check _root_check
_buildserver_check
_update_aarch64_pacman_chroot || exit 1 _update_aarch64_pacman_chroot || exit 1
_update_source _update_source
_server_release || exit 1 _server_release || exit 1

View file

@ -9,7 +9,6 @@ _REPODIR="$(mktemp -d "${1}"/repository.XXX)"
_CACHEDIR="${_REPODIR}/var/cache/pacman/pkg" _CACHEDIR="${_REPODIR}/var/cache/pacman/pkg"
[[ -z "${1}" ]] && _usage [[ -z "${1}" ]] && _usage
_root_check _root_check
_buildserver_check
_x86_64_pacman_use_default || exit 1 _x86_64_pacman_use_default || exit 1
_cachedir_check _cachedir_check
_x86_64_check _x86_64_check

View file

@ -3,7 +3,6 @@ _ARCH="x86_64"
source /usr/lib/archboot/functions source /usr/lib/archboot/functions
source /usr/lib/archboot/server_functions source /usr/lib/archboot/server_functions
_root_check _root_check
_buildserver_check
_update_source _update_source
_x86_64_pacman_use_default || exit 1 _x86_64_pacman_use_default || exit 1
_server_release || exit 1 _server_release || exit 1

View file

@ -1,17 +1,14 @@
#!/bin/bash #!/bin/bash
# created by Tobias Powalowski <tpowa@archlinux.org> # created by Tobias Powalowski <tpowa@archlinux.org>
source /etc/archboot/defaults
# fedora shim setup
_SHIM_VERSION="15.4" _SHIM_VERSION="15.4"
_SHIM_RELEASE="5" _SHIM_RELEASE="5"
_SHIM_URL="https://kojipkgs.fedoraproject.org/packages/shim/${_SHIM_VERSION}/${_SHIM_RELEASE}" _SHIM_URL="https://kojipkgs.fedoraproject.org/packages/shim/${_SHIM_VERSION}/${_SHIM_RELEASE}"
_SHIM_RPM="x86_64/shim-x64-${_SHIM_VERSION}-${_SHIM_RELEASE}.x86_64.rpm" _SHIM_RPM="x86_64/shim-x64-${_SHIM_VERSION}-${_SHIM_RELEASE}.x86_64.rpm"
_SHIM32_RPM="x86_64/shim-ia32-${_SHIM_VERSION}-${_SHIM_RELEASE}.x86_64.rpm" _SHIM32_RPM="x86_64/shim-ia32-${_SHIM_VERSION}-${_SHIM_RELEASE}.x86_64.rpm"
_SHIM_AA64_RPM="aarch64/shim-aa64-${_SHIM_VERSION}-${_SHIM_RELEASE}.aarch64.rpm" _SHIM_AA64_RPM="aarch64/shim-aa64-${_SHIM_VERSION}-${_SHIM_RELEASE}.aarch64.rpm"
_USER="tobias"
_GROUP="users"
_GPG="--detach-sign --no-armor --batch --passphrase-file /etc/archboot/gpg.passphrase --pinentry-mode loopback -u 7EDF681F"
_SERVER="pkgbuild.com"
_ARCH_SERVERDIR="/home/tpowa/public_html/archboot-helper/bootloader" _ARCH_SERVERDIR="/home/tpowa/public_html/archboot-helper/bootloader"
_GRUB_CONFIG="/usr/share/archboot/grub/grub.cfg"
_prepare_shim_files () { _prepare_shim_files () {
# download packages from fedora server # download packages from fedora server

View file

@ -1,10 +1,6 @@
#!/bin/bash #!/bin/bash
# created by Tobias Powalowski <tpowa@archlinux.org> # created by Tobias Powalowski <tpowa@archlinux.org>
_CLEANUP_CACHE="" source /etc/archboot/defaults
_CLEANUP_CONTAINER=""
_LINUX_FIRMWARE="linux-firmware"
_PACMAN_AARCH64_CHROOT_SERVER="https://pkgbuild.com/~tpowa/archboot-helper/pacman-aarch64-chroot"
_PACMAN_AARCH64_CHROOT="pacman-aarch64-chroot-latest.tar.zst"
_usage () { _usage () {
echo "CREATE ARCHBOOT CONTAINER" echo "CREATE ARCHBOOT CONTAINER"
@ -39,7 +35,7 @@ _clean_cache() {
_aarch64_pacman_chroot() { _aarch64_pacman_chroot() {
echo "Downloading archlinuxarm pacman aarch64 chroot..." echo "Downloading archlinuxarm pacman aarch64 chroot..."
[[ -f pacman-aarch64-chroot-latest.tar.zst ]] || wget ${_PACMAN_AARCH64_CHROOT_SERVER}/${_PACMAN_AARCH64_CHROOT}{,.sig} >/dev/null 2>&1 [[ -f pacman-aarch64-chroot-latest.tar.zst ]] || wget ${_PACMAN_AARCH64_CHROOT_PUBLIC}/${_PACMAN_AARCH64_CHROOT}{,.sig} >/dev/null 2>&1
# verify dowload # verify dowload
sleep 1 sleep 1
gpg --verify "${_PACMAN_AARCH64_CHROOT}.sig" >/dev/null 2>&1 || exit 1 gpg --verify "${_PACMAN_AARCH64_CHROOT}.sig" >/dev/null 2>&1 || exit 1

View file

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# created by Tobias Powalowski <tpowa@archlinux.org> # created by Tobias Powalowski <tpowa@archlinux.org>
# change to english locale! source /etc/archboot/defaults
export LANG="C" LANG="C"
_BASENAME="$(basename "${0}")" _BASENAME="$(basename "${0}")"
_RUNNING_ARCH="$(uname -m)" _RUNNING_ARCH="$(uname -m)"
_PACMAN_MIRROR="/etc/pacman.d/mirrorlist" _PACMAN_MIRROR="/etc/pacman.d/mirrorlist"
@ -55,15 +55,19 @@ _generate_keyring() {
_x86_64_pacman_use_default() { _x86_64_pacman_use_default() {
# use pacman.conf with disabled [testing] repository # use pacman.conf with disabled [testing] repository
if ! [[ "${CUSTOM_PACMAN_CONF}" = "" ]]; then
cp "${_PACMAN_CONF}" "${_PACMAN_CONF}".old cp "${_PACMAN_CONF}" "${_PACMAN_CONF}".old
cp "${_PACMAN_CONF}".archboot "${_PACMAN_CONF}" cp "${CUSTOM_PACMAN_CONF}" "${_PACMAN_CONF}"
fi
# use mirrorlist with enabled rackspace mirror # use mirrorlist with enabled rackspace mirror
if ! [[ "${CUSTOM_MIRRORLIST}" = "" ]]; then
cp "${_PACMAN_MIRROR}" "${_PACMAN_MIRROR}".old cp "${_PACMAN_MIRROR}" "${_PACMAN_MIRROR}".old
cp "${_PACMAN_MIRROR}".archboot "${_PACMAN_MIRROR}" cp "${_CUSTOM_MIRRORLIST}" "${_PACMAN_MIRROR}"
fi
} }
_x86_64_pacman_restore() { _x86_64_pacman_restore() {
# restore pacman.conf and mirrorlist # restore pacman.conf and mirrorlist
cp "${_PACMAN_MIRROR}".old "${_PACMAN_MIRROR}" [[ -z "${CUSTOM_PACMAN_CONF}" ]] || cp "${_PACMAN_MIRROR}".old "${_PACMAN_MIRROR}"
cp "${_PACMAN_CONF}".old "${_PACMAN_CONF}" [[ -z "${CUSTOM_MIRRORLIST}" ]] || cp "${_PACMAN_CONF}".old "${_PACMAN_CONF}"
} }

View file

@ -1,13 +1,7 @@
#!/bin/bash #!/bin/bash
# created by Tobias Powalowski <tpowa@archlinux.org> # created by Tobias Powalowski <tpowa@archlinux.org>
source /etc/archboot/defaults
_PRESET_DIR="/etc/archboot/presets" _PRESET_DIR="/etc/archboot/presets"
_GRUB_CONFIG="/usr/share/archboot/grub/grub.cfg"
# covered by usage
_GENERATE=""
_PRESET=""
_IMAGENAME=""
_RELEASENAME=""
# temporary directories
_ISODIR="$(mktemp -d ISODIR.XXX)" _ISODIR="$(mktemp -d ISODIR.XXX)"
_usage () { _usage () {

View file

@ -1,12 +1,13 @@
#!/bin/bash #!/bin/bash
# created by Tobias Powalowski <tpowa@archlinux.org> # created by Tobias Powalowski <tpowa@archlinux.org>
_PRESET_LATEST="${_ARCH}-latest" source /etc/archboot/defaults
_AMD_UCODE="boot/amd-ucode.img" _AMD_UCODE="boot/amd-ucode.img"
_INTEL_UCODE="boot/intel-ucode.img" _INTEL_UCODE="boot/intel-ucode.img"
_INITRAMFS="boot/initramfs_${_ARCH}.img" _INITRAMFS="boot/initramfs_${_ARCH}.img"
_INITRAMFS_LATEST="boot/initramfs_${_ARCH}-latest.img" _INITRAMFS_LATEST="boot/initramfs_${_ARCH}-latest.img"
_KERNEL="boot/vmlinuz_${_ARCH}" _KERNEL="boot/vmlinuz_${_ARCH}"
_KERNEL_ARCHBOOT="boot/vmlinuz_archboot_${_ARCH}" _KERNEL_ARCHBOOT="boot/vmlinuz_archboot_${_ARCH}"
_PRESET_LATEST="${_ARCH}-latest"
_W_DIR="$(mktemp -u archboot-release.XXX)" _W_DIR="$(mktemp -u archboot-release.XXX)"
_usage () { _usage () {

View file

@ -1,5 +1,6 @@
#!/bin/bash #!/bin/bash
# created by Tobias Powalowski <tpowa@archlinux.org> # created by Tobias Powalowski <tpowa@archlinux.org>
source /etc/archboot/defaults
_usage () { _usage () {
echo "CREATE ARCHBOOT REPOSITORY" echo "CREATE ARCHBOOT REPOSITORY"

View file

@ -1,24 +1,7 @@
#!/bin/bash #!/bin/bash
# created by Tobias Powalowski <tpowa@archlinux.org> # created by Tobias Powalowski <tpowa@archlinux.org>
_DIR="$(date +%Y.%m)" source /etc/archboot/defaults
_ISO_HOME="/home/tobias/Arch/iso"
_ISO_HOME_ARCH="${_ISO_HOME}/${_ARCH}"
_ISO_HOME_SOURCE="${_ISO_HOME}/${_ARCH}/sources/${_DIR}"
_ISO_BUILD_DIR="$(mktemp -d "${_ISO_HOME_ARCH}"/server-release.XXX)" _ISO_BUILD_DIR="$(mktemp -d "${_ISO_HOME_ARCH}"/server-release.XXX)"
_SERVER="pkgbuild.com"
_SERVER_HOME="/home/tpowa"
_SERVER_PUBLIC="${_SERVER_HOME}/public_html"
_SERVER_IMAGE_DIR="${_SERVER_PUBLIC}/archboot-images"
_SERVER_SOURCE_DIR="${_SERVER_PUBLIC}/archboot-sources"
_ARCHBOOT_PUBLIC="https://pkgbuild.com/~tpowa"
_ARCHBOOT_SOURCE="${_ARCHBOOT_PUBLIC}/archboot-sources"
_PACMAN_AARCH64="pacman-aarch64-chroot"
_PACMAN_AARCH64_CHROOT="${_PACMAN_AARCH64}-latest.tar.zst"
_PACMAN_AARCH64_CHROOT_PUBLIC="${_ARCHBOOT_PUBLIC}/archboot-helper/${_PACMAN_AARCH64}"
_PACMAN_AARCH64_SERVER="${_SERVER_PUBLIC}/archboot-helper/${_PACMAN_AARCH64}"
_USER="tobias"
_GROUP="users"
_GPG="--detach-sign --no-armor --batch --passphrase-file /etc/archboot/gpg.passphrase --pinentry-mode loopback -u 7EDF681F"
_update_aarch64_pacman_chroot() { _update_aarch64_pacman_chroot() {
# update aarch64 pacman chroot # update aarch64 pacman chroot
@ -26,7 +9,7 @@ _update_aarch64_pacman_chroot() {
[[ -d "${_PACMAN_AARCH64}" ]] || mkdir "${_PACMAN_AARCH64}" [[ -d "${_PACMAN_AARCH64}" ]] || mkdir "${_PACMAN_AARCH64}"
echo "Downloading archlinuxarm pacman aarch64 chroot..." echo "Downloading archlinuxarm pacman aarch64 chroot..."
[[ -f pacman-aarch64-chroot-latest.tar.zst ]] && rm pacman-aarch64-chroot-latest.tar.zst{,.sig} [[ -f pacman-aarch64-chroot-latest.tar.zst ]] && rm pacman-aarch64-chroot-latest.tar.zst{,.sig}
wget ${_PACMAN_AARCH64_CHROOT_PUBLIC}/${_PACMAN_AARCH64_CHROOT}{,.sig} >/dev/null 2>&1 wget ${_ARCHBOOT_AARCH64_CHROOT_PUBLIC}/${_PACMAN_AARCH64_CHROOT}{,.sig} >/dev/null 2>&1
# verify dowload # verify dowload
sudo -u "${_USER}" gpg --verify "${_PACMAN_AARCH64_CHROOT}.sig" >/dev/null 2>&1 || exit 1 sudo -u "${_USER}" gpg --verify "${_PACMAN_AARCH64_CHROOT}.sig" >/dev/null 2>&1 || exit 1
bsdtar -C "${_PACMAN_AARCH64}" -xf "${_PACMAN_AARCH64_CHROOT}" >/dev/null 2>&1 bsdtar -C "${_PACMAN_AARCH64}" -xf "${_PACMAN_AARCH64_CHROOT}" >/dev/null 2>&1
@ -54,8 +37,8 @@ _update_aarch64_pacman_chroot() {
#shellcheck disable=SC2086 #shellcheck disable=SC2086
sudo -u "${_USER}" gpg ${_GPG} "${_PACMAN_AARCH64_CHROOT}" sudo -u "${_USER}" gpg ${_GPG} "${_PACMAN_AARCH64_CHROOT}"
chown "${_USER}:${_GROUP}" ${_PACMAN_AARCH64_CHROOT}{,.sig} chown "${_USER}:${_GROUP}" ${_PACMAN_AARCH64_CHROOT}{,.sig}
echo "Uploading files to ${_SERVER}:${_PACMAN_AARCH64_SERVER} ..." echo "Uploading files to ${_SERVER}:${_SERVER_PACMAN_AARCH64} ..."
sudo -u "${_USER}" scp -q ${_PACMAN_AARCH64_CHROOT}{,.sig} ${_SERVER}:${_PACMAN_AARCH64_SERVER} || exit 1 sudo -u "${_USER}" scp -q ${_PACMAN_AARCH64_CHROOT}{,.sig} ${_SERVER}:${_SERVER_PACMAN_AARCH64} || exit 1
} }
_update_source() { _update_source() {
@ -67,13 +50,14 @@ _update_source() {
fi fi
echo "Creating ${_ARCH} archboot repository ..." echo "Creating ${_ARCH} archboot repository ..."
"archboot-${_ARCH}-create-repository.sh" "${_ISO_HOME_SOURCE}" || exit 1 "archboot-${_ARCH}-create-repository.sh" "${_ISO_HOME_SOURCE}" || exit 1
chown -R "${_USER}:${_GROUP}" "${_ISO_HOME_SOURCE}"
echo "Uploading files to ${_SERVER}:${_SERVER_HOME}/${_ARCH} ..." echo "Uploading files to ${_SERVER}:${_SERVER_HOME}/${_ARCH} ..."
#shellcheck disable=SC2086 #shellcheck disable=SC2086
sudo -u "${_USER}" ssh "${_SERVER}" "[[ -d "${_SERVER_HOME}/${_ARCH}" ]] || mkdir -p ${_SERVER_HOME}/${_ARCH}" 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}" scp -q -r "${_ISO_HOME_SOURCE}" "${_SERVER}":"${_SERVER_HOME}/${_ARCH}" || exit 1
sudo -u "${_USER}" ssh "${_SERVER}" <<EOF sudo -u "${_USER}" ssh "${_SERVER}" <<EOF
rm -r "${_SERVER_SOURCE_DIR}/${_ARCH}/${_DIR}" rm -r "${_SERVER_SOURCE_DIR}/${_ARCH}/${_DIR}"
rm -r "${_SERVER_SOURCE_DIR}/${_ARCH}/$(date -d "$(date +) - 3 month" +%Y.%m)" rm -r "${_SERVER_SOURCE_DIR}/${_ARCH}/$(date -d "$(date +) - ${_PURGE_DATE}" +%Y.%m)"
mv "${_ARCH}/${_DIR}" "${_SERVER_SOURCE_DIR}/${_ARCH}" mv "${_ARCH}/${_DIR}" "${_SERVER_SOURCE_DIR}/${_ARCH}"
rm -r "${_SERVER_HOME}/${_ARCH}" rm -r "${_SERVER_HOME}/${_ARCH}"
cd "${_SERVER_SOURCE_DIR}/${_ARCH}" cd "${_SERVER_SOURCE_DIR}/${_ARCH}"