Log

Author Commit Date CI Message
Ariadne Conill 06120a87 2024-03-27T11:34:36 pkgconf 2.2.0
Ariadne Conill 7a8532f8 2024-03-27T18:39:00 queue: remove no longer used root package reference when walking dependency graphs
Ariadne Conill a3d7ecb3 2024-03-27T11:31:48 Use libpkgconf.so.5 due to ABI changes
Kai Pastor e2a8080c 2024-02-23T15:18:08 Reuse static solution for general solution
Kai Pastor 4090ba3e 2024-02-23T15:18:08 Clarify tracing messages
Kai Pastor 5eb79f66 2024-02-08T21:37:35 Add tests for lib order
Kai Pastor 883b57df 2024-02-23T15:18:08 Cache packages from explicit file requests
Kai Pastor 194dde09 2024-02-23T15:18:08 Update expected test results
Kai Pastor 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.
Kai Pastor e7c9bdb3 2024-03-22T07:18:41 Don't print 'required by <VIRTUAL-PACKAGE>'
Kai Pastor 4e01010d 2024-03-16T15:19:57 Mark user input in error message
Kai Pastor db63c8ee 2024-03-18T07:56:37 Show edges for flattened order
Kai Pastor 6219af9a 2024-03-21T23:07:11 Color private-reachable nodes gray
Kai Pastor eaf1a2d8 2024-03-21T22:44:32 Resolve user request for digraph
Kai Pastor d6753888 2024-03-18T08:37:17 Update test expected results
Kai Pastor f95e8d44 2024-03-18T08:21:17 Print digraph for user request perspective
Kai Pastor b6e04e2d 2023-12-11T06:58:17 pkgconf 2.1.1
Ariadne Conill 2edf954f 2024-02-04T03:25:54 Update NEWS for pkgconf 2.1.1
Ariadne Conill d8924ace 2024-02-04T03:16:14 Update gitignore to catch all of the autoconf-generated files
Ariadne Conill 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>
Kai Pastor 4a3adf34 2024-01-17T18:28:38 Test digraph completeness for private-libs-duplication Complements 45073b7.
Kai Pastor 5825e2c6 2023-12-01T22:12:20 Fix crash on two-word expressions
Kai Pastor b2f8386c 2023-12-01T21:50:46 Fix --modversion output
Kai Pastor 125af82d 2023-12-01T21:20:39 Test --modversion with constraint
Sam James 08f4a9da 2023-11-25T06:13:16 NEWS: fix typo Signed-off-by: Sam James <sam@gentoo.org>
Stefan Weil a4ecd42b 2023-11-24T19:44:04 Fix it's -> its Signed-off-by: Stefan Weil <sw@weilnetz.de>
Ariadne Conill 61d39ad8 2023-11-22T18:46:19 pkgconf 2.1.0.
Ariadne Conill 5fb09af8 2023-11-22T18:43:04 queue: ensure the initial solution is cleaned up when it is no longer needed
Ariadne Conill d0038689 2023-11-22T18:30:21 build: add metapackage-3.pc to testsuite files
Ariadne Conill 31512b21 2023-11-22T18:24:29 add NEWS for pkgconf 2.1.0.
Ariadne Conill 5f6c5320 2023-10-09T08:05:18 cli: add simple --solution applet for dumping the solver solution
Ariadne Conill 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>
Kai Pastor be1ea788 2023-10-15T08:32:48 Separate input world from output world
Kai Pastor 45073b74 2023-10-15T12:40:41 Circular deps: track ancestors, not serial
Victor Westerhuis 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.
Sam James 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>
Ariadne Conill 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>
Ariadne Conill 86c43b4e 2023-10-09T07:10:47 cli: --digraph: use directed relationships as part of the visualization Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Ariadne Conill 4db80314 2023-10-09T07:06:29 cli: --digraph: properly visualize requires.private edges Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Kai Pastor eb087a6c 2023-10-09T08:41:47 Test simple metapackage
Colin Gillespie dd6a8e3f 2023-09-05T15:36:23 cli: trim trailing whitespace from package arguments Signed-off-by: Colin Gillespie <colin@cgillespie.xyz>
Ariadne Conill 97d907ba 2023-10-09T06:35:04 cli: remove strncmp() from modversion comparison Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Peter Kokot 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
L. E. Segovia a7c29fec 2023-09-13T14:49:11 meson: Add with-system options Fixes #283
Xi Ruoyao 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>
Colin Gillespie 5aeb469b 2023-09-03T16:19:14 libpkgconf: fix memory leak Signed-off-by: Colin Gillespie <colin@cgillespie.xyz>
Ariadne Conill 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>
Ariadne Conill a6fb59a0 2023-09-02T21:15:46 pkgconf 2.0.3. Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Ariadne Conill 3f07015d 2023-09-03T04:18:26 add new test files to build system Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Ariadne Conill 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>
Colin Gillespie 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>
Colin Gillespie 9cddd22b 2023-08-19T11:16:30 tests: add regression tests for --modversion Signed-off-by: Colin Gillespie <colin@cgillespie.xyz>
Ariadne Conill eaa4bb44 2023-08-17T11:56:08 pkgconf 2.0.2.
Ariadne Conill a265f8a4 2023-08-17T11:53:07 libpkgconf: pkg: fix long-standing bug where -uninstalled pkg-config files would have the wrong identifier
Ariadne Conill f0f28fa6 2023-08-17T11:50:00 tests: add regression test for --modversion with uninstalled pkg-config files
Ariadne Conill 6a84d704 2023-08-11T14:23:08 pkgconf 2.0.1. Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Ariadne Conill 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>
Ariadne Conill 4fb0988a 2023-08-11T14:16:41 libpkgconf: queue: make the pkgconf_queue_t type public Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Ariadne Conill 5ef2ab8c 2023-08-11T14:09:01 cli: add --verbose parameter Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Ariadne Conill 95086643 2023-08-11T13:48:02 cli: remove package count restriction from --modversion Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Ariadne Conill fe69ccc6 2023-08-11T13:41:20 Revert "main: explicitly error with --modversion and more than 1 package being queried" This reverts commit a97b75ab2c1d031982c35a4886102413e4ec8eee.
Ariadne Conill de51b03c 2023-08-04T08:45:16 pkgconf 2.0.0.
Ariadne Conill f3059010 2023-08-04T08:44:57 tests: regress: remove obsolete modversion test
Ariadne Conill a97b75ab 2023-08-04T08:38:48 main: explicitly error with --modversion and more than 1 package being queried
Ariadne Conill 384ade5f 2023-08-04T08:24:32 path: prepend paths rather than append paths when processing --with-path arguments
Ariadne Conill a4eb097b 2023-08-04T08:23:00 queue: process packages in the resolution queue in the correct order
Ariadne Conill 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.
Ariadne Conill 437c2a32 2023-07-02T11:34:50 update release tarball location because dynadot is a shitty registrar
Ariadne Conill 094dc384 2023-05-02T12:10:54 pkgconf 1.9.5. Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Ariadne Conill 35b1a623 2023-05-02T12:09:55 update libpkgconf version to 10905 Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Ariadne Conill 83f412a1 2023-05-02T12:09:19 update NEWS for 1.9.5. Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Ariadne Conill 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>
Ariadne Conill 1e179963 2023-05-02T11:58:39 Enforce maximum package count correctly for --modversion Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
Harmen Stoppels f7bebba6 2023-04-24T15:50:00 fix meson.build Co-authored-by: Ariadne Conill <ariadne@dereferenced.org>
Harmen Stoppels 434cb293 2023-04-24T15:49:33 use includes
Harmen Stoppels 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.
h30032433 b08733f4 2023-03-07T10:00:08 Fix the issue where tests/meson.build was deleted.
huyubiao 6d1f160e 2023-03-06T20:05:22 argvsplit: fix some quoting rules
Taylor R Campbell 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.
Andrej Shadura 78f3abc9 2023-01-22T11:51:04 doc: Regenerate the documentation for libpkgconf Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
Andrej Shadura 9ab5ea2e 2023-01-22T11:49:54 doc: personality: Add a documentation header Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
Andrej Shadura 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>
Ariadne Conill 873e51aa 2023-01-22T04:56:44 pkgconf 1.9.4.
Ariadne Conill f7305434 2023-01-22T04:56:06 libpkgconf: bump API version to 10904
Ariadne Conill 93edd215 2023-01-22T04:52:25 update NEWS for 1.9.4
Ariadne Conill 49ab0b2a 2023-01-21T21:43:23 tests: fixup!
Ariadne Conill 98b33b48 2023-01-21T21:43:08 cli: use flattened solution for almost all user-facing queries
Ariadne Conill d9e507cc 2023-01-21T21:31:38 pkg: do not do serial checks for flattened solutions, as they are already flattened
Ariadne Conill 90b65c86 2023-01-21T21:31:16 main: use flattened solution for cflags/libs only
Ariadne Conill 1ce000f3 2023-01-21T20:59:22 Revert "pkg.m4: PKG_CHECK_MODULES provides modversion" This reverts commit 8d9d3de6eb8f0ffdbb859fce79cff89038e513c4.
Ariadne Conill 99bc93fb 2023-01-21T20:45:29 use SIZE_FMT_SPECIFIER everywhere
Ariadne Conill e2a12fd4 2023-01-21T20:39:53 main: reset solver when solving for library groups
Ariadne Conill 8f12d36b 2023-01-21T20:22:03 tests: fixup trailing whitespace in expected results
Ariadne Conill b106de0c 2023-01-21T20:21:26 cli: add whitespace between cflags and libs fragments
Ariadne Conill 648a2249 2023-01-21T20:17:33 fragment: render: only include trailing space if there is another fragment
Ariadne Conill dd741e72 2023-01-21T20:12:02 README: fix tests option to reflect meson changes
Timo Röhling 506ebab7 2022-09-30T15:33:47 Ignore whitespace indentation Fixes #265
Ariadne Conill be0d8119 2023-01-21T19:51:24 argvsplit: fix some quoting rules to match POSIX
Ariadne Conill 6a5b5574 2023-01-21T19:25:46 tests: fix test regressions caused by tilde changes
Doug Freed 131619ae 2022-10-12T21:49:22 doc: update libpkgconf-pkg docs to match