1910 Commits

Author SHA1 Message Date
Ariadne Conill
521bb4e6e8 cli: core: use pkgconf_buffer_str_or_empty when setting builtin variables
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-27 15:13:08 -08:00
Ariadne Conill
db6bcbdcbe libpkgconf: buffer: add pkgconf_buffer_contains and pkgconf_buffer_match
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-27 15:07:50 -08:00
Ariadne Conill
a0933c8b1b cli: core: use pkgconf_output_puts for stderr messages
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 21:06:04 -08:00
Ariadne Conill
dfd20e49fc cli: core: move dump_personality back
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 20:51:22 -08:00
Ariadne Conill
ff07f6b7eb cli: core: refactor dependency query parsing 2025-12-24 20:48:05 -08:00
Ariadne Conill
d0823a14fc libpkgconf: queue: add pkgconf_queue_push_dependency
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 20:38:23 -08:00
Ariadne Conill
bb79dad5fe libpkgconf: client: clear client in deinit rather than in init
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 20:10:27 -08:00
Ariadne Conill
38b67e8c3b libpkgconf: client: zero out the client struct when initializing it
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 16:33:58 -08:00
Ariadne Conill
98784f1d42 libpkgconf: add cross personality pointer to client struct
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 16:05:17 -08:00
Ariadne Conill
fd604729c4 cli: core: use pkgconf_client_getenv wrapper for mocking
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 15:48:06 -08:00
Ariadne Conill
be0687f637 libpkgconf: use pkgconf_client_getenv wrapper for mocking
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 15:47:53 -08:00
Ariadne Conill
50da3bde52 libpkgconf: client: add pkgconf_client_getenv wrapper
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 15:39:35 -08:00
Ariadne Conill
eab5f5da93 cli: chase pkgconf_client_init changes
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 15:35:09 -08:00
Ariadne Conill
c7d8ebc439 libpkgconf: client: make environment variable lookups mockable
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 15:34:54 -08:00
Ariadne Conill
a592567215 cli: core: only zero out the end of the package name if actually necessary
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 15:22:12 -08:00
Ariadne Conill
1cbe6de04f cli: core: use last_argc everywhere instead of pkg_optind
This way the test runner does not use getopt_long.

Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-24 15:18:54 -08:00
Ariadne Conill
8459b05bbf cli: refactor main for testing purposes
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 16:46:39 -08:00
Ariadne Conill
c7069a080b cli: {bomtool,spdxtool}: chase pkgconf_client_init change 2025-12-23 16:35:11 -08:00
Ariadne Conill
f2b7af94e5 libpkgconf: client: add client_data pointer to client structure
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 16:03:49 -08:00
Ariadne Conill
41d320f679 cli: cleanups from output refactoring
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 15:01:32 -08:00
Ariadne Conill
6682bcb78d cli: use pkgconf_output_putbuf for printing CFLAGS
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 14:58:05 -08:00
Ariadne Conill
62473d1481 libpkgconf: output: add pkgconf_output_putbuf
This copies a pkgconf_buffer_t to a pkgconf_output_t.

Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 14:57:44 -08:00
Ariadne Conill
53db712972 cli: use pkgconf_output_fmt in most places
This way the C testsuite will be able to capture output as appropriate.

Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 14:51:56 -08:00
Ariadne Conill
0a0e74ec2e libpkgconf: output: fix length argument to fwrite
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 14:20:03 -08:00
Ariadne Conill
82e66bf096 libpkgconf: client: set the default output object in client init
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 14:10:48 -08:00
Ariadne Conill
5951b644bb libpkgconf: client: add pkgconf_client_set_output
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 14:09:10 -08:00
Ariadne Conill
38151d1726 libpkgconf: output: add implementation
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 13:31:53 -08:00
Ariadne Conill
def161ad50 libpkgconf: buffer: add pkgconf_buffer_append_vfmt
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 13:31:40 -08:00
Ariadne Conill
cf246dba4f build: add libpkgconf pkgconf_output files
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 13:31:40 -08:00
Ariadne Conill
232cbc0cc9 libpkgconf: add pkgconf_output API declarations
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 13:31:40 -08:00
Ariadne Conill
0c38d0afd6 libpkgconf: pkg: fix formatting of version matching truth table
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 10:33:05 -08:00
Ariadne Conill
be9f756e3d cli: include synthesized virtuals (from provides) in --list-all and --list-package-names output
Closes: https://github.com/pkgconf/pkgconf/issues/435
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-23 10:29:13 -08:00
Ariadne Conill
d619fc6f10 github: update funding links for pkgconf
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-22 13:07:45 -08:00
Ariadne Conill
9378236fe3 pkg.m4: stop pointing people at freedesktop pkg-config
Freedesktop pkg-config is no longer maintained, the last commit was in 2021.

Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-22 12:38:55 -08:00
Ariadne Conill
213cccf9dc libpkgconf: pkg: tolerate missing requires.internal dependency nodes if unnecessary
Requires.internal is intended to be a weaker version of requires.private,
where a dependency node does not need to be satisfied if link libraries are
not requested.

Closes: https://github.com/pkgconf/pkgconf/issues/434
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-21 13:32:20 -08:00
Ariadne Conill
0ed38cec79 libpkgconf: introduce PKGCONF_PKG_PKGF_REQUIRE_INTERNAL flag
Ref: https://github.com/pkgconf/pkgconf/issues/434
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-21 13:06:07 -08:00
Ariadne Conill
74bb9a2301 tests: add additional requires.internal tests
Ref: https://github.com/pkgconf/pkgconf/issues/434
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-21 12:57:06 -08:00
Ariadne Conill
ab3bddd80b man/pc.5: add documentation for requires.internal
Ref: https://github.com/pkgconf/pkgconf/issues/318
Ref: https://github.com/pkgconf/pkgconf/issues/434
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-21 12:41:00 -08:00
Ariadne Conill
a32da62aa7 spdxtool: util: clean up strftime buffer usage
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-20 23:46:04 -08:00
Ariadne Conill
36ac187ad5 spdxtool: util: manually specify ISO8601 format string elements instead of %F and %Z
These do not work on the Microsoft C runtime library.

Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-20 23:40:53 -08:00
Ariadne Conill
0fc3ba9d95 spdxtool: drop spdxtool_util_spdx_id_add
Not needed or used by anything.

Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-20 16:03:21 -08:00
Ariadne Conill
8f9161514b libpkgconf: bsdstubs: use libpkgconf/stdinc.h
This saves us some more _WIN32 pain.

Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-20 15:37:29 -08:00
Ariadne Conill
c863ef3f82 libpkgconf: clean up _WIN32 include mess quite a bit
Ref: https://github.com/pkgconf/pkgconf/issues/406
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-20 15:25:17 -08:00
Ariadne Conill
530fc89d13 libpkgconf: tuple: use pc_sysrootdir variable consistently
In one case we were unconditionally using the value of PKG_CONFIG_SYSROOT_DIR
rather than checking the package-specific value.  This caused issues where the
sysroot was prepended where it should not be.

Closes: https://github.com/pkgconf/pkgconf/issues/307
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-20 14:43:03 -08:00
Ariadne Conill
c8bfa9fee0 libpkgconf: pkg: do not override pc_sysrootdir when emulating pkgconf 1.x
In pkgconf 1.x, we unconditionally prepend PKG_CONFIG_SYSROOT_DIR if
it is not already present.  Emulate this by not overriding pc_sysrootdir
in cases where the .pc file is outside the sysroot.

Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-20 14:43:03 -08:00
Ariadne Conill
dc0805a3ad tests: sysroot: add test for sysroot deduplication
If ${pc_sysrootdir} is expanded in another variable, then it
may be included twice.

Ref: https://github.com/pkgconf/pkgconf/issues/307
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-20 14:43:03 -08:00
Ariadne Conill
9590e052bb spdxtool: use SIZE_FMT_SPECIFIER in numeric URI generator
This resolves a compiler warning when building on Windows.

Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-20 13:44:38 -08:00
Ariadne Conill
b689fedcd9 spdxtool: fix isspace usage
ISO C expects parameters to ctype.h macros to be unsigned.

Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-20 13:32:42 -08:00
Ariadne Conill
0658ba7721 libpkgconf: pkg: add lint for duplicated dependency-list fields
Duplicating fields does not have consistent behavior across pkg-config
implementations, so we add a lint for it.

Ref: https://github.com/microsoft/vcpkg/issues/48837
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-20 01:52:49 -08:00
Ariadne Conill
008f963693 spdxtool: util: use a static counter instead of looping over possible IDs
Looping over possible IDs makes generating URIs an O(k) operation,
verses an O(1) operation.

Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
2025-12-20 01:34:02 -08:00