Page MenuHomeFreeBSD

pkgconf: import 2.4.3 and 2.5.1
Needs ReviewPublic

Authored by khorben on Mon, Apr 13, 7:08 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Apr 19, 2:45 AM
Unknown Object (File)
Sun, Apr 19, 2:44 AM
Unknown Object (File)
Sat, Apr 18, 7:37 AM
Unknown Object (File)
Sat, Apr 18, 7:37 AM
Unknown Object (File)
Sat, Apr 18, 5:58 AM
Unknown Object (File)
Sat, Apr 18, 1:24 AM
Unknown Object (File)
Fri, Apr 17, 3:07 AM
Unknown Object (File)
Mon, Apr 13, 10:46 AM
Subscribers

Details

Reviewers
emaste
philip
bapt
Summary

The BSDmakefile file offered here for review is really meant for streamlining the process of vendor import and updates for pkgconf.

pkgconf is a "package compiler and linker metadata toolkit", created as a re-implementation of its venerable predecessor, pkg-config. It is suggested as a vendor import here for two purposes:

  • Help simplify FreeBSD's build system, especially for third-party software and downstream users;
  • Allow the creation and installation of SBOM files for the base system with bomtool(1), and later also spdxtool(1).

This file was originally based on ngie's crypto/openssl/BSDmakefile; however, there is currently no equivalent location in the source tree that I can think of. When using it, place it in e.g., usr.bin/pkgconf/BSDmakefile.vendor and run the commands listed below.
This will automatically merge versions 2.4.3 and 2.5.1 into the current branch.

To be absolutely clear: this review is about the resulting vendor branch, not this file; a similar outcome can be found at https://github.com/khorben/freebsd-src/commit/4e43971748c9ed8fe436ecaa3d686583dfa790b0.

Sponsored by: Alpha-Omega, The FreeBSD Foundation

Test Plan
$ mkdir -p usr.bin/pkgconf
$ cd usr.bin/pkgconf
$ make -f BSDmakefile.vendor VERSION=2.4.3
$ make -f BSDmakefile.vendor VERSION=2.5.1

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

See also https://github.com/freebsd/freebsd-src/pull/1994 for a more complete draft pull-request and discussion around this project, together with a preview of the "finished product".
There is also a newer branch implementing the same on a more recent main, at https://github.com/khorben/freebsd-src/tree/khorben/spdxtool2.

note I proposed to import pkgconf back in 2012: https://lists.freebsd.org/pipermail/freebsd-hackers/2012-December/041471.html and this lead to some discussions.

I don't understand the point of merging both version why not only the latest ?

I don't understand the point of merging both version why not only the latest ?

It was mostly about demonstrating how BSDmakefile.vendor file works, illustrating the complete workflow.
I have now added a tentative branch, with only 2.5.1 imported, at https://github.com/khorben/freebsd-src/tree/khorben/pkgconf-base.

I agree with bapt: I would only import the latest version. There's no point littering our vendor tree with versions that we'll never merge. Unless there is a compelling reason to have the intermediate version (e.g. it makes the merge to contrib substantially easier). Since this is a new vendor import, that's not the case here.

I skimmed the discussion that ensued when bapt proposed this in 2012. As I understand it, kib objected to pkgconf because it made our build system more complicated and because .a files would no longer (strictly) be archives. I don't disagree with his second point, but I believe importing pkgconf potentially makes things much simpler -- not more complicated. And given that there's no real downside, I think it's worth doing.

It might be worth to revisit the discussion on a public mailing list though. Times have changed since 2012. Making OpenSSL imports easier alone would be worth it I think.