From 09bb25b913728f09ef5515de880a7914988f56cb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Sun, 5 Jan 2020 17:30:37 +0100 Subject: [PATCH] Upgrade phpLDAPAdmin to a fork --- pkgs/webapps/phpldapadmin/default.nix | 19 ++-- .../phpldapadmin/ldap-disable-mcrypt.patch | 36 -------- .../phpldapadmin/ldap-fix-password.patch | 13 +++ pkgs/webapps/phpldapadmin/ldap-php5_5.patch | 88 ------------------- pkgs/webapps/phpldapadmin/ldap-php7_2.patch | 30 ------- 5 files changed, 24 insertions(+), 162 deletions(-) delete mode 100644 pkgs/webapps/phpldapadmin/ldap-disable-mcrypt.patch create mode 100644 pkgs/webapps/phpldapadmin/ldap-fix-password.patch delete mode 100644 pkgs/webapps/phpldapadmin/ldap-php5_5.patch delete mode 100644 pkgs/webapps/phpldapadmin/ldap-php7_2.patch diff --git a/pkgs/webapps/phpldapadmin/default.nix b/pkgs/webapps/phpldapadmin/default.nix index 70fd19af..da32f978 100644 --- a/pkgs/webapps/phpldapadmin/default.nix +++ b/pkgs/webapps/phpldapadmin/default.nix @@ -1,17 +1,20 @@ -{ config ? "/etc/phpldapadmin/config.php", fetchurl, stdenv, optipng }: +{ config ? "/etc/phpldapadmin/config.php", fetchurl, fetchFromGitHub, stdenv, optipng }: stdenv.mkDerivation rec { - version = "1.2.3"; + version = "1.2.5"; name = "phpldapadmin-${version}"; - src = fetchurl { - url = "https://downloads.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/${version}/${name}.tgz"; - sha256 = "0n7dhp2a7n1krmnik3pb969jynsmhghmxviivnckifkprv1zijmf"; + src = fetchFromGitHub { + owner = "leenooks"; + repo = "phpLDAPadmin"; + rev = "8f4ced96f9c63a09510a5bccb2189a8b92fb29ba"; + sha256 = "1x6xc3xbvw3aj46i5ds06a8h6mfljxdv3argxrzz02l541ra6ni7"; }; patches = [ - ./ldap-php5_5.patch - ./ldap-disable-mcrypt.patch - ./ldap-php7_2.patch + #./ldap-php5_5.patch + #./ldap-disable-mcrypt.patch + #./ldap-php7_2.patch ./ldap-sort-in-templates.patch ./ldap-align-button.patch + ./ldap-fix-password.patch ]; buildInputs = [ optipng ]; buildPhase = '' diff --git a/pkgs/webapps/phpldapadmin/ldap-disable-mcrypt.patch b/pkgs/webapps/phpldapadmin/ldap-disable-mcrypt.patch deleted file mode 100644 index 8bc4e7b5..00000000 --- a/pkgs/webapps/phpldapadmin/ldap-disable-mcrypt.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -wbBur phpldapadmin-1.2.3/lib/functions.php phpldapadmin-1.2.3.my/lib/functions.php ---- phpldapadmin-1.2.3/lib/functions.php 2012-10-01 10:54:14.000000000 +0400 -+++ phpldapadmin-1.2.3.my/lib/functions.php 2017-02-02 20:02:14.424245233 +0300 -@@ -745,6 +745,7 @@ - if (! trim($secret)) - return $data; - -+/* - if (function_exists('mcrypt_module_open') && ! empty($data)) { - $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_ECB,''); - $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_URANDOM); -@@ -754,7 +755,7 @@ - - return $encrypted_data; - } -- -+*/ - if (file_exists(LIBDIR.'blowfish.php')) - require_once LIBDIR.'blowfish.php'; - else -@@ -801,6 +802,7 @@ - if (! trim($secret)) - return $encdata; - -+/* - if (function_exists('mcrypt_module_open') && ! empty($encdata)) { - $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_ECB,''); - $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_URANDOM); -@@ -810,6 +812,7 @@ - - return $decrypted_data; - } -+*/ - - if (file_exists(LIBDIR.'blowfish.php')) - require_once LIBDIR.'blowfish.php'; diff --git a/pkgs/webapps/phpldapadmin/ldap-fix-password.patch b/pkgs/webapps/phpldapadmin/ldap-fix-password.patch new file mode 100644 index 00000000..d2d80e48 --- /dev/null +++ b/pkgs/webapps/phpldapadmin/ldap-fix-password.patch @@ -0,0 +1,13 @@ +diff --git a/htdocs/login.php b/htdocs/login.php +index 48f9e2e..298b07d 100644 +--- a/htdocs/login.php ++++ b/htdocs/login.php +@@ -13,7 +13,7 @@ require './common.php'; + + $user = array(); + $user['login'] = get_request('login'); +-$user['password'] = get_request('login_pass'); ++$user['password'] = get_request('login_pass','POST',false,null,false); + + if ($user['login'] && ! strlen($user['password'])) + system_message(array( diff --git a/pkgs/webapps/phpldapadmin/ldap-php5_5.patch b/pkgs/webapps/phpldapadmin/ldap-php5_5.patch deleted file mode 100644 index 8545ad27..00000000 --- a/pkgs/webapps/phpldapadmin/ldap-php5_5.patch +++ /dev/null @@ -1,88 +0,0 @@ -diff -Nrbu phpldapadmin-1.2.3/lib/PageRender.php phpldapadmin-1.2.3-OK/lib/PageRender.php ---- phpldapadmin-1.2.3/lib/PageRender.php 2012-10-01 10:54:14.000000000 +0400 -+++ phpldapadmin-1.2.3-OK/lib/PageRender.php 2013-11-12 03:44:40.518144839 +0400 -@@ -287,7 +287,7 @@ - break; - - default: -- $vals[$i] = password_hash($passwordvalue,$enc); -+ $vals[$i] = pla_password_hash($passwordvalue,$enc); - } - - $vals = array_unique($vals); -diff -Nrbu phpldapadmin-1.2.3/lib/ds_ldap.php phpldapadmin-1.2.3-OK/lib/ds_ldap.php ---- phpldapadmin-1.2.3/lib/ds_ldap.php 2012-10-01 10:54:14.000000000 +0400 -+++ phpldapadmin-1.2.3-OK/lib/ds_ldap.php 2013-11-12 03:40:56.638343739 +0400 -@@ -1117,12 +1117,14 @@ - if (is_array($dn)) { - $a = array(); - foreach ($dn as $key => $rdn) -- $a[$key] = preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$rdn); -+ $a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', -+ function ($matches) { return chr(hexdec($matches[1])); }, $rdn); - - return $a; - - } else -- return preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$dn); -+ return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', -+ function ($matches) { return chr(hexdec($matches[1])); }, $dn); - } - - public function getRootDSE($method=null) { -diff -Nrbu phpldapadmin-1.2.3/lib/functions.php phpldapadmin-1.2.3-OK/lib/functions.php ---- phpldapadmin-1.2.3/lib/functions.php 2012-10-01 10:54:14.000000000 +0400 -+++ phpldapadmin-1.2.3-OK/lib/functions.php 2013-11-12 03:44:17.298065264 +0400 -@@ -2127,7 +2127,7 @@ - * crypt, ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, sha512, or clear. - * @return string The hashed password. - */ --function password_hash($password_clear,$enc_type) { -+function pla_password_hash($password_clear,$enc_type) { - if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) - debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); - -@@ -2318,7 +2318,7 @@ - - # SHA crypted passwords - case 'sha': -- if (strcasecmp(password_hash($plainpassword,'sha'),'{SHA}'.$cryptedpassword) == 0) -+ if (strcasecmp(pla_password_hash($plainpassword,'sha'),'{SHA}'.$cryptedpassword) == 0) - return true; - else - return false; -@@ -2327,7 +2327,7 @@ - - # MD5 crypted passwords - case 'md5': -- if( strcasecmp(password_hash($plainpassword,'md5'),'{MD5}'.$cryptedpassword) == 0) -+ if( strcasecmp(pla_password_hash($plainpassword,'md5'),'{MD5}'.$cryptedpassword) == 0) - return true; - else - return false; -@@ -2392,7 +2392,7 @@ - - # SHA512 crypted passwords - case 'sha512': -- if (strcasecmp(password_hash($plainpassword,'sha512'),'{SHA512}'.$cryptedpassword) == 0) -+ if (strcasecmp(pla_password_hash($plainpassword,'sha512'),'{SHA512}'.$cryptedpassword) == 0) - return true; - else - return false; -@@ -2565,12 +2565,14 @@ - $a = array(); - - foreach ($dn as $key => $rdn) -- $a[$key] = preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$rdn); -+ $a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', -+ function ($matches) { return chr(hexdec($matches[1])); }, $rdn ); - - return $a; - - } else { -- return preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$dn); -+ return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', -+ function ($matches) { return chr(hexdec($matches[1])); }, $dn); - } - } - diff --git a/pkgs/webapps/phpldapadmin/ldap-php7_2.patch b/pkgs/webapps/phpldapadmin/ldap-php7_2.patch deleted file mode 100644 index 40ee0555..00000000 --- a/pkgs/webapps/phpldapadmin/ldap-php7_2.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -wbBur phpldapadmin.org/lib/functions.php phpldapadmin/lib/functions.php ---- phpldapadmin.org/lib/functions.php 2017-02-02 10:03:58.000000000 -0700 -+++ phpldapadmin/lib/functions.php 2018-01-23 06:18:31.118312887 -0700 -@@ -51,7 +51,7 @@ - /** - * Loads class definition - */ --function __autoload($className) { -+spl_autoload_register(function($className) { - if (file_exists(HOOKSDIR."classes/$className.php")) - require_once(HOOKSDIR."classes/$className.php"); - elseif (file_exists(LIBDIR."$className.php")) -@@ -64,7 +64,7 @@ - 'body'=>sprintf('%s: %s [%s]', - __METHOD__,_('Called to load a class that cant be found'),$className), - 'type'=>'error')); --} -+}); - - /** - * Strips all slashes from the specified array in place (pass by ref). -@@ -1083,7 +1083,7 @@ - - $code .= 'return $c;'; - -- $CACHE[$sortby] = create_function('$a, $b',$code); -+ eval("\$CACHE[\$sortby] = function(\$a, \$b) { $code; };"); - } - - uasort($data,$CACHE[$sortby]); -- 2.41.0