diff options
Diffstat (limited to 'extra')
17 files changed, 591 insertions, 20 deletions
diff --git a/extra/source/php8/slack-desc b/extra/source/php8/slack-desc deleted file mode 100644 index fbb35e6d..00000000 --- a/extra/source/php8/slack-desc +++ /dev/null @@ -1,19 +0,0 @@ -# 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------------------------------------------------------| -php8: php8 (HTML-embedded scripting language) -php8: -php8: PHP is an HTML-embedded scripting language. It shares syntax -php8: characteristics with C, Java, and Perl. The primary objective behind -php8: this language is to make a fast and easy-to-use scripting language -php8: for dynamic web sites. -php8: -php8: Homepage: https://www.php.net/ -php8: -php8: -php8: diff --git a/extra/source/php8/doinst.sh b/extra/source/php80/doinst.sh index dc5726e5..dc5726e5 100644 --- a/extra/source/php8/doinst.sh +++ b/extra/source/php80/doinst.sh diff --git a/extra/source/php80/fetch-php.sh b/extra/source/php80/fetch-php.sh new file mode 100755 index 00000000..8f26da55 --- /dev/null +++ b/extra/source/php80/fetch-php.sh @@ -0,0 +1,2 @@ +lftpget http://us.php.net/distributions/php-8.0.13.tar.xz.asc +lftpget http://us.php.net/distributions/php-8.0.13.tar.xz diff --git a/extra/source/php8/mod_php.conf.example b/extra/source/php80/mod_php.conf.example index 6ca1d3a8..6ca1d3a8 100644 --- a/extra/source/php8/mod_php.conf.example +++ b/extra/source/php80/mod_php.conf.example diff --git a/extra/source/php8/php-fpm.conf.diff b/extra/source/php80/php-fpm.conf.diff index 03b0f503..03b0f503 100644 --- a/extra/source/php8/php-fpm.conf.diff +++ b/extra/source/php80/php-fpm.conf.diff diff --git a/extra/source/php8/php.imap.api.diff b/extra/source/php80/php.imap.api.diff index b767e155..b767e155 100644 --- a/extra/source/php8/php.imap.api.diff +++ b/extra/source/php80/php.imap.api.diff diff --git a/extra/source/php80/php.ini-development.diff b/extra/source/php80/php.ini-development.diff new file mode 100644 index 00000000..ce12f5a4 --- /dev/null +++ b/extra/source/php80/php.ini-development.diff @@ -0,0 +1,62 @@ +--- ./php.ini-development.orig 2020-05-12 03:09:16.000000000 -0500 ++++ ./php.ini-development 2020-05-12 14:14:32.901530776 -0500 +@@ -899,7 +899,50 @@ + ; 'extension='php_<ext>.dll') is supported for legacy reasons and may be + ; deprecated in a future PHP major version. So, when it is possible, please + ; move to the new ('extension=<ext>) syntax. ++ ++; 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 ++extension=bz2 ++extension=calendar ++extension=ctype ++extension=curl ++extension=dba ++extension=dom ++extension=enchant ++extension=exif ++extension=ftp ++extension=gd ++extension=gettext ++extension=gmp ++extension=iconv ++extension=intl ++extension=ldap ++extension=mbstring ++extension=mysqlnd ++extension=mysqli ++extension=odbc ++extension=openssl ++zend_extension=opcache ++extension=pdo ++extension=pdo_mysql ++extension=pdo_sqlite ++extension=pdo_odbc ++extension=pspell ++extension=shmop ++extension=snmp ++extension=soap ++extension=sqlite3 ++extension=tidy ++extension=tokenizer ++extension=xmlreader ++extension=xmlrpc ++extension=xsl ++extension=zip ++extension=zlib ++ + ; Notes for Windows environments : + ; + ; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+) +@@ -1335,7 +1378,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 strict session mode. + ; Strict session mode does not accept an uninitialized session ID, and diff --git a/extra/source/php8/php8.SlackBuild b/extra/source/php80/php80.SlackBuild index 65e29cb5..b618d497 100755 --- a/extra/source/php8/php8.SlackBuild +++ b/extra/source/php80/php80.SlackBuild @@ -337,4 +337,4 @@ cat $CWD/slack-desc > $PKG/install/slack-desc #fi cd $PKG -/sbin/makepkg -l y -c n $TMP/php8-$VERSION-$ARCH-$BUILD.txz +/sbin/makepkg -l y -c n $TMP/php80-$VERSION-$ARCH-$BUILD.txz diff --git a/extra/source/php80/slack-desc b/extra/source/php80/slack-desc new file mode 100644 index 00000000..f6868ad4 --- /dev/null +++ b/extra/source/php80/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------------------------------------------------------| +php80: php80 (HTML-embedded scripting language) +php80: +php80: PHP is an HTML-embedded scripting language. It shares syntax +php80: characteristics with C, Java, and Perl. The primary objective behind +php80: this language is to make a fast and easy-to-use scripting language +php80: for dynamic web sites. +php80: +php80: Homepage: https://www.php.net/ +php80: +php80: +php80: diff --git a/extra/source/php81/doinst.sh b/extra/source/php81/doinst.sh new file mode 100644 index 00000000..dc5726e5 --- /dev/null +++ b/extra/source/php81/doinst.sh @@ -0,0 +1,29 @@ +if [ "`cat etc/httpd/mod_php.conf 2> /dev/null`" = "" ]; then + cp -a etc/httpd/mod_php.conf.new 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/php.ini-production etc/php.ini.new +config etc/php.ini.new +cp -a etc/php-fpm.conf.default etc/php-fpm.conf.new +config etc/php-fpm.conf.new +cp -a etc/php-fpm.d/www.conf.default etc/php-fpm.d/www.conf.new +config etc/php-fpm.d/www.conf.new +config etc/httpd/mod_php.conf.new diff --git a/extra/source/php8/fetch-php.sh b/extra/source/php81/fetch-php.sh index cbd7847a..cbd7847a 100755 --- a/extra/source/php8/fetch-php.sh +++ b/extra/source/php81/fetch-php.sh diff --git a/extra/source/php81/mod_php.conf.example b/extra/source/php81/mod_php.conf.example new file mode 100644 index 00000000..6ca1d3a8 --- /dev/null +++ b/extra/source/php81/mod_php.conf.example @@ -0,0 +1,29 @@ +# +# mod_php - PHP Hypertext Preprocessor module +# + +# Load the PHP module: +LoadModule php_module lib/httpd/modules/libphp.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. +<FilesMatch \.php$> + SetHandler application/x-httpd-php +</FilesMatch> + +# 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. +#<FilesMatch "\.(php|html|htm)$"> +# SetHandler application/x-httpd-php +#</FilesMatch> + +# This will display PHP files in colored syntax form. Use with caution. +#<FilesMatch "\.phps$"> +# SetHandler application/x-httpd-php-source +#</FilesMatch> + diff --git a/extra/source/php81/php-fpm.conf.diff b/extra/source/php81/php-fpm.conf.diff new file mode 100644 index 00000000..03b0f503 --- /dev/null +++ b/extra/source/php81/php-fpm.conf.diff @@ -0,0 +1,19 @@ +--- ./sapi/fpm/php-fpm.conf.in.orig 2017-11-21 21:02:19.000000000 -0600 ++++ ./sapi/fpm/php-fpm.conf.in 2017-11-27 20:07:58.533458347 -0600 +@@ -14,14 +14,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 + ; into 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/extra/source/php81/php.imap.api.diff b/extra/source/php81/php.imap.api.diff new file mode 100644 index 00000000..b767e155 --- /dev/null +++ b/extra/source/php81/php.imap.api.diff @@ -0,0 +1,71 @@ +--- ./ext/imap/php_imap.c.orig 2020-03-17 05:40:25.000000000 -0500 ++++ ./ext/imap/php_imap.c 2020-03-17 16:20:15.600685744 -0500 +@@ -5081,7 +5081,7 @@ + php debugger? */ + } + +-PHP_IMAP_EXPORT void mm_login(NETMBX *mb, char *user, char *pwd, long trial) ++PHP_IMAP_EXPORT void mm_login(NETMBX *mb, char *user, char **pwd, long trial) + { + + if (*mb->user) { +@@ -5089,7 +5089,13 @@ + } else { + strlcpy (user, IMAPG(imap_user), MAILTMPLEN); + } +- strlcpy (pwd, IMAPG(imap_password), MAILTMPLEN); ++ *pwd = cpystr(IMAPG(imap_password)); /* alpine-2.22 c-client.a */ ++} ++ ++/* alpine-2.22 c-client.a workaround */ ++PHP_IMAP_EXPORT void mm_login_method(NETMBX *mb, char *user, void *pwd, long trial, char *method) ++{ ++ pwd = NULL; + } + + PHP_IMAP_EXPORT void mm_critical(MAILSTREAM *stream) +--- ./ext/imap/config.m4.orig 2020-03-17 05:40:25.000000000 -0500 ++++ ./ext/imap/config.m4 2020-03-17 16:20:15.588685745 -0500 +@@ -34,6 +34,7 @@ + PHP_IMAP_EXPORT void mm_nocritical(void){} + PHP_IMAP_EXPORT void mm_notify(void){} + PHP_IMAP_EXPORT void mm_login(void){} ++ PHP_IMAP_EXPORT void mm_login_method(void){} + PHP_IMAP_EXPORT void mm_diskerror(void){} + PHP_IMAP_EXPORT void mm_status(void){} + PHP_IMAP_EXPORT void mm_lsub(void){} +@@ -262,6 +263,7 @@ + PHP_IMAP_EXPORT void mm_nocritical(void){} + PHP_IMAP_EXPORT void mm_notify(void){} + PHP_IMAP_EXPORT void mm_login(void){} ++ PHP_IMAP_EXPORT void mm_login_method(void){} + PHP_IMAP_EXPORT void mm_diskerror(void){} + PHP_IMAP_EXPORT void mm_status(void){} + PHP_IMAP_EXPORT void mm_lsub(void){} +--- ./configure.orig 2020-03-17 05:40:20.000000000 -0500 ++++ ./configure 2020-03-17 16:22:03.768679101 -0500 +@@ -39870,6 +39870,7 @@ + PHP_IMAP_EXPORT void mm_nocritical(void){} + PHP_IMAP_EXPORT void mm_notify(void){} + PHP_IMAP_EXPORT void mm_login(void){} ++ PHP_IMAP_EXPORT void mm_login_method(void){} + PHP_IMAP_EXPORT void mm_diskerror(void){} + PHP_IMAP_EXPORT void mm_status(void){} + PHP_IMAP_EXPORT void mm_lsub(void){} +@@ -39937,6 +39938,8 @@ + PHP_IMAP_EXPORT void mm_nocritical(void){} + PHP_IMAP_EXPORT void mm_notify(void){} + PHP_IMAP_EXPORT void mm_login(void){} ++ PHP_IMAP_EXPORT void mm_login_method(void){} ++ PHP_IMAP_EXPORT void mm_login_method(void){} + PHP_IMAP_EXPORT void mm_diskerror(void){} + PHP_IMAP_EXPORT void mm_status(void){} + PHP_IMAP_EXPORT void mm_lsub(void){} +@@ -40078,6 +40081,7 @@ + PHP_IMAP_EXPORT void mm_nocritical(void){} + PHP_IMAP_EXPORT void mm_notify(void){} + PHP_IMAP_EXPORT void mm_login(void){} ++ PHP_IMAP_EXPORT void mm_login_method(void){} + PHP_IMAP_EXPORT void mm_diskerror(void){} + PHP_IMAP_EXPORT void mm_status(void){} + PHP_IMAP_EXPORT void mm_lsub(void){} diff --git a/extra/source/php8/php.ini-development.diff b/extra/source/php81/php.ini-development.diff index 4240941e..4240941e 100644 --- a/extra/source/php8/php.ini-development.diff +++ b/extra/source/php81/php.ini-development.diff diff --git a/extra/source/php81/php81.SlackBuild b/extra/source/php81/php81.SlackBuild new file mode 100755 index 00000000..ddfac67e --- /dev/null +++ b/extra/source/php81/php81.SlackBuild @@ -0,0 +1,340 @@ +#!/bin/bash + +# Build and package mod_php on Slackware. +# by: David Cantrell <david@slackware.com> +# Modified for PHP 4-5 by volkerdi@slackware.com +# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2017, 2019, 2020, 2021 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. + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=php +VERSION=${VERSION:-$(echo php-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +ALPINE=2.25 +BUILD=${BUILD:-1} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i586 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} + +TMP=${TMP:-/tmp} +PKG=$TMP/package-php8/ +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" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -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 + +# Look for Kerberos on the machine and in any precompiled c-client.a: +if /bin/ls /lib${LIBDIRSUFFIX}/libkrb5.so.? 1> /dev/null 2> /dev/null ; then + # Remove the c-client library if it doesn't contain Kerberos support: + if ! grep -q krb5_ /usr/local/lib${LIBDIRSUFFIX}/c-client/lib${LIBDIRSUFFIX}/c-client.a 2> /dev/null ; then + rm -rf /usr/local/lib${LIBDIRSUFFIX}/c-client + fi +else + # Remove the c-client library if it contains Kerberos support: + if grep -q krb5_ /usr/local/lib${LIBDIRSUFFIX}/c-client/lib${LIBDIRSUFFIX}/c-client.a 2> /dev/null ; then + rm -rf /usr/local/lib${LIBDIRSUFFIX}/c-client + fi +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 ; VERSION=${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} + mkdir -p $IMAPLIBDIR/include + cp *.h $IMAPLIBDIR/include + ) +fi + +# Set Kerberos build option: +if /bin/ls /lib${LIBDIRSUFFIX}/libkrb5.so.? 1> /dev/null 2> /dev/null ; then + KRB5_OPTION="--with-kerberos" +else + unset KRB5_OPTION +fi + +mkdir -p $PKG/etc/httpd +mkdir -p $PKG/etc/php.d +# 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.xz || exit 1 +cd php-$VERSION || exit 1 + +# cleanup: +find . -name "*.orig" -delete + +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 + +# Fix for imap API change: +zcat $CWD/php.imap.api.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 + +# NOTE: Added -DU_USING_ICU_NAMESPACE=1 to CXXFLAGS, which should be a temporary +# requirement. See the link below: +# http://site.icu-project.org/download/61#TOC-Migration-Issues + +# -DU_DEFINE_FALSE_AND_TRUE=1 since recent icu4c no longer defines these otherwise. + +# 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 -DU_DEFINE_FALSE_AND_TRUE=1" \ +CXXFLAGS="$SLKCFLAGS -DU_USING_ICU_NAMESPACE=1 -DU_DEFINE_FALSE_AND_TRUE=1" \ +./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.d \ + --with-config-file-path=/etc \ + --with-layout=PHP \ + --disable-sigchild \ + --with-libxml \ + --with-xmlrpc=shared \ + --with-expat \ + --enable-simplexml \ + --enable-xmlreader=shared \ + --enable-dom=shared \ + --enable-filter \ + --disable-debug \ + --with-openssl=shared \ + $KRB5_OPTION \ + --with-external-pcre \ + --with-zlib=shared,/usr \ + --enable-bcmath=shared \ + --with-bz2=shared,/usr \ + --enable-calendar=shared \ + --enable-ctype=shared \ + --with-curl=shared \ + --enable-dba=shared \ + --with-gdbm=/usr \ + --with-db4=/usr \ + --enable-exif=shared \ + --enable-ftp=shared \ + --enable-gd=shared \ + --with-external-gd \ + --with-jpeg \ + --with-xpm \ + --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-mysqlnd=shared \ + --with-mysqli=shared,mysqlnd \ + --with-mysql-sock=/var/run/mysql/mysql.sock \ + --with-iodbc=shared,/usr \ + --enable-pdo=shared \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-sqlite=shared,/usr \ + --with-pdo-odbc=shared,iODBC,/usr \ + --with-pspell=shared,/usr \ + --with-enchant=shared,/usr \ + --enable-shmop=shared \ + --with-snmp=shared,/usr \ + --enable-soap=shared \ + --enable-sockets \ + --with-sqlite3=shared \ + --enable-sysvmsg \ + --enable-sysvsem \ + --enable-sysvshm \ + --with-xsl=shared,/usr \ + --with-zip=shared \ + --with-tsrm-pthreads \ + --enable-intl=shared \ + --enable-opcache \ + --enable-shared=yes \ + --enable-static=no \ + --with-gnu-ld \ + --with-pic \ + --enable-phpdbg \ + --with-sodium \ + --with-password-argon2 \ + --without-readline \ + --with-libedit \ + --with-pear \ + --with-tidy=shared \ + --build=$ARCH-slackware-linux || exit 1 + +# 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 + +# Don't include the c-client library in php-config output: +sed -i "s| -L/usr/local/lib${LIBDIRSUFFIX}/c-client/lib${LIBDIRSUFFIX}||g" $PKG/usr/bin/php-config +sed -i "s| -lc-client||g" $PKG/usr/bin/php-config + +mkdir -p $PKG/etc/{rc.d,php-fpm.d} +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 + +# 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* CONTRIBUTING* EXTENSIONS* LICENSE* NEWS* README* UPGRADING* \ + $PKG/usr/doc/php-$VERSION + +mkdir -p $PKG/etc/httpd +cat $CWD/mod_php.conf.example | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" > $PKG/etc/httpd/mod_php.conf.new +chmod 644 $PKG/etc/httpd/* +chown root:root $PKG/etc/httpd/* + +cp -a php.ini-development php.ini-production $PKG/etc +chmod 755 $PKG/etc/php.d $PKG/etc/php-fpm.d $PKG/etc/httpd +chown root:root $PKG/etc/* + +# 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/php81-$VERSION-$ARCH-$BUILD.txz diff --git a/extra/source/php81/slack-desc b/extra/source/php81/slack-desc new file mode 100644 index 00000000..7188f1cf --- /dev/null +++ b/extra/source/php81/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------------------------------------------------------| +php81: php81 (HTML-embedded scripting language) +php81: +php81: PHP is an HTML-embedded scripting language. It shares syntax +php81: characteristics with C, Java, and Perl. The primary objective behind +php81: this language is to make a fast and easy-to-use scripting language +php81: for dynamic web sites. +php81: +php81: Homepage: https://www.php.net/ +php81: +php81: +php81: |