Making PostgreSQL 7.4 (CVS) work properly on OS X 10.3 (7B85) - Mailing list pgsql-hackers

From Bob Ippolito
Subject Making PostgreSQL 7.4 (CVS) work properly on OS X 10.3 (7B85)
Date
Msg-id 86CF16BD-1184-11D8-92AB-000A95686CD8@redivi.com
Whole thread Raw
Responses Re: Making PostgreSQL 7.4 (CVS) work properly on OS X 10.3 (7B85)
Re: Making PostgreSQL 7.4 (CVS) work properly on OS X 10.3 (7B85)
List pgsql-hackers
Here's my notes on how to build PostgreSQL 7.4 (CVS) on OS X 10.3  
(7B85) with (seems to be working, but I haven't really ran any tests)  
python, tcl, perl, readline.  I noticed today that you guys are just  
about to release, so I figure I should bring this up right now.  Please  
feel free to email me if you have any questions/comments, copy me  
off-list if possible because I probably won't stay subscribed for very  
long.

Notes:
----------
* CVS co pgsql at about Nov 7 2003 5pm EST
* These instructions PROBABLY DO NOT WORK ON 10.2!  If these changes to  
into a configure script, make sure to trap them against darwin >= 7.0.0
* downloaded and built static readline
* downloaded and built latest bison 1.875
* /usr/local/bin comes before /usr/bin in my path! (this matters for  
bison, probably)
* Probably a good idea to include kerberos support as well, since OS X  
Server 10.3 uses it a lot, but I don't know enough about it to try..
* I have set env MAC_OS_X_DEPLOYMENT_TARGET 10.3
* I ditched the system.c hack, assuming Apple has fixed them by 10.3 --  
because it breaks tcl and python if you do.. I did:

#include <AccessibilityMacros.h>
#ifdef MAC_OS_X_10_3
... original code
#endif

This can be done nicer, of course.

It seems that you can't sysctl some things after they've been set  
once.. so I had to sudo vi /etc/rc file, changed the following two  
parameters
sysctl -w kern.sysv.shmmax=167772160
sysctl -w kern.sysv.shmall=65536

Then rebooted.

Shell commands:
------------------------
cd pgsql
mkdir build_osx
cd build_osx
../configure --with-tcl --without-tk  
--with-tclconfig=/Library/Frameworks/Tcl.framework/Versions/8.4  
--with-perl --with-python --without-java --with-rendezvous  
--with-openssl
make

Problems:
--------------
*** Cannot build PL/Python because libpython is not a shared library.
*** You might have to rebuild your Python installation.  Refer to
*** the documentation for details.

Ok, that's not quite true, so:
I edited src/Makefile.global to have
python_libspec = -framework Python

You could probably just grep the LINKFORSHARED line out of  
/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/ 
config/Makefile, but it links to things that aren't necessary for the  
plugin bundle.

Then I edited src/pl/plpython/Makefile and changed the "ifneq" that  
makes it not build to "ifneq (justbuildit, ....." so it would try and  
build it anyways.  This is a stupid hack.

These things should be fixed in the configure process, but I'm too lazy  
to hack that at the moment.

Shell commands:
------------------------
make
sudo make install

Shell commands:
------------------------
sudo mkdir /usr/local/pgsql/data
sudo chown mysql /usr/local/pgsql/data
sudo -u mysql /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
sudo -u mysql /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l  
/usr/local/pgsql/data/postgres.log start
sudo -u mysql /usr/local/pgsql/bin/createdb test
sudo -u mysql /usr/local/pgsql/bin/createlang pltcl test
sudo -u mysql /usr/local/pgsql/bin/createlang plpythonu test
sudo -u mysql /usr/local/pgsql/bin/createlang plperl test

Notes:
--------- * Yes I know it's blasphemous to use mysql as the username, but OS X  
comes with a mysql account, just think of it as an "easy to use uid  
74".  Yes, I'm lazy. * Yes, my only test is createlang.. but that crashes for tcl and  
python w/o the system fix.



pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: What do you want me to do?
Next
From: Bruce Momjian
Date:
Subject: Re: What do you want me to do?