From f5efae0f8c4c53798f8f9fc88c5f92f38a223320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Mon, 6 May 2019 00:40:09 +0200 Subject: Move phpldapadmin to pkgs --- pkgs/webapps/default.nix | 6 ++ pkgs/webapps/phpldapadmin/default.nix | 24 ++++++ pkgs/webapps/phpldapadmin/ldap-align-button.patch | 11 +++ .../webapps/phpldapadmin/ldap-disable-mcrypt.patch | 36 +++++++++ pkgs/webapps/phpldapadmin/ldap-php5_5.patch | 88 ++++++++++++++++++++++ pkgs/webapps/phpldapadmin/ldap-php7_2.patch | 30 ++++++++ .../phpldapadmin/ldap-sort-in-templates.patch | 12 +++ 7 files changed, 207 insertions(+) create mode 100644 pkgs/webapps/phpldapadmin/default.nix create mode 100644 pkgs/webapps/phpldapadmin/ldap-align-button.patch create mode 100644 pkgs/webapps/phpldapadmin/ldap-disable-mcrypt.patch create mode 100644 pkgs/webapps/phpldapadmin/ldap-php5_5.patch create mode 100644 pkgs/webapps/phpldapadmin/ldap-php7_2.patch create mode 100644 pkgs/webapps/phpldapadmin/ldap-sort-in-templates.patch (limited to 'pkgs') diff --git a/pkgs/webapps/default.nix b/pkgs/webapps/default.nix index da38f5f..7e04e8d 100644 --- a/pkgs/webapps/default.nix +++ b/pkgs/webapps/default.nix @@ -1,10 +1,14 @@ { callPackage, mylibs, lib }: rec { diaspora = callPackage ./diaspora { inherit mylibs; }; + mastodon = callPackage ./mastodon { inherit mylibs; }; + awl = callPackage ./awl {}; davical = callPackage ./davical {}; + infcloud = callPackage ./infcloud {}; + nextcloud = callPackage ./nextcloud {}; nextcloud-apps = let names = [ @@ -17,4 +21,6 @@ rec { in lib.attrsets.genAttrs names (name: callPackage (./nextcloud/apps + "/${name}.nix") { buildApp = nextcloud.buildApp; }); + + phpldapadmin = callPackage ./phpldapadmin {}; } diff --git a/pkgs/webapps/phpldapadmin/default.nix b/pkgs/webapps/phpldapadmin/default.nix new file mode 100644 index 0000000..70fd19a --- /dev/null +++ b/pkgs/webapps/phpldapadmin/default.nix @@ -0,0 +1,24 @@ +{ config ? "/etc/phpldapadmin/config.php", fetchurl, stdenv, optipng }: +stdenv.mkDerivation rec { + version = "1.2.3"; + name = "phpldapadmin-${version}"; + src = fetchurl { + url = "https://downloads.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/${version}/${name}.tgz"; + sha256 = "0n7dhp2a7n1krmnik3pb969jynsmhghmxviivnckifkprv1zijmf"; + }; + patches = [ + ./ldap-php5_5.patch + ./ldap-disable-mcrypt.patch + ./ldap-php7_2.patch + ./ldap-sort-in-templates.patch + ./ldap-align-button.patch + ]; + buildInputs = [ optipng ]; + buildPhase = '' + find -name '*.png' -exec optipng -quiet -force -fix {} \; + ''; + installPhase = '' + cp -a . $out + ln -sf ${config} $out/config/config.php + ''; +} diff --git a/pkgs/webapps/phpldapadmin/ldap-align-button.patch b/pkgs/webapps/phpldapadmin/ldap-align-button.patch new file mode 100644 index 0000000..d9a5504 --- /dev/null +++ b/pkgs/webapps/phpldapadmin/ldap-align-button.patch @@ -0,0 +1,11 @@ +--- a/htdocs/update_confirm.php 2012-10-01 08:54:14.000000000 +0200 ++++ b/htdocs/update_confirm.php 2018-06-06 15:47:44.122398888 +0200 +@@ -187,7 +187,7 @@ + + echo ''; + +- echo '
'; ++ echo '
'; + echo '
'; + // @todo cant use AJAX here, it affects file uploads. + printf('', diff --git a/pkgs/webapps/phpldapadmin/ldap-disable-mcrypt.patch b/pkgs/webapps/phpldapadmin/ldap-disable-mcrypt.patch new file mode 100644 index 0000000..8bc4e7b --- /dev/null +++ b/pkgs/webapps/phpldapadmin/ldap-disable-mcrypt.patch @@ -0,0 +1,36 @@ +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-php5_5.patch b/pkgs/webapps/phpldapadmin/ldap-php5_5.patch new file mode 100644 index 0000000..8545ad2 --- /dev/null +++ b/pkgs/webapps/phpldapadmin/ldap-php5_5.patch @@ -0,0 +1,88 @@ +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 new file mode 100644 index 0000000..40ee055 --- /dev/null +++ b/pkgs/webapps/phpldapadmin/ldap-php7_2.patch @@ -0,0 +1,30 @@ +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]); diff --git a/pkgs/webapps/phpldapadmin/ldap-sort-in-templates.patch b/pkgs/webapps/phpldapadmin/ldap-sort-in-templates.patch new file mode 100644 index 0000000..55a1974 --- /dev/null +++ b/pkgs/webapps/phpldapadmin/ldap-sort-in-templates.patch @@ -0,0 +1,12 @@ +diff -wbBur phpldapadmin-1.2.3.org/lib/TemplateRender.php phpldapadmin-1.2.3/lib/TemplateRender.php +--- phpldapadmin-1.2.3.org/lib/TemplateRender.php 2012-10-01 10:54:14.000000000 +0400 ++++ phpldapadmin-1.2.3/lib/TemplateRender.php 2018-02-02 19:06:45.674760057 +0300 +@@ -321,6 +321,8 @@ + + $vals = array(); + ++ asort($picklistvalues); ++ + foreach ($picklistvalues as $key => $values) { + $display = $args[3]; + -- cgit v1.2.3