abuild: set cache directories to a temporary directory if MOVE_CACHES is set
this allows for isolating cache directories per package
This commit is contained in:
parent
8efe527ff3
commit
d27b635768
17
abuild.in
17
abuild.in
|
@ -156,6 +156,7 @@ cleanup() {
|
||||||
fi;;
|
fi;;
|
||||||
pkgdir) msg "Cleaning up pkgdir"; rm -rf "$pkgbasedir";;
|
pkgdir) msg "Cleaning up pkgdir"; rm -rf "$pkgbasedir";;
|
||||||
srcdir) msg "Cleaning up srcdir"; cleanup_srcdir;;
|
srcdir) msg "Cleaning up srcdir"; cleanup_srcdir;;
|
||||||
|
tmpdir) msg "Cleaning up tmpdir"; rm -rf "$tmpdir";;
|
||||||
deps)
|
deps)
|
||||||
if [ -n "$uninstall_after" ]; then
|
if [ -n "$uninstall_after" ]; then
|
||||||
msg "Uninstalling dependencies..."
|
msg "Uninstalling dependencies..."
|
||||||
|
@ -553,10 +554,11 @@ unpack() {
|
||||||
default_unpack
|
default_unpack
|
||||||
}
|
}
|
||||||
|
|
||||||
# cleanup source and package dir
|
# cleanup source, package and temporary dir
|
||||||
clean() {
|
clean() {
|
||||||
cleanup srcdir
|
cleanup srcdir
|
||||||
cleanup pkgdir
|
cleanup pkgdir
|
||||||
|
cleanup tmpdir
|
||||||
}
|
}
|
||||||
|
|
||||||
# cleanup fetched sources
|
# cleanup fetched sources
|
||||||
|
@ -690,7 +692,17 @@ runpart() {
|
||||||
prepare|build|package|check)
|
prepare|build|package|check)
|
||||||
# exclude aports from git repo discovery
|
# exclude aports from git repo discovery
|
||||||
export GIT_CEILING_DIRECTORIES="$startdir"
|
export GIT_CEILING_DIRECTORIES="$startdir"
|
||||||
cd "$builddir";;
|
|
||||||
|
# prevent using global cache directories
|
||||||
|
if [ -n "$MOVE_CACHES" ]; then
|
||||||
|
export GOCACHE="${GOCACHE:-"$tmpdir/go"}"
|
||||||
|
export GOMODCACHE="${GOCACHE:-"$tmpdir/gomod"}"
|
||||||
|
export GOTMPDIR="${GOTMPDIR:-"$tmpdir"}"
|
||||||
|
export CARGO_HOME="${CARGO_HOME:-"$tmpdir/cargo"}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$builddir"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
$part
|
$part
|
||||||
|
@ -2900,6 +2912,7 @@ APKBUILD=$(readlink -f "$APKBUILD")
|
||||||
startdir="${APKBUILD%/*}"
|
startdir="${APKBUILD%/*}"
|
||||||
srcdir=${srcdir:-"$startdir/src"}
|
srcdir=${srcdir:-"$startdir/src"}
|
||||||
pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
|
pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
|
||||||
|
tmpdir=${tmpdir:-"$startdir/tmp"}
|
||||||
|
|
||||||
repo=${startdir%/*}
|
repo=${startdir%/*}
|
||||||
repo=${repo##*/}
|
repo=${repo##*/}
|
||||||
|
|
|
@ -33,3 +33,6 @@ CLEANUP="srcdir bldroot pkgdir deps"
|
||||||
|
|
||||||
# what to cleanup after a failed build
|
# what to cleanup after a failed build
|
||||||
ERROR_CLEANUP="bldroot deps"
|
ERROR_CLEANUP="bldroot deps"
|
||||||
|
|
||||||
|
# uncomment to prevent using global cache directories for Go and Cargo
|
||||||
|
#MOVE_CACHES=1
|
||||||
|
|
|
@ -42,7 +42,9 @@ init_tests \
|
||||||
abuild_pyc \
|
abuild_pyc \
|
||||||
abuild_setcap_binary \
|
abuild_setcap_binary \
|
||||||
abuild_setcap_binary_with_option \
|
abuild_setcap_binary_with_option \
|
||||||
abuild_command_provides
|
abuild_command_provides \
|
||||||
|
abuild_gocache_dir \
|
||||||
|
abuild_cargo_home_dir
|
||||||
|
|
||||||
export ABUILD_SHAREDIR=$(atf_get_srcdir)/..
|
export ABUILD_SHAREDIR=$(atf_get_srcdir)/..
|
||||||
export ABUILD_CONF=/dev/null
|
export ABUILD_CONF=/dev/null
|
||||||
|
@ -513,7 +515,6 @@ abuild_git_ceiling_body() {
|
||||||
abuild
|
abuild
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
create_fake_du() {
|
create_fake_du() {
|
||||||
mkdir -p bin
|
mkdir -p bin
|
||||||
cat > bin/du <<-EOF
|
cat > bin/du <<-EOF
|
||||||
|
@ -957,3 +958,63 @@ abuild_command_provides_body() {
|
||||||
-o not-match:"provides = cmd:dir=1.0-r0" \
|
-o not-match:"provides = cmd:dir=1.0-r0" \
|
||||||
grep '^provides = ' pkg/.control.bin-in-path/.PKGINFO
|
grep '^provides = ' pkg/.control.bin-in-path/.PKGINFO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
abuild_gocache_dir_body() {
|
||||||
|
init_keys
|
||||||
|
mkdir gocache-dir
|
||||||
|
cd gocache-dir
|
||||||
|
cat >APKBUILD<<-EOF
|
||||||
|
# Maintainer: Joe User <juser@example.com>
|
||||||
|
pkgname="gocache-dir"
|
||||||
|
pkgver="1.0"
|
||||||
|
pkgrel=0
|
||||||
|
pkgdesc="Dummy test package"
|
||||||
|
url="https://gitlab.alpinelinux.org/alpine/aports"
|
||||||
|
arch="noarch"
|
||||||
|
license="MIT"
|
||||||
|
prepare() {
|
||||||
|
mkdir -p "\$builddir"
|
||||||
|
}
|
||||||
|
build() {
|
||||||
|
echo "dir:\$GOCACHE"
|
||||||
|
}
|
||||||
|
package() {
|
||||||
|
:
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
MOVE_CACHES=1 \
|
||||||
|
atf_check -s exit:0 \
|
||||||
|
-o match:"dir:.*/tmp/go" \
|
||||||
|
abuild prepare build
|
||||||
|
}
|
||||||
|
|
||||||
|
abuild_cargo_home_dir_body() {
|
||||||
|
init_keys
|
||||||
|
mkdir cargo-home-dir
|
||||||
|
cd cargo-home-dir
|
||||||
|
cat >APKBUILD<<-EOF
|
||||||
|
# Maintainer: Joe User <juser@example.com>
|
||||||
|
pkgname="cargo-home-dir"
|
||||||
|
pkgver="1.0"
|
||||||
|
pkgrel=0
|
||||||
|
pkgdesc="Dummy test package"
|
||||||
|
url="https://gitlab.alpinelinux.org/alpine/aports"
|
||||||
|
arch="noarch"
|
||||||
|
license="MIT"
|
||||||
|
prepare() {
|
||||||
|
mkdir -p "\$builddir"
|
||||||
|
}
|
||||||
|
build() {
|
||||||
|
echo "dir:\$CARGO_HOME"
|
||||||
|
}
|
||||||
|
package() {
|
||||||
|
:
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
MOVE_CACHES=1 \
|
||||||
|
atf_check -s exit:0 \
|
||||||
|
-o match:"dir:.*/tmp/cargo" \
|
||||||
|
abuild prepare build
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue