[GRASS5] discussion on how to package binaries
Scott Mitchell
smitch at mac.com
Sat Mar 6 10:05:55 EST 2004
On Mar 5, 2004, at 20:35, Glynn Clements wrote:
> Some comments:
>
> 2. Anything which is identifiably a separate package (e.g. Tcl/Tk)
> should be packaged separately. AFAICT, MacOSX is already well on the
> way to Windows-style "DLL hell" without us making it worse by silently
> installing additional versions of common libraries.
>
> I'm not sure whether this should apply to PROJ or GDAL. On one hand,
> they aren't particularly common, and a lot of users won't have any use
> for them other than GRASS. OTOH, GRASS users are more likely than most
> to install other GIS packages, which may in turn use PROJ and/or GDAL.
>
Along these lines, and other input you've provided, I have been working
on the following: on my "older" OS system, I've removed fink (but left
in the XFree86 4.3 that I had used fink to compile), and "manually"
compiled/installed the jpeg, tiff, png, GD, FFTW libraries, plus Tcl/Tk
8.4, unixODBC, postgres, PROJ, and GDAL. Then compiled according to
release_rules, except that I added --enable-shared to the configure.
Then, I went back and reconfigured without --enable-shared, did a make
pre-compile and recompiled r.[in,out].png, and "r.tiff", then re-did
gmakelinks, make install-strip, and make bindist. I thought that would
create binaries with everything compiled in for those particular
import/export routines. Apparently I misunderstand still, because the
resulting programs are still looking for the right .dylib files. Oh
well. Hmm... I just remembered Glynn pointing out that the Mac linker
always prefers the .dylib, so I guess I would have to try again with
the .dylibs removed from the system? Well, I don't think this is worth
a lot of effort for 4 specific little programs, especially with the
resulting file size penalty.
Anyways, with those small glitches aside, going back to my previous
version, I think I now have the best we can do for Mac users right now
in terms of producing something that is very similar to what we
officially distribute for binaries on all the other platforms, with a
minimum of dependencies on specific configurations. Users can install
this file and get basic GRASS functionality right away. It works fine
with XFree86 or Apple's version thereof on the newer OS. I presume it
will work fine with the forthcoming XFRee86 4.4. To use tcltkgrass the
user needs to also install Tcl/Tk (the UNIX version), and I could make
a tarball of my compiled version of that available somewhere separate,
as we still haven't found any other sources for that. To use NVIZ they
need Tcl/Tk plus the other libs that nviz uses, such as libtiff, ...
and so on.
> 3. Regarding installation permissions: Modifying system directories
> (e.g. /Applications) *should* require root privilege. If system
> directories are writable by all users, that's a pretty serious defect.
> OTOH, that's Apple's problem, not ours.
>
Yes, of course. The only other issue is specific to this ".pkg"
installation system, but yes, this is an Apple issue, not a GRASS
issue. Only mentioned due to its use in Lorenzo Moretti's GRASS
distribution.
> 4. If Apple provides a curses library, GRASS (and everything else)
> probably ought to be using their version and not fink's. That applies
> equally to anything which we use which uses curses (e.g. readline).
>
> OTOH, do both Apple's and fink's curses use the same terminfo
> database? If not, is the database used by Apple's version complete?
> (specifically, does it include xterm?).
Yes, I've used Apple's for this, by removing fink and not installing
anything else. I avoided readline altogether, so I've sacrificed it's
availability at the r.mapcalc prompt, but IIRC that's the only place
it's used?
Apple and fink have separate terminfo databases. I don't know the
differences, but I see Apple's does have xterm, and I don't seem to be
getting any errors.
So... I think this provides a good binary distribution for the official
site, either in addition to or instead of the previously uploaded one
which was made on a system with fink installed, so it uses a mix of
Apple- and fink- provided libraries. I've worked a little more on the
Apple help pages and have tried to explain the differences between this
option of binary installation, and "all in one" third party solution
such as L. Moretti's and OpenOSX's.
Comments welcome.
Cheers,
Scott
----
Scott Mitchell, Assistant Professor, Carleton University
Department of Geography & Environmental Studies, Loeb A209
Mailing: Loeb B349, 1125 Colonel By Dr., Ottawa, ON K1S 5B6 Canada
1-613-520-2600 x2695 Fax: 613-520-4301 Scott_Mitchell at carleton.ca
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2357 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/grass-dev/attachments/20040306/3a006f58/smime.bin
More information about the grass-dev
mailing list