Dylan Baker
38103134a5
main: goto cleanup in validate case too
...
This fixes leaks in two tests
2022-08-04 15:52:10 -07:00
Dylan Baker
171738024e
cache: clear the cache with pkgconf_cache_remove
...
Which results in more code re-use.
2022-08-04 15:52:10 -07:00
Dylan Baker
e4d1c8ffa5
queue: when flattening do nothing if the flattened deps are empty
2022-08-04 15:52:10 -07:00
Dylan Baker
6609001114
queue: unref dependency in all cases
2022-08-04 15:52:10 -07:00
Dylan Baker
e275594ba6
queue: ensure cleanup happens when applying
2022-08-04 15:52:10 -07:00
Dylan Baker
4a1119aa2a
dependency: Fix reference counting of dependency_addraw
...
We only want a reference to be added for the value inserted into the
list, not the one returned. The returned one is unowned until it reaches
the public dependency_add function, which returns an owned pointer
instead. This makes things semantically more correct.
Unfortunately, this means in a few cases we have to write some ugly
code like:
```c
pkgconf_dependency_t *dep = pkgcond_dependency_add("args");
pkgconf_dependency_unref(dep->owner, dep);
```
2022-08-04 15:52:10 -07:00
Dylan Baker
a4de6235c2
cache: when removing a package from the cache unset the cached flag
2022-08-04 15:52:10 -07:00
Dylan Baker
ebe74fd253
cache: free the cache table when it is empty and set to NULL
...
We do the latter for the benefit of libpkgconf. This cleans up a
significant number of memory leaks in the cache handling.
2022-08-04 15:52:10 -07:00
Ariadne Conill
d240afe7d9
Merge pull request 'Fix macro definition interfering with -Wmisleading-indentation' ( #241 ) from dcbaker/pkgconf:submit/misleading-indentation into master
...
Reviewed-on: ariadne/pkgconf#241
2022-08-04 04:33:11 +00:00
Dylan Baker
125a13d3b9
meson: add -Wmisleading-indentation
...
A useful warning when loop and conditional statements are allowed
without braces.
2022-08-03 12:03:15 -07:00
Dylan Baker
96c61cbab0
libpkgconf: remove trailing ; from macro definition
...
GCC has a lovely bug (which I will report as soon as I have an account),
which causes -Wmisleading-indentation to miss cases of misleading
indentation after a `;;`, since the macro adds `;`, and in call cases
the caller also adds `;`, we end up with a double macro and gcc fails to
warn.
2022-08-03 12:03:15 -07:00
Ariadne Conill
a042827951
Merge pull request 'meson cleanups and fixes' ( #240 ) from dcbaker/pkgconf:submit/meson-cleanups into master
...
Reviewed-on: ariadne/pkgconf#240
2022-08-02 23:09:24 +00:00
Dylan Baker
dd779ad9f8
meson: add check to run_command
...
Because we really should be checking that it succeeds, and because not
setting it is deprecated.
2022-08-01 09:40:08 -07:00
Dylan Baker
c04097e491
meson: pass configured files idiomatically
...
Instead of attempting to figure out what the paths will be, take the
returned file object and pass that around, meson will then automatically
figure out the correct paths.
2022-08-01 09:40:08 -07:00
Dylan Baker
06fe2e23b0
meson: use current_source_dir and current_build_dir instead of *_root
...
The latter doesn't work correctly when being used as a subproject, as it
returns the *absolute* root. So if pkgconf is being built as part of
muon, then it will return muon's source root. current_source_dir, on the
other hand returns the directory correctly whether being built as a
subproject or superproject.
2022-08-01 09:40:08 -07:00
Dylan Baker
1f993bc095
meson: use string methods to avoid repeating data
...
Instead of writing `['HAVE_FOO_H', 'foo.h']`, use meson's string methods
to just write `['foo.h']`, and let meson create `HAVE_FOO_H` for us.
2022-08-01 09:40:08 -07:00
Dylan Baker
f947af057f
meson: use str.format for improved readability
2022-08-01 09:40:08 -07:00
Dylan Baker
5ba74dec93
meson: use straight indexing instead of array.get()
...
It's more terse, and we don't need the support of a fallback value.
2022-08-01 09:40:08 -07:00
Dylan Baker
bf307c1d95
ci: set meson to build with -Werror
...
This will help catch any new warnings added in CI.
2022-08-01 09:40:08 -07:00
Dylan Baker
4a2c9c285f
meson: use C99 as the standard
...
autoconf uses either C99 or Gnu99. Meson does not provide a graceful way
to select gnu99 if possible or c99 (though there are several proposals
currently happening to get there), so I've selected c99 as the
conservative default. Without this, the compiler uses whatever it's
default happens to be, which may or may not work out correctly, and
hides bugs from CI that are present with c99 as the default.
2022-07-29 10:23:18 -07:00
Dylan Baker
40ec08594e
meson: add warning for implicit-function-declarations
...
This would be triggered without the previous addition of -D_BSD_SOURCE
for strdup, among others
2022-07-29 10:23:18 -07:00
Dylan Baker
71974d8c54
meson: Add _BSD_SOURCE and _DEFAULT_SOURCE
...
To avoid warnings about string functions like strdup which are otherwise
undefined, but succeed at linking anyway when the C standard is c99.
2022-07-29 10:23:02 -07:00
Ariadne Conill
918b660992
woodpecker: track debian testing for autoconf 2.71
2022-07-26 18:15:50 +00:00
Ariadne Conill
f93870efd9
tests: add testcase for legacy FDO rules plus pc_sysrootdir
2022-07-26 18:05:31 +00:00
Ariadne Conill
18e2406002
tests: add omg-sysroot-uninstalled fixture
2022-07-26 18:03:15 +00:00
Ariadne Conill
6c70781aad
introduce PKG_CONFIG_PKGCONF1_SYSROOT_RULES for legacy pkgconf behavior
2022-07-26 18:00:22 +00:00
Ariadne Conill
f8aefea7ec
pkg: add flags argument to pkgconf_pkg_new_from_file
2022-07-26 17:13:15 +00:00
Ariadne Conill
297e18f2c8
tuple: add flags parameter to pkgconf_tuple_parse
2022-07-26 17:08:48 +00:00
Ariadne Conill
d9ec3ee642
tests: add testcases for confirming desired sysroot behavior regarding -uninstalled packages
2022-07-26 16:46:39 +00:00
Ariadne Conill
b0802cb3d1
Revert "pkgconf_pkg_parser_value_set(): fix code-path ordering bug."
...
This reverts commit 13fe4c8c58
.
2022-06-26 19:41:31 +00:00
Ariadne Conill
b602e33141
github actions: use debian testing
2022-06-26 19:39:09 +00:00
Ariadne Conill
72e429ae70
tuple: use ${pc_sysrootdir} instead of client->sysroot_dir where relevant
2022-06-26 19:35:19 +00:00
Ariadne Conill
7fa632a658
tests: sysroot: add additional tests
2022-06-26 19:34:54 +00:00
Ariadne Conill
9950312fde
tests: add additional test fixtures
2022-06-26 19:34:39 +00:00
Ariadne Conill
19b1befb5d
add additional sysroot testcase fixtures
2022-06-26 19:21:52 +00:00
Ariadne Conill
a61193c723
pkg: fix sysroot_dir logic for github 213
2022-06-26 19:16:00 +00:00
Ariadne Conill
d68a867dc0
tuple: fall back to using globals rather than preferring them
2022-06-26 19:15:07 +00:00
Ariadne Conill
bc272e4e9f
autoconf: run autoupdate
2022-06-26 18:58:08 +00:00
Ariadne Conill
623b8f7851
tests: further fixups
2022-06-26 18:56:36 +00:00
Ariadne Conill
fdd7d192e0
queue: fix ISO C conformance for fallthrough label
2022-06-26 18:39:00 +00:00
Ariadne Conill
11164376f7
main: handle --personality load failure
2022-06-26 18:34:22 +00:00
Ariadne Conill
ab352222a2
tests: fix up some test changes from the solver optimizations
...
the output of pkgconf is basically functionally equivalent in both cases
2022-06-26 18:22:04 +00:00
Ariadne Conill
04a6dda79f
main: refactor apply_variable
2022-06-26 18:17:30 +00:00
Ariadne Conill
a1a415111f
queue: handle pkgconf_pkg_verify_dependency failure while flattening
2022-06-26 18:09:22 +00:00
Ariadne Conill
9bc6d80e61
queue: push new unresolved dependencies to the front of the queue, rather than the tail
2022-06-26 18:06:04 +00:00
Ariadne Conill
fe4db3aad9
queue: skip dependency collection for root node
2022-06-26 18:04:42 +00:00
Ariadne Conill
5a82a259ac
queue: use maxdepth after flattening
2022-06-26 15:17:08 +00:00
Ariadne Conill
a416dc1fd6
queue: advance client serial when walking requires.private for flattening
2022-06-26 15:16:36 +00:00
Ariadne Conill
197fcadd4c
queue: add flattening code
2022-06-26 15:02:37 +00:00
Ariadne Conill
5817e8848f
pkg: track the number of hits a package has gotten while solving for dependencies
2022-06-26 07:22:56 +00:00