libpkgconf


Log

Author Commit Date CI Message
William Pitcock 183e68df 2019-01-14T13:52:04 libpkgconf: add LIBPKGCONF_VERSION macro
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 36a5b7ac 2019-01-14T13:48:02 libpkgconf: fragment: add pkgconf_fragment_copy_list()
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
Ignacio Casal Quinteiro c9dffb85 2018-09-17T15:19:18 Fix build on windows with meson
A. Wilcox 9b7affe0 2018-07-28T19:06:33 tuple: Ensure buf length is always >= 1 in dequote If a key is defined with no value, dequote will allocate a buffer with a length of 0. Since the buffer's length is 0, any manipulation of its content is UB. Example .pc file: prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include xcflags= xlibs= -lSM -lICE -lX11 Name: Obt Description: Openbox Toolkit Library Version: 3.6 Requires: glib-2.0 libxml-2.0 Libs: -L${libdir} -lobt ${xlibs} Cflags: -I${includedir}/openbox/3.6 ${xcflags} Output using pkgconf 1.5.2 on x86_64 Linux/musl: % pkgconf --cflags obt-3.5 -I/usr/include/openbox/3.6 \�\\�I\�\ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2
Graham Ollis fb08ae2b 2018-06-25T06:36:57 environment variables for system paths should override compiled-in defaults
William Pitcock 6f05fec4 2018-06-16T16:35:44 pkg: give a correctly sized vtable to the parser
William Pitcock b46bb93c 2018-06-14T16:12:04 libpkgconf: tuple: properly dequote tuples when added from the parser (closes legacy github bug #186)
Graham Ollis 273d1d04 2018-05-29T17:36:04 use pkgconf_strlcpy On Debian/Ubuntu I get: CC libpkgconf/personality.lo libpkgconf/personality.c: In function ‘load_personality_with_path’: libpkgconf/personality.c:195:3: warning: implicit declaration of function ‘strlcpy’ [-Wimplicit-function-declaration] strlcpy(pathbuf, path, sizeof pathbuf); ^~~~~~~ CC libpkgconf/parser.lo CCLD libpkgconf.la ar: `u' modifier ignored since `D' is the default (see `U') CC cli/pkgconf-main.o CC cli/pkgconf-getopt_long.o CC cli/pkgconf-renderer-msvc.o CCLD pkgconf ./.libs/libpkgconf.so: undefined reference to `strlcpy'
William Pitcock 3ccc4454 2018-05-10T13:36:22 libpkgconf: personality: ensure the path list is properly initialized before searching for triplets
William Pitcock 40897f24 2018-05-09T22:52:27 libpkgconf: personality: remove const from the default personality, since it's not really const
William Pitcock 25b2105e 2018-05-09T22:52:07 libpkgconf: client: if tracing is disabled, don't try to trace
William Pitcock e6ce6c8e 2018-05-09T22:39:39 libpkgconf: personality: fixups
William Pitcock 75134829 2018-05-09T22:08:28 libpkgconf: personality: fill in the rest of the personality 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 9439b683 2018-05-09T19:27:53 libpkgconf: personality: add stub cross personality loader
William Pitcock 6b0e346c 2018-05-09T17:07:26 libpkgconf: refactor building the dir lists into separate concerns
William Pitcock 854490c5 2018-05-09T16:54:21 libpkgconf: add basic support for cross-compile personality objects
William Pitcock 43e8c7b4 2018-05-09T16:35:21 libpkgconf: path: add path list copying function
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 3f753fa3 2018-03-18T19:03:18 libpkgconf: dependency: preference uncoloured nodes in event of a dependency collision
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 ad65bc4a 2018-03-18T18:01:59 libpkgconf: dependency: allow dependency nodes to be colored with traits
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
TingPing 83eea876 2018-03-07T05:27:54 meson: Fix defining PKGCONF_API (#174)
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 d5fd74d7 2018-01-22T15:13:14 libpkgconf: fragment: revert the quoting changes, but not the lexing changes a few strange edge cases are causing problems (closes #168)
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 cf96c562 2017-12-14T22:41:14 libpkgconf: argvsplit: fix escape handling in tokenizer (closes #163)
William Pitcock 18abb4cc 2017-12-13T11:18:25 libpkgconf: fragment: fix nitpick warning reported by MSVC (closes #162)
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 278a2bd6 2017-12-11T18:25:55 libpkgconf: fragment: rework quoting and lexing (closes #139, #153) we now use POSIX-style quoting for all fragments. it is our belief that this is the most optimal behaviour for portability, because all POSIX-compliant tools require single-quotes to be considered as literal (closes #153). because of this, we are able to remove some hacks on the lexer side which were there to simulate pkg-config quoting, but were basically utterly wrong (closes #139).
William Pitcock 973aff21 2017-12-11T17:39:12 libpkgconf: tuple: add some trace logging
William Pitcock 72743575 2017-12-10T00:39:39 libpkgconf: fragment: track merged fragments, as they should never be quoted
William Pitcock cad2515b 2017-12-10T00:36:20 libpkgconf: fragment: there are no consumers of non-escaped rendered fragment lists, so deprecate the option
William Pitcock d2b69833 2017-12-08T13:39:40 libpkgconf: cache: fix refcount issue exposed by recent depgraph solver changes
William Pitcock 19d91e90 2017-12-07T19:13:35 libpkgconf: fragment: allow for overriding the default fragment rendering behaviour
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 06abf28d 2017-12-05T17:46:57 libpkgconf: client: handle NULL client in pkgconf_trace calls
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 12973857 2017-10-16T12:51:59 libpkgconf: fragment: remove obsolete code in pkgconf_fragment_should_munge()
William Pitcock 36551cca 2017-10-16T11:30:22 libpkgconf: path: relocate the path before doing dedup checks (closes #151)
William Pitcock 3bc2e21d 2017-10-16T11:25:52 libpkgconf: path: ensure entire buffer is zeroed before calling realpath() on it (closes #150)
Baptiste Daroussin 6985a179 2017-10-11T17:03:21 libpkgconf: Fix issue when sysroot is '/' If sysroot is /, simply do nothing. This fixes #146
William Pitcock fae65710 2017-09-23T00:24:34 libpkgconf: argvsplit: handle double backslash case properly (closes #140)
William Pitcock abe0f5c8 2017-09-23T00:19:16 libpkgconf: fileio: fix quoting logic for double backslash case (ref #140)
William Pitcock db56c80d 2017-09-23T00:11:37 libpkgconf: fragment: add debug to document post-subst output to parser
William Pitcock 67dd48a3 2017-09-23T00:00:43 libpkgconf: api: handle DLL_EXPORT libtool case on mingw (closes #141)
William Pitcock 24c1439d 2017-09-22T23:58:40 libpkgconf: stdinc: fix SIZE_FMT_SPECIFIER on mingw
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 7ced8d77 2017-09-19T21:48:53 libpkgconf: fragment: pkgconf_fragment_parse: return false on parse failure
William Pitcock 7786554b 2017-09-19T21:34:24 libpkgconf: fragment: check pkgconf_argv_split() return value
William Pitcock 56101390 2017-09-19T21:08:18 libpkgconf: fragment parsing: do not pass NULL to pkgconf_fragment_add()
William Pitcock e9fd43ca 2017-09-17T23:38:25 libpkgconf: clean up header includes (closes #137)
William Pitcock ebb4c735 2017-09-13T15:02:57 libpkgconf: client: resolve memory leak of filter lists (closes #130)
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 048deb95 2017-09-13T14:35:28 headers: add C++ wrappers (closes #136)
William Pitcock b5da424e 2017-09-13T14:20:47 stdinc: drop _GNU_SOURCE definition
William Pitcock 906fef84 2017-09-08T20:09:12 libpkgconf: fragment: mark some inline match tables as const
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 1252d7ae 2017-09-08T19:53:52 libpkgconf: dependency: make dependency_to_str() private, use a 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 b9dac13e 2017-09-08T19:17:38 libpkgconf: tuple: pkgconf_tuple_parse(): remove unnecessary static buffer declaration
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 a6d6b88d 2017-09-08T18:27:04 libpkgconf: path: fix logic error in path relocation case when matching against a list (closes #129)
William Pitcock 9505213c 2017-07-16T17:35:28 tuple: check expanded variables to see if a sysroot has been duplicated, and if so, remove the prepended sysroot. This allows compatibility between legacy pkg-config's broken sysroot implementation and pkgconf's sysroot implementation, by removing any prepended sysroot paths and preferencing the variable expansion sysroot path we typically do instead. Closes github #123.
Maxin B. John 74666bff 2017-07-16T21:21:45 stdinc.h: fix build with mingw (#122) Fixes this build error with mingw: ... | compilation terminated. | In file included from ../pkgconf-1.3.7/libpkgconf/libpkgconf.h:19:0, | from ../pkgconf-1.3.7/libpkgconf/audit.c:16: | ../pkgconf-1.3.7/libpkgconf/stdinc.h:36:12: fatal error: BaseTsd.h: No such file or directory | # include <BaseTsd.h> Signed-off-by: Maxin B. John <maxin.john@intel.com>
Jussi Pakkanen 40fd9950 2017-06-19T20:03:00 Experiment to build with Meson (#119) * Initial Meson build definitions. * Install man page and headers.
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 ededaa64 2017-06-05T17:40:10 cmake: add missing configure variables, install headers and .pc file, use simpler line to invoke kyua, tweak build location of dll for ease of testing
Dan Kegel 4ba2bac5 2017-06-05T14:00:02 Don't depend on libtool magic to control which symbols are exported from shared libraries
Dan Kegel 9258874e 2017-06-05T10:23:56 cmake: use right soversion for libpkgconf
Dan Kegel 8b4a4b83 2017-06-04T19:32:08 First draft of cmake install rules
Dan Kegel 4d7b4d7c 2017-06-04T19:19:55 Minimal tweaks to compile with Visual C 2015
Dan Kegel 35d0f63d 2017-06-04T19:19:01 win-dirent.h: MIT-licensed port of dirent to win32 from https://github.com/tronkko/dirent
Dan Kegel 251f7473 2017-06-04T15:17:51 First draft of cmake port
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 3c7f82a7 2017-05-09T19:38:57 fragment: also protect -nostdinc, -nostdlibinc, -nobuiltininc
William Pitcock 74eb74a3 2017-05-09T19:37:23 fragment: handle -include similarly to -isystem and -idirafter