123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- #
- # Licensed under the GNU General Public License, version 3.
- # See the file http://www.gnu.org/licenses/gpl.txt
- from pisi.actionsapi import get
- from pisi.actionsapi import autotools
- from pisi.actionsapi import pisitools
- from pisi.actionsapi import shelltools
- def extensions():
- configure_disabled = []
- configure_enabled = [
- 'exif', 'ftp', 'soap', 'sockets', 'bcmath',
- 'dom', 'wddx', 'tokenizer', 'simplexml', 'mbstring', 'calendar',
- 'gd-native-ttf', 'gd'
- ]
- configure_shared = [
- 'dba', 'embedded-mysqli', 'zip', 'gd'
- ]
- configure_with = [
- 'bz2', 'curl', 'iconv', 'mysql', 'mysqli', 'kerberos', 'sqlite3',
- 'xsl', 'gdbm', 'db', 'ldap', 'gd', 'gettext',
- 'regex=php', 'pic', 'pcre-regex', 'pgsql', 'pdo-mysql', 'pdo-pgsql',
- 'openssl'
- ]
- configure_without = []
- conf = []
- for i in configure_disabled:
- conf.append("--disable-%s" % i)
- for i in configure_enabled:
- conf.append("--enable-%s " % i)
- for i in configure_shared:
- conf.append("--enable-%s=shared" % i)
- for i in configure_with:
- conf.append("--with-%s" % i)
- for i in configure_without:
- conf.append("--without-%s" % i)
- return ' '.join(conf)
- def setup():
- #shelltools.unlinkDir("ext/openssl")
- # create directories for apache, fcgi and fpm's Makefiles
- shelltools.makedirs("fcgi")
- shelltools.makedirs("apache")
- shelltools.makedirs("fpm")
- shelltools.makedirs("common")
- # link configure script
- shelltools.sym("../configure", "fcgi/configure")
- shelltools.sym("../configure", "apache/configure")
- shelltools.sym("../configure", "fpm/configure")
- shelltools.sym("../configure", "common/configure")
- shelltools.export("LC_ALL", "C")
- shelltools.export("CFLAGS", "%s -fwrapv -lkrb5 -lgssapi_krb5 -lpam -DU_USING_ICU_NAMESPACE=1" % get.CFLAGS())
- shelltools.export("NO_INTERACTION", "1")
- shelltools.export("EXTENSION_DIR", "/usr/lib/php/modules")
- # shelltools.system("sed -i '/APACHE_THREADED_MPM=/d' sapi/apache2handler/config.m4")
- # pisitools.dosed("ext/pgsql/config.m4", "include/postgresql", " include/postgresql/pgsql")
- # Don't touch apache.conf
- # for i in pisitools.ls("sapi/*/config.m4"):
- # pisitools.dosed(i, "\\-i \\-a \\-n php8", "-i -n php8")
- # pisitools.dosed(i, "\\-i \\-A \\-n php8", "-i -n php8")
- autotools.autoconf()
- # workaround for pkg-config 0.28
- pisitools.dosed("configure", " && test -n \"\$OPENSSL_INCS\"")
- common_options = "--sysconfdir=/etc \
- --cache-file=./config.cache \
- --with-zlib-dir=/usr/lib \
- --with-libxml-dir=/usr/lib \
- --with-jpeg-dir=/usr/lib/ \
- --with-png-dir=/usr/lib/ \
- --with-freetype-dir=/usr \
- --with-zend-vm=GOTO \
- --with-zend-vm=SWITCH \
- --with-db4=/usr/lib \
- --with-pic \
- --with-libzip \
- --with-gnu-ld \
- --enable-gd=shared \
- --with-external-gd \
- --config-cache \
- --with-system-tzdata=/usr/share/zoneinfo \
- --with-mcrypt=/usr/bin/mcrypt \
- --with-imap=shared \
- --with-imap-ssl \
- --with-mysql-sock=/run/mysqld/mysqld.sock \
- --with-pear \
- --with-zlib \
- --with-zip=shared \
- --disable-rpath \
- "
- # Enable FastCGI and CGI
- shelltools.cd("fcgi")
- autotools.configure("--enable-cgi \
- --disable-cli \
- --with-config-file-path=/etc/php/cli \
- --with-config-file-scan-dir=/etc/php/cli/ext \
- %s \
- %s" % (common_options, extensions()))
- # Enable Apache
- shelltools.cd("../apache")
- autotools.configure("--with-apxs2=/usr/bin/apxs \
- --disable-cli \
- --with-config-file-path=/etc/php/apache2 \
- --with-config-file-scan-dir=/etc/php/apache2/ext \
- %s \
- %s" % (common_options, extensions()))
- # Enable FPM
- shelltools.cd("../fpm")
- autotools.configure("--enable-fpm \
- --disable-cli \
- --with-fpm-user=apache \
- --with-fpm-group=apache \
- --with-config-file-path=/etc/php/apache2 \
- --with-config-file-scan-dir=/etc/php/apache2/ext \
- %s \
- %s" % (common_options, extensions()))
-
- # Enable common
- shelltools.cd("../common")
- autotools.configure("--enable-cli \
- --enable-phpdbg \
- %s \
- %s" % (common_options, extensions()))
- def build():
- shelltools.cd("fcgi")
- shelltools.export("LC_ALL", "en_US.UTF-8")
- autotools.make()
- shelltools.cd("../apache")
- autotools.make()
- shelltools.cd("../fpm")
- autotools.make()
-
- shelltools.cd("../common")
- autotools.make()
- def check():
- shelltools.cd("apache")
- autotools.make("test")
- def install():
- shelltools.cd("fcgi")
- # autotools.rawInstall("INSTALL_ROOT=\"%s\"" % get.installDIR(), "install-modules install-build install-headers install-programs install-pharcmd")
- autotools.rawInstall("INSTALL_ROOT=\"%s\"" % get.installDIR(), "install-cgi")
- autotools.rawInstall("INSTALL_ROOT=\"%s\"" % get.installDIR(), "install-sapi")
- shelltools.cd("../apache")
- # autotools.rawInstall("INSTALL_ROOT=\"%s\"" % get.installDIR(), "install-modules install-sapi")
- pisitools.insinto("/usr/lib/apache2/modules", "libs/libphp.so")
- shelltools.chmod(get.installDIR() + "/usr/lib/apache2/modules/libphp.so")
- shelltools.cd("../fpm")
- autotools.rawInstall("INSTALL_ROOT=\"%s\"" % get.installDIR(), "install-fpm")
-
- shelltools.cd("../common")
- autotools.rawInstall("INSTALL_ROOT=\"%s\"" % get.installDIR(), "install")
- shelltools.cd("..")
- pisitools.insinto("/etc/php/apache2/", "php.ini-development", "php.ini")
- pisitools.insinto("/etc/php/cli/", "php.ini-development", "php.ini")
- pisitools.dosed("%s/etc/php/*/php.ini" % get.installDIR(), "(extension_dir = .*)", ";\\1")
- pisitools.dosed("%s/etc/php/*/php.ini" % get.installDIR(), r";include_path = \".:/php/includes\"",
- "include_path = \".:/usr/share/php5/PEAR\"")
- pisitools.dodir("/etc/php/ext")
- pisitools.dodir("/etc/php/apache2/ext")
- pisitools.dodir("/etc/php/cli/ext")
- # Operations for php-zip package
- pisitools.dosym("/etc/php/ext/10-php-zip.ini", "/etc/php/cli/ext/10-php-zip.ini")
- # Operations for php-imap package
- pisitools.dosym("/etc/php/ext/11-php-imap.ini", "/etc/php/cli/ext/11-php-imap.ini")
- pisitools.dosym("/etc/php/ext/11-php-imap.ini", "/etc/php/apache2/ext/11-php-imap.ini")
- # Move /var/run to run
- pisitools.domove("/var/run", "/")
- pisitools.remove("/etc/php-fpm.conf.default")
- pisitools.dodir("/var/log/php-fpm/")
- pisitools.remove("/.depdb")
- pisitools.remove("/.depdblock")
- pisitools.remove("/.lock")
- pisitools.remove("/.filemap")
- pisitools.removeDir("/.channels")
- pisitools.removeDir("/.registry")
|