-
-
Notifications
You must be signed in to change notification settings - Fork 482
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
spkg-configure.m4 for libgd #27825
Comments
comment:1
I'm trying
to see whether this produces a working Sage (on my system libgd is not linked to iconv, according to ldd). |
comment:2
(Wall-of-text alert. There's a tl;dr at the end, but I've dumped my reasoning for review so that we don't accidentally break some case I haven't thought of.) For posterity, we discussed the iconv dependency on the mailing list. The libgd package has an automagic dependency on iconv, meaning that it has optional support for iconv that is enabled automatically if a suitable iconv is present at build time. At that point, iconv is no longer optional, because libgd will be compiled to call some iconv functions, and will potentially be linked to libiconv. Moreover, there are a few ways that "libiconv" can be implemented. On modern linux systems, the calls are all part of glibc, which is why you don't see libgd being explicitly linked against iconv on those systems. However, on other operating systems, GNU libiconv is indeed installed as a separate package, and you will find libgd linked against it on those systems. Now, I don't believe that SageMath uses any of the iconv support in libgd. The only SageMath file to call a GD function is As a result, I don't think iconv should be a dependency of the SageMath libgd package, but there are some conflicting goals here that I'll catalogue:
There's no perfect solution for all three, and in my opinion the third is the most important, which forces us to choose between (1) and (2). The two associated plans of action are,
The second option means that the libgd built by sage won't be consistent, but it does bring the sage package to parity with the system package check. And, it's simpler. So finally, tl;dr I think the practical solution is to
|
comment:3
Replying to @dimpase:
libpng too? |
comment:4
yes, sure, I didn't spell out all the dependencies yet. |
comment:5
No need to explicitly check for libpng being from the system, as this is done by the freetype macro run. |
Branch: u/dimpase/packages/libgd-config |
This comment has been minimized.
This comment has been minimized.
Commit: |
Author: Dima Pasechnik |
Dependencies: #27168 |
comment:6
Replying to @dimpase:
We should still check it ourselves, for the same reason we need the redundant libpng in libgd's That breakage will manifest on some weird system a year later, and it will take us a lot more time to track it down then than it will to play it safe now. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:8
Replying to @orlitzky:
OK, fixed. |
comment:10
Hum... Feels circular at first sight (libpng <-> zlib). Also libgd actually picks many other formats- it is one of its point. Is libpng really the only one we care about? jpeg or anything else? |
comment:11
this is what we build in Sage, just look at its libgd/dependencies. |
Reviewer: François Bissey |
comment:12
Replying to @dimpase:
Fair enough. The chain of various checks between libpng, zlib and freetype is hurting my head. I am glad we can just abstract it and let autoconf deal with it until it complains. If it can digest it and produce a working configure script that's already a strong test. |
comment:13
Thanks, but please review its dependencies too! |
comment:14
I see, it is part of the same bundle. |
comment:15
To release manager - this might need a configure bump. |
Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. New commits:
|
comment:36
rebased over 8.8.rc0; no configure bump done |
comment:37
I still have some nitpicks about the |
comment:38
This should obviously be postponed until the next release (hopefully early on). |
Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. New commits:
|
Changed reviewer from François Bissey to François Bissey, Erik Bray |
comment:40
I guess this has fallen through rebasing cracks... |
Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. This was a forced push. Last 10 new commits:
|
This comment has been minimized.
This comment has been minimized.
comment:42
rebased over latest beta |
comment:43
removed "wont fix" deps from the description |
Changed branch from u/dimpase/packages/libgd-config to |
use pkg-config to get it.
configure tarball is here:
http://users.ox.ac.uk/~coml0531/sage/configure-2bd1bda5f85b8f8e4a7fc7499f8529795099160a.tar.gz
CC: @orlitzky @jdemeyer @kiwifb
Component: build: configure
Author: Dima Pasechnik
Branch/Commit:
8c97d9b
Reviewer: François Bissey, Erik Bray
Issue created by migration from https://trac.sagemath.org/ticket/27825
The text was updated successfully, but these errors were encountered: