On Wed, 09 Nov 2016 16:44:41 +0100 l...@gnu.org (Ludovic Courtès) wrote: > Hello Julien, > > Seems like the original reviewer (hi Marius! ;-)) missed this > revision, so here are a few comments. > > Julien Lepiller <jul...@lepiller.eu> skribis: > > > From 94c512aa3c9710b65b6fce0cd108744a7c308c63 Mon Sep 17 00:00:00 > > 2001 From: Julien Lepiller <jul...@lepiller.eu> > > 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. > > Only the first line is needed. > > > + (snippet > > + '(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" > > + ;"date/lib" > > Is it hard to unbundle ‘bc’ and ‘file’ (libmagic)? > > > + (build-system gnu-build-system) > > + (arguments > > + '( > > + #:configure-flags > > Please adjust the indentation (check what other files do.) > > > + (list (string-append "--with-libxml-dir=" > > + (assoc-ref %build-inputs > > "libxml2")) > > I suggest this trick to make it a bit more concise: > > #:configure-flags > (let-syntax ((with (syntax-rules () > ((_ option input) > (string-append option "=" > (assoc-ref %build-inputs > input)))))) (list (with "--with-libxml-dir" "libxml2") > (with "--with-readline" "readline") > …)) > > > + ; A lot of tests fail and failure is not considered fatal. > > + #:tests? #f)) > > In what sense is it not considered fatal? :-) > > It would be nice to have some understanding of why the test fails. If > it turns out to be difficult to fix, we can at least document the > problem in the comment, with enough detail. Could you try to > investigate a bit? I investigated a bit, but couldn't find any reason. logs say that tests print nothing where they should print the result, so they fail. When I run them later from outside the build environment (with the php executable that was built), it works perfectly fine though.
> > > + (license license:gpl2)));(list > > + ; (license:non-copyleft "file://LICENSE"); the php > > license > > + ; license:lgpl2.1;bcmath and libmbfl > > + ; license:bsd-2;libmagic > > + ; license:expat)));date/lib > > So PHP itself is GPLv2-only? > > Apart from that, I think we’re almost done. > > Could you send an updated patch to address those issues? Then we can > happily apply it. here is the updated patch. I let the tests be done because it doesn't harm, but it does no good either, so feel free to disable them if you prefer. > > Thank you for working on it! > > Ludo’.
From 22a19a5681713f6adbce84bc4c1d94d94264aa51 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <jul...@lepiller.eu> Date: Fri, 11 Nov 2016 15:18:29 +0100 Subject: [PATCH] gnu: Add php * gnu/packages/php.scm: New file. --- gnu/local.mk | 1 + gnu/packages/php.scm | 179 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 gnu/packages/php.scm diff --git a/gnu/local.mk b/gnu/local.mk index b3a4cd5..2ec7a91 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -293,6 +293,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..ce35e35 --- /dev/null +++ b/gnu/packages/php.scm @@ -0,0 +1,179 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Julien Lepiller <jul...@lepiller.eu> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + +(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.13") + (home-page "https://secure.php.net/") + (source (origin + (method url-fetch) + (uri (string-append home-page "distributions/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1gzihbpcp51jc587gs1ryn59hsnr7vf5427dmcvdimvm77wsfyrm")) + (modules '((guix build utils))) + (snippet + '(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. + ; ext/bcmath/php_bcmath.h requires it + ; unconditionnaly. + ;"fileinfo/libmagic" + ; ext/fileinfo/libmagic/apprentice.lo will be + ; built, with no configure flag to prevent it if + ; we want the feature. + ;"mbstring/libmbfl" + ;"date/lib" + (build-system gnu-build-system) + (arguments + '(#:configure-flags + (let-syntax ((with (syntax-rules () + ((_ option input) + (string-append option "=" + (assoc-ref %build-inputs input)))))) + (list (with "--with-libxml-dir" "libxml2") + (with "--with-readline" "readline") + (with "--with-sqlite3" "sqlite") + (with "--with-pdo-sqlite" "sqlite") + (with "--with-pcre-regex" "pcre") + (with "--with-pcre-dir" "pcre") + (with "--with-zlib-dir" "zlib") + (with "--with-libzip" "zip") + (with "--with-bz2" "bzip2") + (with "--with-gd" "gd") + (with "--with-curl" "curl") + (with "--with-webp-dir" "libwebp") + (with "--with-jpeg-dir" "libjpeg") + (with "--with-png-dir" "libpng") + (with "--with-xpm-dir" "libxpm") + (with "--with-freetype-dir" "freetype") + (with "--with-gettext" "glibc") ; libintl.h + (with "--with-gmp" "gmp") + (with "--with-onig" "oniguruma") + (with "--with-xsl" "libxslt") + (with "--with-ldap" "openldap") + (with "--with-ldap-sasl" "cyrus-sasl") + ;; PHPâs Pspell extension, while retaining its current name, + ;; now uses the Aspell library. + (with "--with-pspell" "aspell") + (with "--with-tidy" "tidy") + (with "--with-gdbm" "gdbm") + (with "--with-pgsql" "postgresql") + (with "--with-pdo-pgsql" "postgresql") + "--enable-fpm" "--with-openssl" "--with-zlib" + "--enable-calendar" "--enable-dba=shared" + "--enable-mbstring" "--enable-inifile" "--enable-flatfile" + "--enable-exif" "--enable-mbstring" "--enable-ftp" + "--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 (maybe all). Normally, it would ask the user + ; whether they want to send a report, but it fails too, because there + ; is no network configured. This is only considered a warning, and + ; the testing always returns successfully. + ; The log files indicate tests return no output (thus failing), but + ; when I ran some manually, they passed. + #:tests? #t)) + (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 (list + (license:non-copyleft "file://LICENSE"); the php license + license:lgpl2.1;bcmath and libmbfl + license:bsd-2;libmagic + license:expat))));date/lib -- 2.10.2