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