1*a3cefe7fSPierre ProncheryChanges from previous version of pkgconf 2*a3cefe7fSPierre Pronchery======================================== 3*a3cefe7fSPierre Pronchery 4*a3cefe7fSPierre ProncheryChanges from 2.5.0 to 2.5.1: 5*a3cefe7fSPierre Pronchery---------------------------- 6*a3cefe7fSPierre Pronchery 7*a3cefe7fSPierre Pronchery* Fix processing of empty dependency lists. 8*a3cefe7fSPierre Pronchery 9*a3cefe7fSPierre ProncheryChanges from 2.4.3 to 2.5.0: 10*a3cefe7fSPierre Pronchery---------------------------- 11*a3cefe7fSPierre Pronchery 12*a3cefe7fSPierre Pronchery* Added a manual page for bomtool. 13*a3cefe7fSPierre Pronchery 14*a3cefe7fSPierre Pronchery* Add support for preloaded packages. 15*a3cefe7fSPierre Pronchery These are modules which are preloaded into the package database 16*a3cefe7fSPierre Pronchery and preferred over searching the module search path when present. 17*a3cefe7fSPierre Pronchery 18*a3cefe7fSPierre Pronchery* Refactor Windows registry PKG_CONFIG_PATH support so that it 19*a3cefe7fSPierre Pronchery augments the main directory search list instead of being treated 20*a3cefe7fSPierre Pronchery as a special case. 21*a3cefe7fSPierre Pronchery 22*a3cefe7fSPierre Pronchery* Processing of `--with-path` arguments by the pkgconf CLI is 23*a3cefe7fSPierre Pronchery now deferred until libpkgconf is fully initialized, effectively 24*a3cefe7fSPierre Pronchery aligning behavior with PKG_CONFIG_PATH processing. 25*a3cefe7fSPierre Pronchery 26*a3cefe7fSPierre Pronchery* Fix several minor memory safety bugs which were identified by 27*a3cefe7fSPierre Pronchery the GCC 15 static analyzer. 28*a3cefe7fSPierre Pronchery 29*a3cefe7fSPierre Pronchery* Added support for pledge(2) and unveil(2) on systems where 30*a3cefe7fSPierre Pronchery this functionality is available. 31*a3cefe7fSPierre Pronchery 32*a3cefe7fSPierre Pronchery* Significant improvements to pkgconf's manual pages. 33*a3cefe7fSPierre Pronchery Patches by Ingo Schwarze and Jonathan Gray (OpenBSD). 34*a3cefe7fSPierre Pronchery 35*a3cefe7fSPierre Pronchery* Remove questionable default-static assumption on Windows that 36*a3cefe7fSPierre Pronchery was inherited from the original pkg-config. Most distributions 37*a3cefe7fSPierre Pronchery of pkgconf on Windows were already patching this out. 38*a3cefe7fSPierre Pronchery Patch by Kai Pastor. 39*a3cefe7fSPierre Pronchery 40*a3cefe7fSPierre Pronchery* Add -D_POSIX_C_SOURCE=200809L to the build definitions, which 41*a3cefe7fSPierre Pronchery is needed for readlinkat on glibc. 42*a3cefe7fSPierre Pronchery Patch by Filipe Laíns. 43*a3cefe7fSPierre Pronchery 44*a3cefe7fSPierre ProncheryChanges from 2.4.2 to 2.4.3: 45*a3cefe7fSPierre Pronchery---------------------------- 46*a3cefe7fSPierre Pronchery 47*a3cefe7fSPierre Pronchery* Fix additional logic errors relating to the new fragment trees 48*a3cefe7fSPierre Pronchery functionality. 49*a3cefe7fSPierre Pronchery 50*a3cefe7fSPierre ProncheryChanges from 2.4.1 to 2.4.2: 51*a3cefe7fSPierre Pronchery---------------------------- 52*a3cefe7fSPierre Pronchery 53*a3cefe7fSPierre Pronchery* Fix several logic errors in the pkg-config file parser that were 54*a3cefe7fSPierre Pronchery surfaced by recent refactoring work. 55*a3cefe7fSPierre Pronchery 56*a3cefe7fSPierre Pronchery* Fix BSD make compatibility so that it generates the test data 57*a3cefe7fSPierre Pronchery before running kyua on BSD make implementations. 58*a3cefe7fSPierre Pronchery 59*a3cefe7fSPierre ProncheryChanges from 2.4.0 to 2.4.1: 60*a3cefe7fSPierre Pronchery---------------------------- 61*a3cefe7fSPierre Pronchery 62*a3cefe7fSPierre Pronchery* Ensure the full DAG is solved for all query types. 63*a3cefe7fSPierre Pronchery 64*a3cefe7fSPierre ProncheryChanges from 2.3.0 to 2.4.0: 65*a3cefe7fSPierre Pronchery---------------------------- 66*a3cefe7fSPierre Pronchery 67*a3cefe7fSPierre Pronchery* Allow multiple package names in solution-based queries such as 68*a3cefe7fSPierre Pronchery `--print-requires`, `--print-requires-private` and `--print-provides`. 69*a3cefe7fSPierre Pronchery 70*a3cefe7fSPierre Pronchery* Use `_DEFAULT_SOURCE` where appropriate on Meson. 71*a3cefe7fSPierre Pronchery 72*a3cefe7fSPierre Pronchery* Add an abstract buffer type and use it when loading files from disk 73*a3cefe7fSPierre Pronchery instead of a 64KB buffer. This ensures large pkg-config files are 74*a3cefe7fSPierre Pronchery not truncated. 75*a3cefe7fSPierre Pronchery 76*a3cefe7fSPierre Pronchery* Disable graph recursion in `--variable` queries as it was generating 77*a3cefe7fSPierre Pronchery duplicate output. 78*a3cefe7fSPierre Pronchery 79*a3cefe7fSPierre Pronchery* Add infrastructure for tracking fragment group relations and convert 80*a3cefe7fSPierre Pronchery storage of fragments to use a tree-like structure instead of string 81*a3cefe7fSPierre Pronchery concatenation. 82*a3cefe7fSPierre Pronchery 83*a3cefe7fSPierre Pronchery* Add support for tracking linker groups, e.g. 84*a3cefe7fSPierre Pronchery 85*a3cefe7fSPierre Pronchery -Wl,--start-group -la -lb -lc -Wl,--end-group 86*a3cefe7fSPierre Pronchery 87*a3cefe7fSPierre Pronchery as fragment groups. 88*a3cefe7fSPierre Pronchery 89*a3cefe7fSPierre Pronchery* Properly contextualize the sysroot directory when processing package 90*a3cefe7fSPierre Pronchery information, ensuring packages where ${pc_sysrootdir} does not match 91*a3cefe7fSPierre Pronchery the default are properly processed. 92*a3cefe7fSPierre Pronchery 93*a3cefe7fSPierre ProncheryChanges from 2.2.0 to 2.3.0: 94*a3cefe7fSPierre Pronchery---------------------------- 95*a3cefe7fSPierre Pronchery 96*a3cefe7fSPierre Pronchery* Fix compile with Meson on Solaris by defining __EXTENSIONS__. 97*a3cefe7fSPierre Pronchery 98*a3cefe7fSPierre Pronchery* Add support for the PKG_CONFIG_RELOCATE_PATHS environmental variable. 99*a3cefe7fSPierre Pronchery When set, the program will act as if --define-prefix is always enabled. 100*a3cefe7fSPierre Pronchery 101*a3cefe7fSPierre Pronchery* Color solution nodes that were part of the original query, and use 102*a3cefe7fSPierre Pronchery that coloring to skip over dependencies when generating DocumentNames 103*a3cefe7fSPierre Pronchery in bomtool. 104*a3cefe7fSPierre Pronchery 105*a3cefe7fSPierre Pronchery* Enhance --env option to support variables with both --variable=varname 106*a3cefe7fSPierre Pronchery and --print-variables. 107*a3cefe7fSPierre Pronchery 108*a3cefe7fSPierre Pronchery* Add --exists-cflags option which creates synthetic preprocessor 109*a3cefe7fSPierre Pronchery definition flags for every queried dependency when found. 110*a3cefe7fSPierre Pronchery 111*a3cefe7fSPierre Pronchery* Document that Requires.private is always used for header paths. 112*a3cefe7fSPierre Pronchery Patch by Petr Písař. 113*a3cefe7fSPierre Pronchery 114*a3cefe7fSPierre Pronchery* Fix minor documentation typos. 115*a3cefe7fSPierre Pronchery Patch by Pierce. 116*a3cefe7fSPierre Pronchery 117*a3cefe7fSPierre Pronchery* Ensure string comparisons using <ctype.h> functions are done with 118*a3cefe7fSPierre Pronchery unsigned bytes to avoid undefined behavior. 119*a3cefe7fSPierre Pronchery Patch by Taylor R Campbell. 120*a3cefe7fSPierre Pronchery 121*a3cefe7fSPierre Pronchery* Fix parsing edge-case bugs with dependency versions. 122*a3cefe7fSPierre Pronchery Patch by Kai Pastor. 123*a3cefe7fSPierre Pronchery 124*a3cefe7fSPierre Pronchery* Change PKG_PROG_PKG_CONFIG autoconf macro to add a customizable 125*a3cefe7fSPierre Pronchery failure handler if pkg-config is not found. 126*a3cefe7fSPierre Pronchery Patch by Ismael Luceno. 127*a3cefe7fSPierre Pronchery 128*a3cefe7fSPierre ProncheryChanges from 2.1.1 to 2.2.0: 129*a3cefe7fSPierre Pronchery---------------------------- 130*a3cefe7fSPierre Pronchery 131*a3cefe7fSPierre Pronchery* libpkgconf SOVERSION is now 5. 132*a3cefe7fSPierre Pronchery 133*a3cefe7fSPierre Pronchery* Significant solver rework to flatten both requires and requires.private 134*a3cefe7fSPierre Pronchery dependencies in a single pass. Improves performance slightly and ensures 135*a3cefe7fSPierre Pronchery proper dependency order. 136*a3cefe7fSPierre Pronchery Patches by Kai Pastor. 137*a3cefe7fSPierre Pronchery 138*a3cefe7fSPierre Pronchery* Improve `--digraph` output to reflect more of the solver's state in the 139*a3cefe7fSPierre Pronchery rendered dependency graph. 140*a3cefe7fSPierre Pronchery Patches by Kai Pastor. 141*a3cefe7fSPierre Pronchery 142*a3cefe7fSPierre Pronchery* Do not reference the graph root by name when presenting error messages about 143*a3cefe7fSPierre Pronchery directly requested dependency nodes. 144*a3cefe7fSPierre Pronchery Patch by Kai Pastor. 145*a3cefe7fSPierre Pronchery 146*a3cefe7fSPierre ProncheryChanges from 2.1.0 to 2.1.1: 147*a3cefe7fSPierre Pronchery---------------------------- 148*a3cefe7fSPierre Pronchery 149*a3cefe7fSPierre Pronchery* Documentation fixes from Sam James and Stefan Weil. 150*a3cefe7fSPierre Pronchery 151*a3cefe7fSPierre Pronchery* Fix --modversion with constraints. 152*a3cefe7fSPierre Pronchery Patch by Kai Pastor. 153*a3cefe7fSPierre Pronchery 154*a3cefe7fSPierre Pronchery* Reintroduce an optimization to the dependency graph walker which avoids 155*a3cefe7fSPierre Pronchery revisiting already visited nodes. 156*a3cefe7fSPierre Pronchery Patch by Yi Chou with some modifications. 157*a3cefe7fSPierre Pronchery 158*a3cefe7fSPierre Pronchery* Add a regression test to check that the dependency flattener is working 159*a3cefe7fSPierre Pronchery as expected. 160*a3cefe7fSPierre Pronchery Patch by Kai Pastor. 161*a3cefe7fSPierre Pronchery 162*a3cefe7fSPierre ProncheryChanges from 2.0.3 to 2.1.0: 163*a3cefe7fSPierre Pronchery---------------------------- 164*a3cefe7fSPierre Pronchery 165*a3cefe7fSPierre Pronchery* Do not flatten the solver solution into the original world used as 166*a3cefe7fSPierre Pronchery input to the solver. 167*a3cefe7fSPierre Pronchery Patches by Kai Pastor. 168*a3cefe7fSPierre Pronchery 169*a3cefe7fSPierre Pronchery* Fix warnings with GCC 14 -Walloc-size. 170*a3cefe7fSPierre Pronchery Patch by Sam James. 171*a3cefe7fSPierre Pronchery 172*a3cefe7fSPierre Pronchery* Add --solution to the pkgconf CLI to dump the solver state. 173*a3cefe7fSPierre Pronchery 174*a3cefe7fSPierre Pronchery* Improve the --digraph output to clarify cancelled edges in a given 175*a3cefe7fSPierre Pronchery solution. 176*a3cefe7fSPierre Pronchery 177*a3cefe7fSPierre Pronchery* Demote requires dependencies to requires.private when a parent 178*a3cefe7fSPierre Pronchery dependency is pulled in via requires.private. 179*a3cefe7fSPierre Pronchery 180*a3cefe7fSPierre Pronchery* Trim trailing whitespace when processing package arguments. 181*a3cefe7fSPierre Pronchery Patch by Colin Gillespie. 182*a3cefe7fSPierre Pronchery 183*a3cefe7fSPierre Pronchery* Avoid strncmp() in --modversion version comparison. 184*a3cefe7fSPierre Pronchery Patch by Colin Gillespie. 185*a3cefe7fSPierre Pronchery 186*a3cefe7fSPierre Pronchery* Update autoconf compile flag checking macro. 187*a3cefe7fSPierre Pronchery Patch by Peter Kokot. 188*a3cefe7fSPierre Pronchery 189*a3cefe7fSPierre Pronchery* Add system default path configuration to Meson. 190*a3cefe7fSPierre Pronchery Patch by L. E. Segovia. 191*a3cefe7fSPierre Pronchery 192*a3cefe7fSPierre Pronchery* Fix order of PKG_CONFIG_LIBDIR and PKG_CONFIG_PATH element processing. 193*a3cefe7fSPierre Pronchery 194*a3cefe7fSPierre ProncheryChanges from 2.0.2 to 2.0.3: 195*a3cefe7fSPierre Pronchery---------------------------- 196*a3cefe7fSPierre Pronchery 197*a3cefe7fSPierre Pronchery* Fix some edge-cases with the new `--modversion` implementation 198*a3cefe7fSPierre Pronchery and add additional regression tests. 199*a3cefe7fSPierre Pronchery Patch by Colin Gillespie. 200*a3cefe7fSPierre Pronchery 201*a3cefe7fSPierre Pronchery* Fix some format specifiers to use PRIu64 in debug tracing. 202*a3cefe7fSPierre Pronchery 203*a3cefe7fSPierre ProncheryChanges from 2.0.1 to 2.0.2: 204*a3cefe7fSPierre Pronchery---------------------------- 205*a3cefe7fSPierre Pronchery 206*a3cefe7fSPierre Pronchery* Fix long-standing bug where package identifiers for "uninstalled" 207*a3cefe7fSPierre Pronchery packages incorrectly included the "-uninstalled" suffix. 208*a3cefe7fSPierre Pronchery 209*a3cefe7fSPierre Pronchery This was exposed by the recent change to `--modversion` in 2.0.1. 210*a3cefe7fSPierre Pronchery 211*a3cefe7fSPierre ProncheryChanges from 2.0.0 to 2.0.1: 212*a3cefe7fSPierre Pronchery---------------------------- 213*a3cefe7fSPierre Pronchery 214*a3cefe7fSPierre Pronchery* The behavior of --modversion was largely reverted back to the traditional 215*a3cefe7fSPierre Pronchery pkg-config behavior, but still operates on a solved dependency graph. 216*a3cefe7fSPierre Pronchery 217*a3cefe7fSPierre Pronchery The order of --modversion output is based on the dependency resolution 218*a3cefe7fSPierre Pronchery queue which is passed to the solver, which itself generally maps to the 219*a3cefe7fSPierre Pronchery order of the constrants provided on the command line. 220*a3cefe7fSPierre Pronchery 221*a3cefe7fSPierre Pronchery* A new flag, --verbose, has been added. When used with `--modversion`, it 222*a3cefe7fSPierre Pronchery is possible to disambiguate which version belongs to which module: 223*a3cefe7fSPierre Pronchery 224*a3cefe7fSPierre Pronchery % pkgconf --modversion --verbose foo bar 225*a3cefe7fSPierre Pronchery foo: 1.2.3 226*a3cefe7fSPierre Pronchery bar: 1.3 227*a3cefe7fSPierre Pronchery 228*a3cefe7fSPierre ProncheryChanges from 1.9.5 to 2.0.0: 229*a3cefe7fSPierre Pronchery---------------------------- 230*a3cefe7fSPierre Pronchery 231*a3cefe7fSPierre Pronchery* When flattening the dependency graph, retain the latest seen edges 232*a3cefe7fSPierre Pronchery rather than the earliest. 233*a3cefe7fSPierre Pronchery 234*a3cefe7fSPierre Pronchery* Fix a long-standing bug where the dependency resolution queue was 235*a3cefe7fSPierre Pronchery evaluated in reverse. This bug masked the aforementioned dependency 236*a3cefe7fSPierre Pronchery flattening bug in many cases. 237*a3cefe7fSPierre Pronchery 238*a3cefe7fSPierre Pronchery* Fix handling of --with-path, which was appending paths to the search 239*a3cefe7fSPierre Pronchery list rather than prepending them as intended. 240*a3cefe7fSPierre Pronchery 241*a3cefe7fSPierre Pronchery* Error when --modversion is requested with more than one package, as 242*a3cefe7fSPierre Pronchery the output is ambiguous. 243*a3cefe7fSPierre Pronchery 244*a3cefe7fSPierre ProncheryChanges from 1.9.4 to 1.9.5: 245*a3cefe7fSPierre Pronchery---------------------------- 246*a3cefe7fSPierre Pronchery 247*a3cefe7fSPierre Pronchery* Fix incorrect assumptions involving the use of ctype(3) functions. 248*a3cefe7fSPierre Pronchery Patch by Taylor R Campbell. 249*a3cefe7fSPierre Pronchery 250*a3cefe7fSPierre Pronchery* Fix detection of provided functions on autoconf. 251*a3cefe7fSPierre Pronchery Patches by Harmen Stoppels. 252*a3cefe7fSPierre Pronchery 253*a3cefe7fSPierre Pronchery* Fix deletion of tests/meson.build by the autoconf build system. 254*a3cefe7fSPierre Pronchery Patch by h30032433. 255*a3cefe7fSPierre Pronchery 256*a3cefe7fSPierre Pronchery* Fix quoting rules in argvsplit.c. 257*a3cefe7fSPierre Pronchery Patch by huyubiao. 258*a3cefe7fSPierre Pronchery 259*a3cefe7fSPierre Pronchery* Update libpkgconf documentation and documentation building scripts. 260*a3cefe7fSPierre Pronchery Patches by Andrew Shadura. 261*a3cefe7fSPierre Pronchery 262*a3cefe7fSPierre Pronchery* Enforce maximum package count correctly for --modversion. 263*a3cefe7fSPierre Pronchery 264*a3cefe7fSPierre ProncheryChanges from 1.9.3 to 1.9.4: 265*a3cefe7fSPierre Pronchery---------------------------- 266*a3cefe7fSPierre Pronchery 267*a3cefe7fSPierre Pronchery* Fix a buffer overflow vulnerability involving very large variable expansions. 268*a3cefe7fSPierre Pronchery CVE-2023-24056 269*a3cefe7fSPierre Pronchery 270*a3cefe7fSPierre Pronchery* Fix a bunch of minor regressions with the solver. 271*a3cefe7fSPierre Pronchery 272*a3cefe7fSPierre Pronchery* Create separate solutions for `--cflags` and `--libs` when `--static` is not 273*a3cefe7fSPierre Pronchery used. 274*a3cefe7fSPierre Pronchery 275*a3cefe7fSPierre Pronchery* Remove final trailing whitespace in pkgconf_fragment_render_buf(). 276*a3cefe7fSPierre Pronchery 277*a3cefe7fSPierre Pronchery* Revert broken pkg.m4 change involving querying module versions in 278*a3cefe7fSPierre Pronchery PKG_CHECK_MODULES. 279*a3cefe7fSPierre Pronchery 280*a3cefe7fSPierre Pronchery* Fix handling of tildes in version strings. 281*a3cefe7fSPierre Pronchery 282*a3cefe7fSPierre Pronchery* Various C99 formatting string fixes involving SIZE_FMT_SPECIFIER. 283*a3cefe7fSPierre Pronchery 284*a3cefe7fSPierre ProncheryChanges from 1.9.2 to 1.9.3: 285*a3cefe7fSPierre Pronchery---------------------------- 286*a3cefe7fSPierre Pronchery 287*a3cefe7fSPierre Pronchery* Fix a bunch of minor code issues pointed out using Clang static analyzer. 288*a3cefe7fSPierre Pronchery 289*a3cefe7fSPierre Pronchery* New API: pkgconf_solution_free(), which frees a compiled solution graph. 290*a3cefe7fSPierre Pronchery 291*a3cefe7fSPierre Pronchery* Fix behavior when overriding global variables with `--define-variable`. 292*a3cefe7fSPierre Pronchery 293*a3cefe7fSPierre ProncheryChanges from 1.9.1 to 1.9.2: 294*a3cefe7fSPierre Pronchery---------------------------- 295*a3cefe7fSPierre Pronchery 296*a3cefe7fSPierre Pronchery* Do not try to break dependency cycles across dependency lists. This causes 297*a3cefe7fSPierre Pronchery the solved graph to sometimes miss required dependency nodes because the 298*a3cefe7fSPierre Pronchery solver detected an incorrect dependency cycle. 299*a3cefe7fSPierre Pronchery 300*a3cefe7fSPierre Pronchery* New API: pkgconf_queue_solve(), which replaces pkgconf_queue_apply(). 301*a3cefe7fSPierre Pronchery pkgconf_queue_apply is now deprecated and should not be used in new code. 302*a3cefe7fSPierre Pronchery 303*a3cefe7fSPierre ProncheryChanges from 1.9.0 to 1.9.1: 304*a3cefe7fSPierre Pronchery---------------------------- 305*a3cefe7fSPierre Pronchery 306*a3cefe7fSPierre Pronchery* Skip graph flattening and traversal for query types which only make sense 307*a3cefe7fSPierre Pronchery for a single pkg-config module. 308*a3cefe7fSPierre Pronchery 309*a3cefe7fSPierre Pronchery The old solver walked these graphs with --maximum-traverse-depth=1 in 310*a3cefe7fSPierre Pronchery these cases, but this is no longer helpful because the graph is flattened 311*a3cefe7fSPierre Pronchery by the new solver. 312*a3cefe7fSPierre Pronchery 313*a3cefe7fSPierre ProncheryChanges from 1.8.0 to 1.9.0: 314*a3cefe7fSPierre Pronchery---------------------------- 315*a3cefe7fSPierre Pronchery 316*a3cefe7fSPierre Pronchery* pkgconf 1.9.0 is the first testing release in the pkgconf 2.0 development 317*a3cefe7fSPierre Pronchery series. While it is believed to be suitable for production, there may be 318*a3cefe7fSPierre Pronchery bugs due to the overall redesign of the solver and other initiatives. 319*a3cefe7fSPierre Pronchery Additionally, a future release of pkgconf plans will have additional ABI 320*a3cefe7fSPierre Pronchery breaks for the libpkgconf library before the pkgconf 2.0 release is cut. 321*a3cefe7fSPierre Pronchery 322*a3cefe7fSPierre Pronchery* There is now a new solver that is designed to provide higher performance 323*a3cefe7fSPierre Pronchery with complicated graphs, which works by flattening the dependency graph 324*a3cefe7fSPierre Pronchery into a smaller set of dependencies. This graph can then be evaluated 325*a3cefe7fSPierre Pronchery instead of the original dependency graph without having to visit every 326*a3cefe7fSPierre Pronchery edge in the graph. 327*a3cefe7fSPierre Pronchery 328*a3cefe7fSPierre Pronchery NOTE: This solver, while providing significant performance improvements, 329*a3cefe7fSPierre Pronchery does so, at the cost of changed behavior for some edge cases (such as 330*a3cefe7fSPierre Pronchery circular dependencies). 331*a3cefe7fSPierre Pronchery 332*a3cefe7fSPierre Pronchery* Bug fixes: 333*a3cefe7fSPierre Pronchery - Resolved several memory leaks with edge cases when using libpkgconf 334*a3cefe7fSPierre Pronchery directly. 335*a3cefe7fSPierre Pronchery - pkgconf CLI now consistently frees libpkgconf resources under all 336*a3cefe7fSPierre Pronchery circumstances. 337*a3cefe7fSPierre Pronchery - SYSROOT rules are no longer applied to `-uninstalled` packages by 338*a3cefe7fSPierre Pronchery default. Use `PKG_CONFIG_PKGCONF1_SYSROOT_RULES` for legacy behavior. 339*a3cefe7fSPierre Pronchery 340*a3cefe7fSPierre Pronchery* A new `--license` selector has been added to the pkgconf CLI. This uses 341*a3cefe7fSPierre Pronchery SPDX expressions which can be set as the `License` field in `.pc` files. 342*a3cefe7fSPierre Pronchery See the `pc(5)` manpage for more information. 343*a3cefe7fSPierre Pronchery 344*a3cefe7fSPierre Pronchery* The canonical location for pkgconf maintenance going forward is 345*a3cefe7fSPierre Pronchery <https://gitea.treehouse.systems/ariadne/pkgconf>. This is presently 346*a3cefe7fSPierre Pronchery mirrored to GitHub for user convenience, but that mirroring will 347*a3cefe7fSPierre Pronchery be terminated at some point (due to GitHub Copilot). 348*a3cefe7fSPierre Pronchery 349*a3cefe7fSPierre ProncheryChanges from 1.7.4 to 1.8.0: 350*a3cefe7fSPierre Pronchery---------------------------- 351*a3cefe7fSPierre Pronchery 352*a3cefe7fSPierre Pronchery* This is the last planned maintenance branch. I see pkgconf as basically 353*a3cefe7fSPierre Pronchery a finished tool at this point, and very few people were ultimately interested 354*a3cefe7fSPierre Pronchery in libpkgconf. So, from here on out, it will just be bug fixes only and 355*a3cefe7fSPierre Pronchery very minor enhancements. 356*a3cefe7fSPierre Pronchery 357*a3cefe7fSPierre Pronchery* Bug fixes: 358*a3cefe7fSPierre Pronchery - Improved path handling on Windows to conform to what the MSYS2 359*a3cefe7fSPierre Pronchery and Cygwin teams were already modifying pkgconf to do. 360*a3cefe7fSPierre Pronchery Patches by Christoph Reiter. 361*a3cefe7fSPierre Pronchery - Fix a minor memory leak relating to cross-personalities. 362*a3cefe7fSPierre Pronchery Patch by Stone Tickle. 363*a3cefe7fSPierre Pronchery - Fix static builds for Windows on Meson. 364*a3cefe7fSPierre Pronchery Patch by Alexander Neumann. 365*a3cefe7fSPierre Pronchery - Fix some edge cases with --redefine-prefix. 366*a3cefe7fSPierre Pronchery Patch by midipix. 367*a3cefe7fSPierre Pronchery - Do not prepend sysroot_dir if the .pc file does not exist in the 368*a3cefe7fSPierre Pronchery sysroot. 369*a3cefe7fSPierre Pronchery Patch by Sandro Mani. 370*a3cefe7fSPierre Pronchery - Do not perform path filtering on default system include and library 371*a3cefe7fSPierre Pronchery path lists. This fixes consistency with other mechanisms that modify 372*a3cefe7fSPierre Pronchery these path lists. 373*a3cefe7fSPierre Pronchery 374*a3cefe7fSPierre Pronchery* Enhancements: 375*a3cefe7fSPierre Pronchery - Document the --validate option in the manpage. 376*a3cefe7fSPierre Pronchery Patch by orbea. 377*a3cefe7fSPierre Pronchery 378*a3cefe7fSPierre ProncheryChanges from 1.7.3 to 1.7.4: 379*a3cefe7fSPierre Pronchery---------------------------- 380*a3cefe7fSPierre Pronchery 381*a3cefe7fSPierre Pronchery* Bug fixes: 382*a3cefe7fSPierre Pronchery - Fix null-dereference crash when pulling a malformed 'uninstalled' 383*a3cefe7fSPierre Pronchery .pc file into a dependency tree. Patch by Tobias Stöckmann. 384*a3cefe7fSPierre Pronchery - Fix truncation of comment characters when quoted. 385*a3cefe7fSPierre Pronchery - Fix handling of .pc module names in --list-all on Windows. 386*a3cefe7fSPierre Pronchery Patch by Ryan Scott. 387*a3cefe7fSPierre Pronchery - Handle platforms where realpath(3) requires a pre-allocated buffer. 388*a3cefe7fSPierre Pronchery Patch by Fabian Groffen. 389*a3cefe7fSPierre Pronchery - Fix version whitespace warning. 390*a3cefe7fSPierre Pronchery Patch by Christoph Reiter. 391*a3cefe7fSPierre Pronchery 392*a3cefe7fSPierre Pronchery* Enhancements: 393*a3cefe7fSPierre Pronchery - Rewrite DOS paths on native Windows builds that don't use 394*a3cefe7fSPierre Pronchery Cygwin/MSYS. 395*a3cefe7fSPierre Pronchery - Add WantDefaultPure cross-compiler personality option. 396*a3cefe7fSPierre Pronchery - Prefer --static --pure linking on Windows. 397*a3cefe7fSPierre Pronchery - Add PKG_CONFIG_DONT_DEFINE_PREFIX environment variable. 398*a3cefe7fSPierre Pronchery Patch by Jeff Moguillansky. 399*a3cefe7fSPierre Pronchery - Many improvements when building pkgconf with Meson. 400*a3cefe7fSPierre Pronchery Patches by Christoph Reiter. 401*a3cefe7fSPierre Pronchery 402*a3cefe7fSPierre ProncheryChanges from 1.7.2 to 1.7.3: 403*a3cefe7fSPierre Pronchery---------------------------- 404*a3cefe7fSPierre Pronchery 405*a3cefe7fSPierre Pronchery* Bug fixes: 406*a3cefe7fSPierre Pronchery - Fix a possible out of boundary write when evaluating dependencies. 407*a3cefe7fSPierre Pronchery Patch by Tobias Stöckmann. 408*a3cefe7fSPierre Pronchery - Fix escaping logic on Windows. Patch by Vincent Torri. 409*a3cefe7fSPierre Pronchery - Fix out of boundary reads and writes with a malformed fragment. 410*a3cefe7fSPierre Pronchery Patches by Tobias Stöckmann. 411*a3cefe7fSPierre Pronchery - Fix a possible out of boundary write when evaluating tuples. 412*a3cefe7fSPierre Pronchery Patch by Tobias Stöckmann. 413*a3cefe7fSPierre Pronchery 414*a3cefe7fSPierre ProncheryChanges from 1.7.1 to 1.7.2: 415*a3cefe7fSPierre Pronchery---------------------------- 416*a3cefe7fSPierre Pronchery 417*a3cefe7fSPierre Pronchery* Bug fixes: 418*a3cefe7fSPierre Pronchery - Fix a windows-specific crash relating to path fixups. 419*a3cefe7fSPierre Pronchery 420*a3cefe7fSPierre ProncheryChanges from 1.7.0 to 1.7.1: 421*a3cefe7fSPierre Pronchery---------------------------- 422*a3cefe7fSPierre Pronchery 423*a3cefe7fSPierre Pronchery* Bug fixes: 424*a3cefe7fSPierre Pronchery - Fix a possible out of boundary access in the parser for the 425*a3cefe7fSPierre Pronchery cross-compile database. Patch by Tobias Stöckmann. 426*a3cefe7fSPierre Pronchery - Missing files for building with Meson are now included in the 427*a3cefe7fSPierre Pronchery tarball. Patch by Neal Gompa. 428*a3cefe7fSPierre Pronchery - Fix calculation of package atoms on Windows with paths that 429*a3cefe7fSPierre Pronchery use both directory separator characters. 430*a3cefe7fSPierre Pronchery 431*a3cefe7fSPierre ProncheryChanges from 1.6.3 to 1.7.0: 432*a3cefe7fSPierre Pronchery---------------------------- 433*a3cefe7fSPierre Pronchery 434*a3cefe7fSPierre Pronchery* Bug fixes: 435*a3cefe7fSPierre Pronchery - Fix a possible buffer overflow involving newline escaping. 436*a3cefe7fSPierre Pronchery Patch by Tobias Stöckmann. 437*a3cefe7fSPierre Pronchery - Fix an out of boundary access in the parser. 438*a3cefe7fSPierre Pronchery Patch by Tobias Stöckmann. 439*a3cefe7fSPierre Pronchery - Fix leakage of strcmp() result value in pkgconf_compare_version() 440*a3cefe7fSPierre Pronchery responses. 441*a3cefe7fSPierre Pronchery - Return the default personality if loading a cross-compile 442*a3cefe7fSPierre Pronchery personality file failed. 443*a3cefe7fSPierre Pronchery - Do not complain about newlines when validating package versions. 444*a3cefe7fSPierre Pronchery - Properly detect strndup() on Windows when building with Meson. 445*a3cefe7fSPierre Pronchery 446*a3cefe7fSPierre Pronchery* Enhancements: 447*a3cefe7fSPierre Pronchery - A new --shared option and WantDefaultStatic cross-compile 448*a3cefe7fSPierre Pronchery configuration option have been added. This allows for toolchains 449*a3cefe7fSPierre Pronchery to specify that static linking should be used by default. 450*a3cefe7fSPierre Pronchery - Support for the PKG_CONFIG_MSVC_SYNTAX environment variable has 451*a3cefe7fSPierre Pronchery been added. Patch by Dan Kegel. 452*a3cefe7fSPierre Pronchery - Support for the PKGCONF_PKG_PKGF_DONT_MERGE_SPECIAL_FRAGMENTS 453*a3cefe7fSPierre Pronchery client flag which disables emulation of freedesktop.org pkg-config 454*a3cefe7fSPierre Pronchery fragment merging semantics has been added. 455*a3cefe7fSPierre Pronchery Patch by Karen Arutyunov. 456*a3cefe7fSPierre Pronchery 457*a3cefe7fSPierre ProncheryChanges from 1.6.2 to 1.6.3: 458*a3cefe7fSPierre Pronchery---------------------------- 459*a3cefe7fSPierre Pronchery 460*a3cefe7fSPierre Pronchery* Bug fixes: 461*a3cefe7fSPierre Pronchery - Properly tokenize versions. Versions cannot logically contain 462*a3cefe7fSPierre Pronchery whitespace, as dependency-lists would not properly tokenize if 463*a3cefe7fSPierre Pronchery they could. A diagnostic is generated for malformed version 464*a3cefe7fSPierre Pronchery strings containing whitespace when --validate is used. 465*a3cefe7fSPierre Pronchery 466*a3cefe7fSPierre Pronchery* Enhancements: 467*a3cefe7fSPierre Pronchery - CMake support has been dropped. Use Meson to build on Windows. 468*a3cefe7fSPierre Pronchery 469*a3cefe7fSPierre ProncheryChanges from 1.6.1 to 1.6.2: 470*a3cefe7fSPierre Pronchery---------------------------- 471*a3cefe7fSPierre Pronchery 472*a3cefe7fSPierre Pronchery* Bug fixes: 473*a3cefe7fSPierre Pronchery - Fixed a memory leak when deduplicating paths. 474*a3cefe7fSPierre Pronchery - Fixed strndup-related build regression on Windows. 475*a3cefe7fSPierre Pronchery 476*a3cefe7fSPierre Pronchery* Enhancements: 477*a3cefe7fSPierre Pronchery - Added pkgconf-lite variant. pkgconf-lite is a stripped down 478*a3cefe7fSPierre Pronchery variant of pkgconf that only includes pkg-config features. 479*a3cefe7fSPierre Pronchery - Added --modversion description to pkgconf(1) man page. 480*a3cefe7fSPierre Pronchery 481*a3cefe7fSPierre ProncheryChanges from 1.6.0 to 1.6.1: 482*a3cefe7fSPierre Pronchery---------------------------- 483*a3cefe7fSPierre Pronchery 484*a3cefe7fSPierre Pronchery* Bug fixes: 485*a3cefe7fSPierre Pronchery - Fixed an issue where a personality may not be properly selected 486*a3cefe7fSPierre Pronchery due to argv[0] containing a full path. 487*a3cefe7fSPierre Pronchery - Fixed a regression where having an empty PKG_CONFIG_LIBDIR 488*a3cefe7fSPierre Pronchery environment variable would not eliminate the default search 489*a3cefe7fSPierre Pronchery paths. 490*a3cefe7fSPierre Pronchery - Use POSIX realpath(3) instead of readlink() for deduplicating the 491*a3cefe7fSPierre Pronchery search path. Use _fullpath() on Windows for the same purpose. 492*a3cefe7fSPierre Pronchery - The dequoting logic for tuples has been improved to ensure that 493*a3cefe7fSPierre Pronchery quotes *inside* a value remain quoted when necessary. 494*a3cefe7fSPierre Pronchery 495*a3cefe7fSPierre ProncheryChanges from 1.5.4 to 1.6.0: 496*a3cefe7fSPierre Pronchery---------------------------- 497*a3cefe7fSPierre Pronchery 498*a3cefe7fSPierre Pronchery* Bug fixes: 499*a3cefe7fSPierre Pronchery - Fixed issue where packages which referenced missing packages in 500*a3cefe7fSPierre Pronchery Requires.private may have crashed due to memory corruption issues 501*a3cefe7fSPierre Pronchery in some circumstances. 502*a3cefe7fSPierre Pronchery - Fixed warnings reported by GCC 8 diagnostics. 503*a3cefe7fSPierre Pronchery 504*a3cefe7fSPierre Pronchery* Enhancements: 505*a3cefe7fSPierre Pronchery - Add LIBPKGCONF_VERSION and LIBPKGCONF_VERSION_STR macros for 506*a3cefe7fSPierre Pronchery determining libpkgconf version. 507*a3cefe7fSPierre Pronchery - Add pkgconf_fragment_copy_list() to copy a fragment list to 508*a3cefe7fSPierre Pronchery another fragment list. 509*a3cefe7fSPierre Pronchery 510*a3cefe7fSPierre ProncheryChanges from 1.5.3 to 1.5.4: 511*a3cefe7fSPierre Pronchery---------------------------- 512*a3cefe7fSPierre Pronchery 513*a3cefe7fSPierre Pronchery* Bug fixes: 514*a3cefe7fSPierre Pronchery - fix build on Windows with Meson 515*a3cefe7fSPierre Pronchery - fix edge cases for path canonicalization (especially on Windows) 516*a3cefe7fSPierre Pronchery 517*a3cefe7fSPierre ProncheryChanges from 1.5.2 to 1.5.3: 518*a3cefe7fSPierre Pronchery---------------------------- 519*a3cefe7fSPierre Pronchery 520*a3cefe7fSPierre Pronchery* Security fixes: 521*a3cefe7fSPierre Pronchery - Fix edge cases involving dequoting zero-length tuples that can lead to a 522*a3cefe7fSPierre Pronchery buffer overflow under the right circumstances. Thanks to A. Wilcox for 523*a3cefe7fSPierre Pronchery reporting and supplying a patch. (MR 3) 524*a3cefe7fSPierre Pronchery 525*a3cefe7fSPierre ProncheryChanges from 1.5.1 to 1.5.2: 526*a3cefe7fSPierre Pronchery---------------------------- 527*a3cefe7fSPierre Pronchery 528*a3cefe7fSPierre Pronchery* Bug fixes: 529*a3cefe7fSPierre Pronchery - Ensure environment variables override values learned from personality files 530*a3cefe7fSPierre Pronchery or built-in defaults. 531*a3cefe7fSPierre Pronchery 532*a3cefe7fSPierre Pronchery* Documentation enhancements: 533*a3cefe7fSPierre Pronchery - Add pkgconf-personality(5) manpage documenting the personality file format. 534*a3cefe7fSPierre Pronchery 535*a3cefe7fSPierre ProncheryChanges from 1.5.0 to 1.5.1: 536*a3cefe7fSPierre Pronchery---------------------------- 537*a3cefe7fSPierre Pronchery 538*a3cefe7fSPierre Pronchery* Bug fixes: 539*a3cefe7fSPierre Pronchery - fixed a crash with some invalid multi-line .pc files 540*a3cefe7fSPierre Pronchery 541*a3cefe7fSPierre ProncheryChanges from 1.4.2 to 1.5.0: 542*a3cefe7fSPierre Pronchery--------------------------- 543*a3cefe7fSPierre Pronchery 544*a3cefe7fSPierre Pronchery* Administrative: 545*a3cefe7fSPierre Pronchery - The git repository has moved to <https://git.dereferenced.org/pkgconf/pkgconf>, 546*a3cefe7fSPierre Pronchery due to the acquisition of GitHub by Microsoft. 547*a3cefe7fSPierre Pronchery 548*a3cefe7fSPierre Pronchery* Overall enhancements: 549*a3cefe7fSPierre Pronchery - pkgconf now supports the proposed Requires.internal pkg-config extension, 550*a3cefe7fSPierre Pronchery by merging it with the Requires.private list (there is no functional difference 551*a3cefe7fSPierre Pronchery between the two in our resolver implementation) 552*a3cefe7fSPierre Pronchery - Support for cross-compilation personalities have been added. To make use of this 553*a3cefe7fSPierre Pronchery functionality, create a file in the new personality.d directory that sits inside 554*a3cefe7fSPierre Pronchery the pkgconfig directory. The personality file format is described in 555*a3cefe7fSPierre Pronchery pc-personality(5). (github #166) 556*a3cefe7fSPierre Pronchery - Support for Haiku has been added, including interpretation of BELIBRARIES and 557*a3cefe7fSPierre Pronchery other toolchain specifics. (github #180) 558*a3cefe7fSPierre Pronchery - Testsuite support can be disabled when building with Meson. (github #175) 559*a3cefe7fSPierre Pronchery 560*a3cefe7fSPierre Pronchery* Bug fixes: 561*a3cefe7fSPierre Pronchery - tuples are now appropriately dequoted when added by the parser (github #186). 562*a3cefe7fSPierre Pronchery 563*a3cefe7fSPierre Pronchery* Various Windows enhancements: 564*a3cefe7fSPierre Pronchery - CMake supports building with GCC on Windows. (github #179) 565*a3cefe7fSPierre Pronchery - Prefix rewriting has been improved. (github #177) 566*a3cefe7fSPierre Pronchery - PKGCONF_API support has been implemented when building with Meson, 567*a3cefe7fSPierre Pronchery allowing Meson to be used to build pkgconf on Windows. (github #174) 568*a3cefe7fSPierre Pronchery 569*a3cefe7fSPierre Pronchery* Documentation fixes: 570*a3cefe7fSPierre Pronchery - The manpages have been linted and fixed. (github #181, #182, #183) 571*a3cefe7fSPierre Pronchery - The description of pkgconf --exists has been corrected. (github #173) 572*a3cefe7fSPierre Pronchery 573*a3cefe7fSPierre ProncheryChanges from 1.4.1 to 1.4.2: 574*a3cefe7fSPierre Pronchery---------------------------- 575*a3cefe7fSPierre Pronchery 576*a3cefe7fSPierre Pronchery* Bug fixes: 577*a3cefe7fSPierre Pronchery - ensure pkgconf_dependency_t nodes have a solution marked when satisfied 578*a3cefe7fSPierre Pronchery by an indirect provider (github #172) 579*a3cefe7fSPierre Pronchery 580*a3cefe7fSPierre ProncheryChanges from 1.4.0 to 1.4.1: 581*a3cefe7fSPierre Pronchery---------------------------- 582*a3cefe7fSPierre Pronchery 583*a3cefe7fSPierre Pronchery* Bug fixes: 584*a3cefe7fSPierre Pronchery - revert some quoting changes because they don't work well with certain 585*a3cefe7fSPierre Pronchery GCC edge cases (github #168) 586*a3cefe7fSPierre Pronchery 587*a3cefe7fSPierre Pronchery* Enhancements: 588*a3cefe7fSPierre Pronchery - add limited support for --cflags with --msvc-syntax 589*a3cefe7fSPierre Pronchery 590*a3cefe7fSPierre ProncheryChanges from 1.3.7 to 1.4.0: 591*a3cefe7fSPierre Pronchery---------------------------- 592*a3cefe7fSPierre Pronchery 593*a3cefe7fSPierre Pronchery* Notable libpkgconf API changes: 594*a3cefe7fSPierre Pronchery - pkgconf_pkg_t.requires has been renamed to pkgconf_pkg_t.required for 595*a3cefe7fSPierre Pronchery C++20 compatibility. 596*a3cefe7fSPierre Pronchery 597*a3cefe7fSPierre Pronchery* Enhancements: 598*a3cefe7fSPierre Pronchery - pkgconf and libpkgconf has been ported to Windows as native binaries. 599*a3cefe7fSPierre Pronchery - improved compatibility with freedesktop.org pkg-config's ${pc_sysrootdir} 600*a3cefe7fSPierre Pronchery usage pattern. 601*a3cefe7fSPierre Pronchery - do not mention PKG_CONFIG_SKIP_CONFLICTS environmental variable when 602*a3cefe7fSPierre Pronchery simplified errors are requested, as with PKG_CONFIG_PATH. 603*a3cefe7fSPierre Pronchery - the dependency solver now stores solutions to dependency graph elements 604*a3cefe7fSPierre Pronchery it visits, allowing for the dependency graph to be incrementally solved. 605*a3cefe7fSPierre Pronchery this improves dependency solving time by an order of magnitude in most 606*a3cefe7fSPierre Pronchery cases. 607*a3cefe7fSPierre Pronchery - new --env option allows for exporting cflags/libs fragments as export 608*a3cefe7fSPierre Pronchery variables 609*a3cefe7fSPierre Pronchery - new support for building pkgconf with CMake and Meson 610*a3cefe7fSPierre Pronchery - improved compiler warning flag detection on autoconf and CMake 611*a3cefe7fSPierre Pronchery - removed PKGCONF_BUFSIZE allocations from the stack where possible 612*a3cefe7fSPierre Pronchery - allow for customizing the way fragment lists are rendered using a callback API 613*a3cefe7fSPierre Pronchery - new support for --msvc-syntax output using the new fragment rendering callbacks 614*a3cefe7fSPierre Pronchery - fragments are now quoted according to POSIX literal rules 615*a3cefe7fSPierre Pronchery - new variables on the pkg-config builtin: 616*a3cefe7fSPierre Pronchery - ${pc_system_includedirs}: the system includedir search path known by pkgconf 617*a3cefe7fSPierre Pronchery - ${pc_system_libdirs}: the system libdir search path known by pkgconf 618*a3cefe7fSPierre Pronchery - new manpages: 619*a3cefe7fSPierre Pronchery - pc(5) describing pkgconf's interpretation of pkg-config .pc files 620*a3cefe7fSPierre Pronchery - pkg.m4(7) describing the autotools macros bundled with pkgconf 621*a3cefe7fSPierre Pronchery 622*a3cefe7fSPierre Pronchery* Bug fixes: 623*a3cefe7fSPierre Pronchery - fix pkgconf_pkg_t.id generation on native Windows where either \ or / are usable 624*a3cefe7fSPierre Pronchery as path separator. 625*a3cefe7fSPierre Pronchery - add missing --modversion to --help output 626*a3cefe7fSPierre Pronchery - do not evaluate module paths for modules that are not actually on disk 627*a3cefe7fSPierre Pronchery - ensure we work on a zeroed buffer prior to calling realpath(2) with it 628*a3cefe7fSPierre Pronchery - fix path deduplication edge case when cache-inodes feature is unavailable 629*a3cefe7fSPierre Pronchery - fix path rewriting regression with PKG_CONFIG_SYSROOT_DIR when 630*a3cefe7fSPierre Pronchery PKG_CONFIG_SYSROOT_DIR is set to / 631*a3cefe7fSPierre Pronchery - fix crash in edge case where a .pc file has misquoting in a fragment list. 632*a3cefe7fSPierre Pronchery - fix logic edge case when comparing relocated paths 633*a3cefe7fSPierre Pronchery 634*a3cefe7fSPierre ProncheryChanges from 1.3.6 to 1.3.7: 635*a3cefe7fSPierre Pronchery---------------------------- 636*a3cefe7fSPierre Pronchery 637*a3cefe7fSPierre Pronchery* Enhancements: 638*a3cefe7fSPierre Pronchery - improved diagnostics for malformed packages. 639*a3cefe7fSPierre Pronchery 640*a3cefe7fSPierre Pronchery* Bug fixes: 641*a3cefe7fSPierre Pronchery - reject packages which contain incomplete metadata in post-parse phase. 642*a3cefe7fSPierre Pronchery 643*a3cefe7fSPierre ProncheryChanges from 1.3.5 to 1.3.6: 644*a3cefe7fSPierre Pronchery---------------------------- 645*a3cefe7fSPierre Pronchery 646*a3cefe7fSPierre Pronchery* Enhancements: 647*a3cefe7fSPierre Pronchery - add many cflags to the protected set: -Wa, -Wl, -Wp, -ansi, -std=, -stdlib=, 648*a3cefe7fSPierre Pronchery -pedantic, -pthread, -trigraphs, -nostdinc, -nostdlibinc, -nobuiltininc. 649*a3cefe7fSPierre Pronchery 650*a3cefe7fSPierre Pronchery* Bug fixes: 651*a3cefe7fSPierre Pronchery - handle -include cflag fragments properly. 652*a3cefe7fSPierre Pronchery 653*a3cefe7fSPierre ProncheryChanges from 1.3.4 to 1.3.5: 654*a3cefe7fSPierre Pronchery---------------------------- 655*a3cefe7fSPierre Pronchery 656*a3cefe7fSPierre Pronchery* Bug fixes: 657*a3cefe7fSPierre Pronchery - fix --variable output for compatibility some broken configure scripts when they 658*a3cefe7fSPierre Pronchery request the same variable from multiple packages 659*a3cefe7fSPierre Pronchery 660*a3cefe7fSPierre ProncheryChanges from 1.3.3 to 1.3.4: 661*a3cefe7fSPierre Pronchery---------------------------- 662*a3cefe7fSPierre Pronchery 663*a3cefe7fSPierre Pronchery* Bug fixes: 664*a3cefe7fSPierre Pronchery - fix a quoting issue exposed by the Go testsuite 665*a3cefe7fSPierre Pronchery 666*a3cefe7fSPierre ProncheryChanges from 1.3.2 to 1.3.3: 667*a3cefe7fSPierre Pronchery---------------------------- 668*a3cefe7fSPierre Pronchery 669*a3cefe7fSPierre Pronchery* Bug fixes: 670*a3cefe7fSPierre Pronchery - back out disabling the dependency resolver for single-package queries, it caused 671*a3cefe7fSPierre Pronchery too many regressions. 672*a3cefe7fSPierre Pronchery 673*a3cefe7fSPierre Pronchery* Enhancements: 674*a3cefe7fSPierre Pronchery - allow explicitly disabling the dependency resolver via new environment variable, 675*a3cefe7fSPierre Pronchery PKG_CONFIG_MINIMUM_TRAVERSE_DEPTH=1. while pkgconf could already do this using 676*a3cefe7fSPierre Pronchery --minimum-traverse-depth=1, other pkg-config implementations do not have this 677*a3cefe7fSPierre Pronchery option, so adding an environment variable allows to make better use of this 678*a3cefe7fSPierre Pronchery feature (other implementations won't error due to unknown option this way) 679*a3cefe7fSPierre Pronchery 680*a3cefe7fSPierre ProncheryChanges from 1.3.1 to 1.3.2: 681*a3cefe7fSPierre Pronchery---------------------------- 682*a3cefe7fSPierre Pronchery 683*a3cefe7fSPierre Pronchery* Bug fixes: 684*a3cefe7fSPierre Pronchery - rewrite handling of --modversion, --print-variables and --variable to not require 685*a3cefe7fSPierre Pronchery the dependency resolver 686*a3cefe7fSPierre Pronchery - ensure we disable the dependency resolver in all cases where it is a single-package 687*a3cefe7fSPierre Pronchery query (1.3.1 did not go far enough) 688*a3cefe7fSPierre Pronchery 689*a3cefe7fSPierre ProncheryChanges from 1.3.0 to 1.3.1: 690*a3cefe7fSPierre Pronchery---------------------------- 691*a3cefe7fSPierre Pronchery 692*a3cefe7fSPierre Pronchery* Features: 693*a3cefe7fSPierre Pronchery - implement --short-errors 694*a3cefe7fSPierre Pronchery 695*a3cefe7fSPierre Pronchery* Bug fixes: 696*a3cefe7fSPierre Pronchery - only consider a single package at a time with --print-requires, --print-requires-private, 697*a3cefe7fSPierre Pronchery --print-provides, --modversion, --print-variable and --print-variables 698*a3cefe7fSPierre Pronchery 699*a3cefe7fSPierre Pronchery* Enhancements: 700*a3cefe7fSPierre Pronchery - synchronized latest freedesktop.org changes to pkg.m4 701*a3cefe7fSPierre Pronchery - improve error reporting with legacy --atleast-version and similar flags. 702*a3cefe7fSPierre Pronchery 703*a3cefe7fSPierre ProncheryChanges from 1.2.0 to 1.3.0: 704*a3cefe7fSPierre Pronchery---------------------------- 705*a3cefe7fSPierre Pronchery 706*a3cefe7fSPierre Pronchery* Features: 707*a3cefe7fSPierre Pronchery - pkgconf --debug now provides a facility for tracing most relevant libpkgconf operations 708*a3cefe7fSPierre Pronchery - libpkgconf: add warn and trace handlers for warnings 709*a3cefe7fSPierre Pronchery - replace realpath() with faster, lighter weight path normalization function (github #112) 710*a3cefe7fSPierre Pronchery - pkgconf CLI now emulates pkg-config quoting rules precisely, while allowing direct access 711*a3cefe7fSPierre Pronchery to the actual fragments via libpkgconf 712*a3cefe7fSPierre Pronchery 713*a3cefe7fSPierre Pronchery* Bug fixes: 714*a3cefe7fSPierre Pronchery - pkg: properly separate static and virtual packages so they are not inappropriately 715*a3cefe7fSPierre Pronchery optimized out of the dependency graph (github #108) 716*a3cefe7fSPierre Pronchery - argvsplit: do not consider ' and " to have similar rules to escape sequences (github #111) 717*a3cefe7fSPierre Pronchery - pkg: strip trailing whitespace when parsing .pc files 718*a3cefe7fSPierre Pronchery 719*a3cefe7fSPierre Pronchery* Enhancements: 720*a3cefe7fSPierre Pronchery - argvsplit basically rewritten from scratch 721*a3cefe7fSPierre Pronchery - many code fixes spotted by coverity 722*a3cefe7fSPierre Pronchery - add PKG_CONFIG_DONT_RELOCATE_PATHS and --dont-relocate-paths environment variables to 723*a3cefe7fSPierre Pronchery disable path relocation feature if needed 724*a3cefe7fSPierre Pronchery - remove extra whitespace that was present for compatibility with older pkg-config releases 725*a3cefe7fSPierre Pronchery (github #113) 726*a3cefe7fSPierre Pronchery 727*a3cefe7fSPierre ProncheryChanges from 1.1.0 to 1.2.0: 728*a3cefe7fSPierre Pronchery---------------------------- 729*a3cefe7fSPierre Pronchery 730*a3cefe7fSPierre Pronchery* Features: 731*a3cefe7fSPierre Pronchery - new --path option lists the .pc files which provided the requested dependencies 732*a3cefe7fSPierre Pronchery - new path relocation API: pkgconf_path_relocate(), which wraps functions such as 733*a3cefe7fSPierre Pronchery realpath() and cygwin_conv_path(). 734*a3cefe7fSPierre Pronchery - new --with-path option adds a path to the search list 735*a3cefe7fSPierre Pronchery - new --define-prefix and --dont-define-prefix features enable automatic prefix 736*a3cefe7fSPierre Pronchery detection for relocatable SDKs. this is mostly useful on windows. 737*a3cefe7fSPierre Pronchery 738*a3cefe7fSPierre Pronchery* Bug fixes: 739*a3cefe7fSPierre Pronchery - fragments: fix even more edge cases involving token concatenation 740*a3cefe7fSPierre Pronchery - path lists: don't attempt to collect path inodes if the filter is disabled 741*a3cefe7fSPierre Pronchery - path lists: explicitly avoid uninitialised data for the path inode cache 742*a3cefe7fSPierre Pronchery - client: properly handle --keep-system-cflags and --keep-system-libs 743*a3cefe7fSPierre Pronchery 744*a3cefe7fSPierre Pronchery* Enhancements: 745*a3cefe7fSPierre Pronchery - windows: build libpkgconf as a DLL 746*a3cefe7fSPierre Pronchery - fragments: only munge fragments if sysroot_dir is actually set 747*a3cefe7fSPierre Pronchery - overall API: resolver flags have been moved to being a client-object setting 748*a3cefe7fSPierre Pronchery instead of used for every function invocation 749*a3cefe7fSPierre Pronchery 750*a3cefe7fSPierre ProncheryChanges from 1.0.1 to 1.1.0: 751*a3cefe7fSPierre Pronchery---------------------------- 752*a3cefe7fSPierre Pronchery 753*a3cefe7fSPierre Pronchery* Features: 754*a3cefe7fSPierre Pronchery - new Provides system allows alternate .pc files to provide a dependency 755*a3cefe7fSPierre Pronchery - stable library API (with documentation): http://pkgconf.readthedocs.io/ 756*a3cefe7fSPierre Pronchery 757*a3cefe7fSPierre Pronchery* Enhancements: 758*a3cefe7fSPierre Pronchery - make it possible to programmatically declare dependencies instead of just using the parser 759*a3cefe7fSPierre Pronchery - testsuite migrated to run under kyua 760*a3cefe7fSPierre Pronchery - provide a libpkgconf.pc file for consumers to use 761*a3cefe7fSPierre Pronchery - pkgconf client: new --pure flag to enable dependency graph optimization in --static mode 762*a3cefe7fSPierre Pronchery - significant .pc parser speedups using bsearch(3). 763*a3cefe7fSPierre Pronchery - handle -idirafter in the same way as -isystem CFLAGS 764*a3cefe7fSPierre Pronchery - learn toolchain "system" paths from GCC environment variables, if present 765*a3cefe7fSPierre Pronchery - filter duplicate PKG_CONFIG_PATH (and other) entries by inode 766*a3cefe7fSPierre Pronchery 767*a3cefe7fSPierre Pronchery* Bug fixes: 768*a3cefe7fSPierre Pronchery - fragments: fix another edge case involving empty tokens being concatenated onto previous tokens 769*a3cefe7fSPierre Pronchery (github #99) 770*a3cefe7fSPierre Pronchery - libpkgconf: remove dependencies on config.h in public headers 771*a3cefe7fSPierre Pronchery 772*a3cefe7fSPierre ProncheryChanges from 1.0.0 to 1.0.1: 773*a3cefe7fSPierre Pronchery---------------------------- 774*a3cefe7fSPierre Pronchery 775*a3cefe7fSPierre Pronchery* Enhancements: 776*a3cefe7fSPierre Pronchery - new stub implementation of --print-provides (github #95) 777*a3cefe7fSPierre Pronchery 778*a3cefe7fSPierre Pronchery* Bug fixes: 779*a3cefe7fSPierre Pronchery - fragments: fix an edge case involving path-only fragments and PKG_CONFIG_SYSROOT_DIR (github #94) 780*a3cefe7fSPierre Pronchery 781*a3cefe7fSPierre ProncheryChanges from 0.9.12 to 1.0.0: 782*a3cefe7fSPierre Pronchery----------------------------- 783*a3cefe7fSPierre Pronchery 784*a3cefe7fSPierre Pronchery* Features: 785*a3cefe7fSPierre Pronchery - new library: libpkgconf 786*a3cefe7fSPierre Pronchery 787*a3cefe7fSPierre Pronchery* Enhancements: 788*a3cefe7fSPierre Pronchery - testsuite: use an explicit prefix on all tests 789*a3cefe7fSPierre Pronchery - build: switch to automake 790*a3cefe7fSPierre Pronchery 791*a3cefe7fSPierre Pronchery* Bug fixes: 792*a3cefe7fSPierre Pronchery - cast all usage of ctype(3) functions 793*a3cefe7fSPierre Pronchery - do not expand variables passed via --define-variable for compatibility with pkg-config 0.29 794*a3cefe7fSPierre Pronchery - let the CFLAGS being user settable 795*a3cefe7fSPierre Pronchery 796*a3cefe7fSPierre ProncheryChanges from 0.9.11 to 0.9.12: 797*a3cefe7fSPierre Pronchery------------------------------ 798*a3cefe7fSPierre Pronchery 799*a3cefe7fSPierre Pronchery* Features: 800*a3cefe7fSPierre Pronchery - add --list-package-names 801*a3cefe7fSPierre Pronchery 802*a3cefe7fSPierre Pronchery* Enhancements: 803*a3cefe7fSPierre Pronchery - ensure -I and -L are never pushed back 804*a3cefe7fSPierre Pronchery 805*a3cefe7fSPierre Pronchery* Bug fixes: 806*a3cefe7fSPierre Pronchery - fix implicit conversion warnings with variables over 31bits 807*a3cefe7fSPierre Pronchery 808*a3cefe7fSPierre ProncheryChanges from 0.9.10 to 0.9.11: 809*a3cefe7fSPierre Pronchery------------------------------ 810*a3cefe7fSPierre Pronchery 811*a3cefe7fSPierre Pronchery* Features: 812*a3cefe7fSPierre Pronchery - add --validate 813*a3cefe7fSPierre Pronchery 814*a3cefe7fSPierre Pronchery* Enhancements: 815*a3cefe7fSPierre Pronchery - add large file support checks in autoconf 816*a3cefe7fSPierre Pronchery 817*a3cefe7fSPierre Pronchery* Bug fixes: 818*a3cefe7fSPierre Pronchery - fix private lib deduplication 819*a3cefe7fSPierre Pronchery - handle --static correctly in some more esoteric scenarios 820*a3cefe7fSPierre Pronchery 821*a3cefe7fSPierre ProncheryChanges from 0.9.9 to 0.9.10: 822*a3cefe7fSPierre Pronchery----------------------------- 823*a3cefe7fSPierre Pronchery 824*a3cefe7fSPierre Pronchery* Features: 825*a3cefe7fSPierre Pronchery 826*a3cefe7fSPierre Pronchery* Enhancements: 827*a3cefe7fSPierre Pronchery 828*a3cefe7fSPierre Pronchery* Bug fixes: 829*a3cefe7fSPierre Pronchery - Fix parser when dealing with commented lines 830*a3cefe7fSPierre Pronchery 831*a3cefe7fSPierre ProncheryChanges from 0.9.8 to 0.9.9: 832*a3cefe7fSPierre Pronchery---------------------------- 833*a3cefe7fSPierre Pronchery 834*a3cefe7fSPierre Pronchery* Features: 835*a3cefe7fSPierre Pronchery - add a sub out --print-provides 836*a3cefe7fSPierre Pronchery 837*a3cefe7fSPierre Pronchery* Enhancements: 838*a3cefe7fSPierre Pronchery 839*a3cefe7fSPierre Pronchery* Bug fixes: 840*a3cefe7fSPierre Pronchery - Fix parser when dealing with comments in fields 841*a3cefe7fSPierre Pronchery 842*a3cefe7fSPierre ProncheryChanges from 0.9.7 to 0.9.8: 843*a3cefe7fSPierre Pronchery---------------------------- 844*a3cefe7fSPierre Pronchery 845*a3cefe7fSPierre Pronchery* Features: 846*a3cefe7fSPierre Pronchery 847*a3cefe7fSPierre Pronchery* Enhancements: 848*a3cefe7fSPierre Pronchery - Convert manpages to mdoc(7) 849*a3cefe7fSPierre Pronchery 850*a3cefe7fSPierre Pronchery* Bug fixes: 851*a3cefe7fSPierre Pronchery - Fix parsing multiline fields 852*a3cefe7fSPierre Pronchery 853*a3cefe7fSPierre ProncheryChanges from 0.9.6 to 0.9.7: 854*a3cefe7fSPierre Pronchery---------------------------- 855*a3cefe7fSPierre Pronchery 856*a3cefe7fSPierre Pronchery* Features: 857*a3cefe7fSPierre Pronchery 858*a3cefe7fSPierre Pronchery* Enhancements: 859*a3cefe7fSPierre Pronchery - Convert manpages to mdoc(7) 860*a3cefe7fSPierre Pronchery 861*a3cefe7fSPierre Pronchery* Bug fixes: 862*a3cefe7fSPierre Pronchery - Fix parsing multiline fields 863*a3cefe7fSPierre Pronchery 864*a3cefe7fSPierre ProncheryChanges from 0.9.5 to 0.9.6: 865*a3cefe7fSPierre Pronchery---------------------------- 866*a3cefe7fSPierre Pronchery 867*a3cefe7fSPierre Pronchery* Features: 868*a3cefe7fSPierre Pronchery - add a sub --debug 869*a3cefe7fSPierre Pronchery 870*a3cefe7fSPierre Pronchery* Enhancements: 871*a3cefe7fSPierre Pronchery - Do not hardcode non-posix install(1) 872*a3cefe7fSPierre Pronchery 873*a3cefe7fSPierre Pronchery* Bug fixes: 874*a3cefe7fSPierre Pronchery - fix --with-system-includedir and --with-system-libdir behaviour 875*a3cefe7fSPierre Pronchery 876*a3cefe7fSPierre ProncheryChanges from 0.9.4 to 0.9.5: 877*a3cefe7fSPierre Pronchery---------------------------- 878*a3cefe7fSPierre Pronchery 879*a3cefe7fSPierre Pronchery* Features: 880*a3cefe7fSPierre Pronchery 881*a3cefe7fSPierre Pronchery* Enhancements: 882*a3cefe7fSPierre Pronchery - Make all variables but CFLAGS and LIBS case sensitive 883*a3cefe7fSPierre Pronchery 884*a3cefe7fSPierre Pronchery* Bug fixes: 885*a3cefe7fSPierre Pronchery 886*a3cefe7fSPierre ProncheryChanges from 0.9.3 to 0.9.4: 887*a3cefe7fSPierre Pronchery---------------------------- 888*a3cefe7fSPierre Pronchery 889*a3cefe7fSPierre Pronchery* Features: 890*a3cefe7fSPierre Pronchery - Add a pkgconf(1) manpage 891*a3cefe7fSPierre Pronchery 892*a3cefe7fSPierre Pronchery* Enhancements: 893*a3cefe7fSPierre Pronchery - Improve support for MacOS -framework 894*a3cefe7fSPierre Pronchery 895*a3cefe7fSPierre Pronchery* Bug fixes: 896*a3cefe7fSPierre Pronchery 897*a3cefe7fSPierre ProncheryChanges from 0.9.2 to 0.9.3: 898*a3cefe7fSPierre Pronchery---------------------------- 899*a3cefe7fSPierre Pronchery 900*a3cefe7fSPierre Pronchery* Features: 901*a3cefe7fSPierre Pronchery - Add support for CFLAGS.private 902*a3cefe7fSPierre Pronchery 903*a3cefe7fSPierre Pronchery* Enhancements: 904*a3cefe7fSPierre Pronchery - Support out of source build 905*a3cefe7fSPierre Pronchery - Improved private libs deduplication 906*a3cefe7fSPierre Pronchery 907*a3cefe7fSPierre Pronchery* Bug fixes: 908*a3cefe7fSPierre Pronchery 909*a3cefe7fSPierre ProncheryChanges from 0.9.1 to 0.9.2: 910*a3cefe7fSPierre Pronchery---------------------------- 911*a3cefe7fSPierre Pronchery 912*a3cefe7fSPierre Pronchery* Features: 913*a3cefe7fSPierre Pronchery 914*a3cefe7fSPierre Pronchery* Enhancements: 915*a3cefe7fSPierre Pronchery 916*a3cefe7fSPierre Pronchery* Bug fixes: 917*a3cefe7fSPierre Pronchery - Fix PKG_CONFIG_PATH being ignored when a .pc is directly supplied from 918*a3cefe7fSPierre Pronchery command line 919*a3cefe7fSPierre Pronchery 920*a3cefe7fSPierre ProncheryChanges from 0.9.0 to 0.9.1: 921*a3cefe7fSPierre Pronchery---------------------------- 922*a3cefe7fSPierre Pronchery 923*a3cefe7fSPierre Pronchery* Features: 924*a3cefe7fSPierre Pronchery 925*a3cefe7fSPierre Pronchery* Enhancements: 926*a3cefe7fSPierre Pronchery - --simulate: print depgraph operations 927*a3cefe7fSPierre Pronchery - --simulate: print bytecode program as a human-readable AST 928*a3cefe7fSPierre Pronchery 929*a3cefe7fSPierre Pronchery* Bug fixes: 930*a3cefe7fSPierre Pronchery - reset parser state on new package atom 931*a3cefe7fSPierre Pronchery 932*a3cefe7fSPierre ProncheryChanges from 0.8.12 to 0.9.0: 933*a3cefe7fSPierre Pronchery---------------------------- 934*a3cefe7fSPierre Pronchery 935*a3cefe7fSPierre Pronchery* Features: 936*a3cefe7fSPierre Pronchery 937*a3cefe7fSPierre Pronchery* Enhancements: 938*a3cefe7fSPierre Pronchery - Rework the internal cache API 939*a3cefe7fSPierre Pronchery - Rework the internal code to use the new pkg_list_t framework 940*a3cefe7fSPierre Pronchery - Rework PKG_CONFIG_PATH handling code 941*a3cefe7fSPierre Pronchery 942*a3cefe7fSPierre Pronchery* Bug fixes: 943*a3cefe7fSPierre Pronchery - fix multi-recursion with -framework 944