The branch main has been updated by ivy:

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

commit 237db83d02c8fb3a6292427990a92ca280f73177
Author:     Lexi Winter <i...@freebsd.org>
AuthorDate: 2025-07-07 13:39:39 +0000
Commit:     Lexi Winter <i...@freebsd.org>
CommitDate: 2025-07-15 05:12:44 +0000

    packages: handle suffixes in generate-ucl.lua
    
    Move handling of comment/desc suffixes from generate-ucl.sh to
    generate-ucl.lua.
    
    Reviewed by:    des, bapt
    Approved by:    des (mentor)
    Differential Revision:  https://reviews.freebsd.org/D50284
---
 release/packages/generate-ucl.lua | 72 ++++++++++++++++++++++++++++++---------
 release/packages/generate-ucl.sh  | 46 -------------------------
 2 files changed, 56 insertions(+), 62 deletions(-)

diff --git a/release/packages/generate-ucl.lua 
b/release/packages/generate-ucl.lua
index 0557e8e8cc23..3d91d11bc42f 100755
--- a/release/packages/generate-ucl.lua
+++ b/release/packages/generate-ucl.lua
@@ -6,14 +6,65 @@ generare-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
 variables, then writing the result to <destucl>.
-
-If COMMENT_SUFFIX or DESC_SUFFIX are set, append these to the generated comment
-and desc fields.  We do this here because there's no way to do it in
-template.ucl.
 ]]--
 
 local ucl = require("ucl")
 
+-- Give subpackages a special comment and description suffix to indicate what
+-- they contain, so e.g. "foo-man" has " (manual pages)" appended to its
+-- comment.  This avoids having to create a separate ucl files for every
+-- subpackage just to set this.
+--
+-- Note that this is not a key table because the order of the pattern matches
+-- is important.
+pkg_suffixes = {
+       {
+               "%-dev%-lib32$", "(32-bit development files)",
+               "This package contains development files for compiling "..
+               "32-bit applications on a 64-bit host."
+       },
+       {
+               "%-dbg%-lib32$", "(32-bit debugging symbols)",
+               "This package contains 32-bit external debugging symbols "..
+               "for use with a source-level debugger.",
+       },
+       {
+               "%-man%-lib32$", "(32-bit manual pages)",
+               "This package contains the online manual pages for 32-bit "..
+               "components on a 64-bit host.",
+       },
+       {
+               "%-lib32$", "(32-bit libraries)",
+               "This package contains 32-bit libraries for running 32-bit "..
+               "applications on a 64-bit host.",
+       },
+       {
+               "%-dev$", "(development files)",
+               "This package contains development files for "..
+               "compiling applications."
+       },
+       {
+               "%-man$", "(manual pages)",
+               "This package contains the online manual pages."
+       },
+       {
+               "%-dbg$", "(debugging symbols)",
+               "This package contains external debugging symbols for use "..
+               "with a source-level debugger.",
+       },
+}
+
+function add_suffixes(obj)
+       local pkgname = obj["name"]
+       for _,pattern in pairs(pkg_suffixes) do
+               if pkgname:match(pattern[1]) ~= nil then
+                       obj["comment"] = obj["comment"] .. " " .. pattern[2]
+                       obj["desc"] = obj["desc"] .. "\n\n" .. pattern[3]
+                       return
+               end
+       end
+end
+
 -- Hardcode a list of packages which don't get the automatic pkggenname
 -- dependency because the base package doesn't exist.  We should have a better
 -- way to handle this.
@@ -50,8 +101,6 @@ local pkgname = nil
 local pkggenname = nil
 local pkgprefix = nil
 local pkgversion = nil
-local comment_suffix = nil
-local desc_suffix = nil
 
 -- This parser is the output UCL we want to build.
 local parser = ucl.parser()
@@ -73,10 +122,6 @@ for i = 2, #arg - 2, 2 do
                pkggenname = varvalue
        elseif varname == "VERSION" and #varvalue > 0 then
                pkgversion = varvalue
-       elseif varname == "COMMENT_SUFFIX" and #varvalue > 0 then
-               comment_suffix = varvalue
-       elseif varname == "DESC_SUFFIX" and #varvalue > 0 then
-               desc_suffix = varvalue
        elseif varname == "PKG_NAME_PREFIX" and #varvalue > 0 then
                pkgprefix = varvalue
        end
@@ -118,12 +163,7 @@ if pkgprefix ~= nil and obj["deps"] ~= nil then
 end
 
 -- Add comment and desc suffix.
-if comment_suffix ~= nil then
-       obj["comment"] = obj["comment"] .. comment_suffix
-end
-if desc_suffix ~= nil then
-       obj["desc"] = obj["desc"] .. "\n\n" .. desc_suffix
-end
+add_suffixes(obj)
 
 -- Write the output file.
 local f,err = io.open(arg[#arg], "w")
diff --git a/release/packages/generate-ucl.sh b/release/packages/generate-ucl.sh
index 57fe181ec5bb..7b08c3a8c59d 100755
--- a/release/packages/generate-ucl.sh
+++ b/release/packages/generate-ucl.sh
@@ -2,37 +2,9 @@
 #
 #
 
-mancx=" (manual pages)"
-mandx="This package contains the online manual pages."
-
-lib32mancx=" (32-bit manual pages)"
-lib32mandx="This package contains the online manual pages for 32-bit components
-on a 64-bit host."
-
-lib32cx=" (32-bit libraries)"
-lib32dx="This package contains 32-bit libraries for running 32-bit 
applications on
-a 64-bit host."
-
-devcx=" (development files)"
-devdx="This package contains development files for compiling applications."
-
-dev32cx=" (32-bit development files)"
-dev32dx="This package contains development files for compiling 32-bit 
applications
-on a 64-bit host."
-
-dbgcx=" (debugging symbols)"
-dbgdx="This package contains external debugging symbols for use with a 
source-level
-debugger."
-
-dbg32cx=" (32-bit debugging symbols)"
-dbg32dx="This package contains 32-bit external debugging symbols for use with a
-source-level debugger."
-
 main() {
        outname=""
        origname=""
-       desc_suffix=""
-       comment_suffix=""
        debug=
        uclsource=
        while getopts "do:s:u:" arg; do
@@ -61,38 +33,24 @@ main() {
        case "${outname}" in
                *-dev)
                        outname="${outname%%-dev}"
-                       comment_suffix="$devcx"
-                       desc_suffix="$devdx"
                        ;;
                *-dbg)
                        outname="${outname%%-dbg}"
-                       comment_suffix="$dbgcx"
-                       desc_suffix="$dbgdx"
                        ;;
                *-dev-lib32)
                        outname="${outname%%-dev-lib32}"
-                       comment_suffix="$dev32cx"
-                       desc_suffix="$dev32dx"
                        ;;
                *-dbg-lib32)
                        outname="${outname%%-dbg-lib32}"
-                       comment_suffix="$dbg32cx"
-                       desc_suffix="$dbg32dx"
                        ;;
                *-man-lib32)
                        outname="${outname%%-man-lib32}"
-                       comment_suffix="$lib32mancx"
-                       desc_suffix="$lib32mandx"
                        ;;
                *-lib32)
                        outname="${outname%%-lib32}"
-                       comment_suffix="$lib32cx"
-                       desc_suffix="$lib32dx"
                        ;;
                *-man)
                        outname="${outname%%-man}"
-                       comment_suffix="$mancx"
-                       desc_suffix="$mandx"
                        ;;
                ${origname})
                        ;;
@@ -112,8 +70,6 @@ main() {
                echo "origname=${origname}"
                echo "srctree=${srctree}"
                echo "uclfile=${uclfile}"
-               echo "desc_suffix=${desc_suffix}"
-               echo "comment_suffix=${comment_suffix}"
                echo "vital=${vital}"
                echo "cp ${uclsource} -> ${uclfile}"
                echo 
"==============================================================="
@@ -128,8 +84,6 @@ main() {
                PKGNAME "${origname}" \
                PKGGENNAME "${outname}" \
                PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \
-               COMMENT_SUFFIX "${comment_suffix}" \
-               DESC_SUFFIX "$desc_suffix" \
                CAP_MKDB_ENDIAN "${cap_arg}" \
                PKG_WWW "${PKG_WWW}" \
                PKG_MAINTAINER "${PKG_MAINTAINER}" \

Reply via email to