Page MenuHomeFreeBSD

khorben (Pierre Pronchery)
User

Projects

User Details

User Since
Apr 26 2023, 1:30 PM (181 w, 4 d)

Recent Activity

Thu, Oct 8

khorben added a comment to D60441: Generate SBOM files for each ports.

Besides my comment above, I wonder if we want to apply a different namespace to the SBOM files generated for base (in D56474 and D60352), or if it should be up to the user to set the correct PKG_CONFIG_LIBDIR. With pkgbase coming, we may want to be able to express dependencies on components from the base system anyway.
Should I change the naming in the base system?
Should we align names between ports and the base system? I can picture cases like expat/libexpat/libbsdxml, curl/libcurl, openssl{36,41,42} etc to be tricky.

Thu, Oct 8, 10:01 PM

Mon, Oct 5

khorben updated the diff for D60352: SBOM: import SBOM meta-data.

This adds copyright information for lib/libexpat (aka libbsdxml).

Mon, Oct 5, 12:46 AM
khorben added a comment to D56474: Generate SBOM files as part of the build.

The reasoning is to have one SBOM per package and per third-party project. In practice this is not really possible, because if a project exposes a library in addition to itself (e.g., libssl and libcrypto for OpenSSL) we still need to easily be able to express the dependency on OpenSSL, or at least on a specific component of OpenSSL.

In the current version of this proposal for the generation framework, dependencies are tracked automatically. When including internal libraries in this mechanism, a single project like wpa_supplicant gets 16 SBOM files in addition to itself (e.g., libwpatls, libwpapasn, libwpadrivers...). From what I understand of the INTERNALLIB flag, these libraries are not meant to be re-used by other projects. Therefore I have reflected this here, by excluding such libraries from the automatic dependency list (by using _INTERNALLIBS as per src.libnames.mk).

In this example, wpa_supplicant still gets its corresponding SBOM, and is shipped in a single package without an additional library package, so I think it makes sense to stick to a single SBOM.

With this said, if your project wants to express a dependency on an internal library specifically, it is possible to override SBOM_REQUIRES to list it there. As things currently are, this will probably require the creation of a corresponding .pc file for this library, which can be done with the creation of a Makefile.sbom file in the directory of that library.

Let me know if this is still not clear, if it looks good enough for now, or if I should modify anything in any way.

Do you know if INTERNALLIBS also encompass the libprivate* libs? Because this libs should be exposed in the SBOM IMO.

Mon, Oct 5, 12:43 AM
khorben requested review of D60352: SBOM: import SBOM meta-data.
Mon, Oct 5, 12:10 AM

Tue, Sep 29

khorben added a comment to D56474: Generate SBOM files as part of the build.

Dependencies on internal libraries are now ignored; in the context of SBOMs, they are useless duplicates of information.

I may have missed some aspect of the reasoning here. Could you explain how we express dependency on internal libraries then?

Tue, Sep 29, 5:01 PM

Mon, Sep 28

khorben updated the diff for D56474: Generate SBOM files as part of the build.

Dependencies on internal libraries are now ignored; in the context of SBOMs, they are useless duplicates of information.

Mon, Sep 28, 7:29 PM

Fri, Sep 25

khorben updated the diff for D56474: Generate SBOM files as part of the build.

This update adds support for libraries installing multiple instances under different names, through the use of SYMLINKS. This is the case for lib/ncurses/ncurses for instance, which builds and installs libncursesw, but also aliases it as libncurses, libcursesw, and libcurses.

Fri, Sep 25, 9:17 PM
khorben added a comment to D56474: Generate SBOM files as part of the build.
In D56474#1375885, @mat wrote:
In D56474#1369872, @mat wrote:
  1. the framework would generate a ${PKGBASE}.pc file during staging, put it in, say, /usr/local/share/sbom/pc and add it to the package.

I don't think this intermediate ${PKGBASE}.pc file needs to be kept.

  1. a pkg trigger would run a script on install to run bomtool on the pc file and generate a .spdx file in /usr/local/share/sbom/spdx-2.2, and run spdxtool to generate the .jsonld file in /usr/local/share/sbom/spdx-3.0.1.
  2. another pkg trigger would remove the .jsonld and the .spdx files on deinstall.

Why not simply generate the .jsonld and .spdx files during package creation, and include them in the plist?
Then there is no need for any triggers.

Well, say, port devel/foo 1.0 builds a binary that depends on libbar.so that comes from devel/bar 1.0. If the SBOM files are generated at build time, the ones for foo will contain the version of bar that foo was built with.
Now bar goes to 1.1 where abi is still compatible, and the so version stays the same, foo will probably be rebuilt on the builders (but that will probably change in the near future) you run pkg upgrade, and only bar gets upgraded, then you have foo 1.0 and bar 1.1, foo's SBOM files still reference bar 1.0.

Note that this is not a corner case example, it happens something like hundreds of time at each package builds.

So, we either need triggers that rebuild all the SBOM files from the .pc files after each install/upgrade, or a new port that does the generation and that runs from a crontab, or that you run when you need the SBOM files.

It seems better to have a trigger do this so the SBOM say consistent with what is installed.

Fri, Sep 25, 9:11 PM

Wed, Sep 23

khorben added a comment to D56474: Generate SBOM files as part of the build.
In D56474#1369872, @mat wrote:
In D56474#1369278, @mat wrote:

I have been thinking about sbom for ports a lot the past week, and this gives me a good idea of which way I should head into.

Awesome!

As a package set is built incrementally, I am wondering if the sbom of a port needs to include the software it has been built with, for example, a port may need ninja, yacc or gettext to build, but not to run.

Wed, Sep 23, 1:07 PM

Tue, Sep 22

khorben abandoned D59670: release: escape spaces in filenames with METALOG.

This bug is being fixed in pkg instead at https://github.com/freebsd/pkg/issues/2755, with an ongoing review for the fix at https://github.com/freebsd/pkg/pull/2754.

Tue, Sep 22, 12:57 AM

Sep 14 2026

khorben added a comment to D59670: release: escape spaces in filenames with METALOG.
In D59670#1369462, @ivy wrote:

i'm curious why we have files with spaces in on the release to begin with. where do those come from?

Sep 14 2026, 11:15 PM
khorben added inline comments to D56474: Generate SBOM files as part of the build.
Sep 14 2026, 5:53 PM
khorben added a comment to D56474: Generate SBOM files as part of the build.
In D56474#1369278, @mat wrote:

I have been thinking about sbom for ports a lot the past week, and this gives me a good idea of which way I should head into.

Sep 14 2026, 5:46 PM
khorben added a comment to D59670: release: escape spaces in filenames with METALOG.

Adding pkg for review, since this might really be a bug with the -o METALOG option in pkg(8).

Sep 14 2026, 5:41 PM
khorben added a reviewer for D59670: release: escape spaces in filenames with METALOG: pkg.
Sep 14 2026, 5:40 PM
khorben requested review of D59670: release: escape spaces in filenames with METALOG.
Sep 14 2026, 5:37 PM

Aug 22 2026

khorben updated the diff for D56474: Generate SBOM files as part of the build.
  • Fixed an issue looking up dependencies between SBOM files
  • Added an SBOM file for libpkgconf to illustrate and test dependencies
  • Added support for SCRIPTS and SHLIB
Aug 22 2026, 6:04 PM

Aug 17 2026

khorben updated the diff for D56474: Generate SBOM files as part of the build.

With this new version of the SBOM generation framework, I have introduced the following changes:

Aug 17 2026, 9:19 PM

Jul 27 2026

khorben accepted D58441: rpcinfo: Fix buffer overflows.
Jul 27 2026, 4:38 PM
khorben added inline comments to D58441: rpcinfo: Fix buffer overflows.
Jul 27 2026, 4:25 PM
khorben added inline comments to D58441: rpcinfo: Fix buffer overflows.
Jul 27 2026, 3:45 PM

Jul 17 2026

khorben added a comment to D56474: Generate SBOM files as part of the build.
In D56474#1336929, @ivy wrote:

I don't really see how this is going to stay up-to-date: this seems to depend on developers remembering to update the file each time they add a dependency.

i agree and i object to landing this as-is; this simply isn't a workable solution.

when the original SBOM proposal was announced, i was disappointed when FF declared that pkgbase was out-of-scope for that work, but it seems like this and pkgbase and trying to solve similar problems when it comes to dependencies. can we not find a solution that works for both without requiring manual upkeep?

Jul 17 2026, 2:28 PM

Jul 14 2026

khorben updated the diff for D56474: Generate SBOM files as part of the build.

No longer build bomtool(1) and spdxtool(1) with NO_SHARED in the tooling phase. (Reported by imp@, thanks!)

Jul 14 2026, 4:16 PM
khorben updated the diff for D56474: Generate SBOM files as part of the build.

This should fix the cross-compilation of libpkgconf while building bomtool(1) and spdxtool(1) as tools.

Jul 14 2026, 2:56 PM
khorben added a comment to D56474: Generate SBOM files as part of the build.

I just saw that this breaks cross-compilation, when building libpkgconf early for bomtool(1) and spdxtool(1) as tools for SBOM generation:

Jul 14 2026, 2:25 PM
khorben added inline comments to D56474: Generate SBOM files as part of the build.
Jul 14 2026, 1:57 PM
khorben updated the diff for D56474: Generate SBOM files as part of the build.

Generate SPDX files in version 3.0.1 as well by default, now that spdxtool(1) has been imported into the base system.
Sets the correct version of FreeBSD automatically into the SBOM files generated for FreeBSD's own software.

Jul 14 2026, 1:48 PM
khorben added inline comments to D58034: usr.bin/pkgconf: import the test suite.
Jul 14 2026, 7:59 AM
khorben updated the diff for D58034: usr.bin/pkgconf: import the test suite.

Removed use of NO_SHARED for the test binaries.

Jul 14 2026, 7:57 AM

Jul 13 2026

khorben added a comment to D58034: usr.bin/pkgconf: import the test suite.

Are the tests all passing now?

Jul 13 2026, 5:34 AM
khorben updated the diff for D58034: usr.bin/pkgconf: import the test suite.

Copied missing data.
Registered the missing test directories in etc/mtree/BSD.tests.dist.
Forced a C locale to avoid the UTF-8 test. (Original test file removed from our import because of UTF-8 filename)

Jul 13 2026, 5:34 AM

Jul 10 2026

khorben updated the diff for D58034: usr.bin/pkgconf: import the test suite.

Now copying most of the test data required: only 2 tests do not pass on my local setup (the spdxtool binary is required and I have not installed it yet).

Jul 10 2026, 6:18 PM

Jul 8 2026

khorben updated the diff for D58034: usr.bin/pkgconf: import the test suite.

Also hooked the serialisation test for spdxtool.

Jul 8 2026, 9:32 PM
khorben updated the diff for D58034: usr.bin/pkgconf: import the test suite.

Added the SPDX license header.
Added discovery mechanism for the location of the test executables.

Jul 8 2026, 7:35 AM

Jul 4 2026

khorben updated the diff for D58034: usr.bin/pkgconf: import the test suite.

Imported more tests from the 2.9.93 release.
Some still remain to be integrated, like for spdxtool specifically.

Jul 4 2026, 8:56 PM
khorben updated the diff for D58034: usr.bin/pkgconf: import the test suite.

Fixed inconsistent indentation in etc/mtree/BSD.tests.dist.

Jul 4 2026, 7:04 PM
khorben requested review of D58034: usr.bin/pkgconf: import the test suite.
Jul 4 2026, 1:36 AM

Jul 2 2026

khorben committed rGc146f5ae308e: pkgconf: determine the default paths dynamically (authored by khorben).
pkgconf: determine the default paths dynamically
Jul 2 2026, 2:48 AM
khorben closed D57246: pkgconf: determine the default paths dynamically.
Jul 2 2026, 2:48 AM

Jul 1 2026

khorben committed rG592efe252472: Merge commit '0cf7106da9f36671ef62142c27de98eee9d874d6' into khorben/pkgconf-2. (authored by khorben).
Merge commit '0cf7106da9f36671ef62142c27de98eee9d874d6' into khorben/pkgconf-2.
Jul 1 2026, 12:27 AM
khorben committed rG43b1ade21e22: pkgconf: match the update to version 2.9.93 (authored by khorben).
pkgconf: match the update to version 2.9.93
Jul 1 2026, 12:27 AM
khorben closed D57953: pkgconf: match the update to version 2.9.93.
Jul 1 2026, 12:27 AM

Jun 30 2026

khorben updated the diff for D57953: pkgconf: match the update to version 2.9.93.
  • Update wording for packages/pkgconf/pkgconf.ucl, as per Mark's suggestion.
Jun 30 2026, 8:14 PM
khorben updated the diff for D57953: pkgconf: match the update to version 2.9.93.
  • List SRCS and INCS with one line per file, as per Mark's suggestion.
  • Clarify where the information was gathered from.
Jun 30 2026, 8:11 PM
khorben updated the test plan for D57953: pkgconf: match the update to version 2.9.93.
Jun 30 2026, 6:39 PM

Jun 29 2026

khorben updated the summary of D57953: pkgconf: match the update to version 2.9.93.
Jun 29 2026, 9:58 PM
khorben updated the diff for D57953: pkgconf: match the update to version 2.9.93.

Build a missing file for spdxtool(1).

Jun 29 2026, 9:41 PM
khorben requested review of D57953: pkgconf: match the update to version 2.9.93.
Jun 29 2026, 8:09 PM
khorben abandoned D57837: Vendor import of pkgconf 2.9.90.

Imported in ebcc78644e0cbc4141807c0887ef8d902cb91bb4.

Jun 29 2026, 5:57 AM
khorben committed rG0cf7106da9f3: Vendor import of pkgconf 2.9.93 (authored by khorben).
Vendor import of pkgconf 2.9.93
Jun 29 2026, 5:34 AM
khorben committed rGb0fc1b7a2fe8: Vendor import of pkgconf 2.9.92 (authored by khorben).
Vendor import of pkgconf 2.9.92
Jun 29 2026, 5:34 AM
khorben committed rGebcc78644e0c: Vendor import of pkgconf 2.9.90 (authored by khorben).
Vendor import of pkgconf 2.9.90
Jun 29 2026, 5:34 AM
khorben closed D57890: Vendor import of pkgconf 2.9.93.
Jun 29 2026, 5:34 AM
khorben committed rGeaa637963bcf: Vendor import of pkgconf 2.9.91 (authored by khorben).
Vendor import of pkgconf 2.9.91
Jun 29 2026, 5:34 AM
khorben closed D57856: Vendor import of pkgconf 2.9.92.
Jun 29 2026, 5:34 AM
khorben closed D57855: Vendor import of pkgconf 2.9.91.
Jun 29 2026, 5:34 AM

Jun 26 2026

khorben added reviewers for D57890: Vendor import of pkgconf 2.9.93: emaste, markj.
Jun 26 2026, 5:44 PM
khorben requested review of D57890: Vendor import of pkgconf 2.9.93.
Jun 26 2026, 5:42 PM

Jun 25 2026

khorben requested review of D57856: Vendor import of pkgconf 2.9.92.
Jun 25 2026, 10:38 PM
khorben requested review of D57855: Vendor import of pkgconf 2.9.91.
Jun 25 2026, 10:28 PM
khorben updated the diff for D57837: Vendor import of pkgconf 2.9.90.

Removed a test folder in tests/lib1 which broke the generation of source packages (UTF-8).

Jun 25 2026, 7:22 PM
khorben requested review of D57837: Vendor import of pkgconf 2.9.90.
Jun 25 2026, 1:02 AM

Jun 18 2026

khorben added a comment to D57628: build: raise our FORTIFY_SOURCE default to 2.

How does one verify that a given executable is compiled with FORTIFY_SOURCE > 0?

Jun 18 2026, 1:28 PM

Jun 8 2026

khorben updated the diff for D56474: Generate SBOM files as part of the build.

Imported adjustments from Tuukka.

Jun 8 2026, 3:28 PM

Jun 4 2026

khorben added a reviewer for D56474: Generate SBOM files as part of the build: markj.
Jun 4 2026, 11:15 AM

Jun 1 2026

khorben updated the diff for D57246: pkgconf: determine the default paths dynamically.

Remove redundant code, as suggested by des@. (Thanks!)

Jun 1 2026, 4:03 PM

May 29 2026

khorben updated the diff for D57246: pkgconf: determine the default paths dynamically.

Removed redundant braces.

May 29 2026, 5:59 PM
khorben updated the diff for D57246: pkgconf: determine the default paths dynamically.

Simplified the code obtaining LOCALBASE as per @des' suggestion. (Thanks!)

May 29 2026, 3:05 PM
khorben updated the diff for D56474: Generate SBOM files as part of the build.
  • Avoid file conflicts in the -lib32 base packages (no duplicate installation of SPDX files)
  • Rename the PCFILE variable to SBOMFILE to avoid confusion with PCFILES
  • Fix typo in libmd.pc (thanks stephane.rochoy_stormshield.eu for the heads up!)
May 29 2026, 2:05 PM
khorben added inline comments to D57246: pkgconf: determine the default paths dynamically.
May 29 2026, 1:25 PM
khorben updated the diff for D57246: pkgconf: determine the default paths dynamically.

Use a stack buffer of MAXPATHLEN for localbase, as suggested by @des.

May 29 2026, 1:10 PM

May 28 2026

khorben added reviewers for D57246: pkgconf: determine the default paths dynamically: emaste, markj.
May 28 2026, 5:00 PM

May 26 2026

khorben updated the summary of D57246: pkgconf: determine the default paths dynamically.
May 26 2026, 4:07 PM
khorben updated the diff for D57246: pkgconf: determine the default paths dynamically.

This update takes care of PERSONALITY_PATH in addition to PKG_DEFAULT_PATH.

May 26 2026, 3:33 PM
khorben added inline comments to D57246: pkgconf: determine the default paths dynamically.
May 26 2026, 2:03 PM
khorben requested review of D57246: pkgconf: determine the default paths dynamically.
May 26 2026, 1:59 PM
khorben added inline comments to D56404: pkgconf: import into the base system.
May 26 2026, 2:40 AM

May 22 2026

khorben added a comment to D56404: pkgconf: import into the base system.

What is the relationship of this type of change to use of ${PREFIX} when ports install themselves and it is not the /usr/local default value? (There is also a linux compatibility related standard default for PREFIX and folks can specify things like /opt .) There was a later change to use /usr/local/ when LOCALBASE was undefined.

But in response to that last change there is now from eduardo@freebsd.org :

This change doens't honour PREFIX when it is set to other path than
default "/usr/local/"

(Due to the message Nuno picked to reply to I ended up listed as the "To:", des and the lists Cc:'d.)

I figured I could at least ask the question here of the folks involved in the original review so that the question is not completely lost.

May 22 2026, 4:08 PM
khorben added a comment to D56474: Generate SBOM files as part of the build.
In D56474#1308969, @ivy wrote:

a couple of comments:

  • i'm not sure this should be in release/, since it doesn't seem specific to building releases. iiuc, any src build will include the SBOM data if enabled.
May 22 2026, 2:20 PM
khorben added a comment to D56474: Generate SBOM files as part of the build.

One thing we may want to investigate is building the SBOM files into the ELF headers instead. Sony has compiler extensions to do that -- https://github.com/sony/esstra/tree/poc/rust-llvm

May 22 2026, 2:11 PM

May 13 2026

khorben updated the summary of D56474: Generate SBOM files as part of the build.
May 13 2026, 11:21 AM

May 12 2026

khorben added inline comments to D56474: Generate SBOM files as part of the build.
May 12 2026, 10:30 PM
khorben updated the diff for D56474: Generate SBOM files as part of the build.
  • The SPDX files are now placed in their respective base packages.
  • The source .pc files from illuusio were imported into release/sbom.
May 12 2026, 10:27 PM

Apr 26 2026

khorben accepted D56642: libpkgconf: Fix paths.

LGTM, thanks!

Apr 26 2026, 10:44 AM

Apr 25 2026

khorben added a reverting change for rG970cef9f652e: packages: Register pkgconf: rGe0b74e7b1739: Revert "packages: Register pkgconf".
Apr 25 2026, 7:25 PM
khorben committed rGe0b74e7b1739: Revert "packages: Register pkgconf" (authored by khorben).
Revert "packages: Register pkgconf"
Apr 25 2026, 7:25 PM
khorben added a reverting change for D56589: packages: Register pkgconf: rGe0b74e7b1739: Revert "packages: Register pkgconf".
Apr 25 2026, 7:25 PM
khorben closed D56591: pkgconf: fix the build with GCC 14.
Apr 25 2026, 7:17 PM
khorben committed rG1342eb5a832f: pkgconf: fix the build with GCC 14 (authored by khorben).
pkgconf: fix the build with GCC 14
Apr 25 2026, 7:17 PM
khorben committed rG970cef9f652e: packages: Register pkgconf (authored by khorben).
packages: Register pkgconf
Apr 25 2026, 7:17 PM
khorben added a comment to D56591: pkgconf: fix the build with GCC 14.

The latest update (with WARNS?=3) built correctly with clang; I am still testing with GCC 14.

It built correctly with GCC 14 as well.

Apr 25 2026, 12:36 PM

Apr 24 2026

khorben committed rGc875afcbcdf7: packages: Register pkgconf (authored by khorben).
packages: Register pkgconf
Apr 24 2026, 1:33 AM
khorben closed D56589: packages: Register pkgconf.
Apr 24 2026, 1:33 AM
khorben updated the diff for D56589: packages: Register pkgconf.

Reverted the copyright to myself, and the license to ISC.

Apr 24 2026, 1:15 AM
khorben added a comment to D56589: packages: Register pkgconf.

I gave the copyright back to pkgconf, as the comment and description primarily come from the pkgconf project.

While there, I also updated the SPDX-License-Identifier to pkgconf, as per the discussion here, and confirmed at https://spdx.org/licenses/pkgconf.html.

Does that mean that you need to credit DuckDuckGo or Google whenever you find a result?

Apr 24 2026, 1:09 AM
khorben updated the diff for D56589: packages: Register pkgconf.

I gave the copyright back to pkgconf, as the comment and description primarily come from the pkgconf project.

Apr 24 2026, 12:33 AM

Apr 23 2026

khorben updated the diff for D56589: packages: Register pkgconf.

Updated the copyright, license text, and added the licenses = [ "pkgconf" ] as per ngie's advice; thank you!

Apr 23 2026, 5:38 PM
khorben added a comment to D56591: pkgconf: fix the build with GCC 14.

The latest update (with WARNS?=3) built correctly with clang; I am still testing with GCC 14.

Apr 23 2026, 5:29 PM
khorben added inline comments to D56589: packages: Register pkgconf.
Apr 23 2026, 5:27 PM
khorben added a reviewer for D56589: packages: Register pkgconf: ngie.
Apr 23 2026, 4:51 PM