libpkgconf/pkg.c


Log

Author Commit Date CI Message
William Pitcock 6854265f 2019-01-14T13:48:23 libpkgconf: pkg: use pkgconf_fragment_copy_list() to clean up cflags gathering logic (closes #20)
William Pitcock 0ae52182 2019-01-14T13:11:59 libpkgconf: pkg: clean up pkgconf_parser interactions (closes #13)
Ignacio Casal Quinteiro 2c059710 2018-09-17T15:20:28 Canonicalize paths before using them This fixes a problem where on Windows the prefix would not match if the prefix is generated with backslashes and the rest of the variables use normal slashes
Ignacio Casal Quinteiro 9f17da92 2018-09-17T15:20:00 On Windows the path prefix should be checked caseless
William Pitcock 6f05fec4 2018-06-16T16:35:44 pkg: give a correctly sized vtable to the parser
William Pitcock 1244f8f8 2018-05-09T21:21:39 libpkgconf: refactor out the rfc822 message parser so that the cross-personality code can share it
William Pitcock f702967d 2018-05-09T19:56:30 libpkgconf: pkg: refactor pkgconf_pkg_new_from_file to prepare to factor out the rfc822 parser
William Pitcock 0f17a4f3 2018-05-09T19:33:12 libpkgconf: pkg: mark owning client earlier, to allow for refactoring out the rfc822 parser
William Pitcock 6b0e346c 2018-05-09T17:07:26 libpkgconf: refactor building the dir lists into separate concerns
Leorize f36ccc1d 2018-04-03T12:46:35 libpkgconf: add support for Haiku client: use BELIBRARIES On Haiku, BELIBRARIES is the equivalent to LIBRARY_PATH on many other systems, while LIBRARY_PATH is instead the LD_LIBRARY_PATH of Haiku. pkg: bootstrap package search paths with Haiku's find_paths This commit adds build_default_pkgconfig_path. The function appends to the list given the default pkgconfig paths, and will supersede get_default_pkgconfig_path
William Pitcock 7e9ed692 2018-03-18T18:04:02 libpkgconf: pkg: skip over -I cflags from Requires.internal nodes when building a cflags list
William Pitcock f03ec3ff 2018-03-18T15:46:53 libpkgconf: add support for proposed Requires.internal extension
TingPing a50bf726 2018-03-08T05:16:18 Fix incorrect comment (#178)
TingPing 60c05f56 2018-03-08T05:00:22 Improve prefix rewriting on Windows (#177) * cli: Default to rewriting prefix on Windows This matches `pkg-config` behavior * libpkgconf: Rewrite the prefix of all variables
William Pitcock 0d523391 2018-02-08T14:25:47 libpkgconf: pkg: ensure the dependency node has a solution associated with it Sometimes this did not happen, e.g. when using providers as the solution (ref #172).
William Pitcock 4a09efe0 2018-01-05T11:38:21 libpkgconf: pkg: fix harmless gcc7 compiler warning
William Pitcock a42f265c 2017-12-21T02:18:50 libpkgconf: pkg: include system libdir and includedir search paths as variables in builtin packages (closes #165)
William Pitcock e0bf4009 2017-12-12T00:21:21 libpkgconf: pkg: rename pkgconf_pkg_t.requires to pkgconf_pkg_t.required (closes #154) C++20 makes requires a keyword, so we need to not use it in headers.
William Pitcock f7406afc 2017-12-05T18:04:42 libpkgconf: pkg: do not mention PKG_CONFIG_SKIP_CONFLICTS env var when simplified errors are requested (closes #134)
William Pitcock 74d58d1b 2017-12-05T17:34:01 libpkgconf: pkg: cache solutions for already solved dependency graph nodes in almost all cases, we partially solve the dependency graph multiple times, which just wastes resources. if we record the solution to a given dependency node, further iterations can make use of the previous solution without having to solve it again. this is safe because all provides entries (including virtuals) are knowable prior to solving the dependency graph the first time. a nice side effect of this is that all packages are preloaded when querying information about them (--cflags and related commands).
William Pitcock 44b4b126 2017-12-05T17:32:00 libpkgconf: pkg: record which pkgconf_client_t owns each pkgconf_pkg_t object
William Pitcock 4c0cc292 2017-12-05T17:24:57 libpkgconf: pkg: add refcount debugging
William Pitcock 4589274c 2017-10-16T12:56:19 libpkgconf: start to remove PKGCONF_BUFSIZE allocations from the stack. (closes #149) Patch by Karen Arutyunov.
William Pitcock 420c62e1 2017-09-19T21:58:54 libpkgconf: pkg: refactor parser harness to allow providing warnings, provide warning for improper fragment list
William Pitcock e9fd43ca 2017-09-17T23:38:25 libpkgconf: clean up header includes (closes #137)
William Pitcock f808300a 2017-09-13T14:56:10 libpkgconf: pkg: some elements of virtual packages should be freed as they have heap-allocated portions (closes #132)
William Pitcock 9b55fc3c 2017-09-13T14:41:00 libpkgconf: cache: refactor the way package objects are marked as cached to avoid memory leaks (#133)
William Pitcock b7839f6b 2017-09-08T20:06:52 libpkgconf: pkg: pkgconf_pkg_scan_dir: remove unnecessary static declaration of filebuf
William Pitcock 2681c29e 2017-09-08T20:04:49 libpkgconf: pkg: determine_prefix: use caller-provided buffer for reentrancy
William Pitcock adae7044 2017-09-08T20:01:34 libpkgconf: pkg: get_default_pkgconfig_path: use caller-supplied buffer for reentrancy
William Pitcock 615bab3d 2017-09-08T19:48:31 libpkgconf: pkg: pkgconf_pkg_report_graph_error(): move already_sent_notice to pkgconf_client_t
William Pitcock b0ef708e 2017-09-08T19:23:04 libpkgconf: pkg: pkg_get_parent_dir(): use caller-supplied buffer instead of a static buffer to make reentrant
William Pitcock 47ce9765 2017-09-08T18:44:28 libpkgconf: define SIZE_FMT_SPECIFIER on POSIX and Windows platforms and use it in place of %zu The MSVCRT runtime as used on Windows does not support %zu, but instead recommends %Iu. As we want to remain portable to other runtimes, even on Windows, we do not use %Iu, but instead expand it logically to either %lu or %llu depending on if it's _WIN32 or _WIN64 headers. On POSIX, we assume C99 support is available and always use %zu, as pkgconf has never supported anything earlier than C99 officially. Closes #125.
William Pitcock 864b14e5 2017-06-16T21:06:01 Merge branch 'cmakeify' of github.com:dankegel/pkgconf
William Pitcock 03f78410 2017-06-16T15:27:23 libpkgconf: pkg: windows can use either \ or / as directory separators ref #118
William Pitcock d45e8501 2017-06-16T13:03:51 Revert "pkg: use pkgconf_pkg_t.realname instead of pkgconf_pkg_t.id for injecting the default provides entry" This reverts commit 0c22b4d8a1596e1d5b261041c36b474d05783373.
William Pitcock 0c22b4d8 2017-06-16T11:49:26 pkg: use pkgconf_pkg_t.realname instead of pkgconf_pkg_t.id for injecting the default provides entry This issue was noticed while porting pkgconf to Windows. ref #118
Dan Kegel 794aa501 2017-06-05T20:54:57 Tidy up a bit.
Dan Kegel 4d7b4d7c 2017-06-04T19:19:55 Minimal tweaks to compile with Visual C 2015
William Pitcock d280060e 2017-05-19T23:37:57 libpkgconf: pkg: add additional validation rules in post-parse phase
William Pitcock 0262b825 2017-05-19T23:33:49 libpkgconf: pkgconf_pkg_find(): correctly handle failure from pkgconf_pkg_new_from_file()
William Pitcock cf3c50ca 2017-05-19T23:21:58 libpkgconf: pkg: pkgconf_try_specific_path() and pkgconf_pkg_new_from_file() require a mutable client to release resources when encountering invalid packages
William Pitcock acac1f8e 2017-03-24T00:59:53 libpkgconf: pkg: show iteration depth when traversing
William Pitcock 81011ba5 2017-02-27T09:54:02 main: implement --short-errors (#115)
William Pitcock 794443a9 2017-02-25T16:04:55 dependency: break API to add tracepoints to dependency list building
William Pitcock e0c9569f 2017-02-25T15:53:50 fragment: add tracepoints
William Pitcock b0c36cd1 2017-02-04T20:35:49 libpkgconf: pkg: add some trace points
William Pitcock 820ad83e 2017-02-04T19:03:33 libpkgconf: pkg: add variable whitespace warnings back, using pkgconf_warn().
William Pitcock 1aa1a433 2017-01-26T13:38:57 Revert "libpkgconf: pkg: warn when encountering trailing whitespace" This reverts commit 2fa4fd09d02905e07397c2617bb1be735f6cd96b.
William Pitcock 2fa4fd09 2017-01-26T13:32:07 libpkgconf: pkg: warn when encountering trailing whitespace
William Pitcock ef1503b7 2017-01-26T13:10:52 libpkgconf: strip trailing whitespace
William Pitcock e87595b3 2017-01-23T12:42:13 libpkgconf: use a better check instead of stat() for pkg-config file iteration, avoiding a TOCTOU race condition identified by coverity
William Pitcock 0927ecf1 2017-01-22T23:29:59 Revert "Actually fix the regression introduced in 7b39c38" This reverts commit 5e5c418837b569196cc17eb999b3c11a9cc0099d.
William Pitcock 0c01a812 2017-01-22T23:26:01 libpkgconf: split virtual/static package state (this is API/ABI safe, static packages are always treated as virtual when it comes to mutation)
William Pitcock 9ece7cd4 2017-01-22T23:09:38 libpkgconf: move sys/stat.h inclusion out of stdinc.h to the only other consumer of sys/stat.h
William Pitcock e5f3dac6 2017-01-22T23:07:39 libpkgconf: pkg: handle error value from stat(2).
Igor Gnatenko 5db87c96 2017-01-22T20:31:34 remove dead assignments (#109) * remove dead assignments None of them are used. Signed-off-by: Igor Gnatenko <ignatenko@redhat.com> * The address of an object "&pkgconf_pkg_provides_vermatch_rules[pkgdep->compare]" is never null Signed-off-by: Igor Gnatenko <ignatenko@redhat.com> * Overrunning array pkgconf_pkg_comparator_names at element index 7 Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
Baptiste Daroussin 5e5c4188 2017-01-22T11:25:05 Actually fix the regression introduced in 7b39c38
Baptiste Daroussin 17be554a 2017-01-22T11:23:24 Revert "Fix regression introduced in 7b39c38" This reverts commit 7d89f659ffa45d381c3c4ee03c55f74635042829.
Baptiste Daroussin 7d89f659 2017-01-22T10:44:09 Fix regression introduced in 7b39c38 now pkgconf --variable=pc_path pkg-config works
William Pitcock 7237b811 2017-01-20T00:58:48 add support for making paths relocatable (closes #103)
William Pitcock 13cf74c7 2017-01-19T18:23:25 libpkgconf: kill flags from top-level fragment API (ref #105)
William Pitcock 7b39c384 2017-01-19T18:17:29 libpkgconf: pkg: clean up use of flags variable (ref #105)
William Pitcock 127fd037 2017-01-19T17:35:35 libpkgconf: pkg: uncouple resolver flags from pkgconf_pkg_dir_list_build(). (ref #105)
William Pitcock b428eeaa 2017-01-18T11:29:24 libpkgconf: remove legacy check to ensure pkgconf_pkg_dir_list_build() is only called once. this is not necessary anymore because: - we do path entry deduplication - it is possible that we want to prime the dir list with some user-specified paths prior to building it
William Pitcock 23050315 2016-12-30T11:13:04 libpkgconf: path: make the duplicate filtering opt-in. some path lists should not be deduped (compiler path lists, for example)
William Pitcock 61c750fd 2016-12-15T23:36:59 libpkgconf: pkg: cleanup and document pkg module
William Pitcock 32c8c73d 2016-12-15T22:57:15 libpkgconf: pkg: pkgconf_pkg_find_in_registry_key() should actually be private
William Pitcock 568e5bfd 2016-12-15T22:33:01 libpkgconf: client: move pkgconf_error() and pkgconf_default_error_handler() here
William Pitcock 82fa8b21 2016-12-13T12:14:08 libpkgconf: separate config.h from the actual API headers
Graham Ollis fa876089 2016-12-13T13:03:59 pass client and user data to error handler (#100)
William Pitcock 8213d910 2016-12-10T16:19:40 libpkgconf: migrate to using the pkgconf_ namespaced strlcat/strlcpy symbols
William Pitcock eab112fb 2016-12-10T16:06:18 pkg: cleanups
William Pitcock 062f0fd3 2016-12-09T21:40:19 libpkgconf: pkg: pkgconf_pkg_new_from_file() and children do not need the resolver flags anymore, so remove them
William Pitcock a9022030 2016-12-09T21:36:59 libpkgconf: fragment: simplify sysroot handling by using pkgconf_client_t.sysroot_dir presence
William Pitcock 011d8c77 2016-12-02T00:34:48 libpkgconf: audit: migrate to pkgconf_client_t
William Pitcock c05ecdfc 2016-12-02T00:29:33 libpkgconf: migrate cache to pkgconf_client_t which unfortunately requires it to be non-const :(
William Pitcock a300787c 2016-12-01T15:17:23 libpkgconf: do not implicitly build the dir list, instead explicitly do it
William Pitcock ad731d19 2016-12-01T15:11:37 libpkgconf: make pkgconf_pkg_dir_list_build() public
William Pitcock 434c465c 2016-12-01T15:09:54 libpkgconf: migrate pkgconf_error() to use client objects
William Pitcock 8740c5cd 2016-12-01T15:05:03 libpkgconf: begin removing global state from libpkgconf library by introducing a "client" object which holds the state
William Pitcock 4bb46e20 2016-11-30T22:32:17 libpkgconf: add path matching and environment building functions
William Pitcock f4da1082 2016-11-30T22:15:13 libpkgconf: refactor some path operations
William Pitcock 6484dcb0 2016-09-16T09:59:41 pkg: pkgconf_pkg_free(): be sure to free the Provides list
William Pitcock b900e046 2016-09-10T01:51:19 pkg: add support for PKGCONF_CMP_NOT_EQUAL Provides rules, completing support of Provides rules (closes #95)
William Pitcock 4fcda862 2016-09-09T14:34:38 pkg: make fuzzy Provides matching for PKG_CMP_NOT_EQUAL ops more correct
William Pitcock 892a03cd 2016-09-09T01:04:26 pkg: fill in a lot of the fuzzy matching stuff (but some of it may be wrong, needs to be looked at)
William Pitcock 7c0264ac 2016-09-09T00:17:46 pkg: implement rudementary support for fuzzy Provides matches
William Pitcock c2c7e748 2016-09-08T23:54:57 pkg: add a more flexible framework for multi-level compare required for fuzzy Provides rules.
William Pitcock 9783181c 2016-09-08T23:23:15 pkg: make pkgconf_vercmp_res_func_t more generic, allowing it to be used for Provides rules.
William Pitcock d304d9cb 2016-09-08T22:10:24 pkg: add support for 'simple' Provides rule entries (#95)
William Pitcock bbe6dcc0 2016-08-27T09:48:53 pkg: make pkgconf_scan_all() API more flexible to allow it to scan until it finds a qualifying pkgconf_pkg_t
William Pitcock 5ba46130 2016-08-26T23:43:20 pkg: add anchor Provides entry once the .pc file is parsed, instead of faking it in the tool
William Pitcock f9101659 2016-08-26T12:14:32 pkg: add support for parsing Provides: entries
William Pitcock d5d194f1 2016-08-26T10:54:37 pkg: clean up dependency comparison code
William Pitcock 4960242a 2016-08-26T10:35:22 pkg: make some compile-time defined tables const
William Pitcock be4a002f 2016-08-26T01:11:50 pkg: use bsearch(3) instead of a hardcoded tree of strcmp logic
William Pitcock 9e415ea1 2016-08-26T00:26:30 libpkgconf: improve API to support any number of builtin packages
William Pitcock 45d422c4 2016-07-10T15:20:31 libpkgconf: implement PKG_CONFIG_LOG style auditing (closes #88)
William Pitcock a892af74 2016-01-21T11:08:36 pkg: tolerate NULL in pkgconf_compare_version() (closes #85)