#!/bin/bash # PostgreSQL # BuildScript for Plamo Linux 3.3 # by Jun Kuwamura on 2003-12-02 # require: # readline-4.2aj # perl-5.6 # python-2.2 # ActiveTcl8.4.1.0-linux-ix86 # j2sdk1.4.2_02 & jantkarta-ant-1.5.1 # SRC_URI=ftp://ftp.jp.postgresql.org/source/v7.4.5/postgresql-7.4.5.tar.gz MAN_URI="http://www.postgresql.jp/document/pg743doc/man.tar.gz" DOC_URI="http://www.postgresql.jp/document/pg743doc/postgres.tar.gz" FAQ_URI="http://www.rccm.co.jp/~juk/pgsql/FAQ_japanese.txt" MSG_URI="ftp://ftp.net-newbie.com/pub/postgres//postgresql-7.4-nls-psql-patch.gz" MAN_FILE=${MAN_URI##*/} DOC_FILE=${DOC_URI##*/} SRC_FILE=${SRC_URI##*/} FAQ_FILE=${FAQ_URI##*/} MSG_FILE=${MSG_URI##*/} SRC_DIR=/site/pub/archive/dbms/pgsql PAC_NAME=${SRC_FILE%%.tar.gz} PAC_DIR=/opt/Package/Database REL=1 SYS_NAME="i386-${REL}" DOC_DIR=/usr/doc/$PAC_NAME CUSTOM_DIR=/opt/Package/pgsql SITE_PYTHON=/usr/lib/python2.2/site-packages SITE_PERL=/usr/lib/perl5/site_perl/5.6.1 umask 022 CWD=`pwd` WORK=$CWD/work rm -rf $WORK/* mkdir -p $WORK export LANG=C export CFLAGS="-O2" export PATH=$PATH:/usr/X11R6/bin if [ ! -f $SRC_DIR/$SRC_FILE ]; then (cd $SRC_DIR; wget $SRC_URI); fi #if [ ! -f $SRC_DIR/$MAN_FILE ]; then (cd $SRC_DIR; wget -N $MAN_URI); #fi #if [ ! -f $SRC_DIR/$DOC_FILE ]; then (cd $SRC_DIR; wget -N $DOC_URI); #fi #if [ ! -f $CUSTOM_DIR/$FAQ_FILE ]; then (cd $CUSTOM_DIR; wget -N $FAQ_URI); #fi if [ ! -f $SRC_DIR/$MSG_FILE ]; then (cd $SRC_DIR; wget $MSG_URI); fi # # (1) making main package # tar xvfz $SRC_DIR/$SRC_FILE cd $PAC_NAME export JAVA_HOME=/usr/local/java export ANT_HOME=/usr/local/ant export PATH=${JAVA_HOME}/bin:${ANT_HOME}/bin:$PATH #patch < $CUSTOM_DIR/configure.in.diff_krb4-openssl #autoconf if [ -f $SRC_DIR/$MSG_FILE ]; then rm -f src/bin/psql/po/ja.* zcat $SRC_DIR/$MSG_FILE | patch -p1 fi patch -p1 < $CUSTOM_DIR/contrib_xml2.patch ./configure --prefix=/opt/pgsql \ --enable-multibyte=EUC_JP --enable-nls --enable-syslog \ --with-tcl --with-tclconfig=/usr/lib --with-tkconfig=/usr/lib \ --with-openssl=/usr \ --with-perl --with-python --with-odbc --with-java #--with-krb4=/usr/athena # # --with-krb5=/usr/heimdal # リンクエラーになる # --enable-multibyte=EUC_JP --disable-locale は、 # => initdb --encoding=EUC_JP --no-locale にて行なう。 #cat $CUSTOM_DIR/7.3.3-Makefile.patch | patch -p0 make make install # install documents mkdir -p $WORK/$DOC_DIR cp -a COPYRIGHT HISTORY INSTALL README register.txt config.status \ doc/FAQ* doc/README* doc/TODO* doc/KNOWN_BUGS doc/MISSING_FEATURES \ doc/bug.template $WORK/$DOC_DIR cp $CUSTOM_DIR/Using-SSL_on_7.1.txt $WORK/$DOC_DIR cp -f $CUSTOM_DIR/$FAQ_FILE $WORK/$DOC_DIR/FAQ_japanese chown -R root.root $WORK/$DOC_DIR chmod -R a+rX,go-w $WORK/$DOC_DIR # packing cd $WORK tar cfp - /opt/pgsql | tar xvfp - mv opt/pgsql opt/$PAC_NAME #tar cfp - \ # $SITE_PERL/i686-linux-multi/auto/Pg/ \ # /usr/man/man3/Pg.3 \ #| tar xvfp - tar cfp - \ $SITE_PYTHON/_pgmodule.so \ $SITE_PYTHON/pg.py \ $SITE_PYTHON/pgdb.py \ | tar xvfp - cp opt/$PAC_NAME/share/pg_hba.conf.sample opt/$PAC_NAME/share/pg_hba.conf.template cat >>opt/$PAC_NAME/share/pg_hba.conf.sample<<__EOCF # Allow login user access to the database which name is the same # as the username #local sameuser trust # # Allow local network users as the same username with md5 hashed password #host sameuser all 192.168.2.0 255.255.255.128 md5 # # Allow local network user who has entry in the passwd file created with # `pg_passwd passwd` in the data directory. #hostssl all all 192.168.2.0 255.255.255.128 md5 #hostssl all all 0.0.0.0 0.0.0.0 krb5 __EOCF mkdir opt/$PAC_NAME/public_html # # copy/edit the followings # paclist # opt/pgsql/apps/utils/pgsqld # opt/pgsql/apps/utils/pkg2db.pl # opt/pgsql/apps/utils/csvtopg.c # opt/pgsql/apps/utils/daysfrom # opt/pgsql/apps/utils/csvtopg # opt/pgsql/apps/utils/initialize_default_database # opt/pgsql/apps/utils/create_default_users # opt/pgsql/apps/utils/README # opt/pgsql/apps/utils/get_memory_parameters # opt/pgsql/apps/_bashrc.pgsql # opt/pgsql/apps/_cshrc.pgsql # opt/pgsql/apps/_cshrc.pgsqlj # opt/pgsql/etc/odbcinst.ini # opt/pgsql/etc/init.d/postgresql # opt/pgsql/etc/logrotate.pgsql tar xvfz $CUSTOM_DIR/pgsqlcustom.tgz -C opt/$PAC_NAME mkdir -p etc/rc.d/init.d #cp -p $CWD/$PAC_NAME/contrib/start-scripts/linux etc/rc.d/init.d/postgresql cp -p opt/$PAC_NAME/etc/init.d/postgresql etc/rc.d/init.d/ chmod +x etc/rc.d/init.d/postgresql mkdir -p install sed -e "s/PGSQLDIR/$PAC_NAME/g" $CUSTOM_DIR/doinst.sh74 > install/doinst.sh # make package echo "n " | installpkg -m $PAC_NAME mv ${PAC_NAME}.tgz $PAC_DIR/${PAC_NAME}-${SYS_NAME}.tgz echo "$PAC_DIR/${PAC_NAME}-${SYS_NAME}.tgz ... done" cd $CWD ##### #exit ##### # # (2) making contributions package # #rm -rf $WORK/* rm -rf $WORK.bak mv $WORK $WORK.bak mkdir $WORK DOC_DIR=/usr/doc/$PAC_NAME mkdir -p $WORK/$DOC_DIR/ cd $PAC_NAME/ tar cf - `find contrib -name "README*" -print` | tar xvf - -C $WORK/$DOC_DIR/ chown -R root.root $WORK/$DOC_DIR/contrib chmod -R a+rX,go-w $WORK/$DOC_DIR/contrib cd contrib/ make make install # for 7.4 non-standard Makefile (cd xml; make install) mkdir -p $WORK/opt/pgsql tar cf - -C / `cat $CUSTOM_DIR/contrib.lis74` | tar xvf - -C $WORK mkdir -p $WORK/opt/pgsql/apps/contrib (cd $PAC_DIR/contrib; cp -a `cat $CUSTOM/contrib_rest.lis` $WORK/opt/pgsql/apps/contrib/) mkdir -p $WORK/install awk '{print "chown postgres:pgsql \$ROOT"$0}' $CUSTOM_DIR/contrib.lis74 > $WORK/install/doinst.sh echo "chown -R postgres:pgsql \$ROOT/opt/pgsql/." >> $WORK/install/doinst.sh # make package cd $WORK echo "y 1" | installpkg -m ${PAC_NAME}_contrib mv ${PAC_NAME}_contrib.tgz $PAC_DIR/${PAC_NAME}_contrib-${SYS_NAME}.tgz echo "$PAC_DIR/${PAC_NAME}_contrib-${SYS_NAME}.tgz ... done" cd $CWD # # (3) making japanese document package # rm -rf $WORK/* cd $WORK mkdir -p opt/pgsql/man/ja_JP.eucJP tar xvfz $SRC_DIR/$MAN_FILE -C opt/pgsql/man/ja_JP.eucJP mv opt/pgsql/man/ja_JP.eucJP/manl opt/pgsql/man/ja_JP.eucJP/man7 for l in opt/pgsql/man/ja_JP.eucJP/man7/*.l do mv $l ${l%%.l}.7 done mkdir -p $WORK/$DOC_DIR/japanese tar xvfz $SRC_DIR/$DOC_FILE -C $WORK/$DOC_DIR/japanese cp -p $CUSTOM_DIR/README.doc_jp $WORK/$DOC_DIR/ cp -p $CUSTOM_DIR/$FAQ_FILE $WORK/$DOC_DIR/ chown -R root.root $WORK/$DOC_DIR chmod -R a+rX,go-w $WORK/$DOC_DIR mkdir -p $WORK/install echo "chown postgres:pgsql \$ROOT/opt/pgsql/." > $WORK/install/doinst.sh echo "chown -R postgres:pgsql \$ROOT/opt/pgsql/man" >> $WORK/install/doinst.sh echo "chown -R postgres:pgsql \$ROOT/opt/pgsql/man/ja_JP.eucJP" >> $WORK/install/doinst.sh # make package cd $WORK echo "y 1" | installpkg -m ${PAC_NAME}_doc_jp mv ${PAC_NAME}_doc_jp.tgz $PAC_DIR/${PAC_NAME}_doc_jp-${REL}.tgz echo "$PAC_DIR/${PAC_NAME}_doc_jp-${REL}.tgz ... done" cd $CWD