guix-glicid/glicid/packages/php.scm

279 lines
20 KiB
Scheme
Raw Permalink Normal View History

2023-03-03 15:44:56 +01:00
(define-module (glicid packages php)
2025-02-10 13:12:59 +01:00
#: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 crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
#:use-module (gnu packages dbm)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gd)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
#: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 sqlite)
#: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 (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module ((guix licenses) #:prefix license:))
2023-03-03 15:44:56 +01:00
(define-public php
2025-02-10 13:12:59 +01:00
(package
(name "php")
(version "7.4.30")
(home-page "https://secure.php.net/")
(source (origin
(method url-fetch)
(uri (string-append home-page "distributions/"
"php-" version ".tar.xz"))
(sha256
(base32
"03d7icwys4ikl45q3rgsxv1m3i7kfxhykpx75nn7jzn6697s6wpa"))
(patches (search-patches "glicid/packages/patches/php-bug-74093-test.patch"
"glicid/packages/patches/php-curl-compat.patch"))
(modules '((guix build utils)))
(snippet
'(with-directory-excursion "ext"
(for-each delete-file-recursively
'("gd/libgd"
"pcre/pcre2lib"
"xmlrpc/libxmlrpc"))))))
(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-bz2" "bzip2")
(with "--with-curl" "curl")
(with "--with-gdbm" "gdbm")
(with "--with-gettext" "libc")
(with "--with-gmp" "gmp")
(with "--with-ldap" "openldap")
(with "--with-ldap-sasl" "cyrus-sasl")
(with "--with-pdo-pgsql" "postgresql")
(with "--with-pdo-sqlite" "sqlite")
(with "--with-pgsql" "postgresql")
(with "--with-pspell" "aspell")
(with "--with-readline" "readline")
(with "--with-sodium" "libsodium")
(with "--with-sqlite3" "sqlite")
(with "--with-tidy" "tidy")
(with "--with-xsl" "libxslt")
(with "--with-zlib-dir" "zlib")
"--with-external-pcre"
"--with-external-gd"
"--with-iconv"
"--with-openssl"
"--with-mysqli"
"--with-pdo-mysql"
"--with-zip"
"--with-zlib"
"--enable-bcmath"
"--enable-calendar"
"--enable-dba=shared"
"--enable-exif"
"--enable-flatfile"
"--enable-fpm"
"--enable-ftp"
"--enable-gd"
"--enable-inifile"
"--enable-intl"
"--enable-mbstring"
"--enable-pcntl"
"--enable-sockets"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'do-not-record-build-flags
(lambda _
(substitute* "scripts/php-config.in"
(("@CONFIGURE_OPTIONS@") "")
(("@PHP_LDFLAGS@") ""))
(with-fluids ((%default-port-encoding "ISO-8859-1"))
(substitute* "main/build-defs.h.in"
(("@CONFIGURE_COMMAND@") "(omitted)")))))
(add-before 'build 'patch-/bin/sh
(lambda _
(substitute* '("run-tests.php" "ext/standard/proc_open.c")
(("/bin/sh") (which "sh")))))
(add-before 'check 'prepare-tests
(lambda _
(with-fluids ((%default-port-encoding "ISO-8859-1"))
(substitute* '("ext/mbstring/tests/mb_send_mail02.phpt"
"ext/mbstring/tests/mb_send_mail04.phpt"
"ext/mbstring/tests/mb_send_mail05.phpt"
"ext/mbstring/tests/mb_send_mail06.phpt")
(("/bin/cat") (which "cat"))))
(substitute* '("ext/mbstring/tests/mb_send_mail01.phpt"
"ext/mbstring/tests/mb_send_mail03.phpt"
"ext/mbstring/tests/bug52681.phpt"
"ext/standard/tests/general_functions/bug34794.phpt"
"ext/standard/tests/general_functions/bug44667.phpt"
"ext/standard/tests/general_functions/proc_open.phpt")
(("/bin/cat") (which "cat")))
(delete-file "ext/mbstring/tests/mb_send_mail07.phpt")
(substitute* "ext/standard/tests/streams/bug60602.phpt"
(("'ls'") (string-append "'" (which "ls") "'")))
,@(if (string-prefix? "arm" (or (%current-system)
(%current-target-system)))
'((for-each delete-file
(list
"ext/calendar/tests/unixtojd_error1.phpt"
"ext/fileinfo/tests/cve-2014-3538-nojit.phpt"
"ext/pcntl/tests/pcntl_unshare_01.phpt"
"ext/pcre/tests/bug76514.phpt"
"ext/pcre/tests/preg_match_error3.phpt"
"ext/pcre/tests/cache_limit.phpt"
"ext/sockets/tests/socket_getopt.phpt"
"ext/sockets/tests/socket_sendrecvmsg_error.phpt"
"ext/standard/tests/general_functions/var_export-locale.phpt"
"ext/standard/tests/general_functions/var_export_basic1.phpt"
"ext/intl/tests/timezone_getErrorCodeMessage_basic.phpt"
"ext/intl/tests/timezone_getOffset_error.phpt"
"sapi/cli/tests/cli_process_title_unix.phpt"
"sapi/cli/tests/upload_2G.phpt"
"Zend/tests/concat_003.phpt")))
'())
,@(if (target-ppc64le?)
'((for-each delete-file
(list
"sapi/phpdbg/tests/watch_001.phpt"
"sapi/phpdbg/tests/watch_003.phpt"
"sapi/phpdbg/tests/watch_004.phpt"
"sapi/phpdbg/tests/watch_005.phpt"
"sapi/phpdbg/tests/watch_006.phpt")))
'())
(for-each delete-file
'("ext/posix/tests/posix_getgrgid.phpt"
"ext/posix/tests/posix_getgrnam_basic.phpt"
"ext/sockets/tests/bug63000.phpt"
"ext/sockets/tests/socket_shutdown.phpt"
"ext/sockets/tests/socket_send.phpt"
"ext/sockets/tests/mcast_ipv4_recv.phpt"
"ext/standard/tests/general_functions/getservbyname_basic.phpt"
"ext/standard/tests/general_functions/getservbyport_basic.phpt"
"ext/standard/tests/general_functions/getservbyport_variation1.phpt"
"ext/standard/tests/network/getprotobyname_basic.phpt"
"ext/standard/tests/network/getprotobynumber_basic.phpt"
"ext/standard/tests/strings/setlocale_basic1.phpt"
"ext/standard/tests/strings/setlocale_basic2.phpt"
"ext/standard/tests/strings/setlocale_basic3.phpt"
"ext/standard/tests/strings/setlocale_variation1.phpt"
"ext/standard/tests/file/disk_free_space_basic.phpt"
"ext/standard/tests/file/lstat_stat_variation8.phpt"
"ext/date/tests/bug73837.phpt"
"ext/gd/tests/bug39780_extern.phpt"
"ext/gd/tests/libgd00086_extern.phpt"
"ext/gd/tests/bug45799.phpt"
"ext/gd/tests/createfromwbmp2_extern.phpt"
"ext/gd/tests/bug65148.phpt"
"ext/gd/tests/bug66590.phpt"
"ext/gd/tests/bug70102.phpt"
"ext/gd/tests/bug73869.phpt"
"ext/gd/tests/webp_basic.phpt"
"ext/gd/tests/imagecreatefromstring_webp.phpt"
"ext/gd/tests/bug77269.phpt"
"ext/gd/tests/xpm2gd.phpt"
"ext/gd/tests/xpm2jpg.phpt"
"ext/gd/tests/xpm2png.phpt"
"ext/gd/tests/bug77479.phpt"
"ext/gd/tests/bug77973.phpt"
"ext/gd/tests/bug79067.phpt"
"ext/gd/tests/bug79068.phpt"
"ext/iconv/tests/bug52211.phpt"
"ext/iconv/tests/bug60494.phpt"
"ext/iconv/tests/iconv_strlen_error2.phpt"
"ext/iconv/tests/iconv_substr_error2.phpt"
"ext/iconv/tests/iconv_strpos_error2.phpt"
"ext/iconv/tests/iconv_strrpos_error2.phpt"
"ext/iconv/tests/bug76249.phpt"
"ext/curl/tests/bug61948-unix.phpt"
"ext/standard/tests/file/bug41655_1.phpt"
"ext/standard/tests/file/glob_variation5.phpt"
"ext/gd/tests/bug43073.phpt"
"ext/gd/tests/bug48732-mb.phpt"
"ext/gd/tests/bug48732.phpt"
"ext/gd/tests/bug48801-mb.phpt"
"ext/gd/tests/bug48801.phpt"
"ext/gd/tests/bug53504.phpt"
"ext/gd/tests/bug73272.phpt"
"ext/iconv/tests/bug48147.phpt"
"ext/iconv/tests/bug51250.phpt"
"ext/iconv/tests/iconv_mime_encode.phpt"
"ext/standard/tests/file/bug43008.phpt"
"ext/pdo_sqlite/tests/bug_42589.phpt"
"ext/pcre/tests/bug79846.phpt"
"ext/pcre/tests/bug80118.phpt"
"ext/standard/tests/general_functions/proc_nice_basic.phpt"
"Zend/tests/bug74093.phpt"))
(substitute* "ext/openssl/tests/bug80747.phpt"
((".*error:%s:key size too small.*" match)
(string-append "%s\n" match "%s\n")))
(setenv "SKIP_ONLINE_TESTS" "1")
(setenv "REPORT_EXIT_STATUS" "1")
(setenv "SKIP_IO_CAPTURE_TESTS" "1"))))
#:test-target "test"))
(inputs
`(("aspell" ,aspell)
("bzip2" ,bzip2)
("curl" ,curl)
("cyrus-sasl" ,cyrus-sasl)
("gd" ,gd)
("gdbm" ,gdbm)
("gmp" ,gmp)
("gnutls" ,gnutls)
("icu4c" ,icu4c)
("libgcrypt" ,libgcrypt)
("libpng" ,libpng)
("libsodium" ,libsodium)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
("libx11" ,libx11)
("libzip" ,libzip)
("oniguruma" ,oniguruma)
("openldap" ,openldap)
("openssl" ,openssl-1.1)
("pcre" ,pcre2)
("postgresql" ,postgresql)
("readline" ,readline)
("sqlite" ,sqlite)
("tidy" ,tidy)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)
("bison" ,bison)
("gettext" ,gettext-minimal)
("procps" ,procps)))
(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")
(license:non-copyleft "file://Zend/LICENSE")
license:lgpl2.1
license:lgpl2.1+
license:bsd-2
license:expat))))