diff options
Diffstat (limited to 'patches/php')
-rwxr-xr-x | patches/php/php-pgsql.SlackBuild | 343 | ||||
-rw-r--r-- | patches/php/php-pgsql.slack-desc | 19 | ||||
-rw-r--r-- | patches/php/php-pgsql.slack-required | 2 | ||||
-rwxr-xr-x | patches/php/php.SlackBuild | 1 | ||||
-rwxr-xr-x | patches/php/php4-snapshot.SlackBuild | 1 | ||||
-rw-r--r-- | patches/php/slack-required | 1 |
6 files changed, 364 insertions, 3 deletions
diff --git a/patches/php/php-pgsql.SlackBuild b/patches/php/php-pgsql.SlackBuild new file mode 100755 index 00000000..181e100b --- /dev/null +++ b/patches/php/php-pgsql.SlackBuild @@ -0,0 +1,343 @@ +#!/bin/bash +# +# Build and package mod_php on Slackware. +# by: David Cantrell <david@slackware.com> +# Modified for PHP 4+ by volkerdi@slackware.com +# +# Small changes by rhatto +# This script is used to build a php with postgresql support +# + +if [ -s "php-pgsql.slack-required" ]; then + echo Recomended and required packages for building cairo are: + cat php-pgsql.slack-required | sed -e 's/^/\t/' + if [ "$INTERACT" != "no" ]; then + echo If you dont have those installed, press Ctrl-C. Otherwise, hit ENTER. + read crap + else + echo Sleeping 3 seconds... + sleep 3 + fi +fi + +CWD="`pwd`" + +if [ -f "/etc/slackbuildrc" ]; then + source /etc/slackbuildrc +fi + +if [ -f "~/.slackbuildrc" ]; then + source ~/.slackbuildrc +fi + +PACKAGE="php" +PACKAGE_NAME="php-pgsql" # this is beacuse we're build with pgsql support +VERSION=${VERSION:=4.4.4} +PINE=${PINE:=4.64} +ARCH=${ARCH:=i486} +BUILD=${BUILD:=2rha} +TMP=${TMP:=/tmp} +SRC_DIR=${SRC:=$CWD} +REPOS=${REPOS:=$TMP} + +# ------- error codes for createpkg -------------- +ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 +ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 +ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 +ERROR_PATCH=40 + +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" + +SRC_DIR="$SRC_DIR/$PACKAGE" +mkdir -p $SRC_DIR + +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" || exit $ERROR_WGET + 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" || exit $ERROR_WGET + fi + done + +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 ; CLEANUP=no ./pine.SlackBuild ) + ( cd $TMP/pine/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 + +TMP="$TMP/$PACKAGE" +PKG="$TMP/package-php" +rm -rf $TMP +mkdir -p $TMP +cd $TMP + +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-pgsql \ + --with-zlib=/usr $ADD_FLAGS || exit $ERROR_CONF + # --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 || exit $ERROR_TAR + +# 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 patching with $CWD/php-with-_lib-$VERSION.diff.gz... + zcat $CWD/php-with-_lib-$VERSION.diff.gz | patch -p1 --verbose || exit $ERROR_PATCH + 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 {} \; + +# Fix a UTF-8 parsing overflow: +zcat $CWD/php4.utf8.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit $ERROR_PATCH + +# Patch ini files: + +if [ "$ARCH" == "x86_64" ]; then + zcat $CWD/php.ini-x86_64.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit $ERROR_PATCH + # 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 || exit $ERROR_PATCH +fi + +# Make the Apache module version of PHP: +echo "***START APACHE MODULE***" +php_configure --disable-static --with-apxs=/usr/sbin/apxs || exit $ERROR_CONF +make -j3 || exit $ERROR_MAKE +make install INSTALL_ROOT=$PKG || exit $ERROR_INSTALL +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 || exit $ERROR_CONF +make -j3 || exit $ERROR_MAKE +make install-cli INSTALL_ROOT=$PKG || exit $ERROR_INSTALL +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/$PACKAGE_NAME-slack-desc > $PKG/install/slack-desc + +if [ -d "$IMAPLIBDIR" ]; then + ( cd $IMAPLIBDIR && rm -rf * ) + rmdir $IMAPLIBDIR +fi + +cd $PKG +makepkg -l y -c n $REPOS/$PACKAGE_NAME-$VERSION-$ARCH-$BUILD.tgz || exit $ERROR_MKPKG + +if [ "$CLEANUP" == "yes" ]; then + rm -rf $TMP +fi + diff --git a/patches/php/php-pgsql.slack-desc b/patches/php/php-pgsql.slack-desc new file mode 100644 index 00000000..fdfd6144 --- /dev/null +++ b/patches/php/php-pgsql.slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +php-pgsql: php-pgsql (HTML-embedded scripting language) +php-pgsql: +php-pgsql: PHP is an HTML-embedded scripting language. It shares syntax +php-pgsql: characteristics with C, Java, and Perl. The primary objective behind +php-pgsql: this language is to make a fast and easy-to-use scripting language +php-pgsql: for dynamic web sites. +php-pgsql: +php-pgsql: This PHP package was built with PostgreSQL support. +php-pgsql: More information can be found online at http://www.php.net/ +php-pgsql: +php-pgsql: diff --git a/patches/php/php-pgsql.slack-required b/patches/php/php-pgsql.slack-required new file mode 100644 index 00000000..fdb70fdb --- /dev/null +++ b/patches/php/php-pgsql.slack-required @@ -0,0 +1,2 @@ +libiconv +postgresql diff --git a/patches/php/php.SlackBuild b/patches/php/php.SlackBuild index ae422e09..76265378 100755 --- a/patches/php/php.SlackBuild +++ b/patches/php/php.SlackBuild @@ -191,7 +191,6 @@ CFLAGS="$SLKCFLAGS" \ --with-tsrm-pthreads \ --enable-shared \ --disable-debug \ - --with-pgsql \ --with-zlib=/usr $ADD_FLAGS || exit $ERROR_CONF # --with-mod_charset # only for Russian patched Apache # --with-readline=/usr # this is only for the CGI version diff --git a/patches/php/php4-snapshot.SlackBuild b/patches/php/php4-snapshot.SlackBuild index b6a7f172..b33775cc 100755 --- a/patches/php/php4-snapshot.SlackBuild +++ b/patches/php/php4-snapshot.SlackBuild @@ -189,7 +189,6 @@ CFLAGS="$SLKCFLAGS" \ --with-tsrm-pthreads \ --enable-shared \ --disable-debug \ - --with-pgsql \ --with-zlib=/usr $ADD_FLAGS || exit $ERROR_CONF # --with-mod_charset # only for Russian patched Apache # --with-readline=/usr # this is only for the CGI version diff --git a/patches/php/slack-required b/patches/php/slack-required index fdb70fdb..788f2359 100644 --- a/patches/php/slack-required +++ b/patches/php/slack-required @@ -1,2 +1 @@ libiconv -postgresql |