Skip to content
This repository
Fetching contributors…

Cannot retrieve contributors at this time

file 239 lines (184 sloc) 7.682 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
Bricolage Mac OS X/Darwin README
--------------------------------

Bricolage works well on Mac OS X, especially on version 10.2 or later, but
installation requires a fair bit of additional preparation. The major issue is
that, because it cannot run on a DSO mod_perl, Bricolage will not run on the
verion of Apache that comes with Mac OS X. A further issue is that Bricolage
requires the libapreq library of Perl modules to run, and compiling this
library takes a few extra steps on Mac OS X.

The solution is to compile your own Apache with mod_perl. Complete details for
building everything you need to run Bricolage on Mac OS X will always be found
at http://david.wheeler.net/osx.html. More detailed instructions, as well as a
discussion of the issues of running Apache/mod_perl/mod_ssl on Mac OS X, may
be found in the following articles on O'Reilly's MacDevCenter.com:

  "Build Your Own Apache Server with mod_perl"
  http://www.macdevcenter.com/pub/a/mac/2002/11/05/apache_osx.html

  "Build Your Own Apache Server with mod_perl and mod_ssl"
  http://www.macdevcenter.com/pub/a/mac/2002/12/18/apache_modssl.html

Below is a summary of the instructions, for those who just need the barest of
hints for compiling and installing software. Just be sure that you've
installed the latest Mac OS X Developer tools, available for a free
registration at http://developer.apple.com/.

PREPARATION
-----------

If you're planning to use mod_ssl for secure connections to your Mac OS X
Bricolage server, you'll need to download a couple of patches that help
mod_ssl to find Mac OS X's OpenSSL libraries and allow the compiler to
properly find libdbm while configuring Apache. The patches can be found here:

  http://david.wheeler.net/macosx/apache_dbm.patch
  http://david.wheeler.net/macosx/mod_ssl_dylib.patch

Other files and libraries you'll need to download are as follows:

From http://www.apache.org/dist/httpd/, download the latest Apache 1.3
sources.

From http://www.modssl.org/source/ download the mod_ssl sources. Make sure
that the second half of the version number is the same as the version of
Apache you downloaded. For example, if you downloaded apache_1.3.27.tar.gz,
then the mod_ssl sources you want will be something like
mod_ssl-2.x.x-1.3.27.tar.gz.

From ftp://ftp.cpan.org/pub/CPAN/src/, download perl-5.8.0.tar.gz or
perl-5.6.1.tar.gz.

From http://perl.apache.org/dist/, download the the sources for latest 1.x
version of mod_perl.

From http://www.apache.org/dist/httpd/libapreq/, download libapreq-1.1.tar.gz.

From ftp://ftp.gnu.org/gnu/libiconv/, download the sources for the latest
version of the iconv library.

From http://expat.sourceforge.net/, download the sources for the latest
version of the expat libraries.

From http://search.cpan.org/, download the latest versions of Text::Iconv
and XML::Parser.

From ftp://ftp.gnu.org/pub/gnu/readline/, download the latest readline
sources.

From http://www.ca.postgresql.org/ftpsite/latest/, download the latest
PostgreSQL sources.

INSTALLATION SUMMARY
--------------------

All examples here assume that youv've unpackaged all of the above source
tarballs into /usr/local/src, e.g., with the command

  tar zxvf sources.tar.gz

Note that if you've never installed anything in /usr/local before, you must
install at least one library (expat or libiconv are good candidates) before
installing Perl. This is so that Perl will pick up on the existence of
/usr/local/lib and /usr/local/include and make sure that modules that need
access to the library files in these directories will be able to find them.
You should be fine if you follow the steps outlined here.

1. Install expat:

  % cd expat-VERSION/
  % ./configure
  % make
  % make install
  % cd ..

2. Install libiconv:

  % cd libiconv-VERSION/
  % ./configure
  % make
  % make install
  % cd ..

3. Install readline (omit the perl line on Mac OS X 10.1):

  % cd readline-4.x
  % perl -i.bak -p -e \
    "s/SHLIB_LIBS=.*/SHLIB_LIBS='-lSystem -lncurses -lcc_dynamic'/g" \
    support/shobj-conf
  % ./configure
  % make
  % make install

4. Install Perl. For Perl 5.8.0, do this:

  % cd perl-5.8.0/
  % export LC_ALL=C # or setenv LC_ALL C
  % export LANG="en_US" # or setenv LANG en_US
  % sh Configure -des -Dprefix=/usr/local -Uinstallusrbinperl
  % make
  % make test # Will be a few expected and documented failures
  % make install
  % cd ..

Or, for Perl 5.6.1, do this:

  % cd perl-5.6.1/
  % export LC_ALL=C # or setenv LC_ALL C
  % export LANG="en_US" # or setenv LANG en_US
  % perl -i.bak -p -e 's|Local/Library|Library|g' hints/darwin.sh
  % sh Configure -des -Dldflags="-flat_namespace" -Uinstallusrbinperl
  % make
  % make test # will be a few errors -- should be okay.
  % make install
  % cd ..

5. Patch Apache:

  % cd apache_1.3.xx
  % patch -p0 < ../apache_dbm.patch
  % cd ..
  
6. Configure mod_ssl (Optional -- Required for SSL support):

  % cd mod_ssl-VERSION/
  % patch -p0 < ../mod_ssl_dylib.patch
  % ./configure --with-apache=/usr/local/src/apache_1.3.xx
  % cd ..

7. Install mod_perl:

  % cd mod_perl-1.xx
  % /usr/local/bin/perl Makefile.PL \
    NO_HTTPD=1 \
    USE_APACI=1 \
    PREP_HTTPD=1 \
    EVERYTHING=1
  % make
  % make install
  % cd ..

8. Install Apache:

  % cd apache_1.3.26/
  % SSL_BASE=/usr/local/src/openssl-VERSION/ \
    ./configure \
    --with-layout=Apache \
    --enable-module=ssl \ # Optional.
    --enable-module=so \
    --activate-module=src/modules/perl/libperl.a \
    --disable-shared=perl \
    --without-execstrip
  % make
  % make certificate # Optional -- to make SSL certificate. Read messages.
  % make install
  % cd ..

9. Install libapreq:

  % cd libapreq-1.1
  % ./configure --with-apache-includes=/usr/local/apache/include
  % make
  % make install
  % /usr/local/bin/perl Makefile.PL
  % make
  % make test
  % make install
  % cd ..

10. Install Text::Iconv:

  % cd Text-Iconv-VERSION/
  % perl -i.bak -p -e "s/'LIBS'\s*=>\s*\[''\]/'LIBS' => \['-liconv'\]/" \
    Makefile.PL
  % /usr/local/bin/perl Makefile.PL
  % make
  % make test
  % make install
  % cd ..

11. Install XML::Parser:

  % cd XML-Parser-VERSION/
  % /usr/local/bin/perl Makefile.PL EXPATLIBPATH=/usr/local/lib \
    EXPATINCPATH=/usr/local/include
  % make
  % make test
  % make install
  % cd ..

OTHER ISSUES

LWP: We recommend that you install the Perl LWP library manually, and when it
prompts for whether to install the "HEAD" convenience program, say "No". This
will prevent LWP from overwriting the existing "head" program, which is needed
by many configure scripts.

PostgreSQL: You'll need to use NetInfo to create the "postgres" user and the
"postgres" group. Most likely you can copy the "nobody" or "mysql" user and
group for this purpose. Also, when you've completed installation as documented
in the main README file, you'll need to run this command so that DBD::Pg will
be able to use the PostgreSQL libraries:

  % ranlib /usr/local/pgsql/lib/libpq.a

DURING INSTALLATION

While runing "make", you'll be prompted to answer a series of
questions. Provided you've followed the directions here and installed and
configured Apache, most of the defaults should be fine. There are a couple of
things to watch for, however:

* When you're prompted to confirm the location of Apache, do not accept
  "/usr/sbin/httpd" if that's what is offered. That is the Apple Apache
  installation, and it won't work. You'll need to enter in the path to the
  special Apache you've compiled, e.g., "/usr/local/apache/bin/httpd".

* The optional Apache::SizeLimit module is not currently supported on Mac OS
  X/Darwin. So when you're prompted for the option to install it, type "no".
Something went wrong with that request. Please try again.