diff options
Diffstat (limited to 'scripts/package-all-acpi_call-tp_smapi')
-rwxr-xr-x | scripts/package-all-acpi_call-tp_smapi | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/scripts/package-all-acpi_call-tp_smapi b/scripts/package-all-acpi_call-tp_smapi new file mode 100755 index 000000000..8f617e05e --- /dev/null +++ b/scripts/package-all-acpi_call-tp_smapi @@ -0,0 +1,76 @@ +#!/bin/bash + + +readonly KERNEL_VER=6.5.8 +readonly KERNEL_LTS_VER=5.15.88 +readonly CHROOT_NAMES=( armv7h i686 x86_64 ) +readonly ABS_ROOT=/var/lib/archbuild/abslibre # no spaces +readonly ABS_UPSTREAM=parabola +readonly PKG_DIRS=( ${ABS_ROOT}/libre/acpi_call{-dkms,,-lts} # -dkms first + ${ABS_ROOT}/libre/tp_smapi{,-lts} ) # no trailing slashes +readonly PKGBUILDS=( ${PKG_DIRS[*]/%/\/PKGBUILD} ) + + +Main() +{ + local chroot pkg_dir kver pkgname pkgver pkgrel arches chroot_dir arch + local pkgs=() + local all_pkgs=() + local commit_msg='' + + echo -e "\nupgrading chroots\n" + for chroot in ${CHROOT_NAMES[*]} + do sudo librechroot -n ${chroot} update || exit 1 + done + + echo -e "\nbuilding packages\n" + for pkg_dir in ${PKG_DIRS[*]} + do kver=$( [[ "${pkg_dir}" =~ -lts$ ]] && echo ${KERNEL_LTS_VER} || echo ${KERNEL_VER} ) + pkgs=() + + [[ -d "${pkg_dir}" && -f "${pkg_dir}"/PKGBUILD ]] || + ! echo "${pkg_dir} - no such PKGBUILD" || continue + + cd ${pkg_dir}/ ; git checkout HEAD PKGBUILD &> /dev/null ; + + pkgname=$(source PKGBUILD ; echo ${pkgname} ;) + pkgver=$( source PKGBUILD ; echo ${pkgver} ;) + pkgrel=$( source PKGBUILD ; echo ${pkgrel} ;) + arches="$(source PKGBUILD ; echo ${arch[*]} ;)" + ! [[ "${pkgrel}" =~ \.basekernel${kver}$ ]] || + ! echo "${pkg_dir} - skipping PKGBUILD" || continue + + sed -i "s|^_basekernel=.*|_basekernel=${kver}|" PKGBUILD + pkgrel=$( source PKGBUILD ; echo ${pkgrel} ;) + [[ "${pkgrel}" =~ \.basekernel${kver}$ ]] || + ! echo "ERROR: ${pkg_dir} - PKGBUILD not modified" || continue + + for chroot in ${CHROOT_NAMES[*]} + do chroot_dir=$(librechroot -n ${chroot} |& grep -E 'copydir +: ' | cut -d: -f2) + arch=$(source ${chroot_dir}/etc/os-release ; sed 's|-.*||' <<<${VARIANT_ID}) + [[ -n "${arch}" && " ${arches} " =~ " ${arch} " ]] || continue + + echo "building pkgname: ${pkgname} in chroot: ${chroot}" + sudo libremakepkg -n ${chroot} + + pkgs+=( $(ls ${pkgname}-${pkgver}-${pkgrel}-${arch}.pkg.tar.zst 2> /dev/null) ) + done + + if (( ${#pkgs[*]} )) + then all_pkgs+=( ${pkgs[*]} ) + commit_msg+="[$(basename ${pkg_dir})]" + else echo "ERROR: ${pkg_dir} - no packages generated" + fi + done + + if (( ${#all_pkgs[*]} )) + then git commit -m "${commit_msg}: rebuild against latest kernels" ${PKGBUILDS[*]} + fi + echo "(${#all_pkgs[*]}) packages generated" ; printf "%s\n" ${all_pkgs[*]} ; +} + + +if git pull $ABS_UPSTREAM master &> /dev/null +then Main +else echo "failed to synchronize abslibre VCS - is the working tree dirty?" +fi |