xref: /freebsd/contrib/pkgconf/NEWS (revision a3cefe7f2b4df0f70ff92d4570ce18e517af43ec)
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