From 8ff4f2f51a6cf07fc33742ce3bee81328896e49b Mon Sep 17 00:00:00 2001 From: Patrick J Volkerding Date: Fri, 25 May 2018 23:29:36 +0000 Subject: Fri May 25 23:29:36 UTC 2018 patches/packages/glibc-zoneinfo-2018e-noarch-2_slack14.1.txz: Rebuilt. Handle removal of US/Pacific-New timezone. If we see that the machine is using this, it will be automatically switched to US/Pacific. --- pasture/source/php/doinst.sh | 28 +++ pasture/source/php/fetch-php.sh | 1 + pasture/source/php/init.d.php-fpm.in.diff | 11 + pasture/source/php/mod_php.conf.example | 29 +++ pasture/source/php/php-fpm.conf.diff | 28 +++ pasture/source/php/php.SlackBuild | 316 ++++++++++++++++++++++++++++ pasture/source/php/php.ini-development.diff | 58 +++++ pasture/source/php/slack-desc | 19 ++ 8 files changed, 490 insertions(+) create mode 100644 pasture/source/php/doinst.sh create mode 100755 pasture/source/php/fetch-php.sh create mode 100644 pasture/source/php/init.d.php-fpm.in.diff create mode 100644 pasture/source/php/mod_php.conf.example create mode 100644 pasture/source/php/php-fpm.conf.diff create mode 100755 pasture/source/php/php.SlackBuild create mode 100644 pasture/source/php/php.ini-development.diff create mode 100644 pasture/source/php/slack-desc (limited to 'pasture/source') diff --git a/pasture/source/php/doinst.sh b/pasture/source/php/doinst.sh new file mode 100644 index 000000000..bf1b21702 --- /dev/null +++ b/pasture/source/php/doinst.sh @@ -0,0 +1,28 @@ +if [ ! -r etc/httpd/mod_php.conf ]; then + cp -a etc/httpd/mod_php.conf.example etc/httpd/mod_php.conf +elif [ "`cat etc/httpd/mod_php.conf 2> /dev/null`" = "" ]; then + cp -a etc/httpd/mod_php.conf.example etc/httpd/mod_php.conf +fi + +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +# Keep same perms on rc.php-fpm.new: +if [ -e etc/rc.d/rc.php-fpm ]; then + cp -a etc/rc.d/rc.php-fpm etc/rc.d/rc.php-fpm.new.incoming + cat etc/rc.d/rc.php-fpm.new > etc/rc.d/rc.php-fpm.new.incoming + mv etc/rc.d/rc.php-fpm.new.incoming etc/rc.d/rc.php-fpm.new +fi +config etc/rc.d/rc.php-fpm.new +cp -a etc/httpd/php.ini-production etc/httpd/php.ini.new +config etc/httpd/php.ini.new +cp -a etc/php-fpm/php-fpm.conf.default etc/php-fpm/php-fpm.conf.new +config etc/php-fpm/php-fpm.conf.new diff --git a/pasture/source/php/fetch-php.sh b/pasture/source/php/fetch-php.sh new file mode 100755 index 000000000..1c232723d --- /dev/null +++ b/pasture/source/php/fetch-php.sh @@ -0,0 +1 @@ +lftpget http://us.php.net/distributions/php-5.4.45.tar.bz2 diff --git a/pasture/source/php/init.d.php-fpm.in.diff b/pasture/source/php/init.d.php-fpm.in.diff new file mode 100644 index 000000000..00f887780 --- /dev/null +++ b/pasture/source/php/init.d.php-fpm.in.diff @@ -0,0 +1,11 @@ +--- ./sapi/fpm/init.d.php-fpm.in.orig 2013-05-08 00:41:20.000000000 -0500 ++++ ./sapi/fpm/init.d.php-fpm.in 2013-05-19 14:52:33.952089160 -0500 +@@ -14,7 +14,7 @@ + exec_prefix=@exec_prefix@ + + php_fpm_BIN=@sbindir@/php-fpm +-php_fpm_CONF=@sysconfdir@/php-fpm.conf ++php_fpm_CONF=@sysconfdir@/php-fpm/php-fpm.conf + php_fpm_PID=@localstatedir@/run/php-fpm.pid + + diff --git a/pasture/source/php/mod_php.conf.example b/pasture/source/php/mod_php.conf.example new file mode 100644 index 000000000..670eb7135 --- /dev/null +++ b/pasture/source/php/mod_php.conf.example @@ -0,0 +1,29 @@ +# +# mod_php - PHP Hypertext Preprocessor module +# + +# Load the PHP module: +LoadModule php5_module lib/httpd/modules/libphp5.so + +# Tell Apache to feed all *.php files through PHP. If you'd like to +# parse PHP embedded in files with different extensions, comment out +# these lines and see the example below. + + SetHandler application/x-httpd-php + + +# Tell Apache to feed all *.php, *.html, and *.htm files through +# the PHP module. Add or subtract extensions here as desired. Please +# note that running pages through PHP for no reason can be both slow +# and insecure, so be sure to know what you're doing. It's a convenient +# shortcut, but probably isn't suitible for high-traffic sites if you +# write any of your pages in straight HTML. +# +# SetHandler application/x-httpd-php +# + +# This will display PHP files in colored syntax form. Use with caution. +# +# SetHandler application/x-httpd-php-source +# + diff --git a/pasture/source/php/php-fpm.conf.diff b/pasture/source/php/php-fpm.conf.diff new file mode 100644 index 000000000..e749185b6 --- /dev/null +++ b/pasture/source/php/php-fpm.conf.diff @@ -0,0 +1,28 @@ +--- ./sapi/fpm/php-fpm.conf.in.orig 2012-05-20 19:47:53.000000000 +0200 ++++ ./sapi/fpm/php-fpm.conf.in 2012-05-21 09:16:32.646276661 +0200 +@@ -12,7 +12,7 @@ + ; Relative path can also be used. They will be prefixed by: + ; - the global prefix if it's been set (-p arguement) + ; - @prefix@ otherwise +-;include=etc/fpm.d/*.conf ++;include=etc/php-fpm/*.conf + + ;;;;;;;;;;;;;;;;;; + ; Global Options ; +@@ -22,14 +22,14 @@ + ; Pid file + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ + ; Default Value: none +-;pid = run/php-fpm.pid ++pid = run/php-fpm.pid + + ; Error log file + ; If it's set to "syslog", log is sent to syslogd instead of being written + ; in a local file. + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ + ; Default Value: log/php-fpm.log +-;error_log = log/php-fpm.log ++error_log = log/php-fpm.log + + ; syslog_facility is used to specify what type of program is logging the + ; message. This lets syslogd specify that messages from different facilities diff --git a/pasture/source/php/php.SlackBuild b/pasture/source/php/php.SlackBuild new file mode 100755 index 000000000..29a4b6717 --- /dev/null +++ b/pasture/source/php/php.SlackBuild @@ -0,0 +1,316 @@ +#!/bin/sh + +# Build and package mod_php on Slackware. +# by: David Cantrell +# Modified for PHP 4-5 by volkerdi@slackware.com +# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +VERSION=${VERSION:-$(echo php-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +ALPINE=2.11 +BUILD=${BUILD:-1_slack14.1} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-php/ +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +# we need to compile alpine to get c-client.a for IMAP support: +IMAPLIBDIR=/usr/local/lib${LIBDIRSUFFIX}/c-client +if [ -r $IMAPLIBDIR/lib${LIBDIRSUFFIX}/c-client.a ]; then + echo "Using IMAP library:" + ls -l $IMAPLIBDIR/lib${LIBDIRSUFFIX}/c-client.a + sleep 5 +else + ( cd $CWD/../alpine ; ./alpine.SlackBuild || exit 1 ) || exit 1 + ( cd $TMP/alpine-${ALPINE}/imap/c-client + strip -g c-client.a + mkdir -p $IMAPLIBDIR/lib${LIBDIRSUFFIX} + cp c-client.a $IMAPLIBDIR/lib${LIBDIRSUFFIX} + ( cd $IMAPLIBDIR/lib${LIBDIRSUFFIX} ; ln -sf c-client.a libc-client.a ) + mkdir -p $IMAPLIBDIR/include + cp *.h $IMAPLIBDIR/include + ) +fi + +mkdir -p $PKG/etc/httpd +mkdir -p $PKG/etc/php +# A trick from DaMouse to enable building php into $PKG. +# We'll remove this later on. +cat /etc/httpd/original/httpd.conf > $PKG/etc/httpd/httpd.conf +if [ ! -e /etc/httpd/original/httpd.conf ]; then + echo "FATAL: no /etc/httpd/original/httpd.conf found." + exit 1 +fi + +cd $TMP +rm -rf php-$VERSION +tar xvf $CWD/php-$VERSION.tar.?z* || exit 1 +cd php-$VERSION + +zcat $CWD/init.d.php-fpm.in.diff.gz | patch -p1 --verbose || exit 1 + +# cleanup: +find . -name "*.orig" -delete + +# Add missing(?) PEAR modules back: +if [ -d php-$VERSION/pear/packages ]; then + ( cd php-$VERSION/pear/packages + cp -a $CWD/pear/*.bz2 . 2> /dev/null + bzip2 -d *.bz2 2> /dev/null + ) +fi + +# Add install-pear-nozlib.phar if it wasn't shipped in the PHP tarball: +if [ ! -r pear/install-pear-nozlib.phar ]; then + xzcat $CWD/install-pear-nozlib.phar.xz > pear/install-pear-nozlib.phar || exit 1 +elif [ -r $CWD/install-pear-nozlib.phar.xz ]; then + echo "pear/install-pear-nozlib.phar found in the PHP tarball... recommend removing possibly stale version in \$CWD." + echo "Have a little time to think this over..." + sleep 3600 +fi + +if [ "$ARCH" = "s390" ]; then + zcat $CWD/php.configure.s390.diff.gz | patch -p1 || exit +fi + +# Fixup perms/owners: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +find . -name "*.h" -exec chmod 644 {} \; + +# Sometimes they ship a few of these: +find . -name "*.orig" -exec rm {} \; + +# Patch ini files: +zcat $CWD/php.ini-development.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/php.ini-development.diff.gz | patch -p1 --verbose php.ini-production || exit 1 +zcat $CWD/php-fpm.conf.diff.gz | patch -p1 --verbose || exit 1 + +# Install the build folder into /usr/lib$LIBDIRSUFFIX/php/build +# and adapt phpize accordingly: +sed -i "s|build$|php/build|" scripts/Makefile.frag +sed -i "s|build\"$|php/build\"|" scripts/phpize.in + +# Generic "kitchen sink" configure function, with as many things as possible (and +# maybe then some ;-) compiled as shared extensions: +EXTENSION_DIR=/usr/lib${LIBDIRSUFFIX}/php/extensions \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-libdir=lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --datarootdir=/usr/share \ + --datadir=/usr/share \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --with-apxs2=/usr/bin/apxs \ + --enable-fpm \ + --with-fpm-user=apache \ + --with-fpm-group=apache \ + --enable-maintainer-zts \ + --enable-pcntl \ + --enable-mbregex \ + --enable-tokenizer=shared \ + --with-config-file-scan-dir=/etc/php \ + --with-config-file-path=/etc/httpd \ + --enable-mod_charset \ + --with-layout=PHP \ + --disable-sigchild \ + --enable-xml \ + --with-libxml-dir=/usr \ + --enable-simplexml \ + --enable-xmlreader=shared \ + --enable-dom=shared \ + --enable-filter \ + --disable-debug \ + --with-openssl=shared \ + --with-pcre-regex=/usr \ + --with-zlib=shared,/usr \ + --enable-bcmath=shared \ + --with-bz2=shared,/usr \ + --enable-calendar=shared \ + --enable-ctype=shared \ + --with-curl=shared \ + --with-curlwrappers \ + --with-mcrypt=/usr \ + --enable-dba=shared \ + --with-gdbm=/usr \ + --with-db4=/usr \ + --enable-exif=shared \ + --enable-ftp=shared \ + --with-gd=shared \ + --with-jpeg-dir=/usr \ + --with-png-dir=/usr \ + --with-zlib-dir=/usr \ + --with-xpm-dir=/usr \ + --with-freetype-dir=/usr \ + --with-t1lib=/usr \ + --enable-gd-native-ttf \ + --with-gettext=shared,/usr \ + --with-gmp=shared,/usr \ + --with-iconv=shared \ + --with-imap-ssl=/usr \ + --with-imap=$IMAPLIBDIR \ + --with-ldap=shared \ + --enable-mbstring=shared \ + --enable-hash \ + --with-mysql=shared,mysqlnd \ + --with-mysqli=shared,mysqlnd \ + --with-mysql-sock=/var/run/mysql/mysql.sock \ + --enable-pdo=shared \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-sqlite=shared,/usr \ + --with-pspell=shared,/usr \ + --with-enchant=shared,/usr \ + --enable-shmop=shared \ + --with-snmp=shared,/usr \ + --enable-soap=shared \ + --enable-sockets \ + --with-sqlite3=shared \ + --with-regex=php \ + --enable-sysvmsg \ + --enable-sysvsem \ + --enable-sysvshm \ + --enable-wddx=shared \ + --with-xsl=shared,/usr \ + --enable-zip=shared \ + --with-tsrm-pthreads \ + --enable-intl=shared \ + --enable-shared=yes \ + --enable-static=no \ + --with-gnu-ld \ + --with-pic \ + --build=$ARCH-slackware-linux + +# I am told this option is worse than nothing. :-) +# --enable-safe-mode +# +# I would recommend *against* and will take no responbility for turning on +# "safe" mode. + +make $NUMJOBS || make || exit 1 +make install INSTALL_ROOT=$PKG || exit 1 + +mkdir -p $PKG/etc/{rc.d,php-fpm} +cp sapi/fpm/init.d.php-fpm $PKG/etc/rc.d/rc.php-fpm.new +chmod 644 $PKG/etc/rc.d/rc.php-fpm.new +mv $PKG/etc/php-fpm.conf.default $PKG/etc/php-fpm +chmod 644 $PKG/etc/php-fpm/php-fpm.conf.default + +# PHP (used to) install Pear with some strange permissions. +chmod 755 $PKG/usr/bin/pear + +# PHP sometimes puts junk in the root directory: +( cd $PKG + rm -rf .channels .depdb .depdblock .filemap .lock .registry +) + +# We do not package static extension libraries: +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/php/extensions/*.a + +# Fix $PKG/usr/lib/php perms: +( cd $PKG/usr/lib${LIBDIRSUFFIX}/php + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +) + +mkdir -p $PKG/usr/doc/php-$VERSION +cp -a \ + CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS README* TODO* UPGRADING* \ + sapi/cgi/README.FastCGI \ + $PKG/usr/doc/php-$VERSION +chown -R root:root $PKG/usr/doc/php-$VERSION +chmod 644 $PKG/usr/doc/php-$VERSION/UPGRADING* + +mkdir -p $PKG/etc/httpd +cp -a php.ini-development php.ini-production $PKG/etc/httpd +cat $CWD/mod_php.conf.example | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" \ + > $PKG/etc/httpd/mod_php.conf.example +chmod 644 $PKG/etc/httpd/* +chown root:root $PKG/etc/httpd/* + +# This can go now. +rm -f $PKG/etc/httpd/httpd* + +# Session directory for PHP: +mkdir -p $PKG/var/lib/php +chmod 770 $PKG/var/lib/php +chown root:apache $PKG/var/lib/php + +# Strip ELF objects. +find $PKG | xargs file | grep -e "executable" -e "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 +/sbin/makepkg -l y -c n $TMP/php-$VERSION-$ARCH-$BUILD.txz + diff --git a/pasture/source/php/php.ini-development.diff b/pasture/source/php/php.ini-development.diff new file mode 100644 index 000000000..8c582e4db --- /dev/null +++ b/pasture/source/php/php.ini-development.diff @@ -0,0 +1,58 @@ +--- ./php.ini-development.orig 2012-07-18 01:19:16.000000000 -0500 ++++ ./php.ini-development 2012-08-08 20:06:33.512546116 -0500 +@@ -859,6 +859,46 @@ + ; If you only provide the name of the extension, PHP will look for it in its + ; default extension directory. + ; ++ ++; These are the extensions that are available for use on this PHP build. ++; If you do NOT need any of these extensions, you should comment them out. ++; That will probably increase both your security and performance. ++ ++extension=bcmath.so ++extension=bz2.so ++extension=calendar.so ++extension=ctype.so ++extension=curl.so ++extension=dba.so ++extension=dom.so ++extension=enchant.so ++extension=exif.so ++extension=ftp.so ++extension=gd.so ++extension=gettext.so ++extension=gmp.so ++extension=iconv.so ++extension=intl.so ++extension=ldap.so ++extension=mbstring.so ++extension=mysql.so ++extension=mysqli.so ++extension=openssl.so ++extension=pdo.so ++extension=pdo_mysql.so ++extension=pdo_sqlite.so ++extension=pspell.so ++extension=shmop.so ++extension=snmp.so ++extension=soap.so ++extension=sqlite3.so ++extension=tokenizer.so ++extension=wddx.so ++extension=xmlreader.so ++extension=xsl.so ++extension=zip.so ++extension=zlib.so ++ + ; Windows Extensions + ; Note that ODBC support is built in, so no dll is needed for it. + ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) +@@ -1391,7 +1431,7 @@ + ; where MODE is the octal representation of the mode. Note that this + ; does not overwrite the process's umask. + ; http://php.net/session.save-path +-;session.save_path = "/tmp" ++session.save_path = "/var/lib/php" + + ; Whether to use cookies. + ; http://php.net/session.use-cookies diff --git a/pasture/source/php/slack-desc b/pasture/source/php/slack-desc new file mode 100644 index 000000000..fe14da6d6 --- /dev/null +++ b/pasture/source/php/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: php (HTML-embedded scripting language) +php: +php: PHP is an HTML-embedded scripting language. It shares syntax +php: characteristics with C, Java, and Perl. The primary objective behind +php: this language is to make a fast and easy-to-use scripting language +php: for dynamic web sites. +php: +php: More information can be found online at http://www.php.net/ +php: +php: +php: -- cgit v1.2.3