blob: 8f617e05e5183f99d5370629fc00bfbd951140e3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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
|