diff --git a/aur-sync.sh b/aur-sync.sh index 552ce3676f9f1ba3600c0d72af006b17b604bb83..dd2a28eff1474272b1d6c5a91ca2a55c706f0544 100755 --- a/aur-sync.sh +++ b/aur-sync.sh @@ -18,8 +18,24 @@ repo_upstreams=( ) # Please place simple, important, SMALL packages first. Place error-prone packages last. -aur_upstreams='pikaur frpc frps azure-cli unzip-iconv create_ap snakesocks teamviewer remarkable goland goland-jre clion gnome-terminal-transparency' -# intellij-idea-ce rider graftcp # gractcp failure +aur_upstreams=( + pikaur + frpc + frps + azure-cli + create_ap + asix-ax88179-dkms + snakesocks + teamviewer + remarkable + goland + goland-jre + clion + clion-jre + gnome-terminal-transparency + shared-bootdir-helper + chrome-gnome-shell +) build_outdir="mirrors/recolic-aur" repo_name=recolic-aur @@ -27,9 +43,12 @@ repo_name=recolic-aur function sync_aur () { echo "Running aur autobuild..." - # pikaur would skip if the package is already up-to-date. - sudo docker run -i --cpus 1.2 --rm -v "$(pwd)/$build_outdir":/home/builder/.cache/pikaur/pkg recolic/pikaur bash -c "chown builder -R /home/builder/.cache/pikaur/pkg && sudo -u builder pikaur -Syw --noconfirm $aur_upstreams" - return $? + # Use the external loop to force pikaur to skip failed packages. + for ele in "${aur_upstreams[@]}"; do + # pikaur would skip if the package is already up-to-date. + sudo docker run -i --cpus 1.2 --rm -v "$(pwd)/mirrors/recolic-aur":/home/builder/.cache/pikaur/pkg recolic/pikaur bash -c "chown builder -R /home/builder/.cache/pikaur/pkg && sudo -u builder pikaur -Syw --noconfirm $ele" + [[ $? != 0 ]] && echo "WARNING: Failed to build $ele" + done } function sync_http () { diff --git a/docker-pikaur/Dockerfile b/docker-pikaur/Dockerfile index b83783b8a4dab3f36ecfb6c54edc08b62282a28a..8a692504ebde444516e3049b6acfbd1a1f091f1c 100644 --- a/docker-pikaur/Dockerfile +++ b/docker-pikaur/Dockerfile @@ -1,5 +1,5 @@ # docker run -ti -v (pwd)/recolic-aur:/home/builder/.cache/pikaur/pkg recolic/pikaur bash -c 'chown builder -R /home/builder/.cache/pikaur/pkg && sudo -u builder pikaur -Sw --noconfirm $pkgs' -# You must reuse the container (commit it as new image) after running first build. There may be tons of dependencies to be downloaded. +# You can reuse the container (commit it as new image) after running first build. There may be tons of dependencies to be downloaded. FROM archlinux:base-devel @@ -9,7 +9,9 @@ RUN pacman -S --noconfirm go RUN useradd -m builder && echo 'builder ALL=(ALL) NOPASSWD: ALL' | EDITOR='tee -a' visudo # To prevent docker from creating a root-only dir RUN sudo -u builder mkdir -p /home/builder/.cache/pikaur/build && \ - sed -i 's/check_pgpsigs() {/check_pgpsigs() { return 0/g' /usr/share/makepkg/integrity/verify_signature.sh -# auto-key-retrieve is not working. This is my only solution. + sed -i 's/check_pgpsigs() {/check_pgpsigs() { return 0/g' /usr/share/makepkg/integrity/verify_signature.sh && \ + sed -i 's/SigLevel.*$/SigLevel = Never/' /etc/pacman.conf +# makepkg auto-key-retrieve is not working. This is my only solution. +# pacman will complain about expired GPG keys if the image is not updated. Disable the SigLevel verify to avoid these error.