In the process of installing Panther from scratch, I decided to use DarwinPorts. It's a packaging system for the abundant UNIX free software available on Mac OS X. I had previously used Fink which, while being an admirable project, seemed a little opaque to me. I never quite knew where data was being installed and which locations were being searched to see if prerequisites were present. Darwinports seems to be a little better at finding programs/libraries that are already installed. I freely admit my ignorance in this matter, though. It may simply be that I understand Darwinports better than I did Fink, but that, in itself is an important criteria.
Here are the ports that I currently have installed:
[02:17:13 vinod]:~ $ port installed The following ports are installed:
gettext-0.10.40
keychain-2.0.3
mutt-1.4.2.1
offlineimap-4.0.0
readline-4.3
urlview-0.9
wget-1.9.1
All of the above ports are available from darwinports except offlineimap. I built that one myself. Here is the Portfile for offlineimap:
[02:18:42 vinod]:~/dports-dev/mail/offlineimap $ cat Portfile
# $Id: $ PortSystem 1.0
name offlineimap
version 4.0.0
categories mail
maintainers vinod@kurup.org
platforms darwin
homepage http://gopher.quux.org:70/devel/offlineimap
description IMAP/Maildir synchronization and reader support
long_description OfflineIMAP is a tool to simplify your e-mail reading. With OfflimeIMAP, you can:
* Read the same mailbox from multiple computers, and have your
changes (deletions, etc.) be automatically reflected on
all computers
* Use various mail clients to read a single mail box
* Read mail while offline (on a laptop) and have all changes
synchronized when you get connected again
* Read IMAP mail with mail readers that do not support IMAP
* Use SSL (secure connections) to read IMAP mail even if your reader
doesn't support SSL
* Synchronize your mail using a completely safe and fault-tolerant
algorithm. (At least I think it is!)
* Customize which mailboxes to synchronize with regular expressions
or lists.
* Synchronize your mail two to four times faster than with other tools
or other mail readers' internal IMAP support. In short, OfflineIMAP
is a tool to let you read mail how YOU want to.
distname ${name}_${version}
master_sites http://gopher.quux.org:70/devel/offlineimap/
checksums md5 13e355c8a957dddfe9b7486821d83370
depends_lib bin:python2.3:python23
# tarball extracts as offlineimap, not offlineimap-4.0.0
worksrcdir ${name}
use_configure no
build.cmd python setup.py
build.target build
destroot.cmd python setup.py
destroot.destdir --prefix=${destroot}${prefix}
post-destroot { # remind user to define/add installed path to python path
ui_msg " be sure the install path is included in your python path:"
# FIXME: hardcoding 2.3 isn't right here
ui_msg "tcsh: setenv PYTHONPATH $PYTHONPATH:${prefix}/lib/python2.3/site-packages"
ui_msg "bash: export PYTHONPATH=$PYTHONPATH:${prefix}/lib/python2.3/site-packages"
xinstall -d -m 755 ${destroot}${prefix}/share/doc/${name}
xinstall -m 644 -W ${worksrcpath} manual.html manual.pdf manual.ps
manual.txt ChangeLog COPYING COPYRIGHT UPGRADING
${destroot}${prefix}/share/doc/${name}
xinstall -d -m 755 ${destroot}${prefix}/share/doc/${name}/examples
xinstall -m 644 -W ${worksrcpath} offlineimap.conf offlineimap.conf.minimal
${destroot}${prefix}/share/doc/${name}/examples
install -m 644 -W ${worksrcpath} offlineimap.1
${destroot}${prefix}/share/man/man1 }
I haven't submitted this to the darwinports project yet because they recommend installing the software on a fresh Mac OS X install to be sure that you've correctly specified any dependencies. I haven't had time to do that yet. I hope to, though, because I find the port system to be very intuitive. Building an OpenACS port on Mac OS X seems doable, but I need to look into how upgrades are handled. Walter McGinnis has sent me his instructions for building an OpenACS installation using darwinports, but I think we can make it easier, by building simple Portfiles for each of the required pieces. Here are Walter's detailed instructions:
# install darwinports
# see instructions on darwinports.com # using openacs-head for server name for convoluted reasons...
# i also use ~/Development/web rather than /var/lib/aolserver for my
# server source
# darwinports working directories under ~/Development/darwinports/
# you need to add /opt/local/bin or something to your path in .bash_profile
# for the port command to work
# see darwinports install doc for details Delphy:~ walter$ sudo port -v -d install postgresql Password: ... Delphy:~ walter$ pwd /Users/walter Delphy:~ walter$ cd /opt/local/ Delphy:/opt/local walter$ mkdir pgsql Delphy:/opt/local walter$ mkdir pgsql/data Delphy:/opt/local walter$ sudo chown -R walter:staff pgsql Delphy:/opt/local walter$ initdb -D pgsql/data ... Delphy:/opt/local walter$ pg_ctl -D pgsql/data -l logfile start postmaster successfully started Delphy:/opt/local walter$ createlang plpgsql template1 Delphy:/opt/local walter$ createdb openacs-head CREATE DATABASE Delphy:/opt/local walter$ createuser openacs-head Shall the new user be allowed to create databases? (y/n) y Shall the new user be allowed to create more new users? (y/n) y CREATE USER Delphy:/opt/local walter$ sudo port -v -d install aolserver ... Delphy:/opt/local walter$ cd ~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0/ Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0 walter$ sudo port -v -d install wget Password: ... Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0 walter$ sudo wget http://twtelecom.dl.sourceforge.net/sourceforge/aolserver/nscache-1.5.tar.gz Password: ... Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0 walter$ sudo wget http://twtelecom.dl.sourceforge.net/sourceforge/aolserver/nspostgres-4.0.tar.gz ... Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0 walter$ sudo wget http://twtelecom.dl.sourceforge.net/sourceforge/aolserver/nssha1-0.1.tar.gz ... Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0 walter$ sudo cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver login Password: (Logging in to anonymous@cvs.sourceforge.net) CVS password: Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0 walter$ sudo cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/aolserver co nsrewrite ... Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0 walter$ sudo tar xvfz nscache-1.5.tar.gz ; sudo tar xvfz nssha1-0.1.tar.gz ; sudo tar xvfz nspostgres-4.0.tar.gz ... Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0 walter$ cd nscache-1.5 Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0/nscache-1.5 walter$ NSHOME=..; export NSHOME Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0/nscache-1.5 walter$ sudo make install ... Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0/nscache-1.5 walter$ cd ../nsrewrite/ Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0/nsrewrite walter$ sudo make install ... Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0/nsrewrite walter$ cd .. Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0 walter$ cd nssha1-0.1 Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0/nssha1-0.1 walter$ sudo make install Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0/nssha1-0.1 walter$ cd ../nspostgres-4.0 # edit the Makefile from: # < MODLIBS = -L$(PGLIB) -lpq # to # MODLIBS = -L$(PGLIB) -lpq -lnsdb Delphy:~/Development/darwinports/dports/www/aolserver/work/aolserver-4.0/nspostgres-4.0 walter$ sudo make install POSTGRES=/opt/local ACS=1 ... Delphy:/opt/local walter$ cd /opt/local Delphy:/opt/local walter$ sudo mkdir src Delphy:/opt/local walter$ sudo chmod 775 src Delphy:/opt/local walter$ wget http://www.tdom.org/tDOM-0.7.8.tar.gz ... Delphy:/opt/local walter$ cd src/ Delphy:/opt/local/src walter$ tar xvfz ../tDOM-0.7.8.tar.gz Delphy:/opt/local/src walter$ rm ../tDOM-0.7.8.tar.gz Delphy:/opt/local/src walter$ cd tDOM-0.7.8/ Delphy:/opt/local/src/tDOM-0.7.8 walter$ cd unix/ Delphy:/opt/local/src/tDOM-0.7.8/unix walter$ ../configure --enable-threads --disable-tdomalloc --prefix=/opt/local/aolserver Delphy:/opt/local/src/tDOM-0.7.8/unix walter$ sudo make install ... Delphy:/opt/local/src/tDOM-0.7.8/unix walter$ cd Delphy:~ walter$ cd Development/ Delphy:~/Development walter$ mkdir web Delphy:~/Development walter$ cd web Delphy:~/Development/web walter$ cvs -z3 -d walterg@openacs.org:/cvsroot co acs-core password: ... # i move the openacs code to openacs-head # mv openacs-4 openacs-head # edit openacs-head/etc/config.tcl to be localhost, etc ! set hostname localhost ! set address 127.0.0.1 ! set server "openacs-head" set servername "New OpenACS Installation - Development" ! set serverroot "/Users/walter/Development/web/${server}" Delphy:~/Development/web/openacs-head walter$ /opt/local/aolserver/bin/nsd -ft ~/Development/web/openacs-head/etc/config.tcl
I think Fink and Darwinports can coexist since Fink is installed in /sw and Darwinports in /opt/local, but I'm sticking with Darwinports alone, for now.