git: d0ff67db2908 - main - release: Publish pkgbase-repo.tar
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 04 Oct 2025 00:36:29 UTC
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}