|
06120a87
|
2024-03-27T11:34:36
|
|
pkgconf 2.2.0
|
|
7a8532f8
|
2024-03-27T18:39:00
|
|
queue: remove no longer used root package reference when walking dependency graphs
|
|
a3d7ecb3
|
2024-03-27T11:31:48
|
|
Use libpkgconf.so.5 due to ABI changes
|
|
e2a8080c
|
2024-02-23T15:18:08
|
|
Reuse static solution for general solution
|
|
4090ba3e
|
2024-02-23T15:18:08
|
|
Clarify tracing messages
|
|
5eb79f66
|
2024-02-08T21:37:35
|
|
Add tests for lib order
|
|
883b57df
|
2024-02-23T15:18:08
|
|
Cache packages from explicit file requests
|
|
194dde09
|
2024-02-23T15:18:08
|
|
Update expected test results
|
|
78d53ea0
|
2024-02-23T15:18:08
|
|
Revise serials, traversal, flattening
Remove the 'traverse_serial' fields which were added in 2.1.1.
Use the 'serial' field to track the current traversal.
Stop using 'identifier' to sort packages in the flattened solution.
Directly construct the flattened solution by a specific walk which
also preserves the relative order in Requires and Requires.private.
The topological sort is a single list, so don't fill requires_private.
Purely private dependencies are marked in dependency flags.
The ancestor flag is a pkg property, not a client property.
|
|
e7c9bdb3
|
2024-03-22T07:18:41
|
|
Don't print 'required by <VIRTUAL-PACKAGE>'
|
|
4e01010d
|
2024-03-16T15:19:57
|
|
Mark user input in error message
|
|
db63c8ee
|
2024-03-18T07:56:37
|
|
Show edges for flattened order
|
|
6219af9a
|
2024-03-21T23:07:11
|
|
Color private-reachable nodes gray
|
|
eaf1a2d8
|
2024-03-21T22:44:32
|
|
Resolve user request for digraph
|
|
d6753888
|
2024-03-18T08:37:17
|
|
Update test expected results
|
|
f95e8d44
|
2024-03-18T08:21:17
|
|
Print digraph for user request perspective
|
|
b6e04e2d
|
2023-12-11T06:58:17
|
|
pkgconf 2.1.1
|
|
2edf954f
|
2024-02-04T03:25:54
|
|
Update NEWS for pkgconf 2.1.1
|
|
d8924ace
|
2024-02-04T03:16:14
|
|
Update gitignore to catch all of the autoconf-generated files
|
|
80b5011e
|
2024-02-04T03:04:52
|
|
Use traverse_serial to short circuit graph evaluation for already visited nodes.
In our previous attempt to optimize this problem, we did not track the type of the
visit to the node, e.g. whether it came from evaluating Requires or Requires.private,
which resulted in some solutions being correctly incalculated due to greedy optimization
of the dependency graph.
We reintroduce this optimization by adding a second traversal serial as well as
re-introducing the PROPF_VISITED node property as well as a new PROPF_VISITED_PRIVATE
node property flag. This allows a node to be revisted at maximum two times per
traversal level.
Co-authored-by: Yi Chou <yich@google.com>
|
|
4a3adf34
|
2024-01-17T18:28:38
|
|
Test digraph completeness for private-libs-duplication
Complements 45073b7.
|
|
5825e2c6
|
2023-12-01T22:12:20
|
|
Fix crash on two-word expressions
|
|
b2f8386c
|
2023-12-01T21:50:46
|
|
Fix --modversion output
|
|
125af82d
|
2023-12-01T21:20:39
|
|
Test --modversion with constraint
|
|
08f4a9da
|
2023-11-25T06:13:16
|
|
NEWS: fix typo
Signed-off-by: Sam James <sam@gentoo.org>
|
|
a4ecd42b
|
2023-11-24T19:44:04
|
|
Fix it's -> its
Signed-off-by: Stefan Weil <sw@weilnetz.de>
|
|
61d39ad8
|
2023-11-22T18:46:19
|
|
pkgconf 2.1.0.
|
|
5fb09af8
|
2023-11-22T18:43:04
|
|
queue: ensure the initial solution is cleaned up when it is no longer needed
|
|
d0038689
|
2023-11-22T18:30:21
|
|
build: add metapackage-3.pc to testsuite files
|
|
31512b21
|
2023-11-22T18:24:29
|
|
add NEWS for pkgconf 2.1.0.
|
|
5f6c5320
|
2023-10-09T08:05:18
|
|
cli: add simple --solution applet for dumping the solver solution
|
|
f3540de3
|
2023-10-09T07:27:00
|
|
queue: clarify the relationship between a flattened dep and its parent
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
be1ea788
|
2023-10-15T08:32:48
|
|
Separate input world from output world
|
|
45073b74
|
2023-10-15T12:40:41
|
|
Circular deps: track ancestors, not serial
|
|
948297b5
|
2023-10-31T14:09:55
|
|
Search XDG Base Directories for personality files
Try $XDG_DATA_HOME/pkgconfig/personality.d and $XDG_DATA_DIRS/pkgconfig/personality.d.
|
|
d454f62c
|
2023-11-05T22:17:02
|
|
libpkgconf: fix -Walloc-size
GCC 14 introduces a new -Walloc-size included in -Wextra which gives:
```
libpkgconf/personality.c:260:11: warning: allocation of insufficient size '1' for type 'pkgconf_cross_personality_t' {aka 'struct pkgconf_cross_personality_'} with size '48' [-Walloc-size]
libpkgconf/queue.c:46:33: warning: allocation of insufficient size '1' for type 'pkgconf_queue_t' {aka'struct pkgconf_queue_'} with size '16' [-Walloc-size]
libpkgconf/client.c:164:33: warning: allocation of insufficient size '1' for type 'pkgconf_client_t' {aka 'struct pkgconf_client_'} with size '120' [-Walloc-size]
libpkgconf/path.c:105:14: warning: allocation of insufficient size '1' for type 'pkgconf_path_t' {aka 'struct pkgconf_path_'} with size '24' [-Walloc-size]
libpkgconf/path.c:237:22: warning: allocation of insufficient size '1' for type 'pkgconf_path_t' {aka 'struct pkgconf_path_'} with size '24' [-Walloc-size]
libpkgconf/tuple.c:239:34: warning: allocation of insufficient size '1' for type 'pkgconf_tuple_t' {aka 'struct pkgconf_tuple_'} with size '24' [-Walloc-size]
libpkgconf/dependency.c:133:13: warning: allocation of insufficient size '1' for type 'pkgconf_dependency_t' {aka 'struct pkgconf_dependency_'} with size '44' [-Walloc-size]
libpkgconf/dependency.c:472:17: warning: allocation of insufficient size '1' for type 'pkgconf_dependency_t' {aka 'struct pkgconf_dependency_'} with size '44' [-Walloc-size]
libpkgconf/fragment.c:146:22: warning: allocation of insufficient size '1' for type 'pkgconf_fragment_t' {aka 'struct pkgconf_fragment_'} with size '24' [-Walloc-size]
libpkgconf/fragment.c:195:22: warning: allocation of insufficient size '1' for type 'pkgconf_fragment_t' {aka 'struct pkgconf_fragment_'} with size '24' [-Walloc-size]
libpkgconf/fragment.c:356:14: warning: allocation of insufficient size '1' for type 'pkgconf_fragment_t' {aka 'struct pkgconf_fragment_'} with size '24' [-Walloc-size]
libpkgconf/pkg.c:422:13: warning: allocation of insufficient size '1' for type 'pkgconf_pkg_t' {aka 'struct pkgconf_pkg_'} with size '188' [-Walloc-size]
libpkgconf/client.c:164:33: warning: allocation of insufficient size '1' for type 'pkgconf_client_t' {aka 'struct pkgconf_client_'} with size '224' [-Walloc-size]
libpkgconf/personality.c:260:11: warning: allocation of insufficient size '1' for type 'pkgconf_cross_personality_t' {aka 'struct pkgconf_cross_personality_'} with size '96' [-Walloc-size]
libpkgconf/dependency.c:133:13: warning: allocation of insufficient size '1' for type 'pkgconf_dependency_t' {aka 'struct pkgconf_dependency_'} with size '80' [-Walloc-size]
libpkgconf/dependency.c:472:17: warning: allocation of insufficient size '1' for type 'pkgconf_dependency_t' {aka 'struct pkgconf_dependency_'} with size '80' [-Walloc-size]
libpkgconf/path.c:105:14: warning: allocation of insufficient size '1' for type 'pkgconf_path_t' {aka 'struct pkgconf_path_'} with size '48' [-Walloc-size]
libpkgconf/path.c:237:22: warning: allocation of insufficient size '1' for type 'pkgconf_path_t' {aka 'struct pkgconf_path_'} with size '48' [-Walloc-size]
libpkgconf/queue.c:46:33: warning: allocation of insufficient size '1' for type 'pkgconf_queue_t' {aka 'struct pkgconf_queue_'} with size '32' [-Walloc-size]
libpkgconf/tuple.c:239:34: warning: allocation of insufficient size '1' for type 'pkgconf_tuple_t' {aka 'struct pkgconf_tuple_'} with size '48' [-Walloc-size]
libpkgconf/fragment.c:146:22: warning: allocation of insufficient size '1' for type 'pkgconf_fragment_t' {aka 'struct pkgconf_fragment_'} with size '48' [-Walloc-size]
libpkgconf/fragment.c:195:22: warning: allocation of insufficient size '1' for type 'pkgconf_fragment_t' {aka 'struct pkgconf_fragment_'} with size '48' [-Walloc-size]
libpkgconf/fragment.c:356:14: warning: allocation of insufficient size '1' for type 'pkgconf_fragment_t' {aka 'struct pkgconf_fragment_'} with size '48' [-Walloc-size]
libpkgconf/pkg.c:422:13: warning: allocation of insufficient size '1' for type 'pkgconf_pkg_t' {aka 'struct pkgconf_pkg_'} with size '360' [-Walloc-size]
```
The calloc prototype is:
```
void *calloc(size_t nmemb, size_t size);
```
So, just swap the number of members and size arguments to match the prototype, as
we're initialising 1 struct of size `sizeof(struct ...)`. GCC then sees we're not
doing anything wrong.
The only exception there is for argv which I fixed while at it.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
752a9825
|
2023-10-09T07:22:59
|
|
queue: demote requires to requires.private when processing requires.private parents
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
86c43b4e
|
2023-10-09T07:10:47
|
|
cli: --digraph: use directed relationships as part of the visualization
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
4db80314
|
2023-10-09T07:06:29
|
|
cli: --digraph: properly visualize requires.private edges
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
eb087a6c
|
2023-10-09T08:41:47
|
|
Test simple metapackage
|
|
dd6a8e3f
|
2023-09-05T15:36:23
|
|
cli: trim trailing whitespace from package arguments
Signed-off-by: Colin Gillespie <colin@cgillespie.xyz>
|
|
97d907ba
|
2023-10-09T06:35:04
|
|
cli: remove strncmp() from modversion comparison
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
a4033ab9
|
2023-09-22T06:54:04
|
|
Update AX_CHECK_COMPILE_FLAG to serial 6
curl --output m4/ax_check_compile_flag.m4 \
https://raw.githubusercontent.com/autoconf-archive/autoconf-archive/master/m4/ax_check_compile_flag.m4
|
|
a7c29fec
|
2023-09-13T14:49:11
|
|
meson: Add with-system options
Fixes #283
|
|
962a5e96
|
2023-09-07T19:38:01
|
|
cli: fix --modversion not showing version with versioned query
Fixes #317.
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
|
|
5aeb469b
|
2023-09-03T16:19:14
|
|
libpkgconf: fix memory leak
Signed-off-by: Colin Gillespie <colin@cgillespie.xyz>
|
|
652aff97
|
2023-10-08T22:27:56
|
|
path: add pkgconf_path_prepend API for --with-path
Otherwise, PKG_CONFIG_PATH and PKG_CONFIG_LIBDIR elements would be processed backwards.
Fixes: 384ade5 (path: prepend paths rather than append paths when processing --with-path arguments)
Closes: #250
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
a6fb59a0
|
2023-09-02T21:15:46
|
|
pkgconf 2.0.3.
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
3f07015d
|
2023-09-03T04:18:26
|
|
add new test files to build system
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
ee702658
|
2023-09-02T21:05:03
|
|
use PRIu64 format specifiers for some uint64 identifiers in trace logging
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
66994f15
|
2023-08-19T07:57:48
|
|
cli: fix --modversion not showing version in various cases
There are numerous edge cases where version is wrong or missing when
matching the dependency queue to resolved packages. This adds the
dependency name as it appears in the dependency queue to each package as
it is resolved, allowing for a simple and correct comparison when
printing.
Signed-off-by: Colin Gillespie <colin@cgillespie.xyz>
|
|
9cddd22b
|
2023-08-19T11:16:30
|
|
tests: add regression tests for --modversion
Signed-off-by: Colin Gillespie <colin@cgillespie.xyz>
|
|
eaa4bb44
|
2023-08-17T11:56:08
|
|
pkgconf 2.0.2.
|
|
a265f8a4
|
2023-08-17T11:53:07
|
|
libpkgconf: pkg: fix long-standing bug where -uninstalled pkg-config files would have the wrong identifier
|
|
f0f28fa6
|
2023-08-17T11:50:00
|
|
tests: add regression test for --modversion with uninstalled pkg-config files
|
|
6a84d704
|
2023-08-11T14:23:08
|
|
pkgconf 2.0.1.
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
f49029c6
|
2023-08-11T14:19:26
|
|
cli: ensure --modversion is output is printed in dependency queue order
Previously, --modversion operated on the calculated solution and printed versions in
order of the calculated dependency graph. Change this to use the dependency queue
instead, looking up nodes in the dependency graph as needed, to ensure that the
--modversion output behaves as intended.
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
4fb0988a
|
2023-08-11T14:16:41
|
|
libpkgconf: queue: make the pkgconf_queue_t type public
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
5ef2ab8c
|
2023-08-11T14:09:01
|
|
cli: add --verbose parameter
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
95086643
|
2023-08-11T13:48:02
|
|
cli: remove package count restriction from --modversion
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
fe69ccc6
|
2023-08-11T13:41:20
|
|
Revert "main: explicitly error with --modversion and more than 1 package being queried"
This reverts commit a97b75ab2c1d031982c35a4886102413e4ec8eee.
|
|
de51b03c
|
2023-08-04T08:45:16
|
|
pkgconf 2.0.0.
|
|
f3059010
|
2023-08-04T08:44:57
|
|
tests: regress: remove obsolete modversion test
|
|
a97b75ab
|
2023-08-04T08:38:48
|
|
main: explicitly error with --modversion and more than 1 package being queried
|
|
384ade5f
|
2023-08-04T08:24:32
|
|
path: prepend paths rather than append paths when processing --with-path arguments
|
|
a4eb097b
|
2023-08-04T08:23:00
|
|
queue: process packages in the resolution queue in the correct order
|
|
5d0e2f50
|
2023-08-04T08:19:42
|
|
Track packages using a lifetime unique identifier
Use that identifier to cancel graph edges rather than the number of hits,
which biases the earliest edge rather than the latest.
|
|
437c2a32
|
2023-07-02T11:34:50
|
|
update release tarball location because dynadot is a shitty registrar
|
|
094dc384
|
2023-05-02T12:10:54
|
|
pkgconf 1.9.5.
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
35b1a623
|
2023-05-02T12:09:55
|
|
update libpkgconf version to 10905
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
83f412a1
|
2023-05-02T12:09:19
|
|
update NEWS for 1.9.5.
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
7bfc2289
|
2023-05-02T11:58:56
|
|
tests: add regression test for maximum package count off-by-one
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
1e179963
|
2023-05-02T11:58:39
|
|
Enforce maximum package count correctly for --modversion
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
f7bebba6
|
2023-04-24T15:50:00
|
|
fix meson.build
Co-authored-by: Ariadne Conill <ariadne@dereferenced.org>
|
|
434cb293
|
2023-04-24T15:49:33
|
|
use includes
|
|
40638f24
|
2023-04-24T15:18:59
|
|
use AC_CHECK_DECLS to avoid implicit function definition
AC_CHECK_FUNCS is not safe, since implicit function definitions is just
a warning. On 64-bit glibc systems where reallocarray is not defined or
hidden behind macros that are not set, it gets implicitly defined to
return an integer, which is a big problem given that it should return a
pointer, and leads to immediate segfaults.
|
|
b08733f4
|
2023-03-07T10:00:08
|
|
Fix the issue where tests/meson.build was deleted.
|
|
6d1f160e
|
2023-03-06T20:05:22
|
|
argvsplit: fix some quoting rules
|
|
212c8586
|
2023-03-17T19:32:58
|
|
Avoid undefined behaviour with the ctype(3) functions.
fix https://github.com/pkgconf/pkgconf/issues/291
As defined in the C standard:
In all cases the argument is an int, the value of which shall
be representable as an unsigned char or shall equal the value
of the macro EOF. If the argument has any other value, the
behavior is undefined.
This is because they're designed to work with the int values returned
by getc or fgetc; they need extra work to handle a char value.
If EOF is -1 (as it almost always is), with 8-bit bytes, the allowed
inputs to the ctype(3) functions are:
{-1, 0, 1, 2, 3, ..., 255}.
However, on platforms where char is signed, such as x86 with the
usual ABI, code like
char *ptr = ...;
... isspace(*ptr) ...
may pass in values in the range:
{-128, -127, -126, ..., -2, -1, 0, 1, ..., 127}.
This has two problems:
1. Inputs in the set {-128, -127, -126, ..., -2} are forbidden.
2. The non-EOF byte 0xff is conflated with the value EOF = -1, so
even though the input is not forbidden, it may give the wrong
answer.
Casting char to unsigned int first before passing the result to
ctype(3) doesn't help: inputs like -128 are unchanged by this cast,
because (on a two's-complement machine with 32-bit int and unsigned
int), converting the signed char with integer value -128 to unsigned
int gives integer value 2^32 - 128 = 0xffffff80, which is out of
range, and which is converted in int back to -128, which is also out
of range.
It is necessary to cast char inputs to unsigned char first; you can
then cast to unsigned int if you like but there's no need because the
functions will always convert the argument to int by definition. So
the above fragment needs to be:
char *ptr = ...;
... isspace((unsigned char)*ptr) ...
This patch changes unsigned int casts to unsigned char casts, and
adds unsigned char casts where they are missing.
|
|
78f3abc9
|
2023-01-22T11:51:04
|
|
doc: Regenerate the documentation for libpkgconf
Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
|
|
9ab5ea2e
|
2023-01-22T11:49:54
|
|
doc: personality: Add a documentation header
Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
|
|
cfda825f
|
2023-01-22T11:48:57
|
|
doc: extract: Use "==" instead of "is" with literals
This fixes:
SyntaxWarning: "is" with a literal. Did you mean "=="?
Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
|
|
873e51aa
|
2023-01-22T04:56:44
|
|
pkgconf 1.9.4.
|
|
f7305434
|
2023-01-22T04:56:06
|
|
libpkgconf: bump API version to 10904
|
|
93edd215
|
2023-01-22T04:52:25
|
|
update NEWS for 1.9.4
|
|
49ab0b2a
|
2023-01-21T21:43:23
|
|
tests: fixup!
|
|
98b33b48
|
2023-01-21T21:43:08
|
|
cli: use flattened solution for almost all user-facing queries
|
|
d9e507cc
|
2023-01-21T21:31:38
|
|
pkg: do not do serial checks for flattened solutions, as they are already flattened
|
|
90b65c86
|
2023-01-21T21:31:16
|
|
main: use flattened solution for cflags/libs only
|
|
1ce000f3
|
2023-01-21T20:59:22
|
|
Revert "pkg.m4: PKG_CHECK_MODULES provides modversion"
This reverts commit 8d9d3de6eb8f0ffdbb859fce79cff89038e513c4.
|
|
99bc93fb
|
2023-01-21T20:45:29
|
|
use SIZE_FMT_SPECIFIER everywhere
|
|
e2a12fd4
|
2023-01-21T20:39:53
|
|
main: reset solver when solving for library groups
|
|
8f12d36b
|
2023-01-21T20:22:03
|
|
tests: fixup trailing whitespace in expected results
|
|
b106de0c
|
2023-01-21T20:21:26
|
|
cli: add whitespace between cflags and libs fragments
|
|
648a2249
|
2023-01-21T20:17:33
|
|
fragment: render: only include trailing space if there is another fragment
|
|
dd741e72
|
2023-01-21T20:12:02
|
|
README: fix tests option to reflect meson changes
|
|
506ebab7
|
2022-09-30T15:33:47
|
|
Ignore whitespace indentation
Fixes #265
|
|
be0d8119
|
2023-01-21T19:51:24
|
|
argvsplit: fix some quoting rules to match POSIX
|
|
6a5b5574
|
2023-01-21T19:25:46
|
|
tests: fix test regressions caused by tilde changes
|
|
131619ae
|
2022-10-12T21:49:22
|
|
doc: update libpkgconf-pkg docs to match
|