From f3518e248cc8be165009f2200ff3b6500bfc0476 Mon Sep 17 00:00:00 2001 From: Levente Polyak Date: Sat, 1 Apr 2023 00:12:56 +0200 Subject: build: support nocheck for initial bootstrap builds Output a warning when this option is used to remind packagers to rebuild the packages with checks once the bootstrap cycle has been completed. --- contrib/completion/zsh/_devtools.in | 1 + doc/man/pkgctl-build.1.asciidoc | 3 +++ src/lib/build/build.sh | 11 +++++++++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/contrib/completion/zsh/_devtools.in b/contrib/completion/zsh/_devtools.in index 39e9ac0..e782fba 100644 --- a/contrib/completion/zsh/_devtools.in +++ b/contrib/completion/zsh/_devtools.in @@ -42,6 +42,7 @@ _pkgctl_build_args=( '(-o --offload)'{-o,--offload}'[Build on a remote server and transfer artifacts afterwards]' '(-c --clean)'{-c,--clean}'[Recreate the chroot before building]' '(-I --install)'{-I,--install}'[Install a package into the working copy of the chroot]:target:_files -g "*.pkg.tar.*(.)"' + '--nocheck[Do not run the check() function in the PKGBUILD]' '--pkgver=[Set pkgver, reset pkgrel and update checksums]:pkgver:' '--pkgrel=[Set pkgrel to a given value]:pkgrel:' '--rebuild[Increment the pkgrel variable]' diff --git a/doc/man/pkgctl-build.1.asciidoc b/doc/man/pkgctl-build.1.asciidoc index 132c0a4..6ae3872 100644 --- a/doc/man/pkgctl-build.1.asciidoc +++ b/doc/man/pkgctl-build.1.asciidoc @@ -38,6 +38,9 @@ Build Options *-I, --install* 'FILE':: Install a package into the working copy of the chroot +*--nocheck*:: + Do not run the check() function in the PKGBUILD + PKGBUILD Options ---------------- diff --git a/src/lib/build/build.sh b/src/lib/build/build.sh index 72ee4fb..fff8125 100644 --- a/src/lib/build/build.sh +++ b/src/lib/build/build.sh @@ -47,6 +47,7 @@ pkgctl_build_usage() { -o, --offload Build on a remote server and transfer artifacts afterwards -c, --clean Recreate the chroot before building -I, --install FILE Install a package into the working copy of the chroot + --nocheck Do not run the check() function in the PKGBUILD PKGBUILD OPTIONS --pkgver=PKGVER Set pkgver, reset pkgrel and update checksums @@ -120,6 +121,7 @@ pkgctl_build() { local BUILD_OPTIONS=() local MAKECHROOT_OPTIONS=() local RELEASE_OPTIONS=() + local MAKEPKG_OPTIONS=() local PTS PTS="$(tty | sed 's|/dev/pts/||')" @@ -201,6 +203,11 @@ pkgctl_build() { warning 'installing packages into the chroot may break reproducible builds, use with caution!' shift 2 ;; + --nocheck) + MAKEPKG_OPTIONS+=("--nocheck") + warning 'not running checks is disallowed for official packages, except for bootstrapping. Please rebuild after bootstrapping is completed!' + shift + ;; -r|--release) # shellcheck source=src/lib/release.sh source "${_DEVTOOLS_LIBRARY_DIR}"/lib/release.sh @@ -366,9 +373,9 @@ pkgctl_build() { fi if (( OFFLOAD )); then - offload-build --repo "${pkgrepo}" -- "${BUILD_OPTIONS[@]}" -- "${MAKECHROOT_OPTIONS[@]}" -l "${WORKER}" + offload-build --repo "${pkgrepo}" -- "${BUILD_OPTIONS[@]}" -- "${MAKECHROOT_OPTIONS[@]}" -l "${WORKER}" -- "${MAKEPKG_OPTIONS[@]}" else - "${BUILDTOOL}" "${BUILD_OPTIONS[@]}" -- "${MAKECHROOT_OPTIONS[@]}" -l "${WORKER}" + "${BUILDTOOL}" "${BUILD_OPTIONS[@]}" -- "${MAKECHROOT_OPTIONS[@]}" -l "${WORKER}" -- "${MAKEPKG_OPTIONS[@]}" fi done -- cgit v1.2.3-70-g09d2