aboutsummaryrefslogtreecommitdiff
path: root/release
diff options
context:
space:
mode:
Diffstat (limited to 'release')
-rw-r--r--release/Makefile33
-rw-r--r--release/Makefile.mirrors50
-rw-r--r--release/arm64/RPI.conf5
-rwxr-xr-xrelease/packages/generate-set-ucl.lua18
-rwxr-xr-xrelease/packages/generate-ucl.lua12
-rw-r--r--release/packages/set-template.ucl2
-rw-r--r--release/packages/sets/base-dbg.ucl2
-rw-r--r--release/packages/sets/base-jail-dbg.ucl2
-rw-r--r--release/packages/sets/base-jail.ucl3
-rw-r--r--release/packages/sets/base.ucl3
-rw-r--r--release/packages/sets/optional-dbg.ucl1
-rw-r--r--release/packages/sets/optional-jail-dbg.ucl1
-rw-r--r--release/packages/sets/optional-jail.ucl1
-rw-r--r--release/packages/sets/optional.ucl1
-rw-r--r--release/packages/ucl/at.ucl2
-rw-r--r--release/packages/ucl/bluetooth.ucl1
-rw-r--r--release/packages/ucl/bsdconfig.ucl1
-rw-r--r--release/packages/ucl/bsdinstall.ucl1
-rw-r--r--release/packages/ucl/caroot.ucl1
-rw-r--r--release/packages/ucl/certctl.ucl1
-rw-r--r--release/packages/ucl/clang.ucl2
-rw-r--r--release/packages/ucl/ctf-all.ucl2
-rw-r--r--release/packages/ucl/devd.ucl1
-rw-r--r--release/packages/ucl/fetch-all.ucl4
-rw-r--r--release/packages/ucl/ncurses-all.ucl4
-rw-r--r--release/packages/ucl/newsyslog.ucl1
-rw-r--r--release/packages/ucl/openssl-all.ucl2
-rw-r--r--release/packages/ucl/periodic.ucl1
-rw-r--r--release/packages/ucl/rc.ucl1
-rw-r--r--release/packages/ucl/rcmds.ucl1
-rw-r--r--release/packages/ucl/sendmail.ucl1
-rw-r--r--release/packages/ucl/tests-all.ucl3
-rw-r--r--release/packages/ucl/ufs-all.ucl2
-rw-r--r--release/packages/ucl/xz-all.ucl2
-rw-r--r--release/packages/ucl/yp.ucl1
-rw-r--r--release/packages/ucl/zfs-all.ucl2
-rw-r--r--release/scripts/make-oci-image.sh10
-rwxr-xr-xrelease/scripts/make-pkg-package.sh7
-rw-r--r--release/tools/ec2-builder.conf7
-rw-r--r--release/tools/ec2-small.conf7
-rw-r--r--release/tools/oci-image-runtime.conf4
-rw-r--r--release/tools/vagrant.conf25
-rw-r--r--release/tools/vmimage.subr27
43 files changed, 166 insertions, 92 deletions
diff --git a/release/Makefile b/release/Makefile
index 76a99ffdf3f3..13532097d56c 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -116,7 +116,10 @@ DISTRIBUTIONS+= ports.txz
DISTRIBUTIONS+= src.txz
.endif
-RELEASE_TARGETS= ftp
+RELEASE_TARGETS=
+.if !defined(NODISTSETS) || empty(NODISTSETS)
+RELEASE_TARGETS+= ftp
+.endif
IMAGES=
.if exists(${.CURDIR}/${TARGET}/mkisoimages.sh)
RELEASE_TARGETS+= cdrom
@@ -132,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)
@@ -142,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>
@@ -196,7 +202,7 @@ packagesystem: ${DISTRIBUTIONS}
sh ${.CURDIR}/scripts/make-manifest.sh $$(ls *.txz | grep -v container) > MANIFEST
touch ${.TARGET}
-.if !defined(NODISTSETS)
+.if !defined(NODISTSETS) || empty(NODISTSETS)
disc1: packagesystem
bootonly: packagesystem
dvd: packagesystem
@@ -213,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 }" \
@@ -242,7 +251,7 @@ disc1:
mtree -C -k type,mode,link,size | \
sed 's|^\.|./usr/freebsd-packages|g' >> ${.TARGET}/METALOG
.endif
-.if !defined(NODISTSETS)
+.if !defined(NODISTSETS) || empty(NODISTSETS)
# Copy MANIFEST to provide legacy dist checksums in both modes
mkdir -p ${.TARGET}/usr/freebsd-dist
echo "./usr/freebsd-dist type=dir uname=root gname=wheel mode=0755" >> ${.TARGET}/METALOG
@@ -295,7 +304,7 @@ bootonly:
MK_TOOLCHAIN=no \
MK_RESCUE=no MK_DICT=no \
MK_KERNEL_SYMBOLS=no MK_TESTS=no MK_DEBUG_FILES=no)
-.if !defined(NODISTSETS)
+.if !defined(NODISTSETS) || empty(NODISTSETS)
# Copy manifest only (no distfiles) to get checksums
mkdir -p ${.TARGET}/usr/freebsd-dist
cp MANIFEST ${.TARGET}/usr/freebsd-dist
@@ -347,7 +356,7 @@ dvd:
mtree -C -k type,mode,link,size | \
sed 's|^\.|./usr/freebsd-packages|g' >> ${.TARGET}/METALOG
.endif
-.if !defined(NODISTSETS)
+.if !defined(NODISTSETS) || empty(NODISTSETS)
# Copy MANIFEST to provide legacy dist checksums in both modes
mkdir -p ${.TARGET}/usr/freebsd-dist
echo "./usr/freebsd-dist type=dir uname=root gname=wheel mode=0755" >> ${.TARGET}/METALOG
@@ -439,9 +448,7 @@ release: real-release vm-release cloudware-release oci-release
release-done:
touch release
-real-release:
- ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} obj
- ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${RELEASE_TARGETS}
+real-release: obj .WAIT ${RELEASE_TARGETS}
install: release-install vm-install oci-install .WAIT cloud-install
@@ -449,7 +456,9 @@ release-install:
.if defined(DESTDIR) && !empty(DESTDIR)
mkdir -p ${DESTDIR}
.endif
+.if !defined(NODISTSETS) || empty(NODISTSETS)
cp -a ftp ${DESTDIR}/
+.endif
.if !empty(IMAGES)
.for I in ${IMAGES}
cp -p ${I} ${DESTDIR}/${OSRELEASE}-${I}
@@ -460,6 +469,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..ed9420e926ce 100644
--- a/release/Makefile.mirrors
+++ b/release/Makefile.mirrors
@@ -63,6 +63,13 @@ STAGE_TARGETS+= oci-images-stage
OCI_DIR= ${TLD}/OCI-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
.endif
+.if !defined(EMBEDDED) || empty(EMBEDDED)
+.if !defined(NOPKGBASE) || empty(NOPKGBASE)
+STAGE_TARGETS+= pkgbase-repo-stage
+PKGBASE_DIR= ${TLD}/PKGBASE-REPOS/${REVISION}-${BRANCH}/${TARGET_ARCH}
+.endif
+.endif
+
CLEANFILES+= ${STAGE_TARGETS}
CHECKSUM_FILES?= SHA512 SHA256
SNAP_SUFFIX!= echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' '
@@ -366,5 +373,48 @@ 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 ${OSRELEASE}-pkgbase-repo-${SNAP_SUFFIX}.tar
+ cp -p ${RELEASEDIR}/pkgbase/${OSRELEASE}-pkgbase-repo-${SNAP_SUFFIX}.tar \
+ ${PKGBASE_DIR}/${BUILDDATE}/${OSRELEASE}-pkgbase-repo-${SNAP_SUFFIX}.tar
+ cd ${PKGBASE_DIR}/Latest && \
+ ln -s ../${BUILDDATE}/${OSRELEASE}-pkgbase-repo-${SNAP_SUFFIX}.tar \
+ ${OSRELEASE}-pkgbase-repo.tar
+ cd ${RELEASEDIR}/pkgbase && rm -f CHECKSUM.*
+. for CHECKSUM in ${CHECKSUM_FILES}
+ cd ${RELEASEDIR}/pkgbase && \
+ ${CHECKSUM:tl} ${OSRELEASE}-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
+ cd ${RELEASEDIR}/pkgbase && \
+ mv pkgbase-repo.tar ${OSRELEASE}-pkgbase-repo.tar
+ cp -p ${RELEASEDIR}/pkgbase/${OSRELEASE}-pkgbase-repo.tar \
+ ${PKGBASE_DIR}/Latest/${OSRELEASE}-pkgbase-repo.tar
+. endfor
+. for CHECKSUM in ${CHECKSUM_FILES}
+ cd ${RELEASEDIR}/pkgbase && \
+ ${CHECKSUM:tl} ${OSRELEASE}-pkgbase-repo.tar > CHECKSUM.${CHECKSUM}
+ cp -p ${RELEASEDIR}/pkgbase/CHECKSUM.${CHECKSUM} \
+ ${PKGBASE_DIR}/Latest/CHECKSUM.${CHECKSUM}
+. endfor
+.endif
+
ftp-stage: remove-old-bits ${STAGE_TARGETS}
diff --git a/release/arm64/RPI.conf b/release/arm64/RPI.conf
index b973687c535d..d418dae28d3a 100644
--- a/release/arm64/RPI.conf
+++ b/release/arm64/RPI.conf
@@ -3,8 +3,9 @@
#
DTB_DIR="/usr/local/share/rpi-firmware"
-DTB="bcm2710-rpi-2-b.dtb bcm2710-rpi-3-b.dtb bcm2710-rpi-3-b-plus.dtb bcm2710-rpi-cm3.dtb \
- bcm2711-rpi-4-b.dtb bcm2711-rpi-cm4-io.dtb bcm2711-rpi-cm4.dtb"
+DTB="bcm2710-rpi-2-b.dtb bcm2710-rpi-3-b.dtb bcm2710-rpi-3-b-plus.dtb \
+ bcm2710-rpi-cm3.dtb bcm2710-rpi-zero-2-w.dtb bcm2711-rpi-4-b.dtb \
+ bcm2711-rpi-cm4-io.dtb bcm2711-rpi-cm4.dtb"
EMBEDDED_TARGET_ARCH="aarch64"
EMBEDDED_TARGET="arm64"
EMBEDDEDBUILD=1
diff --git a/release/packages/generate-set-ucl.lua b/release/packages/generate-set-ucl.lua
index b1b70053b02a..9ba7026b75df 100755
--- a/release/packages/generate-set-ucl.lua
+++ b/release/packages/generate-set-ucl.lua
@@ -1,7 +1,13 @@
#!/usr/libexec/flua
+--
+-- Copyright (c) 2024-2025 Baptiste Daroussin <bapt@FreeBSD.org>
+-- Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
+--
+-- SPDX-License-Identifier: BSD-2-Clause
+--
--[[ usage:
-generare-set-ucl.lua <template> [<variablename> <variablevalue>]
+generate-set-ucl.lua <template> [<variablename> <variablevalue>]
Generate the UCL for a set metapackage. The variables provided will be
substituted as UCL variables.
@@ -75,15 +81,15 @@ end
-- Add dependencies from SET_DEPENDS.
for dep in string.gmatch(pkgdeps, "[^%s]+") do
obj["deps"][dep] = {
- ["origin"] = "base"
+ ["origin"] = "base/"..dep
}
end
--- Add a version key to all dependencies, otherwise pkg doesn't like it.
+-- Add a version and origin key to all dependencies, otherwise pkg
+-- doesn't like it.
for dep, opts in pairs(obj["deps"]) do
- if obj["deps"][dep]["version"] == nil then
- obj["deps"][dep]["version"] = pkgversion
- end
+ obj["deps"][dep]["origin"] = obj["deps"][dep]["origin"] or "base/"..dep
+ obj["deps"][dep]["version"] = obj["deps"][dep]["version"] or pkgversion
end
-- If there are no dependencies, remove the deps key, otherwise pkg raises an
diff --git a/release/packages/generate-ucl.lua b/release/packages/generate-ucl.lua
index ea3743894740..19a9a95d5d38 100755
--- a/release/packages/generate-ucl.lua
+++ b/release/packages/generate-ucl.lua
@@ -1,7 +1,13 @@
#!/usr/libexec/flua
+--
+-- Copyright (c) 2024-2025 Baptiste Daroussin <bapt@FreeBSD.org>
+-- Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
+--
+-- SPDX-License-Identifier: BSD-2-Clause
+--
--[[ usage:
-generare-ucl.lua [<variablename> <variablevalue>]... <sourceucl> <destucl>
+generate-ucl.lua [<variablename> <variablevalue>]... <sourceucl> <destucl>
Build a package's UCL configuration by loading the template UCL file
<sourceucl>, replacing any $VARIABLES in the UCL based on the provided
@@ -161,7 +167,7 @@ if add_gen_dep(pkgname, pkggenname) then
end
obj["deps"][pkggenname] = {
["version"] = pkgversion,
- ["origin"] = "base"
+ ["origin"] = "base/"..pkgprefix.."-"..pkggenname,
}
end
@@ -217,6 +223,8 @@ if pkgprefix ~= nil and obj["deps"] ~= nil then
newdeps = {}
for dep, opts in pairs(obj["deps"]) do
local newdep = pkgprefix .. "-" .. dep
+ -- Make sure origin is set.
+ opts["origin"] = opts["origin"] or "base/"..newdep
newdeps[newdep] = opts
end
obj["deps"] = newdeps
diff --git a/release/packages/set-template.ucl b/release/packages/set-template.ucl
index b7ea2b830168..ff2c2d3e6057 100644
--- a/release/packages/set-template.ucl
+++ b/release/packages/set-template.ucl
@@ -4,7 +4,7 @@
name = "${PKG_NAME_PREFIX}-set-${PKGNAME}"
prefix = "/"
-origin = "base"
+origin = "base/${PKG_NAME_PREFIX}-set-${PKGNAME}"
categories = [ base ]
version = "${VERSION}"
maintainer = "${PKG_MAINTAINER}"
diff --git a/release/packages/sets/base-dbg.ucl b/release/packages/sets/base-dbg.ucl
index d9eeb2c49677..79e5de22522e 100644
--- a/release/packages/sets/base-dbg.ucl
+++ b/release/packages/sets/base-dbg.ucl
@@ -25,10 +25,8 @@ EOD
deps {
"set-minimal-dbg" {
version = "${VERSION}"
- origin = "base"
},
"set-devel-dbg" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/sets/base-jail-dbg.ucl b/release/packages/sets/base-jail-dbg.ucl
index 7996b9afbb21..56a130367fa3 100644
--- a/release/packages/sets/base-jail-dbg.ucl
+++ b/release/packages/sets/base-jail-dbg.ucl
@@ -25,10 +25,8 @@ EOD
deps {
"set-minimal-jail-dbg" {
version = "${VERSION}"
- origin = "base"
},
"set-devel-dbg" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/sets/base-jail.ucl b/release/packages/sets/base-jail.ucl
index d1dc17bc9860..88861510f954 100644
--- a/release/packages/sets/base-jail.ucl
+++ b/release/packages/sets/base-jail.ucl
@@ -28,14 +28,11 @@ EOD
deps {
"set-minimal-jail" {
version = "${VERSION}"
- origin = "base"
},
"set-optional-jail" {
version = "${VERSION}"
- origin = "base"
},
"set-devel" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/sets/base.ucl b/release/packages/sets/base.ucl
index 823e2342fab8..6a970668c13e 100644
--- a/release/packages/sets/base.ucl
+++ b/release/packages/sets/base.ucl
@@ -31,14 +31,11 @@ EOD
deps {
"set-minimal" {
version = "${VERSION}"
- origin = "base"
},
"set-optional" {
version = "${VERSION}"
- origin = "base"
},
"set-devel" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/sets/optional-dbg.ucl b/release/packages/sets/optional-dbg.ucl
index a221327518f9..882469c3ad57 100644
--- a/release/packages/sets/optional-dbg.ucl
+++ b/release/packages/sets/optional-dbg.ucl
@@ -26,6 +26,5 @@ EOD
deps {
"set-minimal-dbg" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/sets/optional-jail-dbg.ucl b/release/packages/sets/optional-jail-dbg.ucl
index 84c76fa407fe..54e7309abdf1 100644
--- a/release/packages/sets/optional-jail-dbg.ucl
+++ b/release/packages/sets/optional-jail-dbg.ucl
@@ -26,6 +26,5 @@ EOD
deps {
"set-minimal-jail-dbg" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/sets/optional-jail.ucl b/release/packages/sets/optional-jail.ucl
index da6d5fb00825..877023a10eed 100644
--- a/release/packages/sets/optional-jail.ucl
+++ b/release/packages/sets/optional-jail.ucl
@@ -29,6 +29,5 @@ EOD
deps {
"set-minimal-jail" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/sets/optional.ucl b/release/packages/sets/optional.ucl
index f50fa17e4297..8b44dfe1f3ea 100644
--- a/release/packages/sets/optional.ucl
+++ b/release/packages/sets/optional.ucl
@@ -28,6 +28,5 @@ EOD
deps {
"set-minimal" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/ucl/at.ucl b/release/packages/ucl/at.ucl
index 25724adfd7af..1e2495028b30 100644
--- a/release/packages/ucl/at.ucl
+++ b/release/packages/ucl/at.ucl
@@ -20,13 +20,11 @@ deps {
# atrun relies on cron to work.
"cron" {
version = "${VERSION}"
- origin = "base"
},
# at(1) passes the command to /bin/sh
"runtime" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/ucl/bluetooth.ucl b/release/packages/ucl/bluetooth.ucl
index c87d5e9c8420..e9c4787fdbfb 100644
--- a/release/packages/ucl/bluetooth.ucl
+++ b/release/packages/ucl/bluetooth.ucl
@@ -20,7 +20,6 @@ deps {
# rfcomm_pppd(8) uses ppp(8)
"ppp" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/ucl/bsdconfig.ucl b/release/packages/ucl/bsdconfig.ucl
index 752c352ae904..98981f65bea4 100644
--- a/release/packages/ucl/bsdconfig.ucl
+++ b/release/packages/ucl/bsdconfig.ucl
@@ -20,6 +20,5 @@ deps {
# bsdconfig is written in shell script, so it needs /bin/sh
"runtime" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/ucl/bsdinstall.ucl b/release/packages/ucl/bsdinstall.ucl
index 6e5cbce4e342..7fe8898b9427 100644
--- a/release/packages/ucl/bsdinstall.ucl
+++ b/release/packages/ucl/bsdinstall.ucl
@@ -20,6 +20,5 @@ deps {
# bsdinstall is written in shell script, so it needs /bin/sh
"runtime" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/ucl/caroot.ucl b/release/packages/ucl/caroot.ucl
index 4d2b52d300fc..e43c9d0771f2 100644
--- a/release/packages/ucl/caroot.ucl
+++ b/release/packages/ucl/caroot.ucl
@@ -1,7 +1,6 @@
deps {
"certctl": {
version = "${VERSION}"
- origin = "base"
}
}
scripts: {
diff --git a/release/packages/ucl/certctl.ucl b/release/packages/ucl/certctl.ucl
index f12158459c5e..d2b4790946ec 100644
--- a/release/packages/ucl/certctl.ucl
+++ b/release/packages/ucl/certctl.ucl
@@ -19,6 +19,5 @@
deps {
"openssl": {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/clang.ucl b/release/packages/ucl/clang.ucl
index 956b769a1ee7..3c15d9b7ef03 100644
--- a/release/packages/ucl/clang.ucl
+++ b/release/packages/ucl/clang.ucl
@@ -1,11 +1,9 @@
deps {
"lld" {
version = "${VERSION}"
- origin = "base"
}
"libcompiler_rt-dev" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/ctf-all.ucl b/release/packages/ucl/ctf-all.ucl
index 941990908373..970ac3ffb4fa 100644
--- a/release/packages/ucl/ctf-all.ucl
+++ b/release/packages/ucl/ctf-all.ucl
@@ -30,7 +30,7 @@ CTF is intended specifically for runtime program analyzers such as DTrace.
This package provides the ctfconvert(1), ctfdump(1) and ctfmerge(1) utilities
which are used to work with CTF data, and the libctf library which allows
-application to access CTF debugging information programatically.
+applications to access CTF debugging information programmatically.
EOD
licenses = [ "CDDL-1.0" ]
diff --git a/release/packages/ucl/devd.ucl b/release/packages/ucl/devd.ucl
index 8d83ab9ee020..c5fcfef1c368 100644
--- a/release/packages/ucl/devd.ucl
+++ b/release/packages/ucl/devd.ucl
@@ -20,6 +20,5 @@ deps {
# devd uses /bin/sh to invoke hooks.
"runtime" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/ucl/fetch-all.ucl b/release/packages/ucl/fetch-all.ucl
index d14f22cb74a5..5a3c0be826fa 100644
--- a/release/packages/ucl/fetch-all.ucl
+++ b/release/packages/ucl/fetch-all.ucl
@@ -19,13 +19,13 @@
comment = "Retrieve a file from a remote URL"
desc = <<EOD
-The fetch(1) utility retieves one or more files from a remote URL via
+The fetch(1) utility retrieves one or more files from a remote URL via
HTTP or FTP. fetch(1) includes support for TLS, HTTP proxies, .netrc
files, and includes a "mirror" mode which only downloads files which
are newer on the remote site.
Also provided is fetch(3), a library which allows applications to use
-this functionality programatically.
+this functionality programmatically.
EOD
annotations {
diff --git a/release/packages/ucl/ncurses-all.ucl b/release/packages/ucl/ncurses-all.ucl
index c0d52e046e78..3963eb98aa72 100644
--- a/release/packages/ucl/ncurses-all.ucl
+++ b/release/packages/ucl/ncurses-all.ucl
@@ -17,3 +17,7 @@ curses interface, and is also backward compatible with traditional BSD curses.
This package ships with a limited termcap database, but it is designed to use
a terminfo database provided by ports, such as in misc/terminfo-db.
EOD
+
+annotations {
+ set = "minimal,minimal-jail"
+}
diff --git a/release/packages/ucl/newsyslog.ucl b/release/packages/ucl/newsyslog.ucl
index b1dfa8253737..27b212a42b77 100644
--- a/release/packages/ucl/newsyslog.ucl
+++ b/release/packages/ucl/newsyslog.ucl
@@ -2,6 +2,5 @@ deps {
# newsyslog uses bzip2 to compress log files.
"bzip2" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/openssl-all.ucl b/release/packages/ucl/openssl-all.ucl
index 24a83ab6b9ba..4c393efe3b89 100644
--- a/release/packages/ucl/openssl-all.ucl
+++ b/release/packages/ucl/openssl-all.ucl
@@ -26,7 +26,7 @@ protocols such as HTTP, SMTP and DNS.
OpenSSL provides openssl(1), a command-line utility used for testing TLS
clients and servers, managing certificate used in TLS authentication, and
-performing various miscallenous cryptographic operations.
+performing various miscellaneous cryptographic operations.
Also provided are two libraries, libcrypto and libssl, which can be used by
applications to provide generic cryptographic functionality, and to implement
diff --git a/release/packages/ucl/periodic.ucl b/release/packages/ucl/periodic.ucl
index c8b8ac57c676..2a8a482f959f 100644
--- a/release/packages/ucl/periodic.ucl
+++ b/release/packages/ucl/periodic.ucl
@@ -19,6 +19,5 @@
deps {
"cron" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/rc.ucl b/release/packages/ucl/rc.ucl
index 1a734aaa187c..854963a81ca1 100644
--- a/release/packages/ucl/rc.ucl
+++ b/release/packages/ucl/rc.ucl
@@ -19,7 +19,6 @@
deps {
"runtime": {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/rcmds.ucl b/release/packages/ucl/rcmds.ucl
index b572ff25e6c3..de608487e07d 100644
--- a/release/packages/ucl/rcmds.ucl
+++ b/release/packages/ucl/rcmds.ucl
@@ -20,7 +20,6 @@ deps {
# The RPC daemons require rpcbind.
"utilities" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/sendmail.ucl b/release/packages/ucl/sendmail.ucl
index 62d0a1f2bc61..318fd5aabbe5 100644
--- a/release/packages/ucl/sendmail.ucl
+++ b/release/packages/ucl/sendmail.ucl
@@ -20,6 +20,5 @@ deps {
# sendmail requires make to build its configuration file.
"bmake": {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/tests-all.ucl b/release/packages/ucl/tests-all.ucl
index 1f3b027b7037..3ad2d0f50e6b 100644
--- a/release/packages/ucl/tests-all.ucl
+++ b/release/packages/ucl/tests-all.ucl
@@ -27,20 +27,17 @@ deps {
# Nearly all the tests require atf to run.
"atf": {
version = "${VERSION}"
- origin = "base"
},
# The test framework requires Kyua.
"kyua": {
version = "${VERSION}"
- origin = "base"
},
# Since the purpose of the tests is to test the base system, the base
# system must be installed.
"set-base": {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/ufs-all.ucl b/release/packages/ucl/ufs-all.ucl
index d9302bd0e3f9..b35e0f3d1dc7 100644
--- a/release/packages/ucl/ufs-all.ucl
+++ b/release/packages/ucl/ufs-all.ucl
@@ -32,7 +32,7 @@ utilities used to check the consistency of an existing filesystem after
an unclean shutdown or panic.
The libufs library is also provided, which allows applications to access
-UFS filesystems programatically.
+UFS filesystems programmatically.
EOD
annotations {
diff --git a/release/packages/ucl/xz-all.ucl b/release/packages/ucl/xz-all.ucl
index 16da8b76f0ac..8a7c33bcce46 100644
--- a/release/packages/ucl/xz-all.ucl
+++ b/release/packages/ucl/xz-all.ucl
@@ -21,7 +21,7 @@ comment = "LZMA2 data compression"
desc = <<EOD
xz compresses data using the LZMA2 data compression algorithm. This package
provides the front-end xz(1) utility, and the liblzma library which allows
-applications to use this functionality programatically.
+applications to use this functionality programmatically.
EOD
annotations {
diff --git a/release/packages/ucl/yp.ucl b/release/packages/ucl/yp.ucl
index be4310c85591..9babdbe98fb1 100644
--- a/release/packages/ucl/yp.ucl
+++ b/release/packages/ucl/yp.ucl
@@ -20,6 +20,5 @@ deps {
# YP requires bmake to rebuild the database.
"bmake": {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/zfs-all.ucl b/release/packages/ucl/zfs-all.ucl
index 70ebcdacdb57..9d166452188d 100644
--- a/release/packages/ucl/zfs-all.ucl
+++ b/release/packages/ucl/zfs-all.ucl
@@ -39,7 +39,7 @@ This package provides the zfs(8) and zpool(8) utilities used to manage
ZFS filesystems, the zfsd(8) self-healing daemon, and several other
utilities, as well as the runtime libraries used internally by ZFS
itself, and the libzfs_core library providing a stable interface for
-managing ZFS programatically.
+managing ZFS programmatically.
EOD
licenses = [ "CDDL-1.0" ]
diff --git a/release/scripts/make-oci-image.sh b/release/scripts/make-oci-image.sh
index 6e5ad69741f7..f8ea679bfd18 100644
--- a/release/scripts/make-oci-image.sh
+++ b/release/scripts/make-oci-image.sh
@@ -39,10 +39,18 @@ install_packages() {
local abi=$1; shift
local workdir=$1; shift
local rootdir=${workdir}/rootfs
+
+ # Make sure we have the keys needed for verifying package integrity if
+ # not already added by a parent image.
if [ ! -d ${rootdir}/usr/share/keys/pkg/trusted ]; then
mkdir -p ${rootdir}/usr/share/keys/pkg/trusted
fi
- cp /usr/share/keys/pkg/trusted/* ${rootdir}/usr/share/keys/pkg/trusted
+ for i in ${curdir}/../share/keys/pkg/trusted/pkg.*; do
+ if [ ! -f ${rootdir}/usr/share/keys/pkg/trusted/$(basename $i) ]; then
+ cp $i ${rootdir}/usr/share/keys/pkg/trusted
+ fi
+ done
+
# We install the packages and then remove repository metadata (keeping the
# metadata for what was installed). This trims more than 40Mb from the
# resulting image.
diff --git a/release/scripts/make-pkg-package.sh b/release/scripts/make-pkg-package.sh
index a1e006bd6964..3a1b163bd591 100755
--- a/release/scripts/make-pkg-package.sh
+++ b/release/scripts/make-pkg-package.sh
@@ -8,6 +8,13 @@ PKG_ABI=$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)
unset PKG_VERSION
unset MAKEFLAGS
unset PKGBASE
+# Ports interprets CROSS_TOOLCHAIN differently from src, and having this set
+# breaks the package-pkg build. For now, forcibly unset this and hope ports
+# can find a working compiler.
+if [ -n "$CROSS_TOOLCHAIN" ]; then
+ printf >&2 '%s: WARNING: CROSS_TOOLCHAIN will be ignored for the pkg build.\n' "$0"
+ unset CROSS_TOOLCHAIN
+fi
export WRKDIRPREFIX=/tmp/ports.${TARGET}
export DISTDIR=/tmp/distfiles
export WRKDIR=$(make -C ${PORTSDIR}/ports-mgmt/pkg I_DONT_CARE_IF_MY_BUILDS_TARGET_THE_WRONG_RELEASE=YES -V WRKDIR)
diff --git a/release/tools/ec2-builder.conf b/release/tools/ec2-builder.conf
index cf4276fc80ec..a55485fec0cd 100644
--- a/release/tools/ec2-builder.conf
+++ b/release/tools/ec2-builder.conf
@@ -7,17 +7,16 @@
export VMSIZE=8000m
# Flags to installworld/kernel: We don't want debug symbols (kernel or
-# userland), 32-bit libraries, tests, or the debugger.
+# userland), 32-bit libraries, or tests.
export INSTALLOPTS="WITHOUT_DEBUG_FILES=YES WITHOUT_KERNEL_SYMBOLS=YES \
- WITHOUT_LIB32=YES WITHOUT_TESTS=YES WITHOUT_LLDB=YES"
+ WITHOUT_LIB32=YES WITHOUT_TESTS=YES"
# Equivalent to INSTALLOPTS for pkgbase
vm_extra_filter_base_packages() {
grep -v \
-e '.*-dbg$' \
-e '.*-lib32$' \
- -e '^FreeBSD-tests.*' \
- -e '^FreeBSD-lldb.*'
+ -e '^FreeBSD-set-tests'
}
# Packages to install into the image we're creating. In addition to packages
diff --git a/release/tools/ec2-small.conf b/release/tools/ec2-small.conf
index 32d02cbb79e4..acaffbbc0c42 100644
--- a/release/tools/ec2-small.conf
+++ b/release/tools/ec2-small.conf
@@ -10,17 +10,16 @@
export VMSIZE=5000m
# Flags to installworld/kernel: We don't want debug symbols (kernel or
-# userland), 32-bit libraries, tests, or the debugger.
+# userland), 32-bit libraries, or tests.
export INSTALLOPTS="WITHOUT_DEBUG_FILES=YES WITHOUT_KERNEL_SYMBOLS=YES \
- WITHOUT_LIB32=YES WITHOUT_TESTS=YES WITHOUT_LLDB=YES"
+ WITHOUT_LIB32=YES WITHOUT_TESTS=YES"
# Equivalent to INSTALLOPTS for pkgbase
vm_extra_filter_base_packages() {
grep -v \
-e '.*-dbg$' \
-e '.*-lib32$' \
- -e '^FreeBSD-tests.*' \
- -e '^FreeBSD-lldb.*'
+ -e '^FreeBSD-set-tests'
}
# Packages to install into the image we're creating. In addition to packages
diff --git a/release/tools/oci-image-runtime.conf b/release/tools/oci-image-runtime.conf
index 93aad1e39250..db99e5640040 100644
--- a/release/tools/oci-image-runtime.conf
+++ b/release/tools/oci-image-runtime.conf
@@ -9,6 +9,10 @@ OCI_BASE_IMAGE=dynamic
oci_image_build() {
set_cmd ${workdir} /bin/sh
+ # The static image installed termcap.small into /usr/share/misc/termcap
+ # and we are replacing it with the full termcap file. We remove the
+ # small one first to avoid creating a .pkgsave file.
+ rm ${workdir}/rootfs/usr/share/misc/termcap
install_packages ${abi} ${workdir} \
FreeBSD-runtime \
FreeBSD-certctl \
diff --git a/release/tools/vagrant.conf b/release/tools/vagrant.conf
index 7ab0e1238693..5b0f38b740a6 100644
--- a/release/tools/vagrant.conf
+++ b/release/tools/vagrant.conf
@@ -14,14 +14,16 @@ export VM_EXTRA_PACKAGES="${VM_EXTRA_PACKAGES} shells/bash \
export VM_RC_LIST="firstboot_freebsd_update firstboot_pkgs growfs"
vagrant_common () {
- # The firstboot_pkgs rc.d script will download the repository
- # catalogue and install or update pkg when the instance first
- # launches, so these files would just be replaced anyway; removing
- # them from the image allows it to boot faster.
- env ASSUME_ALWAYS_YES=yes pkg -c ${DESTDIR} clean -y -a
- env ASSUME_ALWAYS_YES=yes pkg -c ${DESTDIR} delete -f -y pkg
- rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports
- rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports-kmods
+ if [ -z "${NO_ROOT}" ]; then
+ # The firstboot_pkgs rc.d script will download the repository
+ # catalogue and install or update pkg when the instance first
+ # launches, so these files would just be replaced anyway;
+ # removing them from the image allows it to boot faster.
+ pkg -c ${DESTDIR} clean -y -a
+ pkg -c ${DESTDIR} delete -f -y pkg
+ rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports
+ rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports-kmods
+ fi
# Vagrant instances use DHCP to get their network configuration.
echo 'ifconfig_DEFAULT="SYNCDHCP"' >> ${DESTDIR}/etc/rc.conf
@@ -40,8 +42,7 @@ vagrant_common () {
# Create the vagrant user with a password of vagrant
/usr/sbin/pw -R ${DESTDIR} \
groupadd vagrant -g 1001
- chroot ${DESTDIR} mkdir -p /home/vagrant
- /usr/sbin/pw -R ${DESTDIR} \
+ /usr/sbin/pw -R ${DESTDIR} -M ${DESTDIR}/METALOG \
useradd vagrant \
-m -M 0755 -w yes -n vagrant -u 1001 -g 1001 -G 0 \
-c 'Vagrant User' -d '/home/vagrant' -s '/bin/csh'
@@ -58,11 +59,11 @@ vagrant_common () {
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" > ${DESTDIR}/home/vagrant/.ssh/authorized_keys
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN1YdxBpNlzxDqfJyw/QKow1F+wvG9hXGoqiysfJOn5Y vagrant insecure public key" >> ${DESTDIR}/home/vagrant/.ssh/authorized_keys
chmod 600 ${DESTDIR}/home/vagrant/.ssh/authorized_keys
- metalog_add_data ./home/vagrant/.ssh/authorized_keys 0600
chmod 700 ${DESTDIR}/home/vagrant/.ssh
chown -R 1001 ${DESTDIR}/home/vagrant/.ssh
- echo "./home/vagrant/.ssh type=dir uid=1001 gid=1001 mode=0700" >> METALOG
+ echo "./home/vagrant/.ssh type=dir uid=1001 gid=1001 mode=0700" >> ${DESTDIR}/METALOG
+ echo "./home/vagrant/.ssh/authorized_keys type=file uid=1001 gid=1001 mode=0600" >> ${DESTDIR}/METALOG
# Reboot quickly, Don't wait at the panic screen
echo 'debug.trace_on_panic=1' >> ${DESTDIR}/etc/sysctl.conf
diff --git a/release/tools/vmimage.subr b/release/tools/vmimage.subr
index 3b0519c21dbc..067eb5ea48a8 100644
--- a/release/tools/vmimage.subr
+++ b/release/tools/vmimage.subr
@@ -70,15 +70,20 @@ vm_copy_base() {
return 0
}
-vm_filter_base_packages() {
- # Reads a list of all base system packages from stdin.
- # Writes a list of base system packages to install to stdout.
- grep -v -e '^FreeBSD-src.*' -e '^FreeBSD-kernel.*'
- # There are several kernel variants available in separate packages.
- # For VMs it is sufficient to install only the generic kernel.
- echo "FreeBSD-kernel-man"
- echo "FreeBSD-kernel-generic"
- echo "FreeBSD-kernel-generic-dbg"
+vm_base_packages_list() {
+ # Output a list of package sets equivalent to what we get from
+ # "installworld installkernel distribution", aka. the full base
+ # system.
+ for S in base kernels; do
+ echo FreeBSD-set-$S
+ echo FreeBSD-set-$S-dbg
+ done
+ case ${TARGET_ARCH} in
+ amd64 | aarch64 | powerpc64)
+ echo FreeBSD-set-lib32
+ echo FreeBSD-set-lib32-dbg
+ esac
+ echo FreeBSD-set-tests
}
vm_extra_filter_base_packages() {
@@ -99,8 +104,7 @@ vm_install_base() {
pkg_cmd="$pkg_cmd -o METALOG=METALOG"
fi
$pkg_cmd update
- selected=$($pkg_cmd rquery -U -r FreeBSD-base %n | \
- vm_filter_base_packages | vm_extra_filter_base_packages)
+ selected=$(vm_base_packages_list | vm_extra_filter_base_packages)
$pkg_cmd install -U -r FreeBSD-base $selected
else
cd ${WORLDDIR} && \
@@ -256,6 +260,7 @@ vm_extra_pkg_rmcache() {
if [ -n "${NO_ROOT}" ]; then
${PKG_CMD} \
-o ASSUME_ALWAYS_YES=yes \
+ -o INSTALL_AS_USER=yes \
-r ${DESTDIR} \
clean -y -a
else