History log of /src/release/packages/generate-ucl.lua (Results 1 – 25 of 39)
Revision Date Author Comments
# a6ac2c98 08-Oct-2025 Lexi Winter <ivy@FreeBSD.org>

generate-ucl.lua: Add missing copyright header

Add a standard BSD license with a copyright claim for everyone who has
modified this file since it was added, excluding users who explicitly
declined a

generate-ucl.lua: Add missing copyright header

Add a standard BSD license with a copyright claim for everyone who has
modified this file since it was added, excluding users who explicitly
declined attribution.

MFC after: 3 days
Reviewed by: ifreund_freebsdfoundation.org, imp, bapt, markj, emaste
Differential Revision: https://reviews.freebsd.org/D52881

show more ...


# a507a702 08-Oct-2025 Lexi Winter <ivy@FreeBSD.org>

packages: Set dependency origin in generate-ucl.lua

Commit 822fd5606748 changed the origin of packages from "base"
to "base/<package name>", but the old origin was still used for
dependencies.

Asid

packages: Set dependency origin in generate-ucl.lua

Commit 822fd5606748 changed the origin of packages from "base"
to "base/<package name>", but the old origin was still used for
dependencies.

Aside from being wrong, this confuses pkg <= 2.3.1 and causes
"pkg info -d" to show the dependencies as "<pkgname>-(null)"
instead of the correct version string.

Remove the explicit origin from dependencies in the UCL files,
and instead populate this during the build in generate-ucl.lua.
In the (very unlikely) case that an explicit origin is still
needed, don't overwrite one if it's already present.

MFC after: 1 day
Fixes: 822fd5606748 ("pkgbase: set origin for each packages as base/FreeBSD-*")
Reported by: bapt
Reviewed by: cperciva, bapt
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D52892

show more ...


# 9e6cea12 05-Oct-2025 Jose Luis Duran <jlduran@FreeBSD.org>

release: packages: Fix typos

Reviewed by: cperciva
Approved by: emaste (mentor)
MFC after: 1 day
Differential Revision: https://reviews.freebsd.org/D52917


# 9b7bddfd 17-Sep-2025 Lexi Winter <ivy@FreeBSD.org>

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

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

show more ...


# 36edc501 16-Sep-2025 Isaac Freund <ifreund@freebsdfoundation.org>

packages: remove tests from base set

Create a new tests package set to hold the tests, which are not useful
to all users and don't belong in the base set.

Reviewed by: emaste, ivy
Sponsored by: The

packages: remove tests from base set

Create a new tests package set to hold the tests, which are not useful
to all users and don't belong in the base set.

Reviewed by: emaste, ivy
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D52574

show more ...


# 66f36c36 12-Sep-2025 Lexi Winter <ivy@FreeBSD.org>

packages: Add meta-package sets

Add several metapackages which contain no files themselves, but depend
on other packages. This allows the user to install a system by using
a set like "FreeBSD-set-m

packages: Add meta-package sets

Add several metapackages which contain no files themselves, but depend
on other packages. This allows the user to install a system by using
a set like "FreeBSD-set-minimal" instead of having to know which
specific packages are required, and it means if we add more package
in the future, existing installations will get them automatically as
long as they were installed using a set.

The defined sets are significantly less granular than the actual
packages; the assumption is that users who want a very specific set of
packages installed can do that manually, while sets are intended more
for typical users who just want to install FreeBSD.

The following sets are defined:

* minimal: the set of packages required to boot the system and bring
up a multi-user UNIX system. This includes hardware support,
networking (wireless, DHCP), basic functionality like syslogd, cron
and periodic. It does not include a kernel, because the kernels are
quite large and the user might want to use a custom kernel.

sendmail and DMA are not included in minimal. Since we provide two
MTAs, the user should select which one they want, or install one from
ports. sshd is not included because it's not required for the base
system, and the user might want to install it from ports.

Some other significant subsystems (e.g. NFS, Kerberos) are also not
included.

The minimal set does not include any libraries itself, since we rely
on dependencies to pull these in. This implies it doesn't include
library manpages, which is fine, since users won't want manpages for
libraries unless they've also installed the development packages.

* devel: the compiler toolchain for building software, along with all
"-dev" packages which include header files and static libraries.

* lib32: 32-bit compatibility packages. This includes both runtime
and development packages.

* kernels: the kernel packages. For freebsd.org builds, this will be
GENERIC, GENERIC-DEBUG, etc., for custom builds it will be whatever
was set in $KERNCONF.

* base: everything else; this includes the entire base system.

For each set, also generate a <setname>-dbg set containing the debug
packages for the set.

The sets are built along with the rest of the packages using a new
script called create-sets.sh, which examines the "set" annotation in
each package and puts it in the appropriate set. This is in
anticipation of the later "groups" feature appearing in pkg itself, at
which point we can simply replace the set annotation with the group.

MFC after: 3 days
Reviewed by: imp, bapt
Differential Revision: https://reviews.freebsd.org/D52412

show more ...


# 929f5966 22-Aug-2025 Lexi Winter <ivy@FreeBSD.org>

packages: Improve handling of -lib packages

For some packages (OpenSSL, Kerberos) we want to ship runtime libraries
in a separate package, e.g. openssl and openssl-lib. Currently this is
done using

packages: Improve handling of -lib packages

For some packages (OpenSSL, Kerberos) we want to ship runtime libraries
in a separate package, e.g. openssl and openssl-lib. Currently this is
done using PACKAGE=openssl-lib, but that creates packages with strange
names like openssl-lib-lib32.

Instead, add a new LIB_PACKAGE option to bsd.lib.mk that causes runtime
libraries to be placed in a new -lib subpackage. This significantly
improves the set of packages we create; for example, OpenSSL goes from:

FreeBSD-openssl
FreeBSD-openssl-dbg
FreeBSD-openssl-lib
FreeBSD-openssl-lib-dbg
FreeBSD-openssl-lib-dbg-lib32
FreeBSD-openssl-lib-dev
FreeBSD-openssl-lib-dev-lib32
FreeBSD-openssl-lib-lib32
FreeBSD-openssl-lib-man
FreeBSD-openssl-man

to:

FreeBSD-openssl
FreeBSD-openssl-dbg
FreeBSD-openssl-dbg-lib32
FreeBSD-openssl-dev
FreeBSD-openssl-dev-lib32
FreeBSD-openssl-lib
FreeBSD-openssl-lib32
FreeBSD-openssl-man

While here, move /usr/bin/krb5-config and /usr/bin/compile_et into
the kerberos-dev package.

Reviewed by: des
Differential Revision: https://reviews.freebsd.org/D51925

show more ...


# caddfcd5 25-Jul-2025 Lexi Winter <ivy@FreeBSD.org>

share/man: Move many manpages to more correct packages

At the moment, all the manpages in share/man are in the utilities-man
package. Move some of them to the package they should actually be in,
us

share/man: Move many manpages to more correct packages

At the moment, all the manpages in share/man are in the utilities-man
package. Move some of them to the package they should actually be in,
using the new MANGROUPS feature.

Move all of section 3 to clibs-man. Although some of these are from
/usr/include/sys rather than libc, you can't practically use them
without libc, and clibs-man is where the libc manpages live already.

Move all of sections 4 and 9 to a new kernel-man package, except for
atf-test-case.4 which goes to tests-man. atf-test-case.4 is in the
wrong section, but this needs to be fixed upstream.

kernel-man requires special handling in generate-ucl.lua since it's
got a -man suffix but doesn't want the ' (manual pages)' automatic
suffix. For now, fix this by adding a list of packages that don't
get automatic suffixes.

Reviewed by: ifreund_freebsdfoundation.org, manu, emaste
Differential Revision: https://reviews.freebsd.org/D51504

show more ...


# 237db83d 07-Jul-2025 Lexi Winter <ivy@FreeBSD.org>

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

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

show more ...


# d9c11f07 07-Jul-2025 Lexi Winter <ivy@FreeBSD.org>

packages: handle dependencies in ucl

For packages with specific dependencies, add the dependencies in their
UCL files instead of listing them in generate-ucl.sh.

generate-ucl.sh has logic to add au

packages: handle dependencies in ucl

For packages with specific dependencies, add the dependencies in their
UCL files instead of listing them in generate-ucl.sh.

generate-ucl.sh has logic to add automatic subpackage dependencies, so
e.g. "FreeBSD-foo-dev" depends on "FreeBSD-foo". Move this into
generate-ucl.lua instead.

This means we no longer need to pre-process the UCL in generate-ucl.sh,
and we can undo the hack where it calls generate-ucl.lua with the same
filename as both input and output file.

Reviewed by: des, bapt
Approved by: des (mentor)
Differential Revision: https://reviews.freebsd.org/D50283

show more ...


# e64ad232 07-Jul-2025 Lexi Winter <ivy@FreeBSD.org>

packages: move ucl files to a subdirectory

We want to have a UCL file for every package, to set fields like
comment, desc, license, etc.; to avoid cluttering release/packages with
~200 new files, mo

packages: move ucl files to a subdirectory

We want to have a UCL file for every package, to set fields like
comment, desc, license, etc.; to avoid cluttering release/packages with
~200 new files, move these to the ucl/ directory.

Add a better description for the yp package to demonstrate how this will
work in practice.

Clean up the handling of the package comment suffix for generated
packages (dev, lib32, etc.) and do the UCL modifications in
generate-ucl.lua, so we don't overwrite the ucl's comment.

Add a long-form suffix to the description for generated packages to
explain what they do.

Eventually, we should require the ucl file exists (try=false) to prevent
people accidentally creating new packages with a typo, but for now, keep
the ucl optional.

Reviewed by: kevans, des, bapt, emaste
Approved by: kevans (mentor), des (mentor)
Differential Revision: https://reviews.freebsd.org/D50160

show more ...


# df84bd48 25-Jun-2025 Mark Johnston <markj@FreeBSD.org>

release: Sort keys in generate-ucl.lua

When writing out the UCL file containing a package's metadata, metadata
values consisting of key-value pairs were not sorted. For instance, in
the certctl pac

release: Sort keys in generate-ucl.lua

When writing out the UCL file containing a package's metadata, metadata
values consisting of key-value pairs were not sorted. For instance, in
the certctl package we could have either

"deps": {
"FreeBSD-openssl": {
...
},
"FreeBSD-caroot": {
...
},
}

or

"deps": {
"FreeBSD-caroot": {
...
},
"FreeBSD-openssl": {
...
},
}

This breaks reproducibility.

Use the undocumented third parameter to libucl's to_format() to request
recursive sorting of keys.

Reviewed by: manu, bapt
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D51021

show more ...


# f8e46fd6 31-Jan-2024 Baptiste Daroussin <bapt@FreeBSD.org>

pkgbase: rework certctl package to only run rehash on the main package

Rework how ucl manifest are generated leveraging ucl features and flua

now the ucl generation is done via a lua script which u

pkgbase: rework certctl package to only run rehash on the main package

Rework how ucl manifest are generated leveraging ucl features and flua

now the ucl generation is done via a lua script which uses libucl to
ingest the template and use variables as defined in its command line.

the template will include only if it exist a ucl file named after the
package name which will complement the template or overwrite what was
defined in the template if defined in this specific ucl file

this allows to overwrite license, but add script only to the packages
who actually needs them.

As a results the post install scripts are now only added to the right
package and not also added to the subpackages like -man or -dev

Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D44374

show more ...


# a6ac2c98 08-Oct-2025 Lexi Winter <ivy@FreeBSD.org>

generate-ucl.lua: Add missing copyright header

Add a standard BSD license with a copyright claim for everyone who has
modified this file since it was added, excluding users who explicitly
declined a

generate-ucl.lua: Add missing copyright header

Add a standard BSD license with a copyright claim for everyone who has
modified this file since it was added, excluding users who explicitly
declined attribution.

MFC after: 3 days
Reviewed by: ifreund_freebsdfoundation.org, imp, bapt, markj, emaste
Differential Revision: https://reviews.freebsd.org/D52881

show more ...


# a507a702 08-Oct-2025 Lexi Winter <ivy@FreeBSD.org>

packages: Set dependency origin in generate-ucl.lua

Commit 822fd5606748 changed the origin of packages from "base"
to "base/<package name>", but the old origin was still used for
dependencies.

Asid

packages: Set dependency origin in generate-ucl.lua

Commit 822fd5606748 changed the origin of packages from "base"
to "base/<package name>", but the old origin was still used for
dependencies.

Aside from being wrong, this confuses pkg <= 2.3.1 and causes
"pkg info -d" to show the dependencies as "<pkgname>-(null)"
instead of the correct version string.

Remove the explicit origin from dependencies in the UCL files,
and instead populate this during the build in generate-ucl.lua.
In the (very unlikely) case that an explicit origin is still
needed, don't overwrite one if it's already present.

MFC after: 1 day
Fixes: 822fd5606748 ("pkgbase: set origin for each packages as base/FreeBSD-*")
Reported by: bapt
Reviewed by: cperciva, bapt
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D52892

show more ...


# 9e6cea12 05-Oct-2025 Jose Luis Duran <jlduran@FreeBSD.org>

release: packages: Fix typos

Reviewed by: cperciva
Approved by: emaste (mentor)
MFC after: 1 day
Differential Revision: https://reviews.freebsd.org/D52917


# 9b7bddfd 17-Sep-2025 Lexi Winter <ivy@FreeBSD.org>

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

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

show more ...


# 36edc501 16-Sep-2025 Isaac Freund <ifreund@freebsdfoundation.org>

packages: remove tests from base set

Create a new tests package set to hold the tests, which are not useful
to all users and don't belong in the base set.

Reviewed by: emaste, ivy
Sponsored by: The

packages: remove tests from base set

Create a new tests package set to hold the tests, which are not useful
to all users and don't belong in the base set.

Reviewed by: emaste, ivy
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D52574

show more ...


# 66f36c36 12-Sep-2025 Lexi Winter <ivy@FreeBSD.org>

packages: Add meta-package sets

Add several metapackages which contain no files themselves, but depend
on other packages. This allows the user to install a system by using
a set like "FreeBSD-set-m

packages: Add meta-package sets

Add several metapackages which contain no files themselves, but depend
on other packages. This allows the user to install a system by using
a set like "FreeBSD-set-minimal" instead of having to know which
specific packages are required, and it means if we add more package
in the future, existing installations will get them automatically as
long as they were installed using a set.

The defined sets are significantly less granular than the actual
packages; the assumption is that users who want a very specific set of
packages installed can do that manually, while sets are intended more
for typical users who just want to install FreeBSD.

The following sets are defined:

* minimal: the set of packages required to boot the system and bring
up a multi-user UNIX system. This includes hardware support,
networking (wireless, DHCP), basic functionality like syslogd, cron
and periodic. It does not include a kernel, because the kernels are
quite large and the user might want to use a custom kernel.

sendmail and DMA are not included in minimal. Since we provide two
MTAs, the user should select which one they want, or install one from
ports. sshd is not included because it's not required for the base
system, and the user might want to install it from ports.

Some other significant subsystems (e.g. NFS, Kerberos) are also not
included.

The minimal set does not include any libraries itself, since we rely
on dependencies to pull these in. This implies it doesn't include
library manpages, which is fine, since users won't want manpages for
libraries unless they've also installed the development packages.

* devel: the compiler toolchain for building software, along with all
"-dev" packages which include header files and static libraries.

* lib32: 32-bit compatibility packages. This includes both runtime
and development packages.

* kernels: the kernel packages. For freebsd.org builds, this will be
GENERIC, GENERIC-DEBUG, etc., for custom builds it will be whatever
was set in $KERNCONF.

* base: everything else; this includes the entire base system.

For each set, also generate a <setname>-dbg set containing the debug
packages for the set.

The sets are built along with the rest of the packages using a new
script called create-sets.sh, which examines the "set" annotation in
each package and puts it in the appropriate set. This is in
anticipation of the later "groups" feature appearing in pkg itself, at
which point we can simply replace the set annotation with the group.

MFC after: 3 days
Reviewed by: imp, bapt
Differential Revision: https://reviews.freebsd.org/D52412

show more ...


# 929f5966 22-Aug-2025 Lexi Winter <ivy@FreeBSD.org>

packages: Improve handling of -lib packages

For some packages (OpenSSL, Kerberos) we want to ship runtime libraries
in a separate package, e.g. openssl and openssl-lib. Currently this is
done using

packages: Improve handling of -lib packages

For some packages (OpenSSL, Kerberos) we want to ship runtime libraries
in a separate package, e.g. openssl and openssl-lib. Currently this is
done using PACKAGE=openssl-lib, but that creates packages with strange
names like openssl-lib-lib32.

Instead, add a new LIB_PACKAGE option to bsd.lib.mk that causes runtime
libraries to be placed in a new -lib subpackage. This significantly
improves the set of packages we create; for example, OpenSSL goes from:

FreeBSD-openssl
FreeBSD-openssl-dbg
FreeBSD-openssl-lib
FreeBSD-openssl-lib-dbg
FreeBSD-openssl-lib-dbg-lib32
FreeBSD-openssl-lib-dev
FreeBSD-openssl-lib-dev-lib32
FreeBSD-openssl-lib-lib32
FreeBSD-openssl-lib-man
FreeBSD-openssl-man

to:

FreeBSD-openssl
FreeBSD-openssl-dbg
FreeBSD-openssl-dbg-lib32
FreeBSD-openssl-dev
FreeBSD-openssl-dev-lib32
FreeBSD-openssl-lib
FreeBSD-openssl-lib32
FreeBSD-openssl-man

While here, move /usr/bin/krb5-config and /usr/bin/compile_et into
the kerberos-dev package.

Reviewed by: des
Differential Revision: https://reviews.freebsd.org/D51925

show more ...


# caddfcd5 25-Jul-2025 Lexi Winter <ivy@FreeBSD.org>

share/man: Move many manpages to more correct packages

At the moment, all the manpages in share/man are in the utilities-man
package. Move some of them to the package they should actually be in,
us

share/man: Move many manpages to more correct packages

At the moment, all the manpages in share/man are in the utilities-man
package. Move some of them to the package they should actually be in,
using the new MANGROUPS feature.

Move all of section 3 to clibs-man. Although some of these are from
/usr/include/sys rather than libc, you can't practically use them
without libc, and clibs-man is where the libc manpages live already.

Move all of sections 4 and 9 to a new kernel-man package, except for
atf-test-case.4 which goes to tests-man. atf-test-case.4 is in the
wrong section, but this needs to be fixed upstream.

kernel-man requires special handling in generate-ucl.lua since it's
got a -man suffix but doesn't want the ' (manual pages)' automatic
suffix. For now, fix this by adding a list of packages that don't
get automatic suffixes.

Reviewed by: ifreund_freebsdfoundation.org, manu, emaste
Differential Revision: https://reviews.freebsd.org/D51504

show more ...


# 237db83d 07-Jul-2025 Lexi Winter <ivy@FreeBSD.org>

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

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

show more ...


# d9c11f07 07-Jul-2025 Lexi Winter <ivy@FreeBSD.org>

packages: handle dependencies in ucl

For packages with specific dependencies, add the dependencies in their
UCL files instead of listing them in generate-ucl.sh.

generate-ucl.sh has logic to add au

packages: handle dependencies in ucl

For packages with specific dependencies, add the dependencies in their
UCL files instead of listing them in generate-ucl.sh.

generate-ucl.sh has logic to add automatic subpackage dependencies, so
e.g. "FreeBSD-foo-dev" depends on "FreeBSD-foo". Move this into
generate-ucl.lua instead.

This means we no longer need to pre-process the UCL in generate-ucl.sh,
and we can undo the hack where it calls generate-ucl.lua with the same
filename as both input and output file.

Reviewed by: des, bapt
Approved by: des (mentor)
Differential Revision: https://reviews.freebsd.org/D50283

show more ...


# e64ad232 07-Jul-2025 Lexi Winter <ivy@FreeBSD.org>

packages: move ucl files to a subdirectory

We want to have a UCL file for every package, to set fields like
comment, desc, license, etc.; to avoid cluttering release/packages with
~200 new files, mo

packages: move ucl files to a subdirectory

We want to have a UCL file for every package, to set fields like
comment, desc, license, etc.; to avoid cluttering release/packages with
~200 new files, move these to the ucl/ directory.

Add a better description for the yp package to demonstrate how this will
work in practice.

Clean up the handling of the package comment suffix for generated
packages (dev, lib32, etc.) and do the UCL modifications in
generate-ucl.lua, so we don't overwrite the ucl's comment.

Add a long-form suffix to the description for generated packages to
explain what they do.

Eventually, we should require the ucl file exists (try=false) to prevent
people accidentally creating new packages with a typo, but for now, keep
the ucl optional.

Reviewed by: kevans, des, bapt, emaste
Approved by: kevans (mentor), des (mentor)
Differential Revision: https://reviews.freebsd.org/D50160

show more ...


# df84bd48 25-Jun-2025 Mark Johnston <markj@FreeBSD.org>

release: Sort keys in generate-ucl.lua

When writing out the UCL file containing a package's metadata, metadata
values consisting of key-value pairs were not sorted. For instance, in
the certctl pac

release: Sort keys in generate-ucl.lua

When writing out the UCL file containing a package's metadata, metadata
values consisting of key-value pairs were not sorted. For instance, in
the certctl package we could have either

"deps": {
"FreeBSD-openssl": {
...
},
"FreeBSD-caroot": {
...
},
}

or

"deps": {
"FreeBSD-caroot": {
...
},
"FreeBSD-openssl": {
...
},
}

This breaks reproducibility.

Use the undocumented third parameter to libucl's to_format() to request
recursive sorting of keys.

Reviewed by: manu, bapt
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D51021

show more ...


12