> 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/") We prefer HTTPS when available, which is the case for https://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" Please move this to a source "snippet", so that they are not included in `guix build -S`. I believe we also have to list the licenses of the bundles that cannot be removed in the (license) field. > + #: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