From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Lepiller Subject: Re: [PATCH] Add php Date: Fri, 11 Nov 2016 17:31:23 +0100 Message-ID: <20161111173123.51375f43@polymos.lepiller.eu> References: <20161030130828.3797d37d@polymos.lepiller.eu> <20161030175105.1f6eeff2@polymos.lepiller.eu> <87ins9s9y1.fsf@duckhunt.i-did-not-set--mail-host-address--so-tickle-me> <20161102224052.7ec98d2d@lepiller.eu> <87eg2k8xp2.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/+.JqPvWgTJ=Nw2.0KJkAxfn" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53567) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c5Ei5-0000bN-0c for guix-devel@gnu.org; Fri, 11 Nov 2016 11:29:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c5Ei1-0008Ji-G2 for guix-devel@gnu.org; Fri, 11 Nov 2016 11:29:49 -0500 Received: from dau94-h03-89-91-205-84.dsl.sta.abo.bbox.fr ([89.91.205.84]:32818 helo=skaro.lepiller.eu) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c5Ei0-0008Er-S4 for guix-devel@gnu.org; Fri, 11 Nov 2016 11:29:45 -0500 Received: from localhost (localhost [127.0.0.1]) by skaro.lepiller.eu (Postfix) with ESMTP id 462C581010 for ; Fri, 11 Nov 2016 17:29:41 +0100 (CET) Received: from skaro.lepiller.eu ([127.0.0.1]) by localhost (lepiller.eu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GV9D4Kems6by for ; Fri, 11 Nov 2016 17:29:33 +0100 (CET) Received: from polymos.lepiller.eu (bbox.lan [192.168.1.254]) by skaro.lepiller.eu (Postfix) with ESMTPSA id 33BE980BD9 for ; Fri, 11 Nov 2016 17:29:33 +0100 (CET) In-Reply-To: <87eg2k8xp2.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --MP_/+.JqPvWgTJ=Nw2.0KJkAxfn Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Wed, 09 Nov 2016 16:44:41 +0100 ludo@gnu.org (Ludovic Court=C3=A8s) wrote: > Hello Julien, >=20 > Seems like the original reviewer (hi Marius! ;-)) missed this > revision, so here are a few comments. >=20 > Julien Lepiller skribis: >=20 > > From 94c512aa3c9710b65b6fce0cd108744a7c308c63 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. =20 >=20 > Only the first line is needed. >=20 > > + (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" =20 >=20 > Is it hard to unbundle =E2=80=98bc=E2=80=99 and =E2=80=98file=E2=80=99 (l= ibmagic)? >=20 > > + (build-system gnu-build-system) > > + (arguments > > + '( > > + #:configure-flags =20 >=20 > Please adjust the indentation (check what other files do.) >=20 > > + (list (string-append "--with-libxml-dir=3D" > > + (assoc-ref %build-inputs > > "libxml2")) =20 >=20 > I suggest this trick to make it a bit more concise: >=20 > #:configure-flags > (let-syntax ((with (syntax-rules () > ((_ option input) > (string-append option "=3D" > (assoc-ref %build-inputs > input)))))) (list (with "--with-libxml-dir" "libxml2") > (with "--with-readline" "readline") > =E2=80=A6)) >=20 > > + ; A lot of tests fail and failure is not considered fatal. > > + #:tests? #f)) =20 >=20 > In what sense is it not considered fatal? :-) >=20 > 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. >=20 > > + (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 =20 >=20 > So PHP itself is GPLv2-only? >=20 > Apart from that, I think we=E2=80=99re almost done. >=20 > 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. >=20 > Thank you for working on it! >=20 > Ludo=E2=80=99. --MP_/+.JqPvWgTJ=Nw2.0KJkAxfn Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0001-gnu-Add-php.patch =46rom 22a19a5681713f6adbce84bc4c1d94d94264aa51 Mon Sep 17 00:00:00 2001 From: Julien Lepiller 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 =3D \ %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 =C2=A9 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.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 "=3D" + (assoc-ref %build-inputs inpu= t)))))) + (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=E2=80=99s Pspell extension, while retaining its cu= rrent 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=3Dshared" + "--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 th= at + ;; we don't have a package for. It is used to build the s= nmp + ;; 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 t= here + ; is no network configured. This is only considered a warning, a= nd + ; the testing always returns successfully. + ; The log files indicate tests return no output (thus failing), b= ut + ; 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 --=20 2.10.2 --MP_/+.JqPvWgTJ=Nw2.0KJkAxfn--