From 2b0d70360296a9f7639529507bea6d28d3524e06 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 30 Oct 2016 15:05:51 +0100 Subject: [PATCH] gnu: Add php * gnu/packages/php.scm: New file. * gnu/packages/php.scm (php): New variable. --- gnu/local.mk | 1 + gnu/packages/php.scm | 192 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 193 insertions(+) create mode 100644 gnu/packages/php.scm diff --git a/gnu/local.mk b/gnu/local.mk index 8ee8b8c..dd6a4b0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -292,6 +292,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/pem.scm \ %D%/packages/perl.scm \ %D%/packages/photo.scm \ + %D%/packages/php.scm \ %D%/packages/pkg-config.scm \ %D%/packages/plotutils.scm \ %D%/packages/polkit.scm \ diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm new file mode 100644 index 0000000..14d9b21 --- /dev/null +++ b/gnu/packages/php.scm @@ -0,0 +1,192 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Julien Lepiller +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages php) + #:use-module (gnu packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages aspell) + #:use-module (gnu packages base) + #:use-module (gnu packages bison) + #:use-module (gnu packages compression) + #:use-module (gnu packages curl) + #:use-module (gnu packages cyrus-sasl) + #:use-module (gnu packages databases) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages gd) + #:use-module (gnu packages gettext) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages image) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages openldap) + #:use-module (gnu packages pcre) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages readline) + #:use-module (gnu packages textutils) + #:use-module (gnu packages tls) + #:use-module (gnu packages web) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) + #:use-module (gnu packages zip) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:prefix license:)) + +(define-public php + (package + (name "php") + (version "7.0.12") + (home-page "http://www.php.net/") + (source (origin + (method url-fetch) + (uri (string-append home-page "distributions/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1zw33fbkrschqr2yrmvcp1z34v4rvqzm0pn1vsamjbi43jgc9mpk")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'unbundle + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "ext" + (for-each delete-file-recursively + '("pcre/pcrelib" + "sqlite3/libsqlite" + "gd/libgd" + "mbstring/oniguruma" + "xmlrpc/libxmlrpc" + "zip/lib")))))) + ;; couldn't unbundle these libraries: + ;"bcmath/libbcmath" ;; this is bc. + ;"fileinfo/libmagic" + ;"mbstring/libmbfl" + #:configure-flags + (list (string-append "--with-libxml-dir=" + (assoc-ref %build-inputs "libxml2")) + (string-append "--with-readline=" + (assoc-ref %build-inputs "readline")) + (string-append "--with-sqlite3=" + (assoc-ref %build-inputs "sqlite")) + (string-append "--with-pdo-sqlite=" + (assoc-ref %build-inputs "sqlite")) + (string-append "--with-pcre-regex=" + (assoc-ref %build-inputs "pcre")) + (string-append "--with-pcre-dir=" + (assoc-ref %build-inputs "pcre")) + (string-append "--with-zlib-dir=" + (assoc-ref %build-inputs "zlib")) + (string-append "--with-libzip=" + (assoc-ref %build-inputs "zip")) + (string-append "--with-bz2=" + (assoc-ref %build-inputs "bzip2")) + (string-append "--with-curl=" + (assoc-ref %build-inputs "curl")) + (string-append "--with-gd=" + (assoc-ref %build-inputs "gd")) + (string-append "--with-webp-dir=" + (assoc-ref %build-inputs "libwebp")) + (string-append "--with-jpeg-dir=" + (assoc-ref %build-inputs "libjpeg")) + (string-append "--with-png-dir=" + (assoc-ref %build-inputs "libpng")) + (string-append "--with-xpm-dir=" + (assoc-ref %build-inputs "libxpm")) + (string-append "--with-freetype-dir=" + (assoc-ref %build-inputs "freetype")) + (string-append "--with-gettext=" + (assoc-ref %build-inputs "glibc")) ; libintl.h + (string-append "--with-gmp=" + (assoc-ref %build-inputs "gmp")) + (string-append "--with-onig=" + (assoc-ref %build-inputs "oniguruma")) + (string-append "--with-xsl=" + (assoc-ref %build-inputs "libxslt")) + (string-append "--with-ldap=" + (assoc-ref %build-inputs "openldap")) + (string-append "--with-ldap-sasl=" + (assoc-ref %build-inputs "cyrus-sasl")) + ;; PHP’s Pspell extension, while retaining its current name, + ;; now uses the Aspell library. + (string-append "--with-pspell=" + (assoc-ref %build-inputs "aspell")) + (string-append "--with-tidy=" + (assoc-ref %build-inputs "tidy")) + (string-append "--with-gdbm=" + (assoc-ref %build-inputs "gdbm")) + (string-append "--with-pgsql=" + (assoc-ref %build-inputs "postgresql")) + (string-append "--with-pdo-pgsql=" + (assoc-ref %build-inputs "postgresql")) + "--enable-fpm" "--with-openssl" + "--with-zlib" "--enable-bcmath=shared" + "--enable-calendar" "--enable-dba=shared" + "--enable-ftp" + "--enable-mbstring" "--enable-inifile" "--enable-flatfile" + "--enable-exif" "--enable-mbstring" + "--enable-pcntl" "--with-pdo-mysql" + "--enable-sockets" + "--with-iconv") + ;; we could add "--with-snmp", but it requires netsnmp that + ;; we don't have a package for. It is used to build the snmp + ;; extension of php. + #:test-target "test" + ;; A lot of tests fail and failure is not considered fatal. + #:tests? #f)) + (inputs `(("readline" ,readline) + ("pcre" ,pcre) + ("aspell" ,aspell) + ("glibc" ,glibc) + ("gmp" ,gmp) + ("sqlite" ,sqlite) + ("openssl" ,openssl) + ("tidy" ,tidy) + ("openldap" ,openldap) + ("libxslt" ,libxslt) + ("libwebp" ,libwebp) + ("libpng" ,libpng) + ("libxpm" ,libxpm) + ("libx11" ,libx11) + ("libjpeg" ,libjpeg) + ("libgcrypt" ,libgcrypt) + ("oniguruma" ,oniguruma) + ("bzip2" ,bzip2) + ("freetype" ,freetype) + ("gdbm" ,gdbm) + ("postgresql" ,postgresql) + ("gd" ,gd) + ("zip" ,zip) + ("cyrus-sasl" ,cyrus-sasl) + ("curl" ,curl) + ("zlib" ,zlib) + ("libxml2" ,libxml2))) + (native-inputs `(("pkg-config" ,pkg-config) + ("bison" ,bison) + ("intltool" ,intltool) + ("libxml2" ,libxml2))) ; for xml2-config + (synopsis "PHP programming language") + (description + "PHP (PHP Hypertext Processor) is a server-side (CGI) scripting +language designed primarily for web development but is also used as +a general-purpose programming language. PHP code may be embedded into +HTML code, or it can be used in combination with various web template +systems, web content management systems and web frameworks.") + + (license (license:non-copyleft "file://LICENSE")))); the php license -- 2.10.1