small problem

It appears that the PHP configure assumed that it should link libltdl for mcrypt support. libltdl is installed with Xcode and is not a part of a normal Mac OS X system. So, PHP wouldn’t run, unless you happen to have Xcode installed.

The updated PHP4-4.4.2-4 package should fix this problem.

====== BIG UPDATE! ======

All Installers updated. Much to say, so read on…


OK, the big one – Panther compatibility. That is, a single binary works on both Panther and Tiger, and PPC and Intel for Tiger. Though it may be easy for Mac OS X applications, it’s really kinda tricky for UNIX software – a few functions available in libSystem in Tiger are not in Panther, and a few library versions in Tiger are incompatible or missing in Panther. I had to force those cases to use Panther-compatible versions or add a couple libraries to the base libraries.

These are all built on Tiger, with GCC 4, so they will not be usable for developers stuck in – er, who choose – Panther. But Puneet Kishor will be maintaining the Panther-only packages, so Panther developers will not be left in the cold.

Well, besides Panther compatibility, there are many more changes:

A general change for all installers: C++ wrappers have been removed. For C libraries that have C++ wrapper libraries, those C++ wrappers were left out. C++ is hard on binary compatibility, so if a C interface is available, I’d rather have other software to use that. This includes ImageMagick and TIFF in Graphics Libs.

All new installers won’t work with the old packages. You must update everything.

For developers, the installers clean out old libraries (I like to keep things tidy) – you may need to rebuild software that uses libraries from these packages.

Base Libs (a part of the Graphics Libs installer):

  • Mcrypt 2.5.7 added.
  • Mhash 0.9.6 added.
  • cURL 7.15.3 added.
  • Sqlite 3.3.5 added.

Graphics Libs:

  • LCMS 1.15 added.
  • PNG updated to 1.2.10.
  • ImageMagick updated to 6.2.7-6.
  • FreeType updated to 2.2.1.
  • GD patched to fix nasty bounds check bug for anti-aliased lines.
  • A little comment on the [un]usability of ImageMagick on LARGE image files.

GIS Libs:

  • PROJ updated to 4.5.0.
  • DAP/DODS 3.6.2 added.
  • HDF5 is now universal PPC/Intel.
  • Python support updated for Python 2.4.3 Universal.
  • Oracle support as plugin. So developers won’t have linking problems if OCI not installed.
  • GDAL updated to 1.3.2.
  • ncdump and ncgen tools installed from HDF4 now, instead of NetCDF.

Postgres + PostGIS:

  • PostGIS updated to 1.1.2
  • PL/Python updated for Python 2.4.3 Universal
  • Note added for minor updates to PostGIS databases.

PHP4:

  • MySQL support updated to 5.1.
  • Mhash and Mcrypt support added.
  • Sqlite3 support added.

MapServer: Python MapScript added. For Python 2.4.3 Universal, of course.

Well, good stuff there. There’s more yet to come! PHP 5.1. For MapServer, Perl MapScript and PHP5 MapScript. Possibly a mod_python module for Apache. And, of course, a comparable update to the Panther-only packages. Also, a more detailed note for developers and others who want to use my packages for building other software. Some build instruction updates.

And an Intel MacBook is in the mail! I’ll be able to seriously test the Intel side of things. I’ve had a few positive reports for my packages on Intel Macs, but it will be good to not rely on random feedback.

Speaking of feedback. Please do. It’s encouraging. Suggestions are welcome (Python and Perl MapScript, mhash, mcrypt are a few responses to requests). An update this big is asking for trouble also, so if you find problems be sure to let me know.

Python MapScript, take 2

Rats! Python seems to ignore weak-linking, so the Python MapScript wouldn’t work without the OCI libraries installed (they are weak-linked). A new build is available with all Oracle support stripped out (you can use Oracle thru OGR, but it’ll probably be slower).

Python MapScript

There has been some interest in it, and I plan to add it to the MapServer package. Until then, for those Tiger-PPC users, here is a quick-n-dirty fix for you (no fancy installer yet). As it implies, Tiger-PPC only, and you must use the current stable 2.4.1 MacPython as mentioned in the GIS Libs readme, it’s untested in the 2.4.2 universal in development, in fact I really don’t have anything to test it at all. It’s a separate file from the main MapServer package, available on the Downloads page.

Full round of updates today

Graphics Libs: Fixed a compatibility version problem with libming that could cause PHP and MapServer to fail to run.

GIS Libs 2.3: CFITSIO updated to 3.006, GeoTIFF updated to 1.2.3, NetCDF updated to 3.6.1, GRASS libs updated to 6.0.2.

MapServer updated to 4.8.3.

Postgres updated to 8.1.3.

Installer updates

Until I figure out the Panther/Tiger thing, here is a Graphics Libs update. TIFF 3.8.2. PDF 6.0.3. Ming 0.3.0. ImageMagick 6.2.6-5.

Note – There are some issues with libtiff and overviews, like in gdaladdo (see readme). Be careful when using tiff overviews for now until it is resolved.

GIS Libs update coming soon.

Trying to work out packaging possibilities

In my quest to simplify my installers, for me and for users, I’ve come up with a few possibilities. But I need a little feedback. There’s a poll to the right to vote, it’s public, since I don’t do registrations on my site, so hopefully it won’t get spammed. Details on the choices inside…


The two main ideas behind my installers are modularity, so users can pick what they need, and developer usability, so they are usable for other packages I don’t provide binaries for. To do this, I currently have them split into Panther and Tiger versions. This is because of library availability and C++ differences between the two. I do this using separate Macs for each system. I’ve played around with the SDKs to try building Panther packages on Tiger, but there are gaps in the SDK and some patching is required. Overall, it’s quite a chore.

I’ve come up with a few alternatives that look doable. These are in decreasing order of usefulness (developer usability and Panther compatibility) and increasing order (generally) of simplicity for me to maintain.

  1. Separate binaries for Panther and Tiger. Full developer ability on both. This is the current state.
  2. Separate binaries. But leave out the developer headers in Panther. Not really any different than with headers, but encourages people to consider upgrading to Tiger.
  3. Single binary for both. Devloper ability, but everything is built on Panther. I would enable the current Panther installer to install on Tiger, but it still means maintaining a separate Panther Mac, or extra boot disk. And you would lose the speed and binary size benefits on Tiger of a GCC 4 build.
  4. Single binary. No developer ability for Panther. This would be because of the C++ version differences mostly, as everything would be built with GCC 4 on Tiger. It would also mean adding a couple libraries where they are not available in Panther or are old incompatible versions.
  5. Single binary. Developer usability for Panther, but only if built on Tiger with GCC 4. Really no different than the previous, I would just have to test it more and provide more help.
  6. Tiger only. Bye-bye Panther. With the coming of Intel Macs, the focus is more on Tiger these days, and now Leopard (10.5) is in the radar, so I expect Panther support will be dropped by Apple when Leopard comes.

Small stuff

Finally got around to the small utilities. UIPS and Par2 are updated for Universal PPC/Intel. I decided to not pursue further builds of Unrar and 7z.

Unrar has a universal binary available from Rarlab. And the old-Mac rar name problem is so obscure it’s not worth it (I encountered it once in the early Mac OS X days).

7z has a nice universal GUI available from SixtyFive.

More Universal Bits

Thanks to Paul Moen, PHP-Apache is now fully Universal. That let me finish up MapServer as well – MapScript for PHP-Apache is now Universal.

I’ve had a couple success stories for the Intel builds. Nothing extensive yet, but a good start.