pkgconf 2.4.3.post3__tar.gz → 2.5.1.post0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/PKG-INFO +1 -1
  2. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/meson.build +1 -1
  3. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/pyproject.toml +1 -1
  4. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/src/pkgconf/__init__.py +1 -1
  5. pkgconf-2.5.1.post0/subprojects/pkgconf/.github/workflows/release-tarballs.yml +51 -0
  6. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/.github/workflows/test.yml +31 -2
  7. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/Makefile.am +4 -1
  8. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/Makefile.lite +1 -1
  9. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/NEWS +40 -0
  10. pkgconf-2.5.1.post0/subprojects/pkgconf/README.md +130 -0
  11. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/cli/main.c +73 -3
  12. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/configure.ac +2 -1
  13. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/argvsplit.c +10 -3
  14. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/bsdstubs.c +37 -0
  15. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/bsdstubs.h +2 -0
  16. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/client.c +214 -12
  17. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/config.h.meson +6 -0
  18. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/dependency.c +24 -6
  19. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/fragment.c +22 -6
  20. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/libpkgconf.h +36 -12
  21. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/parser.c +0 -1
  22. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/path.c +94 -0
  23. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/personality.c +33 -18
  24. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/pkg.c +159 -108
  25. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/stdinc.h +6 -1
  26. pkgconf-2.5.1.post0/subprojects/pkgconf/man/bomtool.1 +100 -0
  27. pkgconf-2.5.1.post0/subprojects/pkgconf/man/pkgconf.1 +758 -0
  28. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/meson.build +55 -5
  29. pkgconf-2.5.1.post0/subprojects/pkgconf/pkgconf.wxs.in +64 -0
  30. pkgconf-2.5.1.post0/subprojects/pkgconf/txt2rtf.py +35 -0
  31. pkgconf-2.4.3.post3/subprojects/pkgconf/.woodpecker.yml +0 -75
  32. pkgconf-2.4.3.post3/subprojects/pkgconf/README.md +0 -149
  33. pkgconf-2.4.3.post3/subprojects/pkgconf/man/pkgconf.1 +0 -231
  34. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/.github/workflows/build.yml +0 -0
  35. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/.github/workflows/test.yml +0 -0
  36. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/.gitmodules +0 -0
  37. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/.pre-commit-config.yaml +0 -0
  38. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/.readthedocs.yaml +0 -0
  39. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/LICENSE +0 -0
  40. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/README.md +0 -0
  41. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/codecov.yml +0 -0
  42. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/docs/conf.py +0 -0
  43. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/docs/index.rst +0 -0
  44. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/environment.yml +0 -0
  45. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/examples/header-only-library/example/include/example.h +0 -0
  46. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/examples/header-only-library/example/pkgconf/example.pc +0 -0
  47. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/examples/header-only-library/pyproject.toml +0 -0
  48. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/src/buildhack.py +0 -0
  49. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/src/pkgconf/__main__.py +0 -0
  50. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/src/pkgconf/_path_entrypoints.py +0 -0
  51. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/src/pkgconf/diagnose.py +0 -0
  52. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/src/pkgconf/py.typed +0 -0
  53. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/.gitattributes +0 -0
  54. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/.github/FUNDING.yml +0 -0
  55. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/.gitignore +0 -0
  56. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/.mailmap +0 -0
  57. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/AUTHORS +0 -0
  58. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/CODE_OF_CONDUCT.md +0 -0
  59. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/COPYING +0 -0
  60. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/Kyuafile.in +0 -0
  61. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/autogen.sh +0 -0
  62. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/cli/bomtool/main.c +0 -0
  63. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/cli/getopt_long.c +0 -0
  64. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/cli/getopt_long.h +0 -0
  65. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/cli/renderer-msvc.c +0 -0
  66. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/cli/renderer-msvc.h +0 -0
  67. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/conf.py +0 -0
  68. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/extract.py +0 -0
  69. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/index.rst +0 -0
  70. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/libpkgconf-argvsplit.rst +0 -0
  71. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/libpkgconf-audit.rst +0 -0
  72. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/libpkgconf-cache.rst +0 -0
  73. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/libpkgconf-client.rst +0 -0
  74. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/libpkgconf-dependency.rst +0 -0
  75. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/libpkgconf-fragment.rst +0 -0
  76. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/libpkgconf-path.rst +0 -0
  77. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/libpkgconf-personality.rst +0 -0
  78. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/libpkgconf-pkg.rst +0 -0
  79. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/libpkgconf-queue.rst +0 -0
  80. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/libpkgconf-tuple.rst +0 -0
  81. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/doc/libpkgconf.rst +0 -0
  82. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/audit.c +0 -0
  83. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/buffer.c +0 -0
  84. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/cache.c +0 -0
  85. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/fileio.c +0 -0
  86. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/iter.h +0 -0
  87. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/libpkgconf-api.h +0 -0
  88. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/meson.build +0 -0
  89. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/queue.c +0 -0
  90. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/tuple.c +0 -0
  91. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf/win-dirent.h +0 -0
  92. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/libpkgconf.pc.in +0 -0
  93. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/m4/ax_check_compile_flag.m4 +0 -0
  94. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/man/pc.5 +0 -0
  95. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/man/pkg.m4.7 +0 -0
  96. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/man/pkgconf-personality.5 +0 -0
  97. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/meson_options.txt +0 -0
  98. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/pkg.m4 +0 -0
  99. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/Kyuafile.in +0 -0
  100. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/basic.sh +0 -0
  101. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/builtins.sh +0 -0
  102. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/conflicts.sh +0 -0
  103. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/framework.sh +0 -0
  104. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib-relocatable/lib/pkgconfig/foo.pc +0 -0
  105. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/argv-parse-2.pc +0 -0
  106. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/argv-parse-3.pc +0 -0
  107. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/argv-parse.pc +0 -0
  108. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/bar.pc +0 -0
  109. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/baz.pc +0 -0
  110. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/billion-laughs.pc +0 -0
  111. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/c-comment.pc +0 -0
  112. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/case-sensitivity.pc +0 -0
  113. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/cflags-internal.pc +0 -0
  114. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/cflags-libs-only.pc +0 -0
  115. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/cflags-libs-private-a.pc +0 -0
  116. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/cflags-libs-private-b.pc +0 -0
  117. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/cflags-libs-private-c.pc +0 -0
  118. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/cflags-whitespace-trailing.pc +0 -0
  119. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/cflags-whitespace.pc +0 -0
  120. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/child-prefix/pkgconfig/child-prefix-1.pc +0 -0
  121. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/circular-1.pc +0 -0
  122. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/circular-2.pc +0 -0
  123. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/circular-3.pc +0 -0
  124. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/comments-in-fields.pc +0 -0
  125. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/comments.pc +0 -0
  126. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/conflicts.pc +0 -0
  127. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/depgraph-break.pc +0 -0
  128. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/dos-lineendings.pc +0 -0
  129. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/empty-tuple.pc +0 -0
  130. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/escaped-backslash.pc +0 -0
  131. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/explicit-sysroot.pc +0 -0
  132. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/flag-order-1.pc +0 -0
  133. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/flag-order-3.pc +0 -0
  134. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/foo.pc +0 -0
  135. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/foobar.pc +0 -0
  136. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-collision-1.pc +0 -0
  137. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-collision-2.pc +0 -0
  138. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-collision-intermediary.pc +0 -0
  139. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-collision.pc +0 -0
  140. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-comment.pc +0 -0
  141. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-escaping-1.pc +0 -0
  142. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-escaping-2.pc +0 -0
  143. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-escaping-3.pc +0 -0
  144. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-group-a.pc +0 -0
  145. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-group-b.pc +0 -0
  146. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-group-c.pc +0 -0
  147. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-groups-2.pc +0 -0
  148. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-groups.pc +0 -0
  149. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-quoting-2.pc +0 -0
  150. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-quoting-3.pc +0 -0
  151. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-quoting-5.pc +0 -0
  152. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-quoting-7.pc +0 -0
  153. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/fragment-quoting.pc +0 -0
  154. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/framework-1.pc +0 -0
  155. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/framework-2.pc +0 -0
  156. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/idirafter-ordering.pc +0 -0
  157. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/idirafter.pc +0 -0
  158. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/incomplete.pc +0 -0
  159. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/intermediary-1.pc +0 -0
  160. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/intermediary-2.pc +0 -0
  161. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/isystem.pc +0 -0
  162. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/malformed-1.pc +0 -0
  163. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/malformed-quoting.pc +0 -0
  164. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/malformed-version.pc +0 -0
  165. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/metapackage-1.pc +0 -0
  166. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/metapackage-2.pc +0 -0
  167. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/metapackage-3.pc +0 -0
  168. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/metapackage.pc +0 -0
  169. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/missing-require.pc +0 -0
  170. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/multiline-bogus.pc +0 -0
  171. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/multiline.pc +0 -0
  172. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/no-trailing-newline.pc +0 -0
  173. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/nocflag.pc +0 -0
  174. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/nolib.pc +0 -0
  175. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/omg-sysroot-uninstalled.pc +0 -0
  176. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/omg-uninstalled.pc +0 -0
  177. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/orphaned-requires-private.pc +0 -0
  178. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/paren-quoting.pc +0 -0
  179. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/pcfiledir.pc +0 -0
  180. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/prefix-foo1.pc +0 -0
  181. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/prefix-foo2.pc +0 -0
  182. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/private-libs-duplication.pc +0 -0
  183. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/provides-request-simple.pc +0 -0
  184. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/provides.pc +0 -0
  185. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/quotes.pc +0 -0
  186. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/requires-internal-2.pc +0 -0
  187. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/requires-internal-collision.pc +0 -0
  188. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/requires-internal-missing.pc +0 -0
  189. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/requires-internal.pc +0 -0
  190. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/spaces-in-paths.pc +0 -0
  191. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/static-archive-libs.pc +0 -0
  192. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/static-libs.pc +0 -0
  193. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/sysroot-dir-2.pc +0 -0
  194. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/sysroot-dir-3.pc +0 -0
  195. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/sysroot-dir-4.pc +0 -0
  196. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/sysroot-dir-5.pc +0 -0
  197. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/sysroot-dir.pc +0 -0
  198. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/tilde-quoting.pc +0 -0
  199. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/tilde.pc +0 -0
  200. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/truncated.pc +0 -0
  201. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/tuple-quoting.pc +0 -0
  202. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/typelibdir.pc +0 -0
  203. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/unavailable-provider.pc +0 -0
  204. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/utf8.pc +0 -0
  205. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib1/variable-whitespace.pc +0 -0
  206. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib2/foo.pc +0 -0
  207. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/lib3/bar.pc +0 -0
  208. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/meson.build +0 -0
  209. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/parser.sh +0 -0
  210. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/provides.sh +0 -0
  211. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/regress.sh +0 -0
  212. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/requires.sh +0 -0
  213. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/symlink.sh +0 -0
  214. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/sysroot.sh +0 -0
  215. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/test_env.sh.in +0 -0
  216. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/subprojects/pkgconf/tests/version.sh +0 -0
  217. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/conftest.py +0 -0
  218. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/data/needs-example-lib.c +0 -0
  219. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/error-on-import/foo/__init__.py +0 -0
  220. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/error-on-import/foo/bar/__init__.py +0 -0
  221. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/error-on-import/meson.build +0 -0
  222. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/error-on-import/pyproject.toml +0 -0
  223. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/inplace/example/__init__.py +0 -0
  224. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/inplace/example/include/example.h +0 -0
  225. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/inplace/example/pkgconf/example.pc +0 -0
  226. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/inplace/pyproject.toml +0 -0
  227. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/namespace/namespace/namespace.pc +0 -0
  228. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/namespace/pyproject.toml +0 -0
  229. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/register-pkg-config-path/lib.c +0 -0
  230. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/register-pkg-config-path/meson.build +0 -0
  231. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/register-pkg-config-path/pyproject.toml +0 -0
  232. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/register-pkg-config-path/register_pkg_config_path/__init__.py +0 -0
  233. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/register-pkg-config-path/register_pkg_config_path/include/__init__.py +0 -0
  234. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/register-pkg-config-path/register_pkg_config_path/include/lib.h +0 -0
  235. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/register-pkg-config-path/register_pkg_config_path/lib/__init__.py +0 -0
  236. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/register-pkg-config-path/register_pkg_config_path/pkgconf/__init__.py +0 -0
  237. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/register-pkg-config-path/register_pkg_config_path/pkgconf/register_pkg_config_path.pc +0 -0
  238. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/packages/use-pybind11/meson.build +0 -0
  239. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/test_diagnose.py +0 -0
  240. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/test_distribution.py +0 -0
  241. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/test_entrypoints.py +0 -0
  242. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/test_examples.py +0 -0
  243. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/tests/test_python_module.py +0 -0
  244. {pkgconf-2.4.3.post3 → pkgconf-2.5.1.post0}/update-upstream.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pkgconf
3
- Version: 2.4.3.post3
3
+ Version: 2.5.1.post0
4
4
  Summary: `pkgconf` is a program which helps with discovering library dependencies and configuring compiler and linker flags.
5
5
  Author-Email: Ralf Gommers <ralf.gommers@gmail.com>, =?utf-8?q?Filipe_La=C3=ADns?= <lains@riseup.net>
6
6
  License: Copyright (c) 2024 pypackaging-native contributors
@@ -3,7 +3,7 @@
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
5
  project('pkgconf-pypi',
6
- version : '2.4.3-3',
6
+ version : '2.5.1-0',
7
7
  license : 'MIT AND ISC',
8
8
  license_files : ['LICENSE'],
9
9
  meson_version : '>=1.3.2',
@@ -11,7 +11,7 @@ requires = ['meson-python', 'wheel']
11
11
 
12
12
  [project]
13
13
  name = 'pkgconf'
14
- version = '2.4.3-3'
14
+ version = '2.5.1-0'
15
15
  description = '`pkgconf` is a program which helps with discovering library dependencies and configuring compiler and linker flags.'
16
16
  readme = 'README.md'
17
17
  license = {file = 'LICENSE'}
@@ -14,7 +14,7 @@ import pkgconf._path_entrypoints
14
14
  from pkgconf._path_entrypoints import PathWarning
15
15
 
16
16
 
17
- __version__ = '2.4.3-3'
17
+ __version__ = '2.5.1-0'
18
18
 
19
19
 
20
20
  _LOGGER = logging.getLogger(__name__)
@@ -0,0 +1,51 @@
1
+ name: Generate and upload release tarballs
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'pkgconf-*'
7
+
8
+ jobs:
9
+ publish:
10
+ runs-on: ubuntu-latest
11
+ container:
12
+ image: alpine:latest
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v2
16
+ with:
17
+ repository: pkgconf/pkgconf
18
+
19
+ - name: Update system and add dependencies
20
+ run: |
21
+ apk update
22
+ apk add kyua atf build-base autoconf automake libtool xz gzip openssh-client
23
+
24
+ - name: Bootstrap autotools
25
+ run: |
26
+ sh autogen.sh
27
+ ./configure
28
+
29
+ - name: Run tests and generate dist tarballs
30
+ run: |
31
+ make distcheck -j$(nproc)
32
+
33
+ - name: Upload dist tarballs to distfiles.ariadne.space
34
+ env:
35
+ DISTFILES_PRIVATE_KEY: ${{ secrets.DISTFILES_PRIVATE_KEY }}
36
+ DISTFILES_HOST_KEYS: ${{ secrets.DISTFILES_HOST_KEYS }}
37
+ run: |
38
+ mkdir -p $HOME/.ssh
39
+
40
+ # Ensure the private key is read-only so SSH doesn't reject it.
41
+ umask 277
42
+ (echo "$DISTFILES_PRIVATE_KEY" | base64 -d) > $HOME/.ssh/id_ed25519
43
+
44
+ umask 077
45
+ (echo "$DISTFILES_HOST_KEYS" | base64 -d) > $HOME/.ssh/known_hosts
46
+
47
+ # Upload the tarballs.
48
+ scp -i "$HOME/.ssh/id_ed25519" -o "UserKnownHostsFile=$HOME/.ssh/known_hosts" *.tar* kaniini@distfiles.ariadne.space:distfiles/pkgconf/
49
+
50
+ # Delete the key material.
51
+ rm -rf $HOME/.ssh
@@ -13,7 +13,6 @@ jobs:
13
13
  matrix:
14
14
  include: [
15
15
  { msystem: MINGW64, arch: x86_64},
16
- { msystem: MINGW32, arch: i686}
17
16
  ]
18
17
  steps:
19
18
  - name: Checkout code
@@ -28,6 +27,7 @@ jobs:
28
27
  mingw-w64-${{ matrix.arch }}-meson
29
28
  mingw-w64-${{ matrix.arch }}-ninja
30
29
  mingw-w64-${{ matrix.arch }}-gcc
30
+ mingw-w64-${{ matrix.arch }}-msitools
31
31
 
32
32
  - name: Build
33
33
  shell: msys2 {0}
@@ -36,7 +36,16 @@ jobs:
36
36
  export CFLAGS=-D__USE_MINGW_ANSI_STDIO=0
37
37
 
38
38
  meson -Dtests=disabled _build
39
- meson compile -C _build
39
+ meson compile -C _build msi
40
+
41
+ - name: Upload Artifact
42
+ uses: actions/upload-artifact@v4
43
+ with:
44
+ name: build-output
45
+ path: |
46
+ _build/*.exe
47
+ _build/*.dll
48
+ _build/*.msi
40
49
 
41
50
  debian-meson:
42
51
  runs-on: ubuntu-latest
@@ -151,3 +160,23 @@ jobs:
151
160
  - name: Run tests
152
161
  run: |
153
162
  make distcheck
163
+
164
+ analysis:
165
+ runs-on: ubuntu-latest
166
+ container:
167
+ image: alpine
168
+ steps:
169
+ - name: Checkout
170
+ uses: actions/checkout@v2
171
+
172
+ - name: Update system and add dependencies
173
+ run: |
174
+ apk update
175
+ apk add kyua atf build-base autoconf automake libtool xz gzip
176
+
177
+ - name: Build
178
+ run: |
179
+ export CFLAGS="-Wall -Werror -O2 -ggdb3 -fanalyzer"
180
+ ./autogen.sh
181
+ ./configure
182
+ make -j9 CFLAGS="$CFLAGS"
@@ -18,6 +18,8 @@ lib_LTLIBRARIES = libpkgconf.la
18
18
  EXTRA_DIST = pkg.m4 \
19
19
  meson.build \
20
20
  meson_options.txt \
21
+ pkgconf.wxs.in \
22
+ txt2rtf.py \
21
23
  libpkgconf/meson.build \
22
24
  libpkgconf/config.h.meson \
23
25
  libpkgconf/win-dirent.h \
@@ -174,9 +176,10 @@ libpkgconf_la_SOURCES = \
174
176
  libpkgconf/path.c \
175
177
  libpkgconf/personality.c \
176
178
  libpkgconf/parser.c
177
- libpkgconf_la_LDFLAGS = -no-undefined -version-info 6:0:0 -export-symbols-regex '^pkgconf_'
179
+ libpkgconf_la_LDFLAGS = -no-undefined -version-info 7:0:0 -export-symbols-regex '^pkgconf_'
178
180
 
179
181
  dist_man_MANS = \
182
+ man/bomtool.1 \
180
183
  man/pkgconf.1 \
181
184
  man/pkg.m4.7 \
182
185
  man/pc.5 \
@@ -39,7 +39,7 @@ all: pkgconf-lite
39
39
  libpkgconf/config.h:
40
40
  @echo '#define PACKAGE_NAME "pkgconf-lite"' >> $@
41
41
  @echo '#define PACKAGE_BUGREPORT "https://git.dereferenced.org/pkgconf/pkgconf/issues"' >> $@
42
- @echo '#define PACKAGE_VERSION "2.4.3"' >> $@
42
+ @echo '#define PACKAGE_VERSION "2.5.1"' >> $@
43
43
  @echo '#define PACKAGE PACKAGE_NAME " " PACKAGE_VERSION' >> $@
44
44
  @echo '#define HAVE_STRLCPY' >> $@
45
45
  @echo '#define HAVE_STRLCAT' >> $@
@@ -1,6 +1,46 @@
1
1
  Changes from previous version of pkgconf
2
2
  ========================================
3
3
 
4
+ Changes from 2.5.0 to 2.5.1:
5
+ ----------------------------
6
+
7
+ * Fix processing of empty dependency lists.
8
+
9
+ Changes 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
+
4
44
  Changes from 2.4.2 to 2.4.3:
5
45
  ----------------------------
6
46
 
@@ -0,0 +1,130 @@
1
+ # pkgconf [![test](https://github.com/pkgconf/pkgconf/actions/workflows/test.yml/badge.svg)](https://github.com/pkgconf/pkgconf/actions/workflows/test.yml)
2
+
3
+ `pkgconf` is a program which helps to configure compiler and linker flags for
4
+ development libraries. It is a superset of the functionality provided by
5
+ pkg-config from freedesktop.org, but does not provide bug-compatibility with
6
+ the original pkg-config.
7
+
8
+ `libpkgconf` is a library which provides access to most of `pkgconf`'s functionality,
9
+ to allow other tooling such as compilers and IDEs to discover and use libraries
10
+ configured by pkgconf.
11
+
12
+ ## release tarballs
13
+
14
+ Release tarballs are available on [distfiles.ariadne.space][distfiles].
15
+
16
+ [distfiles]: https://distfiles.ariadne.space/pkgconf/
17
+
18
+ ## build system setup
19
+
20
+ If you would like to use the git sources directly, or a snapshot of the
21
+ sources from GitHub, you will need to regenerate the autotools build
22
+ system artifacts yourself, or use Meson instead. For example, on Alpine:
23
+
24
+ $ apk add autoconf automake libtool build-base
25
+ $ sh ./autogen.sh
26
+
27
+ ## pkgconf-lite
28
+
29
+ If you only need the original pkg-config functionality, there is also pkgconf-lite,
30
+ which builds the `pkgconf` frontend and relevant portions of `libpkgconf` functionality
31
+ into a single binary:
32
+
33
+ $ make -f Makefile.lite
34
+
35
+ ## why `pkgconf` over original `pkg-config`?
36
+
37
+ pkgconf builds a flattened directed dependency graph, which allows for more insight
38
+ into relationships between dependencies, allowing for some link-time dependency
39
+ optimization, which allows for the user to more conservatively link their binaries,
40
+ which may be helpful in some environments, such as when prelink(1) is being used.
41
+
42
+ The solver is also optimized to handle large dependency graphs with hundreds of
43
+ thousands of edges, which can be seen in any project using the Abseil frameworks
44
+ for example.
45
+
46
+ In addition, pkgconf has full support for virtual packages, while the original
47
+ pkg-config does not, as well as fully supporting `Conflicts` at dependency
48
+ resolution time, which is more efficient than checking for `Conflicts` while
49
+ walking the dependency graph.
50
+
51
+ ## linker flags optimization
52
+
53
+ pkgconf, when used effectively, can make optimizations to avoid overlinking binaries.
54
+
55
+ This functionality depends on the pkg-config module properly declaring its dependency
56
+ tree instead of using `Libs` and `Cflags` fields to directly link against other modules
57
+ which have pkg-config metadata files installed.
58
+
59
+ The practice of using `Libs` and `Cflags` to describe unrelated dependencies is
60
+ not recommended in [Dan Nicholson's pkg-config tutorial][fd-tut] for this reason.
61
+
62
+ [fd-tut]: http://people.freedesktop.org/~dbn/pkg-config-guide.html
63
+
64
+ ## bug compatibility with original pkg-config
65
+
66
+ In general, we do not provide bug-level compatibility with pkg-config.
67
+
68
+ What that means is, if you feel that there is a legitimate regression versus pkg-config,
69
+ do let us know, but also make sure that the .pc files are valid and follow the rules of
70
+ the [pkg-config tutorial][fd-tut], as most likely fixing them to follow the specified
71
+ rules will solve the problem.
72
+
73
+ ## debug output
74
+
75
+ Please use only the stable interfaces to query pkg-config. Do not screen-scrape the
76
+ output from `--debug`: this is sent to `stderr` for a reason, it is not intended to be
77
+ scraped. The `--debug` output is **not** a stable interface, and should **never** be
78
+ depended on as a source of information. If you need a stable interface to query pkg-config
79
+ which is not covered, please get in touch.
80
+
81
+ ## compiling `pkgconf` and `libpkgconf` on UNIX
82
+
83
+ pkgconf is basically compiled the same way any other autotools-based project is
84
+ compiled:
85
+
86
+ $ ./configure
87
+ $ make
88
+ $ sudo make install
89
+
90
+ If you are installing pkgconf into a custom prefix, such as `/opt/pkgconf`, you will
91
+ likely want to define the default system includedir and libdir for your toolchain.
92
+ To do this, use the `--with-system-includedir` and `--with-system-libdir` configure
93
+ flags like so:
94
+
95
+ $ ./configure \
96
+ --prefix=/opt/pkgconf \
97
+ --with-system-libdir=/lib:/usr/lib \
98
+ --with-system-includedir=/usr/include
99
+ $ make
100
+ $ sudo make install
101
+
102
+ ## compiling `pkgconf` and `libpkgconf` with Meson (usually for Windows)
103
+
104
+ pkgconf is compiled using [Meson](https://mesonbuild.com) on Windows. In theory, you could also use
105
+ Meson to build on UNIX, but this is not recommended at this time as pkgconf is typically built
106
+ much earlier than Meson.
107
+
108
+ $ meson setup build -Dtests=disabled
109
+ $ meson compile -C build
110
+ $ meson install -C build
111
+
112
+ There are a few defines such as `SYSTEM_LIBDIR`, `PKGCONFIGDIR` and `SYSTEM_INCLUDEDIR`.
113
+ However, on Windows, the default `PKGCONFIGDIR` value is usually overridden at runtime based
114
+ on path relocation.
115
+
116
+ ## pkg-config symlink
117
+
118
+ If you want pkgconf to be used when you invoke `pkg-config`, you should install a
119
+ symlink for this. We do not do this for you, as we believe it is better for vendors
120
+ to make this determination themselves.
121
+
122
+ $ ln -sf pkgconf /usr/bin/pkg-config
123
+
124
+ ## contacts
125
+
126
+ You can report bugs at <https://github.com/pkgconf/pkgconf/issues>.
127
+
128
+ There is a mailing list at <https://lists.sr.ht/~kaniini/pkgconf>.
129
+
130
+ You can contact us via IRC at `#pkgconf` at `irc.oftc.net`.
@@ -1031,6 +1031,47 @@ deduce_personality(char *argv[])
1031
1031
  }
1032
1032
  #endif
1033
1033
 
1034
+ static void
1035
+ unveil_handler(const pkgconf_client_t *client, const char *path, const char *permissions)
1036
+ {
1037
+ (void) client;
1038
+
1039
+ if (pkgconf_unveil(path, permissions) == -1)
1040
+ {
1041
+ fprintf(stderr, "pkgconf: unveil failed: %s\n", strerror(errno));
1042
+ exit(EXIT_FAILURE);
1043
+ }
1044
+ }
1045
+
1046
+ static bool
1047
+ unveil_search_paths(const pkgconf_client_t *client, const pkgconf_cross_personality_t *personality)
1048
+ {
1049
+ pkgconf_node_t *n;
1050
+
1051
+ if (pkgconf_unveil("/dev/null", "rwc") == -1)
1052
+ return false;
1053
+
1054
+ PKGCONF_FOREACH_LIST_ENTRY(client->dir_list.head, n)
1055
+ {
1056
+ pkgconf_path_t *pn = n->data;
1057
+
1058
+ if (pkgconf_unveil(pn->path, "r") == -1)
1059
+ return false;
1060
+ }
1061
+
1062
+ PKGCONF_FOREACH_LIST_ENTRY(personality->dir_list.head, n)
1063
+ {
1064
+ pkgconf_path_t *pn = n->data;
1065
+
1066
+ if (pkgconf_unveil(pn->path, "r") == -1)
1067
+ return false;
1068
+ }
1069
+
1070
+ pkgconf_client_set_unveil_handler(&pkg_client, unveil_handler);
1071
+
1072
+ return true;
1073
+ }
1074
+
1034
1075
  int
1035
1076
  main(int argc, char *argv[])
1036
1077
  {
@@ -1055,6 +1096,12 @@ main(int argc, char *argv[])
1055
1096
  .flags = PKGCONF_PKG_PROPF_STATIC | PKGCONF_PKG_PROPF_VIRTUAL,
1056
1097
  };
1057
1098
 
1099
+ if (pkgconf_pledge("stdio rpath wpath cpath unveil", NULL) == -1)
1100
+ {
1101
+ fprintf(stderr, "pkgconf: pledge failed: %s\n", strerror(errno));
1102
+ return EXIT_FAILURE;
1103
+ }
1104
+
1058
1105
  want_flags = 0;
1059
1106
 
1060
1107
  #ifdef _WIN32
@@ -1218,9 +1265,6 @@ main(int argc, char *argv[])
1218
1265
  #endif
1219
1266
  }
1220
1267
 
1221
- pkgconf_path_copy_list(&personality->dir_list, &dir_list);
1222
- pkgconf_path_free(&dir_list);
1223
-
1224
1268
  #ifndef PKGCONF_LITE
1225
1269
  if ((want_flags & PKG_DUMP_PERSONALITY) == PKG_DUMP_PERSONALITY)
1226
1270
  {
@@ -1232,6 +1276,13 @@ main(int argc, char *argv[])
1232
1276
  /* now, bring up the client. settings are preserved since the client is prealloced */
1233
1277
  pkgconf_client_init(&pkg_client, error_handler, NULL, personality);
1234
1278
 
1279
+ /* unveil the entire search path now that we have loaded the personality data. */
1280
+ if (!unveil_search_paths(&pkg_client, personality))
1281
+ {
1282
+ fprintf(stderr, "pkgconf: unveil failed: %s\n", strerror(errno));
1283
+ return EXIT_FAILURE;
1284
+ }
1285
+
1235
1286
  #ifndef PKGCONF_LITE
1236
1287
  if ((want_flags & PKG_MSVC_SYNTAX) == PKG_MSVC_SYNTAX || getenv("PKG_CONFIG_MSVC_SYNTAX") != NULL)
1237
1288
  want_render_ops = msvc_renderer_get();
@@ -1259,6 +1310,9 @@ main(int argc, char *argv[])
1259
1310
  pkgconf_client_set_trace_handler(&pkg_client, error_handler, NULL);
1260
1311
  #endif
1261
1312
 
1313
+ pkgconf_path_prepend_list(&pkg_client.dir_list, &dir_list);
1314
+ pkgconf_path_free(&dir_list);
1315
+
1262
1316
  if ((want_flags & PKG_ABOUT) == PKG_ABOUT)
1263
1317
  {
1264
1318
  about();
@@ -1398,6 +1452,9 @@ main(int argc, char *argv[])
1398
1452
  /* at this point, want_client_flags should be set, so build the dir list */
1399
1453
  pkgconf_client_dir_list_build(&pkg_client, personality);
1400
1454
 
1455
+ /* preload any files in PKG_CONFIG_PRELOADED_FILES */
1456
+ pkgconf_client_preload_from_environ(&pkg_client, "PKG_CONFIG_PRELOADED_FILES");
1457
+
1401
1458
  if (required_pkgconfig_version != NULL)
1402
1459
  {
1403
1460
  if (pkgconf_compare_version(PACKAGE_VERSION, required_pkgconfig_version) >= 0)
@@ -1427,6 +1484,12 @@ main(int argc, char *argv[])
1427
1484
 
1428
1485
  if (logfile_arg != NULL)
1429
1486
  {
1487
+ if (pkgconf_unveil(logfile_arg, "rwc") == -1)
1488
+ {
1489
+ fprintf(stderr, "pkgconf: unveil failed: %s\n", strerror(errno));
1490
+ return EXIT_FAILURE;
1491
+ }
1492
+
1430
1493
  logfile_out = fopen(logfile_arg, "w");
1431
1494
  pkgconf_audit_set_log(&pkg_client, logfile_out);
1432
1495
  }
@@ -1619,6 +1682,13 @@ cleanup3:
1619
1682
  goto out;
1620
1683
  }
1621
1684
 
1685
+ /* we shouldn't need to unveil any more filesystem accesses from this point, so lock it down */
1686
+ if (pkgconf_unveil(NULL, NULL) == -1)
1687
+ {
1688
+ fprintf(stderr, "pkgconf: unveil lockdown failed: %s\n", strerror(errno));
1689
+ return EXIT_FAILURE;
1690
+ }
1691
+
1622
1692
  #ifndef PKGCONF_LITE
1623
1693
  if ((want_flags & PKG_SIMULATE) == PKG_SIMULATE)
1624
1694
  {
@@ -12,7 +12,7 @@ dnl implied. In no event shall the authors be liable for any damages arising
12
12
  dnl from the use of this software.
13
13
 
14
14
  AC_PREREQ([2.71])
15
- AC_INIT([pkgconf],[2.4.3],[https://github.com/pkgconf/pkgconf/issues/new])
15
+ AC_INIT([pkgconf],[2.5.1],[https://github.com/pkgconf/pkgconf/issues/new])
16
16
  AC_CONFIG_SRCDIR([cli/main.c])
17
17
  AC_CONFIG_MACRO_DIR([m4])
18
18
  AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS -Wall"])
@@ -23,6 +23,7 @@ AX_CHECK_COMPILE_FLAG([-std=gnu99], [CFLAGS="$CFLAGS -std=gnu99"], [
23
23
  ])
24
24
  AC_CONFIG_HEADERS([libpkgconf/config.h])
25
25
  AC_CHECK_DECLS([strlcpy, strlcat, strndup], [], [], [[#include <string.h>]])
26
+ AC_CHECK_DECLS([pledge, unveil], [], [], [[#include <unistd.h>]])
26
27
  AC_CHECK_DECLS([reallocarray])
27
28
  AC_CHECK_HEADERS([sys/stat.h])
28
29
  AM_INIT_AUTOMAKE([foreign dist-xz subdir-objects])
@@ -59,7 +59,10 @@ pkgconf_argv_free(char **argv)
59
59
  int
60
60
  pkgconf_argv_split(const char *src, int *argc, char ***argv)
61
61
  {
62
- char *buf = malloc(strlen(src) + 1);
62
+ char *buf = calloc(1, strlen(src) + 1);
63
+ if (buf == NULL)
64
+ return -1;
65
+
63
66
  const char *src_iter;
64
67
  char *dst_iter;
65
68
  int argc_count = 0;
@@ -70,9 +73,13 @@ pkgconf_argv_split(const char *src, int *argc, char ***argv)
70
73
  src_iter = src;
71
74
  dst_iter = buf;
72
75
 
73
- memset(buf, 0, strlen(src) + 1);
74
-
75
76
  *argv = calloc(argv_size, sizeof (void *));
77
+ if (*argv == NULL)
78
+ {
79
+ free(buf);
80
+ return -1;
81
+ }
82
+
76
83
  (*argv)[argc_count] = dst_iter;
77
84
 
78
85
  while (*src_iter)
@@ -21,6 +21,9 @@
21
21
  #include <sys/types.h>
22
22
  #include <string.h>
23
23
  #include <errno.h>
24
+ #ifndef _WIN32
25
+ #include <unistd.h>
26
+ #endif
24
27
 
25
28
  #include <libpkgconf/bsdstubs.h>
26
29
  #include <libpkgconf/config.h>
@@ -121,6 +124,28 @@ strndup(const char *src, size_t len)
121
124
  }
122
125
  #endif
123
126
 
127
+ #if !HAVE_DECL_PLEDGE
128
+ static inline int
129
+ pledge(const char *promises, const char *execpromises)
130
+ {
131
+ (void) promises;
132
+ (void) execpromises;
133
+
134
+ return 0;
135
+ }
136
+ #endif
137
+
138
+ #if !HAVE_DECL_UNVEIL
139
+ static inline int
140
+ unveil(const char *path, const char *permissions)
141
+ {
142
+ (void) path;
143
+ (void) permissions;
144
+
145
+ return 0;
146
+ }
147
+ #endif
148
+
124
149
  size_t
125
150
  pkgconf_strlcpy(char *dst, const char *src, size_t siz)
126
151
  {
@@ -158,3 +183,15 @@ pkgconf_reallocarray(void *ptr, size_t m, size_t n)
158
183
  {
159
184
  return reallocarray(ptr, m, n);
160
185
  }
186
+
187
+ int
188
+ pkgconf_pledge(const char *promises, const char *execpromises)
189
+ {
190
+ return pledge(promises, execpromises);
191
+ }
192
+
193
+ int
194
+ pkgconf_unveil(const char *path, const char *permissions)
195
+ {
196
+ return unveil(path, permissions);
197
+ }
@@ -26,6 +26,8 @@ PKGCONF_API extern size_t pkgconf_strlcpy(char *dst, const char *src, size_t siz
26
26
  PKGCONF_API extern size_t pkgconf_strlcat(char *dst, const char *src, size_t siz);
27
27
  PKGCONF_API extern char *pkgconf_strndup(const char *src, size_t len);
28
28
  PKGCONF_API extern void *pkgconf_reallocarray(void *ptr, size_t m, size_t n);
29
+ PKGCONF_API extern int pkgconf_pledge(const char *promises, const char *execpromises);
30
+ PKGCONF_API extern int pkgconf_unveil(const char *path, const char *permissions);
29
31
 
30
32
  #ifdef __cplusplus
31
33
  }