summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2018-10-04 23:59:52 +0300
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2018-10-19 15:18:13 +0300
commitcf976c90ae418db9e708747bfdd9fd125bb910ee (patch)
tree84364cced6e8e1f3f90beb7df93e651a1db18a38
parent68b0b11cf688dc90fbd800ac5f9b5c1fdb08119c (diff)
downloadabuild-cf976c90ae418db9e708747bfdd9fd125bb910ee.tar.bz2
abuild-cf976c90ae418db9e708747bfdd9fd125bb910ee.tar.xz
abuild: init_root: enable network repos
-rw-r--r--abuild.in67
1 files changed, 43 insertions, 24 deletions
diff --git a/abuild.in b/abuild.in
index 32b84b6..05e916f 100644
--- a/abuild.in
+++ b/abuild.in
@@ -2124,10 +2124,40 @@ checksum() {
echo "sha512sums=\"$sha512sums\"" >>"$APKBUILD"
}
+get_git_version() {
+ expr "$(git symbolic-ref --short HEAD)" : '\([0-9]\+\(\.[0-9]\+\)*\)-'
+}
+
+configure_repos() {
+ local version
+ if version=$(get_git_version); then
+ version=v${version}
+ else
+ version=edge
+ fi
+
+ local repo_template=$APORTSDIR/$repo/.rootbld-repositories
+ [ -s "$repo_template" ] || die "rootbld: $repo_template does not exist"
+ (
+ for key in $(git config --list --name-only); do
+ k=${key#abuild.}
+ [ $k != $key ] && \
+ eval "export $k=\"$(git config --get $key)\""
+ done
+
+ export mirror version
+ [ "$mirror" ] || mirror=http://dl-cdn.alpinelinux.org/alpine
+
+ envsubst
+ echo "$REPODEST/$repo"
+ ) < "$repo_template" > "$1/etc/apk/repositories"
+}
+
init_root() {
mkdir -p "$1/etc/apk/keys"
cp /etc/abuild.conf /etc/group /etc/passwd "$1/etc"
- cp /etc/apk/keys/* "$1/etc/apk/keys"
+ cp /etc/apk/keys/* ${2:+/usr/share/apk/keys/$2/*} "$1/etc/apk/keys"
+ configure_repos "$1"
$SUDO_APK add --initdb --quiet --root "$1" ${2:+--arch $2}
}
@@ -2181,33 +2211,18 @@ rootbld() {
cp /etc/resolv.conf "$BUILD_ROOT/etc"
fi
- local version="edge" buildhost="edge" gitref
- if gitref="$(expr "$(git symbolic-ref --short HEAD)" : '\([0-9]\+\(\.[0-9]\+\)*\)-')"; then
- version=v${gitref}
- buildhost=${gitref/./-}
- fi
-
- local repo_template=$aportsgit/$repo/.rootbld-repositories
- [ -s "$repo_template" ] || die "rootbld: $repo_template does not exist"
- (
- for key in $(git config --list --name-only); do
- k=${key#abuild.}
- [ $k != $key ] && \
- eval "export $k=\"$(git config --get $key)\""
- done
-
- export mirror version
- [ "$mirror" ] || mirror=http://dl-cdn.alpinelinux.org/alpine
-
- envsubst
- echo "$REPODEST/$repo"
- ) < "$repo_template" > "$BUILD_ROOT/etc/apk/repositories"
-
init_root $BUILD_ROOT
calcdeps
$SUDO_APK add --root "$BUILD_ROOT" --update \
abuild alpine-base build-base git $hostdeps $builddeps
+ local buildhost
+ if buildhost=$(get_git_version); then
+ buildhost=${buildhost/./-}
+ else
+ buildhost=edge
+ fi
+
local bwrap_opts=""
options_has "net" || bwrap_opts="$bwrap_opts --unshare-net"
bwrap --unshare-ipc --unshare-uts $bwrap_opts \
@@ -2352,7 +2367,11 @@ deps() {
|| return 1
if [ -n "$CBUILDROOT" ]; then
[ -z "$_quiet" ] && msg "Installing for host:$hostdeps"
- [ -d "$CBUILDROOT" ] || init_root "$CBUILDROOT" $CTARGET_ARCH
+ if [ -d "$CBUILDROOT" ]; then
+ configure_repos "$CBUILDROOT"
+ else
+ init_root "$CBUILDROOT" $CTARGET_ARCH
+ fi
$SUDO_APK add $_quiet --root "$CBUILDROOT" --arch "$CTARGET_ARCH" --repository "$REPODEST/$repo" $apk_opt_wait \
--no-scripts --virtual .makedepends-$pkgname $hostdeps || return 1
fi