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.
Comments from old site
darwinports distribution
I agree that a lot of the build process for an openacs install could be handled with things like dependencies on other ports using Darwinports.
It would be pretty slick to be able to do something like the following:
I'm not sure that the above passing of install parameters can happen yet with the
port
command. A scenario like this may be necessary:After getting to one or the other scenarios its a simple step to creating an Applescript UI for configuring the parameters and calling the command.
It is also important to note that Darwinports, at least in theory, could be used on other Unix variants like Linux and FreeBSD. The big trouble I see is that it isn't compliant with the standards that the OpenACS docs use. However, I must admit that I'm kind of partial to the idea of having a separate
Walter McGinnis 2004-03-20 14:28:36/opt
branch for stuff.Update
I'm in the process of installing OpenACS for development on a different machine than previously. I've updated to the latest versions of software. As a result, if you follow my previous directions, you'll need to add a new flag to the "sudo port -v -d install" commands in order to keep the source files around (you need these to build other software later), namely "-k" for keep the working directories.
Walter McGinnis 2004-12-03 17:10:46