-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add pkgconf package as a replacement for pkgconfig #923
base: master
Are you sure you want to change the base?
Conversation
|
I just added the I guess one could also create a -dev package as second splitoff including The |
The serial number difference is mostly irrelevant. pkg-config bumped it in this commit: https://gitlab.freedesktop.org/pkg-config/pkg-config/-/commit/677e9248753d31c4b7ceed7805ccdc3fc508e980
In fact, other than whitespace (and post-serial-bump comment typo fixes) there's exactly one actual change, to use the lookup name rather than the saved variable name for logging. It doesn't affect usage though. I guess pkgconf simply hasn't synced a handful of changes + the serial number. |
I've removed |
We currently have each pkg-config-like program at its own name, so callers know exactly which implementation they are getting. Debian is fairly conservative in terms of avoiding breakage during transitions. Today, they made a formal proposal that pkgconf replace pkgconfig. As part of that, they've done a full-distro rebuild and didn't see substantial problems. With that, I think we can do that switch also, having the pkgconf install So we could have a final actual pkgconfig package that is a dummy on top of pkgconf (fink's usual "obsolete" mechanism for when a package is drop-in replaced by another work-alike with a different package-name). That would mean pkgconf:Replaces:pkgconfig (not also Conflicts). |
pkgconf 1.9.2 is out. BTW it includes this change I contributed: pkgconf/pkgconf@59a56df |
I've updated to 1.9.3 and after some struggles managed to build |
I wonder what the diff is between the generated buildsystem Makefiles / ninja files when using pkg-config vs. pkgconf? |
The
and its differences in
Although I could not spot any difference in the generated libguile headers, manually executing
to |
pkgconf probably thinks for some reason that that path is part of the "system" includes that the compiler uses even without specifying any flags. Both freedesktop pkg-config and |
Yes, it's obviously not needed in pkgconf:
pkg-config:
So in the first case pkgconf tries to compile without the Fink library path, probably concluding that Indeed the pkgconf build can also be fixed with just |
There appears to be a bug in guile's build toolchain. It's essentially never correct for a global (installed or external) -I or -L flag to come before a local (source or build directory) one. This:
is conceptually flawed because presumably the package wants to find its own *.h whenever possible rather than seeing who-knows-what-file of a same name supplied by who-knows-what-other-package. The bug typically results from upstream confusion between *_CFLAGS variables returned from pkg-config's autoconf macros and *_CFLAGS automake variables. The pkg-config value is supposed to be passed via *_CPPFLAGS, but here it's loaded into CFLAGS in the configure script. Edit: This is probably the same upstream bug whose same symptom was reported years ago: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=35427 |
I just hacked on guile22's build system a bit: c8a6882 might solve the problem. But if nothing else, it will give a more verbose output to help diagnose it. |
Or at least its incomplete fix.
The pkgconf build doesn't, obviously incorrectly determining from not finding the I'd agree that this build is broken, and since we know how to work around it, it does not have to keep us from switching to
In this case it's only done for the BDW_GC and LIBFFI versions (by pkg-config):
Again, Could try to add those extra flags through the wrapper script, but if instead, following the hints in their README, I configure pkgconf with
it no longer considers the Fink paths system paths to be stripped, which lets guile22 build without any further modifications, and also fixes the validation failures in xft2-dev! |
That came in just with my last comment on the way out.
but with the original pkgconf that command still fails on the conflicting declarations, probably confirming that it's the order in which they are included within
The package builds with them the same way, but I did not notice any other differences. |
I don't see an alternative to installing this as a full Replaces/Conflicts to
|
pkg.m4 seems simple, they're the same file anyway. Just create another package called Then have all pkg-config implementations depend on that. |
As pointed out in #918 (comment) some of the circular dependency problems caused by Freedesktop's
pkgconfig
are not resolved by switching toppkg-config
, since e.g. meson builds do not accept the latter as a pkg-config replacement (#996 (comment)).This is an initial attempt to package the suggested alternative https://github.com/pkgconf/pkgconf.
Could not run tests due to a missing dependency, and shlibs layout may need discussion.
pkgconf
was tested to build and work in building Pythons 3.8-3.11 and the meson build of scipy 1.10.0 on 12.4+13.2/arm64 and 10.14.6.