From nobody Fri Sep 19 01:19:59 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cSZRz4vsqz68LXg; Fri, 19 Sep 2025 01:19:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cSZRz2KnJz49jp; Fri, 19 Sep 2025 01:19:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758244799; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mUQxCZqLO4i+T44EiEsvv95Sq9SV66VaQtGBx6gDLzo=; b=sQT4hQr8Amd7L/QJtVCwzEnHt8hPeMa4orY5hKfWheugxFP2OBaojh+/LcCNvej+kDLXzx MR5HvyqruICy8lRy2vEH9nXVEDbi6daDNHTR85/a/P6moyeOffZtBa+JCqNZjkXPlxDB2p Mwc4FNmMm2bRYjcECDe0mEQs7U79pKkld6h1VCKu8Di0MaDHS7O9cTvTnZkBEHMwjftTcL m+jSqyi8hAsAmB8Umj7Zq/tDAhtRMUty0yYumgJoc42MP+g18nO/6nGsKnYyugIKbsqmwu tksX9lsW8bEiSSbJe3qcigjlRlsRMvb/HVSORcu9r+5TH8MVqYvgX0Qd4gbrrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758244799; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mUQxCZqLO4i+T44EiEsvv95Sq9SV66VaQtGBx6gDLzo=; b=bMt6U4HEo5IlD3g5ofPRJb95D9H8nQjG3GHWknmvsOD4j1VSzt4rSZ9huBxo+OQouFTp8X sOCP8YEbq/oWnPC1qF3qDntQe5PgI3CzlDZrE8x2NGKq6J9lqGApnjA+1ziV6StBO4RA3e GHre1bT3c9hvF+qZrCvTb1czCOvHjMI7CUxkm9ZBcuWoiS5sim679pChaU4ACY0oYzIpwy 8S1k5XP4liwLjoQZwVwpI+6H1j8t4WBBaIKWKUw0tcLbeC9xVD+6PoWL5fxiuIAccv6lYu I3o5XZHQ0/7io7J5j6RECb43BhXVCRjwkVUAJBAGUX0wHcKso1KWSSMY+QN38g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758244799; a=rsa-sha256; cv=none; b=XAP2+4XAi0mGVWTOkSlOhEnaOVdhpvofbFRuTxrSkPljV0A30PYHo1qvkuLgYAMKS+mSpM g1yRc2rlxqNY95p/qk3ZmCOkQ7PjPKKWD7xWxuwZ7sX5jSGsQ713Bvr7iP9an/xB4B1WB+ /djxuvK7ArrnWB23Vuptp58chEgvuH5WUHV4yLrJ/DSsLKG80J05HPOQT6l33j/EOotOC0 CCF0EG/gfGw6JXhRTTOkG+BFPf1P90Rd2ObHL7rYApORtmgsz5f00nFqyZnLhu3PQ45FLX RG6IpyCwFPzIgZyExSHqUtVnW/Jlt/3s+OTanz7+YGF6A1HD6oiqe8QnFCFRjQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4cSZRz1mMCzcRS; Fri, 19 Sep 2025 01:19:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58J1JxJR067271; Fri, 19 Sep 2025 01:19:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58J1Jxch067266; Fri, 19 Sep 2025 01:19:59 GMT (envelope-from git) Date: Fri, 19 Sep 2025 01:19:59 GMT Message-Id: <202509190119.58J1Jxch067266@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 6a31dbc16e65 - stable/15 - packages: Add minimal-jail set List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6a31dbc16e65299ff7972070ff20ce08f1868147 Auto-Submitted: auto-generated The branch stable/15 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=6a31dbc16e65299ff7972070ff20ce08f1868147 commit 6a31dbc16e65299ff7972070ff20ce08f1868147 Author: Lexi Winter AuthorDate: 2025-09-17 20:11:20 +0000 Commit: Lexi Winter CommitDate: 2025-09-19 01:17:28 +0000 packages: Add minimal-jail set This is minimal, but without bootloader, hardware and networking support that's typically not required in jails. This requires extending the 'set' annotation to be a comma-separated list, so that packages can be in multiple sets. MFC after: 3 seconds Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D52591 (cherry picked from commit 9b7bddfd082d1df2b4c97e7ec974d1d67e98a1de) --- release/packages/create-sets.sh | 10 ++++++---- release/packages/generate-ucl.lua | 31 ++++++++++++++++++------------ release/packages/sets/minimal-jail-dbg.ucl | 6 ++++++ release/packages/sets/minimal-jail.ucl | 6 ++++++ release/packages/ucl/at-all.ucl | 2 +- release/packages/ucl/caroot-all.ucl | 2 +- release/packages/ucl/certctl-all.ucl | 2 +- release/packages/ucl/clibs-all.ucl | 2 +- release/packages/ucl/cron-all.ucl | 2 +- release/packages/ucl/fetch-all.ucl | 2 +- release/packages/ucl/inetd-all.ucl | 2 +- release/packages/ucl/locales-all.ucl | 2 +- release/packages/ucl/newsyslog-all.ucl | 2 +- release/packages/ucl/periodic-all.ucl | 2 +- release/packages/ucl/pkg-bootstrap-all.ucl | 2 +- release/packages/ucl/rc-all.ucl | 2 +- release/packages/ucl/runtime-all.ucl | 2 +- release/packages/ucl/syslogd-all.ucl | 2 +- release/packages/ucl/utilities-all.ucl | 2 +- release/packages/ucl/vi-all.ucl | 2 +- release/packages/ucl/zoneinfo-all.ucl | 2 +- 21 files changed, 54 insertions(+), 33 deletions(-) diff --git a/release/packages/create-sets.sh b/release/packages/create-sets.sh index 6c034834672e..8c564ecfeb92 100755 --- a/release/packages/create-sets.sh +++ b/release/packages/create-sets.sh @@ -25,10 +25,12 @@ for pkg in "$repodir"/*.pkg; do set -- $(pkg query -F "$pkg" '%At %n %Av' | grep '^set ') pkgname="$2" - set="$3" - SETS="$SETS $set" - setvar="$(echo "$set" | tr - _)" - eval PKGS_${setvar}=\"\$PKGS_${setvar} $pkgname\" + sets="$(echo "$3" | tr , ' ')" + for set in $sets; do + SETS="$SETS $set" + setvar="$(echo "$set" | tr - _)" + eval PKGS_${setvar}=\"\$PKGS_${setvar} $pkgname\" + done done for set in $(echo $SETS | tr ' ' '\n' | sort | uniq); do diff --git a/release/packages/generate-ucl.lua b/release/packages/generate-ucl.lua index 211766067952..ea3743894740 100755 --- a/release/packages/generate-ucl.lua +++ b/release/packages/generate-ucl.lua @@ -166,12 +166,14 @@ if add_gen_dep(pkgname, pkggenname) then end -- --- Handle the 'set' annotation. +-- Handle the 'set' annotation, a comma-separated list of sets which this +-- package should be placed in. If it's not specified, the package goes +-- in the default set which is base. -- -- Ensure we have an annotations table to work with. obj["annotations"] = obj["annotations"] or {} -- If no set is provided, use the default set which is "base". -set = obj["annotations"]["set"] or "base" +sets = obj["annotations"]["set"] or "base" -- For subpackages, we may need to rewrite the set name. This is done a little -- differently from the normal pkg suffix processing, because we don't need sets -- to be as a granular as the base packages. @@ -181,27 +183,32 @@ set = obj["annotations"]["set"] or "base" -- However, lib32 debug symbols still go into their own package since they're -- quite large. if pkgname:match("%-dbg%-lib32$") then - set = "lib32-dbg" + sets = "lib32-dbg" elseif pkgname:match("%-lib32$") then - set = "lib32" + sets = "lib32" -- If this is a -dev package, put it in a single set called "devel" which -- contains all development files. Also include lib*-man packages, which -- contain manpages for libraries. Having a separate -dev for every -- set is not necessary, because generally you either want development -- support or you don't. elseif pkgname:match("%-dev$") or pkgname:match("^lib.*%-man$") then - set = "devel" + sets = "devel" -- Don't separate tests and tests-dbg into 2 sets, if the user wants tests -- they should be able to debug failures. -elseif set == "tests" then - set = set --- If this is a -dbg package, it goes in -dbg, which means the user can --- install debug symbols only for the sets they have installed. +elseif sets == "tests" then + sets = sets +-- If this is a -dbg package, put it in the -dbg subpackage of each set, +-- which means the user can install debug symbols only for the sets they +-- have installed. elseif pkgname:match("%-dbg$") then - set = set .. "-dbg" + local newsets = {} + for set in sets:gmatch("[^,]+") do + newsets[#newsets + 1] = set .. "-dbg" + end + sets = table.concat(newsets, ",") end --- Put our new set back into the package. -obj["annotations"]["set"] = set +-- Put our new sets back into the package. +obj["annotations"]["set"] = sets -- If PKG_NAME_PREFIX is provided, rewrite the names of dependency packages. -- We can't do this in UCL since variable substitution doesn't work in array diff --git a/release/packages/sets/minimal-jail-dbg.ucl b/release/packages/sets/minimal-jail-dbg.ucl new file mode 100644 index 000000000000..3f7df227d3a9 --- /dev/null +++ b/release/packages/sets/minimal-jail-dbg.ucl @@ -0,0 +1,6 @@ +comment = "Basic multi-user jail debugging symbols (metapackage)" + +desc = <