diff --git a/common/shlibs b/common/shlibs index 5134c4a499a..dbeab4dadfe 100644 --- a/common/shlibs +++ b/common/shlibs @@ -474,6 +474,7 @@ libicudata.so.49 icu-libs-49.1.2_1 libicutu.so.49 icu-libs-49.1.2_1 libicuuc.so.49 icu-libs-49.1.2_1 libaspell.so.15 aspell-0.60_1 +libpspell.so.15 aspell-0.60_1 libhunspell-1.2.so.0 hunspell-1.2.8_1 libenchant.so.1 enchant-1.4.2_1 libgconf-2.so.4 GConf-2.32.0_1 diff --git a/srcpkgs/php-apache b/srcpkgs/php-apache new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-apache @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-cgi b/srcpkgs/php-cgi new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-cgi @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-devel b/srcpkgs/php-devel new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-devel @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-embed b/srcpkgs/php-embed new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-embed @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-enchant b/srcpkgs/php-enchant new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-enchant @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-fpm b/srcpkgs/php-fpm new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-fpm @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-gd b/srcpkgs/php-gd new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-gd @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-intl b/srcpkgs/php-intl new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-intl @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-ldap b/srcpkgs/php-ldap new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-ldap @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-mcrypt b/srcpkgs/php-mcrypt new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-mcrypt @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-mysql b/srcpkgs/php-mysql new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-mysql @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-odbc b/srcpkgs/php-odbc new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-odbc @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-pear b/srcpkgs/php-pear new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-pear @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-pgsql b/srcpkgs/php-pgsql new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-pgsql @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-pspell b/srcpkgs/php-pspell new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-pspell @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-snmp b/srcpkgs/php-snmp new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-snmp @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-sqlite b/srcpkgs/php-sqlite new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-sqlite @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php-xsl b/srcpkgs/php-xsl new file mode 120000 index 00000000000..fa557ad95d0 --- /dev/null +++ b/srcpkgs/php-xsl @@ -0,0 +1 @@ +php \ No newline at end of file diff --git a/srcpkgs/php/files/apache.conf b/srcpkgs/php/files/apache.conf new file mode 100644 index 00000000000..c3ca0aad509 --- /dev/null +++ b/srcpkgs/php/files/apache.conf @@ -0,0 +1,13 @@ +# Required modules: dir_module, php5_module + + + + DirectoryIndex index.php index.html + + SetHandler application/x-httpd-php + + + SetHandler application/x-httpd-php-source + + + diff --git a/srcpkgs/php/files/php-fpm.service b/srcpkgs/php/files/php-fpm.service new file mode 100644 index 00000000000..6e2faafd865 --- /dev/null +++ b/srcpkgs/php/files/php-fpm.service @@ -0,0 +1,13 @@ +[Unit] +Description=The PHP FastCGI Process Manager +After=syslog.target network.target + +[Service] +Type=notify +PIDFile=/run/php-fpm/php-fpm.pid +PrivateTmp=true +ExecStart=/usr/bin/php-fpm --nodaemonize --pid /run/php-fpm/php-fpm.pid +ExecReload=/bin/kill -USR2 $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/srcpkgs/php/files/php-fpm.tmpfiles b/srcpkgs/php/files/php-fpm.tmpfiles new file mode 100644 index 00000000000..801e74f1e62 --- /dev/null +++ b/srcpkgs/php/files/php-fpm.tmpfiles @@ -0,0 +1 @@ +d /run/php-fpm 755 root root diff --git a/srcpkgs/php/patches/php-fpm.conf.in.patch b/srcpkgs/php/patches/php-fpm.conf.in.patch new file mode 100644 index 00000000000..317c2024f2c --- /dev/null +++ b/srcpkgs/php/patches/php-fpm.conf.in.patch @@ -0,0 +1,52 @@ +--- sapi/fpm/php-fpm.conf.in 2013-06-19 22:03:18.000000000 +0200 ++++ sapi/fpm/php-fpm.conf.in 2013-06-20 17:03:03.728835784 +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 argument) + ; - @prefix@ otherwise +-;include=etc/fpm.d/*.conf ++;include=/etc/php/fpm.d/*.conf + + ;;;;;;;;;;;;;;;;;; + ; Global Options ; +@@ -22,7 +22,7 @@ + ; Pid file + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ + ; Default Value: none +-;pid = run/php-fpm.pid ++pid = /run/php-fpm/php-fpm.pid + + ; Error log file + ; If it's set to "syslog", log is sent to syslogd instead of being written +@@ -156,7 +156,8 @@ + ; specific port; + ; '/path/to/unix/socket' - to listen on a unix socket. + ; Note: This value is mandatory. +-listen = 127.0.0.1:9000 ++;listen = 127.0.0.1:9000 ++listen = /run/php-fpm/php-fpm.sock + + ; Set listen(2) backlog. + ; Default Value: 128 (-1 on FreeBSD and OpenBSD) +@@ -167,9 +168,9 @@ + ; BSD-derived systems allow connections regardless of permissions. + ; Default Values: user and group are set as the running user + ; mode is set to 0666 +-;listen.owner = @php_fpm_user@ +-;listen.group = @php_fpm_group@ +-;listen.mode = 0666 ++listen.owner = @php_fpm_user@ ++listen.group = @php_fpm_group@ ++listen.mode = 0660 + + ; List of ipv4 addresses of FastCGI clients which are allowed to connect. + ; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +@@ -466,7 +467,7 @@ + ; Chdir to this directory at the start. + ; Note: relative path can be used. + ; Default Value: current directory or / when chroot +-;chdir = /var/www ++;chdir = /srv/http + + ; Redirect worker stdout and stderr into main error log. If not set, stdout and + ; stderr will be redirected to /dev/null according to FastCGI specs. diff --git a/srcpkgs/php/patches/php.ini.patch b/srcpkgs/php/patches/php.ini.patch new file mode 100644 index 00000000000..b2e7d8f87c3 --- /dev/null +++ b/srcpkgs/php/patches/php.ini.patch @@ -0,0 +1,122 @@ +--- php.ini-production 2013-08-15 22:42:04.000000000 +0200 ++++ php.ini-production 2013-08-16 08:03:36.178726858 +0200 +@@ -305,7 +305,7 @@ + ; or per-virtualhost web server configuration file. This directive is + ; *NOT* affected by whether Safe Mode is turned On or Off. + ; http://php.net/open-basedir +-;open_basedir = ++open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/ + + ; This directive allows you to disable certain functions for security reasons. + ; It receives a comma-delimited list of function names. This directive is +@@ -702,7 +702,7 @@ + ;;;;;;;;;;;;;;;;;;;;;;;;; + + ; UNIX: "/path1:/path2" +-;include_path = ".:/php/includes" ++include_path = ".:/usr/share/pear" + ; + ; Windows: "\path1;\path2" + ;include_path = ".;c:\php\includes" +@@ -725,7 +725,7 @@ + + ; Directory in which the loadable extensions (modules) reside. + ; http://php.net/extension-dir +-; extension_dir = "./" ++extension_dir = "/usr/lib/php/modules/" + ; On windows: + ; extension_dir = "ext" + +@@ -863,50 +863,48 @@ + ; If you only provide the name of the extension, PHP will look for it in its + ; default extension directory. + ; +-; 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) +-; extension folders as well as the separate PECL DLL download (PHP 5). +-; Be sure to appropriately set the extension_dir directive. +-; +-;extension=php_bz2.dll +-;extension=php_curl.dll +-;extension=php_fileinfo.dll +-;extension=php_gd2.dll +-;extension=php_gettext.dll +-;extension=php_gmp.dll +-;extension=php_intl.dll +-;extension=php_imap.dll +-;extension=php_interbase.dll +-;extension=php_ldap.dll +-;extension=php_mbstring.dll +-;extension=php_exif.dll ; Must be after mbstring as it depends on it +-;extension=php_mysql.dll +-;extension=php_mysqli.dll +-;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client +-;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client +-;extension=php_openssl.dll +-;extension=php_pdo_firebird.dll +-;extension=php_pdo_mysql.dll +-;extension=php_pdo_oci.dll +-;extension=php_pdo_odbc.dll +-;extension=php_pdo_pgsql.dll +-;extension=php_pdo_sqlite.dll +-;extension=php_pgsql.dll +-;extension=php_pspell.dll +-;extension=php_shmop.dll +- +-; The MIBS data available in the PHP distribution must be installed. +-; See http://www.php.net/manual/en/snmp.installation.php +-;extension=php_snmp.dll +- +-;extension=php_soap.dll +-;extension=php_sockets.dll +-;extension=php_sqlite3.dll +-;extension=php_sybase_ct.dll +-;extension=php_tidy.dll +-;extension=php_xmlrpc.dll +-;extension=php_xsl.dll ++;extension=bcmath.so ++;extension=bz2.so ++;extension=calendar.so ++extension=curl.so ++;extension=dba.so ++;extension=enchant.so ++;extension=exif.so ++;extension=ftp.so ++;extension=gd.so ++extension=gettext.so ++;extension=gmp.so ++;extension=iconv.so ++;extension=imap.so ++;extension=intl.so ++;extension=ldap.so ++;extension=mcrypt.so ++;extension=mssql.so ++;extension=mysqli.so ++;extension=mysql.so ++;extension=odbc.so ++;zend_extension=opcache.so ++;extension=openssl.so ++;extension=pdo_mysql.so ++;extension=pdo_odbc.so ++;extension=pdo_pgsql.so ++;extension=pdo_sqlite.so ++;extension=pgsql.so ++;extension=phar.so ++;extension=posix.so ++;extension=pspell.so ++;extension=shmop.so ++;extension=snmp.so ++;extension=soap.so ++;extension=sockets.so ++;extension=sqlite3.so ++;extension=sysvmsg.so ++;extension=sysvsem.so ++;extension=sysvshm.so ++;extension=tidy.so ++;extension=xmlrpc.so ++;extension=xsl.so ++;extension=zip.so + + ;;;;;;;;;;;;;;;;;;; + ; Module Settings ; diff --git a/srcpkgs/php/template b/srcpkgs/php/template new file mode 100644 index 00000000000..c9255e79a97 --- /dev/null +++ b/srcpkgs/php/template @@ -0,0 +1,331 @@ +# Template build file for 'php' +pkgname=php +version=5.5.2 +revision=1 +short_desc="An HTML-embedded scripting language" +license="PHP" +homepage="http://www.php.net" +# XXX freetds, mssql and tidy modules. +hostmakedepends="pkg-config bison" +makedepends="postgresql-libs-devel libldap-devel libvpx-devel sqlite-devel + unixodbc-devel net-snmp-devel libzip-devel enchant-devel libmcrypt-devel + aspell-devel libltdl-devel libpng-devel libjpeg-turbo-devel icu-devel + libcurl-devel libxslt-devel openssl-devel bzip2-devel zlib-devel db-devel + gmp-devel gdbm-devel freetype-devel systemd-devel apache-devel libmysqlclient-devel" +distfiles="http://www.php.net/distributions/php-${version}.tar.bz2" +checksum=e72aaf1fa96eac0bff127bfc74c174d1de50cd3f66d7e0e1ee919674ab463bb7 + +do_build() { + local _phpconfig="--srcdir=.. \ + --config-cache \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc/php \ + --localstatedir=/var \ + --with-layout=GNU \ + --with-config-file-path=/etc/php \ + --with-config-file-scan-dir=/etc/php/conf.d \ + --disable-rpath \ + --mandir=/usr/share/man \ + --without-pear \ + " + + local _phpextensions="--enable-bcmath=shared \ + --enable-calendar=shared \ + --enable-exif=shared \ + --enable-ftp=shared \ + --enable-gd-native-ttf \ + --enable-intl=shared \ + --enable-mbstring \ + --enable-opcache \ + --enable-phar=shared \ + --enable-posix=shared \ + --enable-shmop=shared \ + --enable-soap=shared \ + --enable-sockets=shared \ + --enable-sysvmsg=shared \ + --enable-sysvsem=shared \ + --enable-sysvshm=shared \ + --enable-zip=shared \ + --with-bz2=shared \ + --with-curl=shared \ + --with-db4=/usr \ + --with-enchant=shared,/usr \ + --with-fpm-systemd \ + --with-freetype-dir=/usr \ + --with-gd=shared \ + --with-gdbm \ + --with-gettext=shared \ + --with-gmp=shared \ + --with-iconv=shared \ + --with-icu-dir=/usr \ + --with-jpeg-dir=/usr \ + --with-vpx-dir=/usr \ + --with-ldap=shared \ + --with-ldap-sasl \ + --with-mcrypt=shared \ + --with-mhash \ + --with-mysql-sock=/run/mysqld/mysqld.sock \ + --with-mysql=shared,mysqlnd \ + --with-mysqli=shared,mysqlnd \ + --with-openssl=shared \ + --with-pcre-regex=/usr \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-odbc=shared,unixODBC,/usr \ + --with-pdo-pgsql=shared \ + --with-pdo-sqlite=shared,/usr \ + --with-pgsql=shared \ + --with-png-dir=/usr \ + --with-pspell=shared \ + --with-snmp=shared \ + --with-sqlite3=shared,/usr \ + --with-unixODBC=shared,/usr \ + --with-xmlrpc=shared \ + --with-xsl=shared \ + --with-zlib \ + " + + EXTENSION_DIR=/usr/lib/php/modules + export EXTENSION_DIR + PEAR_INSTALLDIR=/usr/share/pear + export PEAR_INSTALLDIR + + # php + mkdir -p build-php + cd build-php + ln -s ${wrksrc}/configure + ./configure ${_phpconfig} \ + --disable-cgi \ + --with-readline \ + --enable-pcntl \ + ${_phpextensions} + make ${makejobs} + + # cgi and fcgi + # reuse the previous run; this will save us a lot of time + cp -a ${wrksrc}/build-php ${wrksrc}/build-cgi + cd ${wrksrc}/build-cgi + ./configure ${_phpconfig} \ + --disable-cli \ + --enable-cgi \ + ${_phpextensions} + make ${makejobs} + + # apache + cp -a ${wrksrc}/build-php ${wrksrc}/build-apache + cd ${wrksrc}/build-apache + ./configure ${_phpconfig} \ + --disable-cli \ + --with-apxs2 \ + ${_phpextensions} + make ${makejobs} + + # fpm + cp -a ${wrksrc}/build-php ${wrksrc}/build-fpm + cd ${wrksrc}/build-fpm + ./configure ${_phpconfig} \ + --disable-cli \ + --enable-fpm \ + --with-fpm-user=http \ + --with-fpm-group=http \ + ${_phpextensions} + make ${makejobs} + + # embed + cp -a ${wrksrc}/build-php ${wrksrc}/build-embed + cd ${wrksrc}/build-embed + ./configure ${_phpconfig} \ + --disable-cli \ + --enable-embed=shared \ + ${_phpextensions} + make ${makejobs} + + # pear + cp -a ${wrksrc}/build-php ${wrksrc}/build-pear + cd ${wrksrc}/build-pear + ./configure ${_phpconfig} \ + --disable-cgi \ + --with-readline \ + --enable-pcntl \ + --with-pear \ + ${_phpextensions} + make ${makejobs} +} + +do_install() { + cd ${wrksrc}/build-php + make INSTALL_ROOT=${DESTDIR} install + + # install php.ini + vinstall ${wrksrc}/php.ini-production 644 etc/php php.ini + # remove static modules + rm -f ${DESTDIR}/usr/lib/php/modules/*.a +} + +php_package() { + conf_files="/etc/php/php.ini" + pkg_install() { + vmove all + } +} + +php-devel_package() { + short_desc+=" - development files" + pkg_install() { + vmove usr/include + vmove usr/lib/php/build + vmove usr/bin/php-config + vmove usr/bin/phpize + vmove usr/share/man/man1/phpize.1 + vmove usr/share/man/man1/php-config.1 + } +} + +php-cgi_package() { + short_desc='CGI and FCGI SAPI for PHP' + depends="php-${version}_${revision}" + pkg_install() { + vinstall ${wrksrc}/build-cgi/sapi/cgi/php-cgi 755 usr/bin + } +} + +php-apache_package() { + short_desc='Apache SAPI for PHP' + depends="php-${version}_${revision}" + conf_files="/etc/httpd/conf/extra/php5_module.conf" + pkg_install() { + vinstall ${wrksrc}/build-apache/libs/libphp5.so 755 usr/libexec/httpd/modules + vinstall ${FILESDIR}/apache.conf 644 etc/httpd/conf/extra php5_module.conf + } +} + +php-fpm_package() { + short_desc='FastCGI Process Manager for PHP' + depends="php-${version}_${revision}" + conf_files="/etc/php/php-fpm.conf" + make_dirs="/etc/php/fpm.d 0755 root root" + pkg_install() { + vinstall ${wrksrc}/build-fpm/sapi/fpm/php-fpm 755 usr/bin + vinstall ${wrksrc}/build-fpm/sapi/fpm/php-fpm.8 644 usr/share/man/man8 + vinstall ${wrksrc}/build-fpm/sapi/fpm/php-fpm.conf 644 etc/php + vinstall ${FILESDIR}/php-fpm.tmpfiles 644 usr/lib/tmpfiles.d php-fpm.conf + vinstall ${FILESDIR}/php-fpm.service 644 usr/lib/systemd/system + } +} + +php-embed_package() { + depends="php-${version}_${revision}" + short_desc='Embed SAPI for PHP' + pkg_install() { + vinstall ${wrksrc}/build-embed/libs/libphp5.so 755 usr/lib + vinstall ${wrksrc}/sapi/embed/php_embed.h 644 usr/include/php/sapi/embed + } +} + +php-pear_package() { + depends="php-${version}_${revision}" + short_desc='PHP Extension and Application Repository' + conf_files="/etc/php/pear.conf" + pkg_install() { + cd ${wrksrc}/build-pear + make install-pear INSTALL_ROOT=${PKGDESTDIR} + rm -rf ${PKGDESTDIR}/.{channels,depdb,depdblock,filemap,lock,registry} + rm -rf ${PKGDESTDIR}/usr/share/pear/.{channels,depdb,depdblock,filemap,lock,registry} + } +} + +php-enchant_package() { + depends="php-${version}_${revision}" + short_desc='enchant module for PHP' + pkg_install() { + vmove usr/lib/php/modules/enchant.so + } +} + +php-gd_package() { + depends="php-${version}_${revision}" + short_desc='gd module for PHP' + pkg_install() { + vmove usr/lib/php/modules/gd.so + } +} + +php-intl_package() { + depends="php-${version}_${revision}" + short_desc='Internationalization module for PHP' + pkg_install() { + vmove usr/lib/php/modules/intl.so + } +} + +php-ldap_package() { + depends="php-${version}_${revision}" + short_desc='LDAP module for PHP' + pkg_install() { + vmove usr/lib/php/modules/ldap.so + } +} + +php-mcrypt_package() { + depends="php-${version}_${revision}" + short_desc='mcrypt module for PHP' + pkg_install() { + vmove usr/lib/php/modules/mcrypt.so + } +} + +php-mysql_package() { + depends="php-${version}_${revision}" + short_desc='MySQL modules for PHP' + pkg_install() { + vmove "usr/lib/php/modules/*mysql*.so" + } +} + +php-odbc_package() { + depends="php-${version}_${revision}" + short_desc='ODBC modules for PHP' + pkg_install() { + vmove "usr/lib/php/modules/*odbc.so" + } +} + +php-pgsql_package() { + depends="php-${version}_${revision}" + short_desc='PostgreSQL modules for PHP' + pkg_install() { + vmove "usr/lib/php/modules/*pgsql.so" + } +} + +php-pspell_package() { + depends="php-${version}_${revision}" + short_desc='pspell module for PHP' + pkg_install() { + vmove usr/lib/php/modules/pspell.so + } +} + +php-snmp_package() { + depends="php-${version}_${revision}" + short_desc='snmp module for PHP' + pkg_install() { + vmove usr/lib/php/modules/snmp.so + } +} + +php-sqlite_package() { + depends="php-${version}_${revision}" + short_desc='sqlite module for PHP' + pkg_install() { + vmove "usr/lib/php/modules/*sqlite*.so" + } +} + +php-xsl_package() { + depends="php-${version}_${revision}" + short_desc='XSL module for PHP' + pkg_install() { + vmove usr/lib/php/modules/xsl.so + } +}