Page MenuHomeFreeBSD

D52453.id.diff
No OneTemporary

D52453.id.diff

diff --git a/release/Makefile.vm b/release/Makefile.vm
--- a/release/Makefile.vm
+++ b/release/Makefile.vm
@@ -138,6 +138,9 @@
EC2BASEIMG=${.OBJDIR}/${EC2-BASE${_FS:tu}${_FMT:tu}IMAGE} \
${WITHOUT_QEMU:DWITHOUT_QEMU=true} \
${NO_ROOT:DNO_ROOT=true} \
+ PKG_CMD=${PKG_CMD:Upkg} \
+ PKG_REPOS_DIR=${PKG_REPOS_DIR:U${.OBJDIR}/${.TARGET}/etc/pkg} \
+ PKG_REPO_NAME=${PKG_REPO_NAME:UFreeBSD-ports} \
PKG_INSTALL_EPOCH=${PKG_INSTALL_EPOCH:U${GITEPOCH}} \
${.CURDIR}/scripts/mk-vmimage.sh \
-C ${.CURDIR}/tools/vmimage.subr -d ${.OBJDIR}/${.TARGET} \
@@ -191,6 +194,9 @@
QEMUSTATIC=${QEMUSTATIC} \
${WITHOUT_QEMU:DWITHOUT_QEMU=true} \
${NO_ROOT:DNO_ROOT=true} \
+ PKG_CMD=${PKG_CMD:Upkg} \
+ PKG_REPOS_DIR=${PKG_REPOS_DIR:U${.OBJDIR}/${.TARGET}-${FORMAT}-${FS}/etc/pkg} \
+ PKG_REPO_NAME=${PKG_REPO_NAME:UFreeBSD-ports} \
PKG_INSTALL_EPOCH=${PKG_INSTALL_EPOCH:U${GITEPOCH}} \
${.CURDIR}/scripts/mk-vmimage.sh \
-C ${.CURDIR}/tools/vmimage.subr \
diff --git a/release/tools/vmimage.subr b/release/tools/vmimage.subr
--- a/release/tools/vmimage.subr
+++ b/release/tools/vmimage.subr
@@ -163,19 +163,32 @@
}
vm_extra_install_packages() {
- if [ -n "${WITHOUT_QEMU}" ]; then
- return 0
- fi
-
if [ -z "${VM_EXTRA_PACKAGES}" ]; then
return 0
fi
- chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \
- /usr/sbin/pkg bootstrap -y
- for p in ${VM_EXTRA_PACKAGES}; do
+ if [ -n "${NO_ROOT}" ]; then
+ for pkg in ${VM_EXTRA_PACKAGES}; do
+ INSTALL_AS_USER=yes \
+ ${PKG_CMD} \
+ -o METALOG=${DESTDIR}/METALOG.pkg \
+ -o REPOS_DIR=${PKG_REPOS_DIR} \
+ -o PKG_DBDIR=${DESTDIR}/var/db/pkg \
+ -r ${DESTDIR} \
+ install -y -r ${PKG_REPO_NAME} $pkg
+ done
+ metalog_add_data ./var/db/pkg/local.sqlite
+ else
+ if [ -n "${WITHOUT_QEMU}" ]; then
+ return 0
+ fi
+
chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \
- /usr/sbin/pkg install -y ${p}
- done
+ /usr/sbin/pkg bootstrap -y
+ for p in ${VM_EXTRA_PACKAGES}; do
+ chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \
+ /usr/sbin/pkg install -y ${p}
+ done
+ fi
return 0
}
@@ -219,6 +232,10 @@
buildfs() {
local md tmppool
+ if [ -f ${DESTDIR}/METALOG.pkg ]; then
+ cat ${DESTDIR}/METALOG.pkg >> ${DESTDIR}/METALOG
+ fi
+
case "${VMFS}" in
ufs)
cd ${DESTDIR} && ${MAKEFS} ${MAKEFSARGS} -o label=rootfs -o version=2 -o softupdates=1 \
diff --git a/share/man/man7/release.7 b/share/man/man7/release.7
--- a/share/man/man7/release.7
+++ b/share/man/man7/release.7
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 20, 2025
+.Dd September 11, 2025
.Dt RELEASE 7
.Os
.Sh NAME
@@ -286,6 +286,19 @@
Include base system packages for use with
.Xr pkg 8
on the install media, instead of legacy tarball distribution sets.
+.It Va PKG_CMD
+A path to the
+.Xr pkg 8
+executable to use when installing packages in release images as a non-root user.
+.It Va PKG_REPOS_DIR
+An optional path to a directory containing
+.Xr pkg 8
+repository configuration files.
+These configuration files will be used when installing packages in release
+images as a non-root user.
+.It Va PKG_REPO_NAME
+The name of the repository configuration to use when installing packages in
+release images as a non-root user.
.El
.Sh EMBEDDED BUILDS
The following

File Metadata

Mime Type
text/plain
Expires
Mon, Apr 6, 9:32 PM (5 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30999824
Default Alt Text
D52453.id.diff (3 KB)

Event Timeline