package-all-acpi_call-tp_smapi 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #!/bin/bash
  2. readonly KERNEL_VER=6.5.8
  3. readonly KERNEL_LTS_VER=5.15.88
  4. readonly CHROOT_NAMES=( armv7h i686 x86_64 )
  5. readonly ABS_ROOT=/var/lib/archbuild/abslibre # no spaces plz
  6. readonly ABS_UPSTREAM=parabola
  7. readonly PKG_EXT=pkg.tar.zst
  8. readonly PKG_DIRS=( ${ABS_ROOT}/libre/acpi_call{-dkms,,-lts} # -dkms first
  9. ${ABS_ROOT}/libre/tp_smapi{,-lts} ) # no trailing slashes
  10. readonly PKGBUILDS=( ${PKG_DIRS[*]/%/\/PKGBUILD} )
  11. Main()
  12. {
  13. local chroot pkg_dir kver pkgname pkgver pkgrel arches chroot_dir arch
  14. local pkgs=()
  15. local all_pkgs=()
  16. local commit_msg=''
  17. echo -e "\nupgrading chroots\n"
  18. for chroot in ${CHROOT_NAMES[*]}
  19. do echo -e "\nupgrading chroot '${chroot}'\n"
  20. sudo librechroot -n ${chroot} update || exit 1
  21. done
  22. echo -e "\nbuilding packages\n"
  23. for pkg_dir in ${PKG_DIRS[*]}
  24. do [[ -d "${pkg_dir}" && -f "${pkg_dir}"/PKGBUILD ]] ||
  25. ! echo "${pkg_dir} - no PKGBUILD" || continue
  26. kver=$( [[ "${pkg_dir}" =~ -lts$ ]] && echo ${KERNEL_LTS_VER} || echo ${KERNEL_VER} )
  27. pkgs=()
  28. cd ${pkg_dir}/ ; git checkout HEAD PKGBUILD &> /dev/null ;
  29. pkgname=$(source PKGBUILD ; echo ${pkgname} ;)
  30. pkgver=$( source PKGBUILD ; echo ${pkgver} ;)
  31. pkgrel=$( source PKGBUILD ; echo ${pkgrel} ;)
  32. arches="$(source PKGBUILD ; echo ${arch[*]} ;)"
  33. ! [[ "${pkgrel}" =~ \.basekernel${kver}$ ]] ||
  34. ! echo "${pkg_dir} - skipping PKGBUILD" || continue
  35. sed -i "s|^_basekernel=.*|_basekernel=${kver}|" PKGBUILD
  36. pkgrel=$( source PKGBUILD ; echo ${pkgrel} ;)
  37. [[ "${pkgrel}" =~ \.basekernel${kver}$ ]] ||
  38. ! echo "ERROR: ${pkg_dir} - PKGBUILD not modified" || continue
  39. for chroot in ${CHROOT_NAMES[*]}
  40. do chroot_dir=$(librechroot -n ${chroot} |& grep -E 'copydir +: ' | cut -d: -f2)
  41. arch=$(source ${chroot_dir}/etc/os-release ; echo ${VARIANT_ID%-*} ;)
  42. [[ -n "${arch}" && " ${arches} " =~ " ${arch} " ]] ||
  43. [[ "${arch}" == x86_64 && "${arches}" == 'any' ]] || continue
  44. echo -e "\nbuilding pkgname: '${pkgname}' arch: '${arch}' in chroot: '${chroot}'\n"
  45. sudo libremakepkg -n ${chroot}
  46. pkgs+=( $(ls ${pkgname}-${pkgver}-${pkgrel}-${arch}.${PKG_EXT} 2> /dev/null) )
  47. done
  48. if (( ${#pkgs[*]} ))
  49. then all_pkgs+=( ${pkgs[*]} )
  50. commit_msg+="[$(basename ${pkg_dir})]"
  51. else echo "ERROR: ${pkg_dir} - no packages generated"
  52. fi
  53. done
  54. if (( ${#all_pkgs[*]} ))
  55. then git commit -m "${commit_msg}: rebuild against latest kernels" ${PKGBUILDS[*]}
  56. fi
  57. echo "(${#all_pkgs[*]}) packages generated" ; printf "%s\n" ${all_pkgs[*]} ;
  58. }
  59. if git pull $ABS_UPSTREAM master &> /dev/null
  60. then Main
  61. else echo "failed to synchronize abslibre VCS - is the working tree dirty?"
  62. fi