Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Oct 2025 00:36:29 GMT
From:      Colin Percival <cperciva@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: d0ff67db2908 - main - release: Publish pkgbase-repo.tar
Message-ID:  <202510040036.5940aTQp030167@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by cperciva:

URL: https://cgit.FreeBSD.org/src/commit/?id=d0ff67db2908a56b2f146963bb79f1a8e6283131

commit d0ff67db2908a56b2f146963bb79f1a8e6283131
Author:     Colin Percival <cperciva@FreeBSD.org>
AuthorDate: 2025-10-03 23:57:33 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2025-10-04 00:26:32 +0000

    release: Publish pkgbase-repo.tar
    
    This is a tarball containing the pkgbase repository for the release.
    
    Note: This is an uncompressed tarball, because all of its constituent
    .pkg files are already compressed; there's no point adding another
    layer of compression.
    
    Reviewed by:    ivy
    MFC after:      1 minute
    Sponsored by:   https://www.patreon.com/cperciva
    Differential Revision:  https://reviews.freebsd.org/D52899
---
 release/Makefile         | 14 +++++++++++++-
 release/Makefile.mirrors | 44 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 1 deletion(-)

diff --git a/release/Makefile b/release/Makefile
index dcff6855db50..12f5114f8b22 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -135,6 +135,9 @@ RELEASE_TARGETS+= mini-memstick.img
 IMAGES+=	memstick.img
 IMAGES+=	mini-memstick.img
 .endif
+.if !defined(NOPKGBASE) || empty(NOPKGBASE)
+RELEASE_TARGETS+= pkgbase-repo.tar
+.endif
 
 CLEANFILES=	packagesystem *.txz MANIFEST release ${IMAGES}
 .if defined(WITH_COMPRESSED_IMAGES) && !empty(WITH_COMPRESSED_IMAGES)
@@ -145,7 +148,7 @@ CLEANFILES+=	${I}.xz
 .if defined(WITH_DVD) && !empty(WITH_DVD)
 CLEANFILES+=	pkg-stage
 .endif
-CLEANDIRS=	dist pkgdb-dvd pkgdb-disc1 pkgbase-repo pkgbase-repo-dir ftp disc1 disc1-disc1 disc1-memstick bootonly bootonly-bootonly bootonly-memstick dvd
+CLEANDIRS=	dist pkgdb-dvd pkgdb-disc1 pkgbase-repo pkgbase-repo-dir ftp disc1 disc1-disc1 disc1-memstick bootonly bootonly-bootonly bootonly-memstick dvd pkgbase-repo.tar
 beforeclean:
 	chflags -R noschg .
 .include <bsd.obj.mk>
@@ -216,6 +219,9 @@ pkgbase-repo:
 	( ${IMAKE} -C ${WORLDDIR} packages REPODIR=${.OBJDIR}/pkgbase-repo \
 	    INCLUDE_PKG_IN_PKGBASE_REPO=YES BOOTSTRAP_PKG_FROM_PORTS=YES )
 
+pkgbase-repo.tar: pkgbase-repo
+	tar -cf pkgbase-repo.tar -C pkgbase-repo .
+
 pkgbase-repo-dir: pkgbase-repo
 	mkdir -p pkgbase-repo-dir
 	printf "FreeBSD-base: { url: "file://%s", enabled: yes }" \
@@ -465,6 +471,12 @@ release-install:
 	( cd ${DESTDIR} && sha512 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA512 )
 	( cd ${DESTDIR} && sha256 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA256 )
 .endif
+.if !defined (NOPKGBASE) || empty(NOPKGBASE)
+	mkdir -p ${DESTDIR}/pkgbase
+	cp -p pkgbase-repo.tar ${DESTDIR}/pkgbase/
+	( cd ${DESTDIR}/pkgbase && sha256 pkgbase-repo.tar > CHECKSUM.SHA256 )
+	( cd ${DESTDIR}/pkgbase && sha512 pkgbase-repo.tar > CHECKSUM.SHA512 )
+.endif
 
 .include "${.CURDIR}/Makefile.inc1"
 .include "${.CURDIR}/Makefile.vm"
diff --git a/release/Makefile.mirrors b/release/Makefile.mirrors
index 5e65bfbe8b3f..958ac7717616 100644
--- a/release/Makefile.mirrors
+++ b/release/Makefile.mirrors
@@ -63,6 +63,11 @@ STAGE_TARGETS+=		oci-images-stage
 OCI_DIR=		${TLD}/OCI-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
 .endif
 
+.if !defined(NOPKGBASE) || empty(NOPKGBASE)
+STAGE_TARGETS+=		pkgbase-repo-stage
+PKGBASE_DIR=		${TLD}/PKGBASE-REPOS/${REVISION}-${BRANCH}/${TARGET_ARCH}
+.endif
+
 CLEANFILES+=		${STAGE_TARGETS}
 CHECKSUM_FILES?=	SHA512 SHA256
 SNAP_SUFFIX!=		echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' '
@@ -366,5 +371,44 @@ oci-images-stage:
 . endfor
 .endif
 
+pkgbase-repo-stage:
+	mkdir -p ${PKGBASE_DIR}
+.if defined(SNAPSHOT) && !empty(SNAPSHOT)
+. if exists(${PKGBASE_DIR}/Latest)
+	rm -rf ${PKGBASE_DIR}/Latest
+. endif
+	mkdir -p ${PKGBASE_DIR}/Latest
+	mkdir -p ${PKGBASE_DIR}/${BUILDDATE}
+	cd ${RELEASEDIR}/pkgbase && \
+		mv pkgbase-repo.tar pkgbase-repo-${SNAP_SUFFIX}.tar
+	cp -p ${RELEASEDIR}/pkgbase/pkgbase-repo-${SNAP_SUFFIX}.tar \
+		${PKGBASE_DIR}/${BUILDDATE}/pkgbase-repo-${SNAP_SUFFIX}.tar
+	cd ${PKGBASE_DIR}/Latest && \
+		ln -s ../${BUILDDATE}/pkgbase-repo-${SNAP_SUFFIX}.tar \
+		pkgbase-repo.tar
+	cd ${RELEASEDIR}/pkgbase && rm -f CHECKSUM.*
+. for CHECKSUM in ${CHECKSUM_FILES}
+	cd ${RELEASEDIR}/pkgbase && \
+		${CHECKSUM:tl} pkgbase-repo-*.tar > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
+	cp -p ${RELEASEDIR}/pkgbase/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
+		${PKGBASE_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
+	cd ${PKGBASE_DIR}/Latest && \
+		ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
+		CHECKSUM.${CHECKSUM}
+. endfor
+.else # not snapshot
+. if exists(${PKGBASE_DIR}/Latest)
+	rm -rf ${PKGBASE_DIR}/Latest
+. endif
+	mkdir -p ${PKGBASE_DIR}/Latest
+	cp -p ${RELEASEDIR}/pkgbase/pkgbase-repo.tar \
+		${PKGBASE_DIR}/Latest/pkgbase-repo.tar
+. endfor
+. for CHECKSUM in ${CHECKSUM_FILES}
+	cp -p ${RELEASEDIR}/pkgbase/CHECKSUM.${CHECKSUM} \
+		${PKGBASE_DIR}/Latest/CHECKSUM.${CHECKSUM}
+. endfor
+.endif
+
 ftp-stage:	remove-old-bits ${STAGE_TARGETS}
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202510040036.5940aTQp030167>