Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/freebsd/poudriere.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Drewery <bryan@shatow.net>2021-05-07 00:36:53 +0300
committerBryan Drewery <bryan@shatow.net>2021-05-07 00:37:27 +0300
commit15548b8a692af3c8ce1da5652feb2439709611f8 (patch)
treeb9df5ba4943ade62cd0b6aa7238921063e1ae17f
parent5ce4843c50245c8117a841a66eed986ab40efd22 (diff)
download_from_repo: Handle bootstrapping pkg and its symlink better
-rw-r--r--src/share/poudriere/common.sh20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/share/poudriere/common.sh b/src/share/poudriere/common.sh
index 323f7a71..f2c924b5 100644
--- a/src/share/poudriere/common.sh
+++ b/src/share/poudriere/common.sh
@@ -2994,11 +2994,13 @@ jail_cleanup() {
download_from_repo() {
[ "${PWD}" = "${MASTERMNT}/.p" ] || \
err 1 "download_from_repo requires PWD=${MASTERMNT}/.p"
- local pkgname originspec _ignored
+ local pkgname originspec _ignored pkg_bin pkgname
- if ! ensure_pkg_installed; then
- msg "pkg package missing, skipping fetching of packages"
- return
+ if ensure_pkg_installed; then
+ pkg_bin="${PKG_BIN}"
+ else
+ # Will bootstrap
+ pkg_bin="pkg"
fi
msg "Prefetching missing packages from pkg+http://pkg.freebsd.org/\${ABI}/${PACKAGE_BRANCH}"
cat >> "${MASTERMNT}/etc/pkg/poudriere.conf" <<-EOF
@@ -3013,8 +3015,16 @@ download_from_repo() {
[ -f "${MASTERMNT}/packages/All/${pkgname}.${PKG_EXT}" ] || \
echo "${pkgname}"
done | JNETNAME="n" injail xargs \
- env -i ASSUME_ALWAYS_YES=yes pkg fetch -o /packages
+ env -i ASSUME_ALWAYS_YES=yes ${pkg_bin} fetch -o /packages
+ # Ensure pkg has a proper symlink
remount_packages -o ro
+ # Bootstrapped. Need to setup symlinks.
+ if [ "${pkg_bin}" = "pkg" ]; then
+ pkgname=$(injail pkg query %n-%v pkg)
+ mkdir -p "${PACKAGES}/Latest"
+ ln -fhs "../All/${pkgname}.${PKG_EXT}" \
+ "${PACKAGES}/Latest/pkg.${PKG_EXT}"
+ fi
}
# return 0 if the package dir exists and has packages, 0 otherwise