Commit Graph

1455 Commits (4db80314024159ec9bd546e75e1944045d289786)

Author SHA1 Message Date
Ariadne Conill 4db8031402 cli: --digraph: properly visualize requires.private edges
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-10-09 07:06:29 +00:00
Kai Pastor eb087a6c84 Test simple metapackage 2023-10-09 06:48:59 +00:00
Colin Gillespie dd6a8e3fc7 cli: trim trailing whitespace from package arguments
Signed-off-by: Colin Gillespie <colin@cgillespie.xyz>
2023-10-09 06:36:47 +00:00
Ariadne Conill 97d907ba93 cli: remove strncmp() from modversion comparison
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-10-09 06:35:26 +00:00
Peter Kokot a4033ab9c6 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
2023-10-08 22:50:31 +00:00
L. E. Segovia a7c29fec18 meson: Add with-system options
Fixes #283
2023-10-08 22:49:22 +00:00
Xi Ruoyao 962a5e96b7 cli: fix --modversion not showing version with versioned query
Fixes #317.

Signed-off-by: Xi Ruoyao <xry111@xry111.site>
2023-10-08 22:47:51 +00:00
Colin Gillespie 5aeb469b81 libpkgconf: fix memory leak
Signed-off-by: Colin Gillespie <colin@cgillespie.xyz>
2023-10-08 22:46:53 +00:00
Ariadne Conill 652aff9790 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>
2023-10-08 22:27:56 +00:00
Ariadne Conill a6fb59a0ed pkgconf 2.0.3.
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-09-03 04:18:48 +00:00
Ariadne Conill 3f07015d3a add new test files to build system
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-09-03 04:18:48 +00:00
Ariadne Conill ee702658cd use PRIu64 format specifiers for some uint64 identifiers in trace logging
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-09-02 21:05:03 -07:00
Colin Gillespie 66994f1533 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>
2023-09-02 20:57:46 -07:00
Colin Gillespie 9cddd22bbc tests: add regression tests for --modversion
Signed-off-by: Colin Gillespie <colin@cgillespie.xyz>
2023-09-02 20:57:46 -07:00
Ariadne Conill eaa4bb44a0 pkgconf 2.0.2. 2023-08-17 11:56:08 -07:00
Ariadne Conill a265f8a42b libpkgconf: pkg: fix long-standing bug where -uninstalled pkg-config files would have the wrong identifier 2023-08-17 11:53:07 -07:00
Ariadne Conill f0f28fa690 tests: add regression test for --modversion with uninstalled pkg-config files 2023-08-17 11:50:00 -07:00
Ariadne Conill 6a84d70439 pkgconf 2.0.1.
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-08-11 14:23:08 -07:00
Ariadne Conill f49029c681 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>
2023-08-11 14:19:26 -07:00
Ariadne Conill 4fb0988a29 libpkgconf: queue: make the pkgconf_queue_t type public
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-08-11 14:16:41 -07:00
Ariadne Conill 5ef2ab8c7c cli: add --verbose parameter
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-08-11 14:09:01 -07:00
Ariadne Conill 95086643fa cli: remove package count restriction from --modversion
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-08-11 13:48:02 -07:00
Ariadne Conill fe69ccc6b9 Revert "main: explicitly error with --modversion and more than 1 package being queried"
This reverts commit a97b75ab2c.
2023-08-11 13:41:20 -07:00
Ariadne Conill de51b03cc1 pkgconf 2.0.0. 2023-08-04 08:45:16 +00:00
Ariadne Conill f305901052 tests: regress: remove obsolete modversion test 2023-08-04 08:44:57 +00:00
Ariadne Conill a97b75ab2c main: explicitly error with --modversion and more than 1 package being queried 2023-08-04 08:38:48 +00:00
Ariadne Conill 384ade5f31 path: prepend paths rather than append paths when processing --with-path arguments 2023-08-04 08:24:32 +00:00
Ariadne Conill a4eb097b39 queue: process packages in the resolution queue in the correct order 2023-08-04 08:23:00 +00:00
Ariadne Conill 5d0e2f5092 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.
2023-08-04 08:19:42 +00:00
Ariadne Conill 437c2a3218 update release tarball location because dynadot is a shitty registrar 2023-07-02 11:34:50 -07:00
Ariadne Conill 094dc38468 pkgconf 1.9.5.
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-05-02 12:10:54 -07:00
Ariadne Conill 35b1a62314 update libpkgconf version to 10905
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-05-02 12:09:55 -07:00
Ariadne Conill 83f412a1fd update NEWS for 1.9.5.
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-05-02 12:09:19 -07:00
Ariadne Conill 7bfc2289fd tests: add regression test for maximum package count off-by-one
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-05-02 11:58:56 -07:00
Ariadne Conill 1e179963d4 Enforce maximum package count correctly for --modversion
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
2023-05-02 11:58:39 -07:00
Harmen Stoppels f7bebba664 fix meson.build
Co-authored-by: Ariadne Conill <ariadne@dereferenced.org>
2023-05-02 11:52:10 -07:00
Harmen Stoppels 434cb2935e use includes 2023-05-02 11:49:34 -07:00
Harmen Stoppels 40638f2472 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.
2023-05-02 11:49:34 -07:00
h30032433 b08733f45d Fix the issue where tests/meson.build was deleted. 2023-05-02 11:48:38 -07:00
huyubiao 6d1f160e89 argvsplit: fix some quoting rules 2023-05-02 11:45:42 -07:00
Taylor R Campbell 212c85863a 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.
2023-05-02 11:43:56 -07:00
Andrej Shadura 78f3abc935 doc: Regenerate the documentation for libpkgconf
Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
2023-01-22 10:58:01 +00:00
Andrej Shadura 9ab5ea2e83 doc: personality: Add a documentation header
Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
2023-01-22 10:58:01 +00:00
Andrej Shadura cfda825f80 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>
2023-01-22 10:58:01 +00:00
Ariadne Conill 873e51aaae pkgconf 1.9.4. 2023-01-22 04:56:44 +00:00
Ariadne Conill f7305434eb libpkgconf: bump API version to 10904 2023-01-22 04:56:06 +00:00
Ariadne Conill 93edd215b4 update NEWS for 1.9.4 2023-01-22 04:52:25 +00:00
Ariadne Conill 49ab0b2ab7 tests: fixup! 2023-01-21 21:43:23 +00:00
Ariadne Conill 98b33b48cd cli: use flattened solution for almost all user-facing queries 2023-01-21 21:43:08 +00:00
Ariadne Conill d9e507cc6e pkg: do not do serial checks for flattened solutions, as they are already flattened 2023-01-21 21:31:38 +00:00