On Sun, Nov 13, 2011 at 1:43 PM, Bill Janssen <bill.jans...@gmail.com> wrote: > Ah, I see. Yes, libjpeg is built from source on the build machines, > but only temporarily. It could be "installed" in /tmp, for instance, > and removed as part of the build process, after PIL is built, for > instance. I just used SAGE_LOCAL without thinking too hard about it. > > I'm not familiar yet with the spkg infrastructure, so perhaps it's > impossible to fit a step like this into the Sage build process.
If having jpeg support is actually really important, the "step" to put into the build process would be to include libjpeg as a new standard spkg with Sage. -- William > > On Nov 13, 1:31 pm, William Stein <wst...@gmail.com> wrote: >> On Sun, Nov 13, 2011 at 1:23 PM, Bill Janssen <bill.jans...@gmail.com> wrote: >> > My suggestion doesn't require binary build machines to have libjpeg >> > installed. In fact, you don't want it installed. >> >> Your suggestion for Sage binaries is: >> >> "1. Build libpng and libjpeg, static-only, and install to SAGE_LOCAL/ >> lib/. ... >> " >> >> This of course requires a build machine to have libjpeg built on it, >> say as part of the Sage build process. So that Sage works in a >> consistent manner across platforms, releases, and people building >> binaries, this should only happen if libjpeg is added to Sage itself >> as an spkg. I'm not necessarily opposed to that happening, since jpeg >> is a common format. >> >> -- William >> >> >> >> >> >> >> >> >> >> > And there seems to >> > be no technical reason to not statically link PIL against libjpeg.a. >> >> > But there *is* a reason to not *dynamically* link against >> > libjpeg.dylib, libpng.dylib, or libtiff.dylib. OS X includes versions >> > of these libraries in /System/Library/Frameworks/ >> > ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/ >> > Versions/A/Resources/. They have different names, but the names >> > differ only in case, which isn't significant to the dynamic linker on >> > OS X. And Sage sets DYLD_LIBRARY_PATH. This means that any system >> > program (like Preview.app, which Imaging-1.1.7 uses for im.show()), >> > will fail if started from inside Sage, as the newer Sage-supplied >> > dylibs will be different from the (usually obsolete) versions the >> > system libraries are dynamically linked against. Unless the image >> > processing libraries are statically linked where needed in Sage, in >> > which case it works fine. >> >> > On Nov 13, 12:58 pm, William Stein <wst...@gmail.com> wrote: >> >> On Sun, Nov 13, 2011 at 12:47 PM, Bill Janssen <bill.jans...@gmail.com> >> >> wrote: >> >> > What's the objection to linking PIL statically against libjpeg? It >> >> > would remove a lot of uncertainty in the build. PIL seems to be the >> >> > only place libjpeg is used. >> >> >> We should not require binary build machines to have libjpeg installed. >> >> >> If we include libjpeg, then there is no reason to statically link. >> >> >> -- William >> >> >> > On Nov 13, 12:44 pm, William Stein <wst...@gmail.com> wrote: >> >> >> On Sun, Nov 13, 2011 at 12:10 PM, Bill Janssen >> >> >> <bill.jans...@gmail.com> wrote: >> >> >> > Yes, I think that's right, Justin. >> >> >> >> > I just tried this: >> >> >> >> > 1. Build libpng and libjpeg, static-only, and install to SAGE_LOCAL/ >> >> >> > lib/. >> >> >> > 2. Build Imaging-1.1.7 (after setting CPPFLAGS and LDFLAGS to point >> >> >> > to SAGE_LOCAL), and install to SAGE_LOCAL/lib. >> >> >> > 3. Remove my /opt/local/lib/ directory. >> >> >> >> > Now Image.open() and .show() work fine. >> >> >> >> > I think this should become part of the Sage build process, if it >> >> >> > isn't >> >> >> > already. >> >> >> >> No way. Either we include libjpeg properly with Sage (and link it >> >> >> dynamically), or we make sure that our build machines don't have stuff >> >> >> in /opt that produces bad binaries. >> >> >> >> I think including libjpeg at some point is reasonable, assuming that >> >> >> it is legal these days. (Is it?) >> >> >> >> -- William >> >> >> >> > That way you won't wind up with "improper builds". You can >> >> >> > delete the PNG and JPEG libraries after building PIL, as they're now >> >> >> > statically linked into the PIL libraries. >> >> >> >> > So, why not build libpng and libjpeg dynamically? Because Sage also >> >> >> > sets DYLD_LIBRARY_PATH (usually a bad indicator on Macs), and the >> >> >> > dynamic version would override the versions various system frameworks >> >> >> > (like ImageIO) are supposed to link against. Might it make more >> >> >> > sense >> >> >> > to use DYLD_FALLBACK_LIBRARY_PATH for this purpose? >> >> >> >> > Bill >> >> >> >> > On Nov 13, 11:50 am, "Justin C. Walker" <jus...@mac.com> wrote: >> >> >> >> On Nov 13, 2011, at 09:59 , Bill Janssen wrote: >> >> >> >> >> > You're implying that 4.7.1 or 4.7.2 fix this issue in some way? I >> >> >> >> > don't see anything in the release notes which would cause me to >> >> >> >> > suspect that. >> >> >> >> >> Unless I'm still too caffeine-deprived, I think the issue is that >> >> >> >> you are one of the first to try the Mac OS X 10.5 binary release of >> >> >> >> 4.7, at least with something involving this particular library. >> >> >> >> >> There is no (i.e., doesn't seem to be an) issue for those who are >> >> >> >> using either a different binary or have built from source (at >> >> >> >> least, your primordial example works for me) (once I change my name >> >> >> >> to "wjanssen" :-}). >> >> >> >> >> This doesn't seem to be a problem in Sage that needs to be fixed. >> >> >> >> It seems to be a problem with one (or perhaps more than one) binary >> >> >> >> that has been built improperly. >> >> >> >> >> If someone else doesn't verify this first, I'll try to get to it >> >> >> >> tomorrow. >> >> >> >> >> Justin >> >> >> >> >> -- >> >> >> >> Justin C. Walker, Curmudgeon at Large >> >> >> >> Director >> >> >> >> Institute for the Enhancement of the Director's income >> >> >> >> ----------- >> >> >> >> -- >> >> >> >> They said it couldn't be done, but sometimes, >> >> >> >> it doesn't work out that way. >> >> >> >> - Casey Stengel >> >> >> >> -- >> >> >> >> > -- >> >> >> > To post to this group, send email to sage-support@googlegroups.com >> >> >> > To unsubscribe from this group, send email to >> >> >> > sage-support+unsubscr...@googlegroups.com >> >> >> > For more options, visit this group >> >> >> > athttp://groups.google.com/group/sage-support >> >> >> > URL:http://www.sagemath.org >> >> >> >> -- >> >> >> William Stein >> >> >> Professor of Mathematics >> >> >> University of Washingtonhttp://wstein.org >> >> >> > -- >> >> > To post to this group, send email to sage-support@googlegroups.com >> >> > To unsubscribe from this group, send email to >> >> > sage-support+unsubscr...@googlegroups.com >> >> > For more options, visit this group >> >> > athttp://groups.google.com/group/sage-support >> >> > URL:http://www.sagemath.org >> >> >> -- >> >> William Stein >> >> Professor of Mathematics >> >> University of Washingtonhttp://wstein.org >> >> > -- >> > To post to this group, send email to sage-support@googlegroups.com >> > To unsubscribe from this group, send email to >> > sage-support+unsubscr...@googlegroups.com >> > For more options, visit this group >> > athttp://groups.google.com/group/sage-support >> > URL:http://www.sagemath.org >> >> -- >> William Stein >> Professor of Mathematics >> University of Washingtonhttp://wstein.org > > -- > To post to this group, send email to sage-support@googlegroups.com > To unsubscribe from this group, send email to > sage-support+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/sage-support > URL: http://www.sagemath.org > -- William Stein Professor of Mathematics University of Washington http://wstein.org -- To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URL: http://www.sagemath.org