From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Lepiller Subject: Re: [PATCH] Add php Date: Sun, 30 Oct 2016 17:51:05 +0100 Message-ID: <20161030175105.1f6eeff2@polymos.lepiller.eu> References: <20161030130828.3797d37d@polymos.lepiller.eu> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/+f/jvSc5kL4_ZG/iqjjM9Ce" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:37341) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c0tIn-0001P7-PO for guix-devel@gnu.org; Sun, 30 Oct 2016 12:49:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c0tIk-0007i2-AP for guix-devel@gnu.org; Sun, 30 Oct 2016 12:49:45 -0400 Received: from dau94-h03-89-91-205-84.dsl.sta.abo.bbox.fr ([89.91.205.84]:47706 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 1c0tIj-0007eo-Ms for guix-devel@gnu.org; Sun, 30 Oct 2016 12:49:42 -0400 Received: from localhost (localhost [127.0.0.1]) by skaro.lepiller.eu (Postfix) with ESMTP id 0305081CFE for ; Sun, 30 Oct 2016 17:49:39 +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 HiLdeeJ2gg2j for ; Sun, 30 Oct 2016 17:49:31 +0100 (CET) Received: from polymos.lepiller.eu (bbox.lan [192.168.1.254]) by skaro.lepiller.eu (Postfix) with ESMTPSA id B6E5D81380 for ; Sun, 30 Oct 2016 17:49:30 +0100 (CET) In-Reply-To: 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_/+f/jvSc5kL4_ZG/iqjjM9Ce Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline On Sun, 30 Oct 2016 15:03:39 +0100 Tobias Geerinckx-Rice wrote: > Julien, > > On 30/10/16 13:08, Julien Lepiller wrote: > > here is a patch to add php to guix. > > Excellent! I see you've broken into my machine (probably through PHP), > stolen my bitrotting PHP 7 package and greatly improved it. Thanks! > > An incomplete review: > > > + (chdir "ext") > [...] > > + (chdir "..")))) > > Try with-directory-excursion. > > > + "--enable-fpm" "-with-openssl" > > s/-with-openssl/--with-openssl/, although the option would seem > unnecessary if the result is the same. > > > + ;"--with-snmp" > > Best add a comment explaining why this is unavailable, desirable, and, > if possible, what's needed to fix it. > > + #:tests? #f)) > > There are tests, but many fail. This should be explained in a comment > (or fixed ;-). I keep tests enabled on my machine because I hate PHP > and like to hear it scream. > > Bonus fun fact: catastrophic test failure is non-fatal and the thing > installs fine. > > > + (synopsis "PHP programming language") > > + (description > > + "PHP is one of the most commonly used programming language > > the web") > > s/language/languages/ and a missing full stop, but it would be nice to > add even more. For example: > > 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. > > Thanks again for working on this! > > Kind regards, > > T G-R > Here is a new patch that addresses your comments and Efraim's. Also I'm pretty sure you're not supposed to end a description with a full stop. --MP_/+f/jvSc5kL4_ZG/iqjjM9Ce Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0001-gnu-Add-php.patch =46rom 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 =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..14d9b21 --- /dev/null +++ b/gnu/packages/php.scm @@ -0,0 +1,192 @@ +;;; 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.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=3D" + (assoc-ref %build-inputs "libxml2")) + (string-append "--with-readline=3D" + (assoc-ref %build-inputs "readline")) + (string-append "--with-sqlite3=3D" + (assoc-ref %build-inputs "sqlite")) + (string-append "--with-pdo-sqlite=3D" + (assoc-ref %build-inputs "sqlite")) + (string-append "--with-pcre-regex=3D" + (assoc-ref %build-inputs "pcre")) + (string-append "--with-pcre-dir=3D" + (assoc-ref %build-inputs "pcre")) + (string-append "--with-zlib-dir=3D" + (assoc-ref %build-inputs "zlib")) + (string-append "--with-libzip=3D" + (assoc-ref %build-inputs "zip")) + (string-append "--with-bz2=3D" + (assoc-ref %build-inputs "bzip2")) + (string-append "--with-curl=3D" + (assoc-ref %build-inputs "curl")) + (string-append "--with-gd=3D" + (assoc-ref %build-inputs "gd")) + (string-append "--with-webp-dir=3D" + (assoc-ref %build-inputs "libwebp")) + (string-append "--with-jpeg-dir=3D" + (assoc-ref %build-inputs "libjpeg")) + (string-append "--with-png-dir=3D" + (assoc-ref %build-inputs "libpng")) + (string-append "--with-xpm-dir=3D" + (assoc-ref %build-inputs "libxpm")) + (string-append "--with-freetype-dir=3D" + (assoc-ref %build-inputs "freetype")) + (string-append "--with-gettext=3D" + (assoc-ref %build-inputs "glibc")) ; libint= l.h + (string-append "--with-gmp=3D" + (assoc-ref %build-inputs "gmp")) + (string-append "--with-onig=3D" + (assoc-ref %build-inputs "oniguruma")) + (string-append "--with-xsl=3D" + (assoc-ref %build-inputs "libxslt")) + (string-append "--with-ldap=3D" + (assoc-ref %build-inputs "openldap")) + (string-append "--with-ldap-sasl=3D" + (assoc-ref %build-inputs "cyrus-sasl")) + ;; PHP=E2=80=99s Pspell extension, while retaining its cur= rent name, + ;; now uses the Aspell library. + (string-append "--with-pspell=3D" + (assoc-ref %build-inputs "aspell")) + (string-append "--with-tidy=3D" + (assoc-ref %build-inputs "tidy")) + (string-append "--with-gdbm=3D" + (assoc-ref %build-inputs "gdbm")) + (string-append "--with-pgsql=3D" + (assoc-ref %build-inputs "postgresql")) + (string-append "--with-pdo-pgsql=3D" + (assoc-ref %build-inputs "postgresql")) + "--enable-fpm" "--with-openssl" + "--with-zlib" "--enable-bcmath=3Dshared" + "--enable-calendar" "--enable-dba=3Dshared" + "--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 sn= mp + ;; 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 --=20 2.10.1 --MP_/+f/jvSc5kL4_ZG/iqjjM9Ce--