From 3ae891bbbaa3f96365f4c9fbe49e5cee26183fbc Mon Sep 17 00:00:00 2001 From: rhatto Date: Mon, 31 Jul 2006 20:45:44 +0000 Subject: initial import git-svn-id: svn+slack://slack.fluxo.info/var/svn/slackbuilds@1 370017ae-e619-0410-ac65-c121f96126d4 --- patches/php/php.SlackBuild | 310 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 310 insertions(+) create mode 100755 patches/php/php.SlackBuild (limited to 'patches/php/php.SlackBuild') diff --git a/patches/php/php.SlackBuild b/patches/php/php.SlackBuild new file mode 100755 index 00000000..3628d7b9 --- /dev/null +++ b/patches/php/php.SlackBuild @@ -0,0 +1,310 @@ +#!/bin/bash +# +# Build and package mod_php on Slackware. +# by: David Cantrell +# Modified for PHP 4+ by volkerdi@slackware.com +# +# Small changes by rhatto +# + +CWD="`pwd`" + +if [ -f "/etc/slackbuildrc" ]; then + source /etc/slackbuildrc +fi + +if [ -f "~/.slackbuildrc" ]; then + source ~/.slackbuildrc +fi + +PACKAGE="php" +VERSION=${VERSION:=4.4.2} +PINE=${PINE:=4.64} +ARCH=${ARCH:=x86_64} +BUILD=${BUILD:=1rha} + +TMP=${TMP:=/tmp} +PKG=$TMP/package-php +SRC_DIR=${SRC:=$CWD} + +RTOOL="wget" + +SRC="$PACKAGE-$VERSION.tar.bz2" +URL="http://mirror.pacific.net.au/linux/slackware/slackware-10.2/patches/source/php/$SRC" +#URL="http://br.php.net/get/$SRC/from/this/mirror" + +# pear modules +DB="DB-1.7.6.tgz" +HTTP="HTTP-1.4.0.tgz" +MAIL="Mail-1.1.9.tgz" +SMTP="Net_SMTP-1.2.8.tgz" +SOCKET="Net_Socket-1.0.6.tgz" +PARSER="XML_Parser-1.2.7.tgz" +RPC="XML_RPC-1.4.5.tgz" +TAR="Archive_Tar-1.3.1.tgz" +GETOPT="Console_Getopt-1.2.tgz" +TEMPLATE="HTML_Template_IT-1.1.3.tgz" + +PEAR="http://pear.php.net/get" + +if [ "$RTOOL" == "wget" ]; then + + if [ ! -f "$SRC_DIR/$SRC" ]; then + wget "$URL" -O "$SRC_DIR/$SRC" + fi + + # rm -rf $SRC_DIR/pear* + mkdir -p $SRC_DIR/pear + + if [ $VERSION = 4.4.2 ]; then + pearlist="$DB $HTTP $MAIL $SMTP $SOCKET $PARSER $RPC" + mkdir -p $SRC_DIR/pear-4.4.2-bad-md5sums + for pear in $TAR $GETOPT $TEMPLATE; do + if [ ! -f "$SRC_DIR/pear-4.4.2-bad-md5sums/$pear" ]; then + wget "$PEAR/$pear" -O "$SRC_DIR/pear-4.4.2-bad-md5sums/$pear" + fi + done + else + pearlist="$DB $HTTP $MAIL $SMTP $SOCKET $PARSER $RPC $TAR $GETOPT $TEMPLATE" + fi + + for pear in $pearlist; do + if [ ! -f "$SRC_DIR/pear/$pear" ]; then + wget "$PEAR/$pear" -O "$SRC_DIR/pear/$pear" + fi + done + +fi + +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +# we need to compile Pine to get c-client.a for IMAP support: + +if [ "$ARCH" == "x86_64" ]; then + IMAPLIBDIR=/usr/local/lib64/c-client + LIBDIR="/usr/lib64" + LIB="lib64" +else + IMAPLIBDIR=/usr/local/lib/c-client + LIBDIR="/usr/lib" + LIB="lib" + ADD_FLAGS="--with-db3 --enable-yp" +fi + +if [ -r $IMAPLIBDIR/$LIB/c-client.a ]; then + echo "Using IMAP library:" + ls -l $IMAPLIBDIR/$LIB/c-client.a + sleep 5 +else + ( cd $CWD/../pine ; ./pine.SlackBuild ) + ( cd $TMP/pine${PINE}/imap/c-client + strip -g c-client.a + mkdir -p $IMAPLIBDIR/$LIB + cp c-client.a $IMAPLIBDIR/$LIB + mkdir -p $IMAPLIBDIR/include + cp *.h $IMAPLIBDIR/include + ) +fi + +php_configure() { +EXTENSION_DIR=/usr/$LIB/php/extensions \ +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr \ + $* \ + --with-_lib=$LIB \ + --libdir=$LIBDIR \ + --sysconfdir=/etc \ + --enable-discard-path \ + --with-config-file-path=/etc/apache \ + --enable-safe-mode \ + --with-openssl \ + --with-mhash \ + --enable-bcmath \ + --with-bz2 \ + --with-pic \ + --enable-calendar \ + --enable-ctype \ + --with-gdbm \ + --with-imap-ssl=$IMAPLIBDIR \ + --with-imap=$IMAPLIBDIR \ + --enable-dbase \ + --enable-ftp \ + --with-iconv \ + --with-dom \ + --with-exif \ + --enable-exif \ + --with-gd \ + --enable-gd-native-ttf \ + --with-jpeg-dir=/usr \ + --with-png \ + --with-gmp \ + --enable-mbstring \ + --with-curl=/usr \ + --with-pcre-regex=/usr \ + --with-mysql=shared,/usr \ + --with-gettext=shared,/usr \ + --with-expat-dir=/usr \ + --with-xml \ + --enable-wddx \ + --with-mm=/usr \ + --enable-trans-sid \ + --enable-shmop \ + --enable-sockets \ + --with-regex=php \ + --enable-sysvsem \ + --enable-sysvshm \ + --enable-memory-limit \ + --with-tsrm-pthreads \ + --enable-shared \ + --disable-debug \ + --with-zlib=/usr $ADD_FLAGS + # --with-mod_charset # only for Russian patched Apache + # --with-readline=/usr # this is only for the CGI version + # --with-ttf # this links with the shlib, need X for that + # --with-java # no thanks + + # strange bug, http://bugs.php.net/bug.php?id=31193 + sed -e 's/^EXTRA_LIBS\(.*\)/EXTRA_LIBS\1 -liconv/' Makefile > Makefile.new + mv Makefile.new Makefile + +} + +# compile php +rm -rf $PKG +mkdir -p $PKG/etc/apache +# A trick from DaMouse to enable building php into $PKG. +# We'll remove this later on. +cat /etc/apache/httpd.conf.default > $PKG/etc/apache/httpd.conf +cd $TMP +rm -rf php-$VERSION +tar xjvf $SRC_DIR/$SRC + +# Add missing(?) PEAR modules back: +( cd php-$VERSION/pear/packages + cp -a $SRC_DIR/pear/* . + bzip2 -d *.bz2 &> /dev/null + gunzip -d -f *.tgz &> /dev/null +) + +# Replace PEAR packages for which the 4.4.2 release contained incorrect md5sums: +if [ $VERSION = 4.4.2 ]; then + ( cd php-$VERSION/pear/packages + rm -f HTML_Template_IT-1.1.tar + cp -a $SRC_DIR/pear-4.4.2-bad-md5sums/* . + bzip2 -d --force *.bz2 &> /dev/null + gunzip -d -f *.tgz &> /dev/null + ) +fi + +cd php-$VERSION + +if [ "$ARCH" == "x86_64" ]; then + # Fix lib64 - thanks SuSE + echo patchin with $CWD/php-with-_lib-$VERSION.diff.gz... + zcat $CWD/php-with-_lib-$VERSION.diff.gz | patch -p1 --verbose + autoconf +fi + +# Fixup perms/owners: +chown -R root.root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 775 -exec chmod 755 {} \; +find . -perm 666 -exec chmod 644 {} \; +find . -perm 664 -exec chmod 644 {} \; +find . -name "*.h" -exec chmod 644 {} \; +# Sometimes they ship a few of these: +find . -name "*.orig" -exec rm {} \; +# Patch ini files: + +if [ "$ARCH" == "x86_64" ]; then + zcat $CWD/php.ini-x86_64.diff.gz | patch -p1 --verbose --backup --suffix=.orig + # Fix an issue introduced in PHP 4.4.1 that breaks SquirrelMail and + # probably some other PHP applications: + #zcat $CWD/php.squirrel.diff.gz | patch -p1 --verbose || exit +else + zcat $CWD/php.ini.diff.gz | patch -p1 --verbose --backup --suffix=.orig +fi + +# Make the Apache module version of PHP: +echo "***START APACHE MODULE***" +php_configure --disable-static --with-apxs=/usr/sbin/apxs +make -j3 +make install INSTALL_ROOT=$PKG +make distclean +echo "***END APACHE MODULE***" + +# PHP likes to install Pear with some strange permissions. +chmod 755 $PKG/usr/bin/pear + +# Make the standalone interpreter: +php_configure --enable-force-cgi-redirect --enable-fastcgi --enable-pcntl --enable-sigchild +make -j3 +make install-cli INSTALL_ROOT=$PKG +chmod 755 $PKG/usr/bin/php +chown root.bin $PKG/usr/bin/php + +# PHP 4.4.2 seems to be throwing some junk in the root directory: +( cd $PKG + rm -rf .channels .depdb .depdblock .filemap .lock .registry +) + +if [ "$ARCH" == "x86_64" ]; then + # Fix $PKG/usr/lib64/php perms: + ( cd $PKG/usr/lib64/php + find . -perm 666 -exec chmod 644 {} \; + ) +else + # Fix $PKG/usr/lib/php perms: + ( cd $PKG/usr/lib/php + find . -perm 666 -exec chmod 644 {} \; + ) +fi + +mkdir -p $PKG/usr/doc/php-$VERSION +cp -a \ + CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS README* TODO* \ + sapi/cgi/README.FastCGI \ + $PKG/usr/doc/php-$VERSION +chown -R root.root $PKG/usr/doc/php-$VERSION + +mkdir -p $PKG/etc/apache +cp -a php.ini-dist php.ini-recommended $PKG/etc/apache +cp -a $CWD/mod_php.conf.example $PKG/etc/apache +chmod 644 $PKG/etc/apache/* +chown root.root $PKG/etc/apache/* + +rm -f $PKG/etc/apache/httpd* + +chown -R root:bin $PKG/usr/bin + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +#if [ -d "$IMAPLIBDIR" ]; then +# ( cd $IMAPLIBDIR && rm -rf * ) +# rmdir $IMAPLIBDIR +#fi + +cd $PKG +makepkg -l y -c n $TMP/php-$VERSION-$ARCH-$BUILD.tgz + -- cgit v1.2.3