517 lines
16 KiB
Plaintext
517 lines
16 KiB
Plaintext
Changes from previous version of pkgconf
|
|
========================================
|
|
|
|
Changes from 1.6.3 to 1.7.0:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- Fix a possible buffer overflow involving newline escaping.
|
|
Patch by Tobias Stöckmann.
|
|
- Fix an out of boundary access in the parser.
|
|
Patch by Tobias Stöckmann.
|
|
- Fix leakage of strcmp() result value in pkgconf_compare_version()
|
|
responses.
|
|
- Return the default personality if loading a cross-compile
|
|
personality file failed.
|
|
- Do not complain about newlines when validating package versions.
|
|
- Properly detect strndup() on Windows when building with Meson.
|
|
|
|
* Enhancements:
|
|
- A new --shared option and WantDefaultStatic cross-compile
|
|
configuration option have been added. This allows for toolchains
|
|
to specify that static linking should be used by default.
|
|
- Support for the PKG_CONFIG_MSVC_SYNTAX environment variable has
|
|
been added. Patch by Dan Kegel.
|
|
- Support for the PKGCONF_PKG_PKGF_DONT_MERGE_SPECIAL_FRAGMENTS
|
|
client flag which disables emulation of freedesktop.org pkg-config
|
|
fragment merging semantics has been added.
|
|
Patch by Karen Arutyunov.
|
|
|
|
Changes from 1.6.2 to 1.6.3:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- Properly tokenize versions. Versions cannot logically contain
|
|
whitespace, as dependency-lists would not properly tokenize if
|
|
they could. A diagnostic is generated for malformed version
|
|
strings containing whitespace when --validate is used.
|
|
|
|
* Enhancements:
|
|
- CMake support has been dropped. Use Meson to build on Windows.
|
|
|
|
Changes from 1.6.1 to 1.6.2:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- Fixed a memory leak when deduplicating paths.
|
|
- Fixed strndup-related build regression on Windows.
|
|
|
|
* Enhancements:
|
|
- Added pkgconf-lite variant. pkgconf-lite is a stripped down
|
|
variant of pkgconf that only includes pkg-config features.
|
|
- Added --modversion description to pkgconf(1) man page.
|
|
|
|
Changes from 1.6.0 to 1.6.1:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- Fixed an issue where a personality may not be properly selected
|
|
due to argv[0] containing a full path.
|
|
- Fixed a regression where having an empty PKG_CONFIG_LIBDIR
|
|
environment variable would not eliminate the default search
|
|
paths.
|
|
- Use POSIX realpath(3) instead of readlink() for deduplicating the
|
|
search path. Use _fullpath() on Windows for the same purpose.
|
|
- The dequoting logic for tuples has been improved to ensure that
|
|
quotes *inside* a value remain quoted when necessary.
|
|
|
|
Changes from 1.5.4 to 1.6.0:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- Fixed issue where packages which referenced missing packages in
|
|
Requires.private may have crashed due to memory corruption issues
|
|
in some circumstances.
|
|
- Fixed warnings reported by GCC 8 diagnostics.
|
|
|
|
* Enhancements:
|
|
- Add LIBPKGCONF_VERSION and LIBPKGCONF_VERSION_STR macros for
|
|
determining libpkgconf version.
|
|
- Add pkgconf_fragment_copy_list() to copy a fragment list to
|
|
another fragment list.
|
|
|
|
Changes from 1.5.3 to 1.5.4:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- fix build on Windows with Meson
|
|
- fix edge cases for path canonicalization (especially on Windows)
|
|
|
|
Changes from 1.5.2 to 1.5.3:
|
|
----------------------------
|
|
|
|
* Security fixes:
|
|
- Fix edge cases involving dequoting zero-length tuples that can lead to a
|
|
buffer overflow under the right circumstances. Thanks to A. Wilcox for
|
|
reporting and supplying a patch. (MR 3)
|
|
|
|
Changes from 1.5.1 to 1.5.2:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- Ensure environment variables override values learned from personality files
|
|
or built-in defaults.
|
|
|
|
* Documentation enhancements:
|
|
- Add pkgconf-personality(5) manpage documenting the personality file format.
|
|
|
|
Changes from 1.5.0 to 1.5.1:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- fixed a crash with some invalid multi-line .pc files
|
|
|
|
Changes from 1.4.2 to 1.5.0:
|
|
---------------------------
|
|
|
|
* Administrative:
|
|
- The git repository has moved to <https://git.dereferenced.org/pkgconf/pkgconf>,
|
|
due to the acquisition of GitHub by Microsoft.
|
|
|
|
* Overall enhancements:
|
|
- pkgconf now supports the proposed Requires.internal pkg-config extension,
|
|
by merging it with the Requires.private list (there is no functional difference
|
|
between the two in our resolver implementation)
|
|
- Support for cross-compilation personalities have been added. To make use of this
|
|
functionality, create a file in the new personality.d directory that sits inside
|
|
the pkgconfig directory. The personality file format is described in
|
|
pc-personality(5). (github #166)
|
|
- Support for Haiku has been added, including interpretation of BELIBRARIES and
|
|
other toolchain specifics. (github #180)
|
|
- Testsuite support can be disabled when building with Meson. (github #175)
|
|
|
|
* Bug fixes:
|
|
- tuples are now appropriately dequoted when added by the parser (github #186).
|
|
|
|
* Various Windows enhancements:
|
|
- CMake supports building with GCC on Windows. (github #179)
|
|
- Prefix rewriting has been improved. (github #177)
|
|
- PKGCONF_API support has been implemented when building with Meson,
|
|
allowing Meson to be used to build pkgconf on Windows. (github #174)
|
|
|
|
* Documentation fixes:
|
|
- The manpages have been linted and fixed. (github #181, #182, #183)
|
|
- The description of pkgconf --exists has been corrected. (github #173)
|
|
|
|
Changes from 1.4.1 to 1.4.2:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- ensure pkgconf_dependency_t nodes have a solution marked when satisfied
|
|
by an indirect provider (github #172)
|
|
|
|
Changes from 1.4.0 to 1.4.1:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- revert some quoting changes because they don't work well with certain
|
|
GCC edge cases (github #168)
|
|
|
|
* Enhancements:
|
|
- add limited support for --cflags with --msvc-syntax
|
|
|
|
Changes from 1.3.7 to 1.4.0:
|
|
----------------------------
|
|
|
|
* Notable libpkgconf API changes:
|
|
- pkgconf_pkg_t.requires has been renamed to pkgconf_pkg_t.required for
|
|
C++20 compatibility.
|
|
|
|
* Enhancements:
|
|
- pkgconf and libpkgconf has been ported to Windows as native binaries.
|
|
- improved compatibility with freedesktop.org pkg-config's ${pc_sysrootdir}
|
|
usage pattern.
|
|
- do not mention PKG_CONFIG_SKIP_CONFLICTS environmental variable when
|
|
simplified errors are requested, as with PKG_CONFIG_PATH.
|
|
- the dependency solver now stores solutions to dependency graph elements
|
|
it visits, allowing for the dependency graph to be incrementally solved.
|
|
this improves dependency solving time by an order of magnitude in most
|
|
cases.
|
|
- new --env option allows for exporting cflags/libs fragments as export
|
|
variables
|
|
- new support for building pkgconf with CMake and Meson
|
|
- improved compiler warning flag detection on autoconf and CMake
|
|
- removed PKGCONF_BUFSIZE allocations from the stack where possible
|
|
- allow for customizing the way fragment lists are rendered using a callback API
|
|
- new support for --msvc-syntax output using the new fragment rendering callbacks
|
|
- fragments are now quoted according to POSIX literal rules
|
|
- new variables on the pkg-config builtin:
|
|
- ${pc_system_includedirs}: the system includedir search path known by pkgconf
|
|
- ${pc_system_libdirs}: the system libdir search path known by pkgconf
|
|
- new manpages:
|
|
- pc(5) describing pkgconf's interpretation of pkg-config .pc files
|
|
- pkg.m4(7) describing the autotools macros bundled with pkgconf
|
|
|
|
* Bug fixes:
|
|
- fix pkgconf_pkg_t.id generation on native Windows where either \ or / are usable
|
|
as path separator.
|
|
- add missing --modversion to --help output
|
|
- do not evaluate module paths for modules that are not actually on disk
|
|
- ensure we work on a zeroed buffer prior to calling realpath(2) with it
|
|
- fix path deduplication edge case when cache-inodes feature is unavailable
|
|
- fix path rewriting regression with PKG_CONFIG_SYSROOT_DIR when
|
|
PKG_CONFIG_SYSROOT_DIR is set to /
|
|
- fix crash in edge case where a .pc file has misquoting in a fragment list.
|
|
- fix logic edge case when comparing relocated paths
|
|
|
|
Changes from 1.3.6 to 1.3.7:
|
|
----------------------------
|
|
|
|
* Enhancements:
|
|
- improved diagnostics for malformed packages.
|
|
|
|
* Bug fixes:
|
|
- reject packages which contain incomplete metadata in post-parse phase.
|
|
|
|
Changes from 1.3.5 to 1.3.6:
|
|
----------------------------
|
|
|
|
* Enhancements:
|
|
- add many cflags to the protected set: -Wa, -Wl, -Wp, -ansi, -std=, -stdlib=,
|
|
-pedantic, -pthread, -trigraphs, -nostdinc, -nostdlibinc, -nobuiltininc.
|
|
|
|
* Bug fixes:
|
|
- handle -include cflag fragments properly.
|
|
|
|
Changes from 1.3.4 to 1.3.5:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- fix --variable output for compatibility some broken configure scripts when they
|
|
request the same variable from multiple packages
|
|
|
|
Changes from 1.3.3 to 1.3.4:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- fix a quoting issue exposed by the Go testsuite
|
|
|
|
Changes from 1.3.2 to 1.3.3:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- back out disabling the dependency resolver for single-package queries, it caused
|
|
too many regressions.
|
|
|
|
* Enhancements:
|
|
- allow explicitly disabling the dependency resolver via new environment variable,
|
|
PKG_CONFIG_MINIMUM_TRAVERSE_DEPTH=1. while pkgconf could already do this using
|
|
--minimum-traverse-depth=1, other pkg-config implementations do not have this
|
|
option, so adding an environment variable allows to make better use of this
|
|
feature (other implementations won't error due to unknown option this way)
|
|
|
|
Changes from 1.3.1 to 1.3.2:
|
|
----------------------------
|
|
|
|
* Bug fixes:
|
|
- rewrite handling of --modversion, --print-variables and --variable to not require
|
|
the dependency resolver
|
|
- ensure we disable the dependency resolver in all cases where it is a single-package
|
|
query (1.3.1 did not go far enough)
|
|
|
|
Changes from 1.3.0 to 1.3.1:
|
|
----------------------------
|
|
|
|
* Features:
|
|
- implement --short-errors
|
|
|
|
* Bug fixes:
|
|
- only consider a single package at a time with --print-requires, --print-requires-private,
|
|
--print-provides, --modversion, --print-variable and --print-variables
|
|
|
|
* Enhancements:
|
|
- synchronized latest freedesktop.org changes to pkg.m4
|
|
- improve error reporting with legacy --atleast-version and similar flags.
|
|
|
|
Changes from 1.2.0 to 1.3.0:
|
|
----------------------------
|
|
|
|
* Features:
|
|
- pkgconf --debug now provides a facility for tracing most relevant libpkgconf operations
|
|
- libpkgconf: add warn and trace handlers for warnings
|
|
- replace realpath() with faster, lighter weight path normalization function (github #112)
|
|
- pkgconf CLI now emulates pkg-config quoting rules precisely, while allowing direct access
|
|
to the actual fragments via libpkgconf
|
|
|
|
* Bug fixes:
|
|
- pkg: properly separate static and virtual packages so they are not inappropriately
|
|
optimized out of the dependency graph (github #108)
|
|
- argvsplit: do not consider ' and " to have similar rules to escape sequences (github #111)
|
|
- pkg: strip trailing whitespace when parsing .pc files
|
|
|
|
* Enhancements:
|
|
- argvsplit basically rewritten from scratch
|
|
- many code fixes spotted by coverity
|
|
- add PKG_CONFIG_DONT_RELOCATE_PATHS and --dont-relocate-paths environment variables to
|
|
disable path relocation feature if needed
|
|
- remove extra whitespace that was present for compatibility with older pkg-config releases
|
|
(github #113)
|
|
|
|
Changes from 1.1.0 to 1.2.0:
|
|
----------------------------
|
|
|
|
* Features:
|
|
- new --path option lists the .pc files which provided the requested dependencies
|
|
- new path relocation API: pkgconf_path_relocate(), which wraps functions such as
|
|
realpath() and cygwin_conv_path().
|
|
- new --with-path option adds a path to the search list
|
|
- new --define-prefix and --dont-define-prefix features enable automatic prefix
|
|
detection for relocatable SDKs. this is mostly useful on windows.
|
|
|
|
* Bug fixes:
|
|
- fragments: fix even more edge cases involving token concatenation
|
|
- path lists: don't attempt to collect path inodes if the filter is disabled
|
|
- path lists: explicitly avoid uninitialised data for the path inode cache
|
|
- client: properly handle --keep-system-cflags and --keep-system-libs
|
|
|
|
* Enhancements:
|
|
- windows: build libpkgconf as a DLL
|
|
- fragments: only munge fragments if sysroot_dir is actually set
|
|
- overall API: resolver flags have been moved to being a client-object setting
|
|
instead of used for every function invocation
|
|
|
|
Changes from 1.0.1 to 1.1.0:
|
|
----------------------------
|
|
|
|
* Features:
|
|
- new Provides system allows alternate .pc files to provide a dependency
|
|
- stable library API (with documentation): http://pkgconf.readthedocs.io/
|
|
|
|
* Enhancements:
|
|
- make it possible to programmatically declare dependencies instead of just using the parser
|
|
- testsuite migrated to run under kyua
|
|
- provide a libpkgconf.pc file for consumers to use
|
|
- pkgconf client: new --pure flag to enable dependency graph optimization in --static mode
|
|
- significant .pc parser speedups using bsearch(3).
|
|
- handle -idirafter in the same way as -isystem CFLAGS
|
|
- learn toolchain "system" paths from GCC environment variables, if present
|
|
- filter duplicate PKG_CONFIG_PATH (and other) entries by inode
|
|
|
|
* Bug fixes:
|
|
- fragments: fix another edge case involving empty tokens being concatenated onto previous tokens
|
|
(github #99)
|
|
- libpkgconf: remove dependencies on config.h in public headers
|
|
|
|
Changes from 1.0.0 to 1.0.1:
|
|
----------------------------
|
|
|
|
* Enhancements:
|
|
- new stub implementation of --print-provides (github #95)
|
|
|
|
* Bug fixes:
|
|
- fragments: fix an edge case involving path-only fragments and PKG_CONFIG_SYSROOT_DIR (github #94)
|
|
|
|
Changes from 0.9.12 to 1.0.0:
|
|
-----------------------------
|
|
|
|
* Features:
|
|
- new library: libpkgconf
|
|
|
|
* Enhancements:
|
|
- testsuite: use an explicit prefix on all tests
|
|
- build: switch to automake
|
|
|
|
* Bug fixes:
|
|
- cast all usage of ctype(3) functions
|
|
- do not expand variables passed via --define-variable for compatibility with pkg-config 0.29
|
|
- let the CFLAGS being user settable
|
|
|
|
Changes from 0.9.11 to 0.9.12:
|
|
------------------------------
|
|
|
|
* Features:
|
|
- add --list-package-names
|
|
|
|
* Enhancements:
|
|
- ensure -I and -L are never pushed back
|
|
|
|
* Bug fixes:
|
|
- fix implicit conversion warnings with variables over 31bits
|
|
|
|
Changes from 0.9.10 to 0.9.11:
|
|
------------------------------
|
|
|
|
* Features:
|
|
- add --validate
|
|
|
|
* Enhancements:
|
|
- add large file support checks in autoconf
|
|
|
|
* Bug fixes:
|
|
- fix private lib deduplication
|
|
- handle --static correctly in some more esoteric scenarios
|
|
|
|
Changes from 0.9.9 to 0.9.10:
|
|
-----------------------------
|
|
|
|
* Features:
|
|
|
|
* Enhancements:
|
|
|
|
* Bug fixes:
|
|
- Fix parser when dealing with commented lines
|
|
|
|
Changes from 0.9.8 to 0.9.9:
|
|
----------------------------
|
|
|
|
* Features:
|
|
- add a sub out --print-provides
|
|
|
|
* Enhancements:
|
|
|
|
* Bug fixes:
|
|
- Fix parser when dealing with comments in fields
|
|
|
|
Changes from 0.9.7 to 0.9.8:
|
|
----------------------------
|
|
|
|
* Features:
|
|
|
|
* Enhancements:
|
|
- Convert manpages to mdoc(7)
|
|
|
|
* Bug fixes:
|
|
- Fix parsing multiline fields
|
|
|
|
Changes from 0.9.6 to 0.9.7:
|
|
----------------------------
|
|
|
|
* Features:
|
|
|
|
* Enhancements:
|
|
- Convert manpages to mdoc(7)
|
|
|
|
* Bug fixes:
|
|
- Fix parsing multiline fields
|
|
|
|
Changes from 0.9.5 to 0.9.6:
|
|
----------------------------
|
|
|
|
* Features:
|
|
- add a sub --debug
|
|
|
|
* Enhancements:
|
|
- Do not hardcode non-posix install(1)
|
|
|
|
* Bug fixes:
|
|
- fix --with-system-includedir and --with-system-libdir behaviour
|
|
|
|
Changes from 0.9.4 to 0.9.5:
|
|
----------------------------
|
|
|
|
* Features:
|
|
|
|
* Enhancements:
|
|
- Make all variables but CFLAGS and LIBS case sensitive
|
|
|
|
* Bug fixes:
|
|
|
|
Changes from 0.9.3 to 0.9.4:
|
|
----------------------------
|
|
|
|
* Features:
|
|
- Add a pkgconf(1) manpage
|
|
|
|
* Enhancements:
|
|
- Improve support for MacOS -framework
|
|
|
|
* Bug fixes:
|
|
|
|
Changes from 0.9.2 to 0.9.3:
|
|
----------------------------
|
|
|
|
* Features:
|
|
- Add support for CFLAGS.private
|
|
|
|
* Enhancements:
|
|
- Support out of source build
|
|
- Improved private libs deduplication
|
|
|
|
* Bug fixes:
|
|
|
|
Changes from 0.9.1 to 0.9.2:
|
|
----------------------------
|
|
|
|
* Features:
|
|
|
|
* Enhancements:
|
|
|
|
* Bug fixes:
|
|
- Fix PKG_CONFIG_PATH being ignored when a .pc is directly supplied from
|
|
command line
|
|
|
|
Changes from 0.9.0 to 0.9.1:
|
|
----------------------------
|
|
|
|
* Features:
|
|
|
|
* Enhancements:
|
|
- --simulate: print depgraph operations
|
|
- --simulate: print bytecode program as a human-readable AST
|
|
|
|
* Bug fixes:
|
|
- reset parser state on new package atom
|
|
|
|
Changes from 0.8.12 to 0.9.0:
|
|
----------------------------
|
|
|
|
* Features:
|
|
|
|
* Enhancements:
|
|
- Rework the internal cache API
|
|
- Rework the internal code to use the new pkg_list_t framework
|
|
- Rework PKG_CONFIG_PATH handling code
|
|
|
|
* Bug fixes:
|
|
- fix multi-recursion with -framework
|