Date: Fri, 19 Sep 2025 09:04:31 +0200 From: Baptiste Daroussin <bapt@freebsd.org> To: Colin Percival <cperciva@freebsd.org> Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 6b5adf33873a - main - Include a pkg package in the pkgbase repo Message-ID: <rcb7hnnxcifeiu2enjpvqoj5jatymne6etv6qqb5kve5ygkqqg@3jy4qwwhghir> In-Reply-To: <202509172239.58HMdOK9055924@gitrepo.freebsd.org> References: <202509172239.58HMdOK9055924@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed 17 Sep 22:39, Colin Percival wrote: > The branch main has been updated by cperciva: > > URL: https://cgit.FreeBSD.org/src/commit/?id=6b5adf33873a309523dc4e585ff08d70bb6c6f2f > > commit 6b5adf33873a309523dc4e585ff08d70bb6c6f2f > Author: Colin Percival <cperciva@FreeBSD.org> > AuthorDate: 2025-09-17 22:34:25 +0000 > Commit: Colin Percival <cperciva@FreeBSD.org> > CommitDate: 2025-09-17 22:34:25 +0000 > > Include a pkg package in the pkgbase repo > > It is essential that users be able to install the FreeBSD base system > from release media and have all the bits needed to update the FreeBSD > base system without touching the ports tree or pkg.freebsd.org. To > that end, resurrect (and heavily rewrite) the make-pkg-package.sh > script and hook it into the create-packages target; if /usr/ports > exists when building pkgbase packages, we'll also (cross)build pkg > and include it in the repository. > > Scripting for actually installing this package as part of the FreeBSD > installation process to come later, but I wanted this in the tree in > time to test it in this week's snapshots. > > MFC after: 1 day > Sponsored by: https://www.patreon.com/cperciva > --- > Makefile.inc1 | 6 ++++-- > release/scripts/make-pkg-package.sh | 28 ++++++++++++---------------- > 2 files changed, 16 insertions(+), 18 deletions(-) > > diff --git a/Makefile.inc1 b/Makefile.inc1 > index 97a0b00cc517..65631c2e8eb8 100644 > --- a/Makefile.inc1 > +++ b/Makefile.inc1 > @@ -2039,12 +2039,14 @@ update-packages: .PHONY > ${_+_}${MAKE} -C ${.CURDIR} ${PKGMAKEARGS} real-update-packages > > package-pkg: .PHONY > +.if exists(${PORTSDIR}) > rm -rf /tmp/ports.${TARGET} || : > - env ${WMAKEENV:Q} SRCDIR=${.CURDIR} PORTSDIR=${PORTSDIR} REVISION=${_REVISION} \ > + env ${WMAKEENV} SRCDIR=${.CURDIR} PORTSDIR=${PORTSDIR} REVISION=${_REVISION} \ > PKG_CMD=${PKG_CMD} PKG_VERSION=${PKG_VERSION} REPODIR=${REPODIR} \ > WSTAGEDIR=${WSTAGEDIR} \ > OSVERSION="${SRCRELDATE}" \ > sh ${.CURDIR}/release/scripts/make-pkg-package.sh > +.endif > > real-packages: stage-packages create-packages sign-packages .PHONY > > @@ -2127,7 +2129,7 @@ create-packages-source: _pkgbootstrap _repodir .PHONY > SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \ > create-source-packages > > -create-packages: .PHONY create-packages-world create-packages-kernel create-packages-source create-packages-sets > +create-packages: .PHONY create-packages-world create-packages-kernel create-packages-source package-pkg create-packages-sets > > create-source-src-package: _pkgbootstrap .PHONY > rm -f ${SSTAGEDIR}/src.plist 2>/dev/null || : > diff --git a/release/scripts/make-pkg-package.sh b/release/scripts/make-pkg-package.sh > index 68172c47f326..a0ac0fc16305 100755 > --- a/release/scripts/make-pkg-package.sh > +++ b/release/scripts/make-pkg-package.sh > @@ -1,26 +1,22 @@ > #!/bin/sh > -# > -# > > -# Simulate the build environment. > -eval $(make -C ${SRCDIR} TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} buildenvvars) > +# Simulate the build environment. Note that we need to unset some variables > +# which are set in the src tree since they have different (unwanted) effects > +# in the ports tree. > +SRC_PKG_VERSION=${PKG_VERSION} > +PKG_ABI=$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI) > +unset PKG_VERSION > +unset MAKEFLAGS > +unset PKGBASE > export WRKDIRPREFIX=/tmp/ports.${TARGET} > -export WSTAGEDIR=${WSTAGEDIR} > -export REPODIR=${REPODIR} > -export PKG_CMD=${PKG_CMD} > -export PKG_VERSION=${PKG_VERSION} > -export OSVERSION=${OSVERSION} > export WRKDIR=$(make -C ${PORTSDIR}/ports-mgmt/pkg -V WRKDIR) > > make -C ${PORTSDIR}/ports-mgmt/pkg TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ I am not sure I got this properly, but You probably want to add --sysroot=${WSTAGEDIR} to ensure pkg is linked to the proper libraries and use the right headers from the target? in particular since pkg uses __FreeBSD_version in some places. > CONFIGURE_ARGS="--host=$(uname -m)-portbld-freebsd${REVISION}" \ Best regards, Bapt
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?rcb7hnnxcifeiu2enjpvqoj5jatymne6etv6qqb5kve5ygkqqg>