mirror of
https://gitlab.archlinux.org/archlinux/devtools.git
synced 2025-09-15 02:46:19 +02:00
Compare commits
1 Commits
wip-testin
...
support-of
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a0c0c63a85 |
7
Makefile
7
Makefile
@@ -184,13 +184,6 @@ coverage: binprogs library conf completion man
|
||||
jq -r '. | ["Percent covered", .percent_covered], ["Covered lines", .covered_lines], ["Total lines", .total_lines], ["Percent low", .percent_low], ["Percent high", .percent_high] | @tsv' \
|
||||
$(COVERAGE_DIR)/bats.*/coverage.json
|
||||
|
||||
testinstall:
|
||||
tar --transform 's,^,devtools/,' -cz -f test/devtools.tar.gz --exclude='test' --exclude='./build' .
|
||||
mv test/devtools.tar.gz devtools.tar.gz
|
||||
pkgctl build --repo extra-testing
|
||||
rm devtools.tar.gz
|
||||
sudo pacman -U $$(makepkg --packagelist)
|
||||
|
||||
check: $(BINPROGS_SRC) $(LIBRARY_SRC) contrib/completion/bash/devtools.in config/makepkg/x86_64.conf contrib/makepkg/PKGBUILD.proto
|
||||
shellcheck $^
|
||||
|
||||
|
64
PKGBUILD
64
PKGBUILD
@@ -1,64 +0,0 @@
|
||||
# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
|
||||
# Maintainer: Christian Heusel <gromit@archlinux.org>
|
||||
# Contributor: Pierre Schmitz <pierre@archlinux.de>
|
||||
|
||||
pkgname=devtools-devel
|
||||
_pkgname=devtools
|
||||
epoch=1
|
||||
pkgver=1.0.4.r10.g4a78f0e
|
||||
pkgrel=1
|
||||
pkgdesc='Tools for Arch Linux package maintainers (devel version)'
|
||||
arch=('any')
|
||||
license=('GPL')
|
||||
url='https://gitlab.archlinux.org/archlinux/devtools'
|
||||
depends=(
|
||||
arch-install-scripts
|
||||
awk
|
||||
bash
|
||||
binutils
|
||||
coreutils
|
||||
diffutils
|
||||
fakeroot
|
||||
findutils
|
||||
grep
|
||||
jq
|
||||
openssh
|
||||
parallel
|
||||
rsync
|
||||
sed
|
||||
util-linux
|
||||
|
||||
breezy
|
||||
git
|
||||
mercurial
|
||||
subversion
|
||||
)
|
||||
makedepends=(
|
||||
asciidoctor
|
||||
shellcheck
|
||||
)
|
||||
optdepends=('btrfs-progs: btrfs support')
|
||||
|
||||
conflicts=(devtools)
|
||||
provides=(devtools)
|
||||
source=(test/devtools.tar.gz)
|
||||
|
||||
sha256sums=('SKIP')
|
||||
b2sums=('SKIP')
|
||||
|
||||
pkgver() {
|
||||
cd ${_pkgname}
|
||||
git describe --long --abbrev=7 | sed 's/v//;s/\([^-]*-g\)/r\1/;s/-/./g'
|
||||
}
|
||||
|
||||
build() {
|
||||
cd ${_pkgname}
|
||||
make BUILDTOOLVER="${epoch}:${pkgver}-${pkgrel}-${arch}" PREFIX=/usr
|
||||
}
|
||||
|
||||
package() {
|
||||
cd ${_pkgname}
|
||||
make PREFIX=/usr DESTDIR="${pkgdir}" install
|
||||
}
|
||||
|
||||
# vim: ts=2 sw=2 et:
|
@@ -55,6 +55,7 @@ pkgctl_build_usage() {
|
||||
-o, --offload Build on a remote server and transfer artifacts afterwards
|
||||
-c, --clean Recreate the chroot before building
|
||||
--inspect WHEN Spawn an interactive shell to inspect the chroot (never, always, failure)
|
||||
--offline MODE Run a part of the build process offline (build, check)
|
||||
-w, --worker SLOT Name of the worker slot, useful for concurrent builds (disables automatic names)
|
||||
--nocheck Do not run the check() function in the PKGBUILD
|
||||
|
||||
@@ -198,6 +199,10 @@ pkgctl_build() {
|
||||
EDIT=1
|
||||
shift
|
||||
;;
|
||||
--offline)
|
||||
MAKECHROOT_OPTIONS+=("-o" "$2")
|
||||
shift 2
|
||||
;;
|
||||
-o|--offload)
|
||||
OFFLOAD=1
|
||||
shift
|
||||
|
@@ -40,6 +40,8 @@ bindmounts_ro=()
|
||||
bindmounts_rw=()
|
||||
bindmounts_tmpfs=()
|
||||
|
||||
offline_options=()
|
||||
|
||||
copy=$USER
|
||||
[[ -n ${SUDO_USER:-} ]] && copy=$SUDO_USER
|
||||
[[ -z "$copy" || $copy = root ]] && copy=copy
|
||||
@@ -80,6 +82,7 @@ usage() {
|
||||
echo ' Useful for maintaining multiple copies'
|
||||
echo " Default: $copy"
|
||||
echo '-n Run namcap on the package'
|
||||
echo '-o Run given step offline'
|
||||
echo '-C Run checkpkg on the package'
|
||||
echo '-T Build in a temporary directory'
|
||||
echo '-U Run makepkg as a specified user'
|
||||
@@ -203,6 +206,7 @@ EOF
|
||||
declare -p SOURCE_DATE_EPOCH 2>/dev/null || true
|
||||
declare -p BUILDTOOL 2>/dev/null
|
||||
declare -p BUILDTOOLVER 2>/dev/null
|
||||
declare -p offline_options
|
||||
printf '_chrootbuild "$@" || exit\n'
|
||||
|
||||
if (( run_namcap )); then
|
||||
@@ -222,14 +226,52 @@ _chrootbuild() {
|
||||
# shellcheck source=/dev/null
|
||||
. /etc/profile
|
||||
|
||||
# for in_array
|
||||
. /usr/share/makepkg/util.sh
|
||||
|
||||
# Beware, there are some stupid arbitrary rules on how you can
|
||||
# use "$" in arguments to commands with "sudo -i". ${foo} or
|
||||
# ${1} is OK, but $foo or $1 isn't.
|
||||
# https://bugzilla.sudo.ws/show_bug.cgi?id=765
|
||||
|
||||
# Run prepare
|
||||
sudo --preserve-env=SOURCE_DATE_EPOCH \
|
||||
--preserve-env=BUILDTOOL \
|
||||
--preserve-env=BUILDTOOLVER \
|
||||
-iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
|
||||
-iu builduser bash -c 'cd /startdir; makepkg --nobuild "$@"' -bash "$@"
|
||||
|
||||
if in_array "build" "${offline_options[@]}"; then
|
||||
msg "building offline"
|
||||
# Build offline
|
||||
unshare -n -- sudo --preserve-env=SOURCE_DATE_EPOCH \
|
||||
--preserve-env=BUILDTOOL \
|
||||
--preserve-env=BUILDTOOLVER \
|
||||
-iu builduser \
|
||||
bash -c 'cd /startdir; makepkg --noprepare --noextract --nocheck "$@"' -bash "$@"
|
||||
else
|
||||
sudo --preserve-env=SOURCE_DATE_EPOCH \
|
||||
--preserve-env=BUILDTOOL \
|
||||
--preserve-env=BUILDTOOLVER \
|
||||
-iu builduser \
|
||||
bash -c 'cd /startdir; makepkg --noprepare --noextract --nocheck "$@"' -bash "$@"
|
||||
fi
|
||||
|
||||
if in_array "check" "${offline_options[@]}"; then
|
||||
msg "check offline"
|
||||
# Run tests online
|
||||
unshare -n -- sudo --preserve-env=SOURCE_DATE_EPOCH \
|
||||
--preserve-env=BUILDTOOL \
|
||||
--preserve-env=BUILDTOOLVER \
|
||||
-iu builduser \
|
||||
bash -c 'cd /startdir; makepkg --noprepare --noextract --nobuild "$@"' -bash "$@"
|
||||
else
|
||||
sudo --preserve-env=SOURCE_DATE_EPOCH \
|
||||
--preserve-env=BUILDTOOL \
|
||||
--preserve-env=BUILDTOOLVER \
|
||||
-iu builduser \
|
||||
bash -c 'cd /startdir; makepkg --noprepare --noextract --nobuild "$@"' -bash "$@"
|
||||
fi
|
||||
|
||||
ret=$?
|
||||
case $ret in
|
||||
0|14)
|
||||
@@ -293,7 +335,7 @@ move_products() {
|
||||
}
|
||||
# }}}
|
||||
|
||||
while getopts 'hcur:I:l:nCTD:d:U:x:t:' arg; do
|
||||
while getopts 'hcur:I:l:nCTD:o:d:U:x:t:' arg; do
|
||||
case "$arg" in
|
||||
c) clean_first=1 ;;
|
||||
D) bindmounts_ro+=("--bind-ro=$OPTARG") ;;
|
||||
@@ -304,6 +346,7 @@ while getopts 'hcur:I:l:nCTD:d:U:x:t:' arg; do
|
||||
I) install_pkgs+=("$OPTARG") ;;
|
||||
l) copy="$OPTARG" ;;
|
||||
n) run_namcap=1; makepkg_args+=(--install) ;;
|
||||
o) offline_options+=("$OPTARG") ;;
|
||||
C) run_checkpkg=1 ;;
|
||||
T) temp_chroot=1; copy+="-$$" ;;
|
||||
U) makepkg_user="$OPTARG" ;;
|
||||
|
Reference in New Issue
Block a user