summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2021-10-18 09:27:11 +0200
committerRemi Collet <remi@php.net>2021-10-18 09:27:11 +0200
commit01d12d8f8152f1e1e9469ba4677973b3b6538c72 (patch)
tree1df9c1b1048fac045c76e2887efbacdac78cd71a
parenta5e768e160bdf3c0b9fad7f5755ff7402ed48835 (diff)
build using system libxcrypt
-rw-r--r--php-8.0.12-crypt.patch66
-rw-r--r--php.spec23
2 files changed, 88 insertions, 1 deletions
diff --git a/php-8.0.12-crypt.patch b/php-8.0.12-crypt.patch
new file mode 100644
index 0000000..3469a93
--- /dev/null
+++ b/php-8.0.12-crypt.patch
@@ -0,0 +1,66 @@
+From 9f98bc58c7bb7fdbb25614ca645bbd7a465fdfed Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Fri, 15 Oct 2021 15:45:50 +0200
+Subject: [PATCH] remove closing bracket in bad place
+
+---
+ build/php.m4 | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/build/php.m4 b/build/php.m4
+index 9746ba28f325..7fb9e3125d13 100644
+--- a/build/php.m4
++++ b/build/php.m4
+@@ -2219,7 +2219,6 @@ struct crypt_data buffer;
+ crypt_r("passwd", "hash", &buffer);
+ ]])],[php_cv_crypt_r_style=struct_crypt_data_gnu_source],[])
+ fi
+- ])
+
+ if test "$php_cv_crypt_r_style" = "none"; then
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+From fc4e31467c352032ee709ac55d3c67bc22abcd8d Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Fri, 15 Oct 2021 17:11:12 +0200
+Subject: [PATCH] add --with-external-libcrypt build option display an error
+ message if some algo not available in external libcrypt
+
+---
+ ext/standard/config.m4 | 21 ++++++++++++++++-----
+ 1 file changed, 16 insertions(+), 5 deletions(-)
+
+diff --git a/ext/standard/config.m4 b/ext/standard/config.m4
+index 58b9c5e658a4..3ec18be4d7df 100644
+--- a/ext/standard/config.m4
++++ b/ext/standard/config.m4
+@@ -267,14 +267,25 @@ int main() {
+ ])])
+
+
++PHP_ARG_WITH([external-libcrypt],
++ [for external libcrypt or libxcrypt],
++ [AS_HELP_STRING([--with-external-libcrypt],
++ [Use external libcrypt or libxcrypt])],
++ [no],
++ [no])
++
+ dnl
+ dnl If one of them is missing, use our own implementation, portable code is then possible
+ dnl
+-dnl TODO This is currently always enabled
+-if test "$ac_cv_crypt_blowfish" = "no" || test "$ac_cv_crypt_des" = "no" || test "$ac_cv_crypt_ext_des" = "no" || test "$ac_cv_crypt_md5" = "no" || test "$ac_cv_crypt_sha512" = "no" || test "$ac_cv_crypt_sha256" = "no" || test "$ac_cv_func_crypt_r" != "yes" || true; then
+- AC_DEFINE_UNQUOTED(PHP_USE_PHP_CRYPT_R, 1, [Whether PHP has to use its own crypt_r for blowfish, des, ext des and md5])
+-
+- PHP_ADD_SOURCES(PHP_EXT_DIR(standard), crypt_freesec.c crypt_blowfish.c crypt_sha512.c crypt_sha256.c php_crypt_r.c)
++dnl This is currently enabled by default
++if test "$ac_cv_crypt_blowfish" = "no" || test "$ac_cv_crypt_des" = "no" || test "$ac_cv_crypt_ext_des" = "no" || test "$ac_cv_crypt_md5" = "no" || test "$ac_cv_crypt_sha512" = "no" || test "$ac_cv_crypt_sha256" = "no" || test "$ac_cv_func_crypt_r" != "yes" || test "$PHP_EXTERNAL_LIBCRYPT" = "no"; then
++ if test "$PHP_EXTERNAL_LIBCRYPT" = "no"; then
++ AC_DEFINE_UNQUOTED(PHP_USE_PHP_CRYPT_R, 1, [Whether PHP has to use its own crypt_r for blowfish, des, ext des and md5])
++
++ PHP_ADD_SOURCES(PHP_EXT_DIR(standard), crypt_freesec.c crypt_blowfish.c crypt_sha512.c crypt_sha256.c php_crypt_r.c)
++ else
++ AC_MSG_ERROR([Cannot use external libcrypt as some algo are missing])
++ fi
+ else
+ AC_DEFINE_UNQUOTED(PHP_USE_PHP_CRYPT_R, 0, [Whether PHP has to use its own crypt_r for blowfish, des and ext des])
+ fi
diff --git a/php.spec b/php.spec
index 3fe3b97..5502293 100644
--- a/php.spec
+++ b/php.spec
@@ -73,6 +73,7 @@
%bcond_without tidy
%bcond_without sqlite3
%bcond_without enchant
+
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
# switch to bundled library using --without libpcre
%bcond_without libpcre
@@ -81,6 +82,14 @@
%bcond_with libpcre
%endif
+%if 0%{?fedora} >= 33 || 0%{?rhel} >= 8
+# switch to bundled library using --without libxcrypt
+%bcond_without libxcrypt
+%else
+# switch to system library using --with libxcrypt
+%bcond_with libxcrypt
+%endif
+
%bcond_without dtrace
# build with system libgd (gd-last in remi repo)
@@ -104,7 +113,7 @@
Summary: PHP scripting language for creating dynamic web sites
Name: %{?scl_prefix}php
Version: %{upver}%{?rcver:~%{rcver}}%{?gh_date:.%{gh_date}}
-Release: 1%{?dist}
+Release: 2%{?dist}
# All files licensed under PHP version 3.01, except
# Zend is licensed under Zend
# TSRM is licensed under BSD
@@ -168,6 +177,8 @@ Patch48: php-8.0.10-snmp-sha.patch
# switch phar to use sha256 signature by default, from 8.1
# implement openssl_256 and openssl_512 for phar signatures, from 8.1
Patch49: php-8.0.10-phar-sha.patch
+# use system libxcrypt
+Patch50: php-8.0.12-crypt.patch
# RC Patch
Patch91: php-7.2.0-oci8conf.patch
@@ -204,6 +215,9 @@ BuildRequires: pkgconfig(libpcre2-8) >= 10.30
%else
Provides: bundled(pcre2) = 10.32
%endif
+%if %{with libxcrypt}
+BuildRequires: pkgconfig(libxcrypt)
+%endif
BuildRequires: bzip2
BuildRequires: perl
BuildRequires: autoconf
@@ -939,6 +953,7 @@ sed -e 's/php-devel/%{?scl_prefix}php-devel/' -i scripts/phpize.in
%patch47 -p1 -b .phpinfo
%patch48 -p1 -b .sha
%patch49 -p1 -b .pharsha
+%patch50 -p1 -b .libxcrypt
%patch91 -p1 -b .remi-oci8
@@ -1150,6 +1165,9 @@ ln -sf ../configure
%if %{with libpcre}
--with-external-pcre \
%endif
+%if %{with libxcrypt}
+ --with-external-libcrypt \
+%endif
--with-zlib \
--with-layout=GNU \
--with-kerberos \
@@ -1816,6 +1834,9 @@ fi
%changelog
+* Mon Oct 18 2021 Remi Collet <remi@remirepo.net> - 8.0.12~RC1-2
+- build using system libxcrypt
+
* Wed Oct 6 2021 Remi Collet <remi@remirepo.net> - 8.0.12~RC1-1
- update to 8.0.12RC1
- use libicu version 69