From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH 4/5] pkgconf: upgrade 3.0.4 -> 3.0.5
Date: Sun, 2 Aug 2026 13:56:06 +0100 [thread overview]
Message-ID: <20260802125609.4049666-4-richard.purdie@linuxfoundation.org> (raw)
In-Reply-To: <20260802125609.4049666-1-richard.purdie@linuxfoundation.org>
Changes from 3.0.4 to 3.0.5:
----------------------------
* Correctness fixes:
- Shell quoting and backslash escapes in pc(5) properties are now consumed
once, after variable substitution, instead of while splitting the property
beforehand. Quoting arriving from a variable is therefore treated like
quoting written inline, --variable reports a value as the .pc file spells
it, and fragments are escaped exactly once when rendered. This supersedes
the 3.0.4 fix, which unescaped whitespace at parse time and so hid the
escaping from consumers such as cmake's FindPkgConfig.
See https://github.com/pkgconf/pkgconf/issues/575 and
https://github.com/pkgconf/pkgconf/issues/579.
- Metadata queries no longer consult Conflicts rules between the modules named
on the command line, as reporting metadata does not combine them into a
build. This covers --license, --license-file, --modversion, --path,
--print-provides, --print-requires, --print-requires-private,
--print-variables, --source and --variable. --cflags, --libs and --exists
are unaffected.
See https://github.com/pkgconf/pkgconf/issues/580.
- ${pc_sysrootdir} is now injected into the path taken by every -isystem and
-idirafter flag in a fragment list, rather than only the first.
- -isystem and -idirafter written joined to their path, as in `-isystem/opt`,
are split into the flag and the path it takes, so that the path is subject
to the same sysroot injection and deduplication as the separated spelling.
- Sysroot injection is decided by reading the fragment's path instead of
remembering whether ${pc_sysrootdir} was expanded, so a path which already
lies under the sysroot never acquires a doubled prefix.
* Performance:
- The package cache and the fragment deduplication index are kept sorted and
searched with bsearch() rather than re-sorted or scanned linearly.
- Variable keys and fragment text are stored with the structures they belong
to, and buffers are rewound and reused rather than reallocated.
- Escaping, fragment rendering and path relocation write into their
destination buffer directly.
Resolving a graph of roughly forty modules is about six times faster than
3.0.4, and a small graph such as gio-2.0 about twice as fast.
* Build and portability fixes:
- Fix the pkgconf-lite build, which failed to link because the dependency list
renderer had come to depend on tracing machinery that pkgconf-lite omits.
- Fix the test runner failing to build on MinGW, where the mkdtemp(3) fallback
was compiled only for MSVC builds.
See https://github.com/pkgconf/pkgconf/issues/582.
- The meson build now defines HAVE_DECL_READLINKAT, so readlinkat(2) is used
where it is available instead of always falling back to readlink(2).
The MinGW and readlinkat fixes are by moi15moi.
* New libpkgconf API additions:
- pkgconf_argv_split_raw: splits a string into an argument vector
* New libpkgconf API additions:
- pkgconf_argv_split_raw: splits a string into an argument vector like
pkgconf_argv_split, but leaves the quoting it reads in place.
- pkgconf_fragment_filter_splice: like pkgconf_fragment_filter, but moves the
matching fragments to the destination list instead of copying them.
- pkgconf_charset_from_spans: compiles a span list into a byte set.
- pkgconf_buffer_escape_charset: escapes a buffer against such a byte set.
- pkgconf_buffer_rewind: empties a buffer while keeping its allocation.
- pkgconf_list_splice: moves the contents of one list onto the end of another.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
.../pkgconf/{pkgconf_3.0.4.bb => pkgconf_3.0.5.bb} | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
rename meta/recipes-devtools/pkgconf/{pkgconf_3.0.4.bb => pkgconf_3.0.5.bb} (97%)
diff --git a/meta/recipes-devtools/pkgconf/pkgconf_3.0.4.bb b/meta/recipes-devtools/pkgconf/pkgconf_3.0.5.bb
similarity index 97%
rename from meta/recipes-devtools/pkgconf/pkgconf_3.0.4.bb
rename to meta/recipes-devtools/pkgconf/pkgconf_3.0.5.bb
index 0abd0fa923c..79ac3208d3e 100644
--- a/meta/recipes-devtools/pkgconf/pkgconf_3.0.4.bb
+++ b/meta/recipes-devtools/pkgconf/pkgconf_3.0.5.bb
@@ -20,7 +20,7 @@ SRC_URI = "\
file://pkg-config-native.in \
file://pkg-config-esdk.in \
"
-SRC_URI[sha256sum] = "91ce346b47f46b87d680c6928e6c43240b9cdc7a31afbea19f2298de4dbe266d"
+SRC_URI[sha256sum] = "3acd3a8a3cce65a8d620321855d92fb602e026cbe8e13ee36bdec58483b59ace"
UPSTREAM_CHECK_REGEX = "pkgconf-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)\.tar"
inherit autotools pkgconfig
next prev parent reply other threads:[~2026-08-02 12:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-02 12:56 [PATCH 1/5] at-spi2-core: upgrade 2.60.5 -> 2.60.6 Richard Purdie
2026-08-02 12:56 ` [PATCH 2/5] libmicrohttpd: upgrade 1.0.8 -> 1.0.9 Richard Purdie
2026-08-02 12:56 ` [PATCH 3/5] libpsl: upgrade 0.23.0 -> 0.23.1 Richard Purdie
2026-08-02 12:56 ` Richard Purdie [this message]
2026-08-02 12:56 ` [PATCH 5/5] python3-pyopenssl: upgrade 26.3.0 -> 26.4.0 Richard Purdie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260802125609.4049666-4-richard.purdie@linuxfoundation.org \
--to=richard.purdie@linuxfoundation.org \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox