-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Strip out pkg-config machinery for agg and libqhull. #11984
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
Conversation
In the case of Agg, the Debian packagers really wanted the ability to link against the system version. Of course, now we have patches that will probably never be merged upstream, so a local copy is the best we can do. Maybe just add a comment to the effect of "We always use the local copy because it contains required patches not available upstream." |
We need a patched version of agg so the pkg-config check is useless; it will always fail. qhull doesn't actually ship valid pkg-config information so the check will likewise always fail. In both cases, just force the use of the vendored version.
Done. |
I don't have a problem with dropping support for external Agg; I gave up trying to take our changes and patch the system Agg because there are just so many. Fedora no longer builds against system Agg either. For qhull, we force the use of the system copy because the pkg-config file was broken, so as long as a patch like that continues to work, it should be okay. |
Patching add_flags in the same way will keep working (and you can patch back check() or not, depending on how much output you want). |
attn @sandrotosi |
Actually debian isn't even devendoring qhull these days (from looking at their patches). I could consider adding support for $MPLBUILD_FORCE_SYSTEM_QHULL=1 (for example) to force using the system copy (basically @QuLogic's patch) ("you're on your own to check that qhull is recent enough"), if that avoids duplicating the code across distros... |
👍 to adding such a flag, but it is unfortunate that it has the opposite polarity of |
Let's leave that as a separate issue. (I don't think we can do much about the opposite polarities unless you want to make local freetype the default... which may not be such a horrible choice (??)) Or we can make it only available from setup.cfg, which should be enough for packagers, and there it can have whatever default and polarity we want. Edit: Actually I also have a plan to replace setup.cfg by something like mplsetup.py, which would both 1) avoid the dance we have to do right now regarding setup.cfg (because we more or less break distutils' expectations regarding setup.cfg, see also the hacks re: versioneer) and 2) simplify its parsing, ehm, exec()ing. But again that's a discussion for another day. |
Re-pinging @QuLogic @sandrotosi. Thanks in advance for your input. |
My comments are the same as before, so I think everything's fine? |
@tacaswell Can we move forward on this? If this causes problems for @sandrotosi to package on Debian we can always revisit... |
sorry for not replying first, got busy -- it's all fine for Debian, we indeed use the bundled Agg |
We need a patched version of agg so the pkg-config check is useless; it
will always fail.
qhull doesn't actually ship valid pkg-config information so the check
will likewise always fail. (qhull/qhull#22)
In both cases, just force the use of the vendored version.
Again, this helps #9737 (_check_for_pkg_config calls check_include_file which again tries to list the include dirs, which should really be the job of the compiler).
PR Summary
PR Checklist