diff options
author | prlw1 <prlw1@pkgsrc.org> | 2018-11-15 14:26:45 +0000 |
---|---|---|
committer | prlw1 <prlw1@pkgsrc.org> | 2018-11-15 14:26:45 +0000 |
commit | d9de616fe4009e58ff6420c053ae068a9b0d6b96 (patch) | |
tree | d1838406ba4ae7dba62941865e9611ee6f0ca761 /www/drupal7 | |
parent | 8ae8fe141daf0e0701a79a335ad02e20aea34009 (diff) | |
download | pkgsrc-d9de616fe4009e58ff6420c053ae068a9b0d6b96.tar.gz |
Update drupal7 to 7.61
Full compatibility with PHP 7.2 (#2947772)
Drupal 7.61, 2018-11-07
-----------------------
- File upload validation functions and hook_file_validate() implementations are
now always passed the correct file URI.
- The default form cache expiration of 6 hours is now configurable (API
addition: https://www.drupal.org/node/2857751).
- Allowed callers of drupal_http_request() to optionally specify an explicit
Host header.
- Allowed the + character to appear in usernames.
- PHP 7.2: Fixed Archive_Tar incompatibility.
- PHP 7.2: Removed deprecated function each().
- PHP 7.2: Avoid count() calls on uncountable variables.
- PHP 7.2: Removed deprecated create_function() call.
- PHP 7.2: Make sure variables are arrays in theme_links().
- Fixed theme-settings.php not being loaded on cached forms
- Fixed problem with IE11 & Chrome(PointerEvents enabled) & some Firefox scroll to the top of the page after dragging the bottom item with jquery 1.5 <-> 1.11
Diffstat (limited to 'www/drupal7')
-rw-r--r-- | www/drupal7/Makefile | 20 | ||||
-rw-r--r-- | www/drupal7/distinfo | 23 | ||||
-rw-r--r-- | www/drupal7/patches/patch-includes_bootstrap.inc | 22 | ||||
-rw-r--r-- | www/drupal7/patches/patch-includes_form.inc | 23 | ||||
-rw-r--r-- | www/drupal7/patches/patch-includes_install.inc | 17 | ||||
-rw-r--r-- | www/drupal7/patches/patch-includes_menu.inc | 38 | ||||
-rw-r--r-- | www/drupal7/patches/patch-includes_module.inc | 34 | ||||
-rw-r--r-- | www/drupal7/patches/patch-includes_theme.inc | 103 | ||||
-rw-r--r-- | www/drupal7/patches/patch-modules_book_book.module | 37 | ||||
-rw-r--r-- | www/drupal7/patches/patch-modules_field_modules_list_list.install | 31 | ||||
-rw-r--r-- | www/drupal7/patches/patch-modules_locale_locale.test | 21 | ||||
-rw-r--r-- | www/drupal7/patches/patch-modules_simpletest_tests_themes_test__theme_theme-settings.php | 42 | ||||
-rw-r--r-- | www/drupal7/patches/patch-modules_system_system.admin.inc | 23 | ||||
-rw-r--r-- | www/drupal7/patches/patch-modules_system_system.tar.inc | 152 | ||||
-rw-r--r-- | www/drupal7/patches/patch-modules_system_system.test | 40 |
15 files changed, 7 insertions, 619 deletions
diff --git a/www/drupal7/Makefile b/www/drupal7/Makefile index 4bf8632446b..ed8588d224e 100644 --- a/www/drupal7/Makefile +++ b/www/drupal7/Makefile @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.52 2018/10/18 14:32:48 taca Exp $ +# $NetBSD: Makefile,v 1.53 2018/11/15 14:26:45 prlw1 Exp $ -DISTNAME= drupal-7.60 +DISTNAME= drupal-7.61 PKGNAME= ${PHP_PKG_PREFIX}-${DISTNAME} CATEGORIES= www MASTER_SITES= https://ftp.drupal.org/files/projects/ @@ -65,22 +65,6 @@ INSTALLATION_DIRS+= ${DRUPAL}/${i} post-extract: ${CP} ${FILESDIR}/drupal.conf ${WRKSRC} -pre-install: - ${RM} \ - ${WRKSRC}/includes/bootstrap.inc.orig \ - ${WRKSRC}/includes/form.inc.orig \ - ${WRKSRC}/includes/install.inc.orig \ - ${WRKSRC}/includes/menu.inc.orig \ - ${WRKSRC}/includes/module.inc.orig \ - ${WRKSRC}/includes/theme.inc.orig \ - ${WRKSRC}/modules/book/book.module.orig \ - ${WRKSRC}/modules/field/modules/list/list.install.orig \ - ${WRKSRC}/modules/locale/locale.test.orig \ - ${WRKSRC}/modules/simpletest/tests/themes/test_theme/theme-settings.php.orig \ - ${WRKSRC}/modules/system/system.admin.inc.orig \ - ${WRKSRC}/modules/system/system.test.orig \ - ${WRKSRC}/modules/system/system.tar.inc.orig - do-install: ${INSTALL_DATA} ${WRKSRC}/robots.txt ${DESTDIR}${PREFIX}/${DRUPAL} ${INSTALL_DATA} ${WRKSRC}/drupal.conf \ diff --git a/www/drupal7/distinfo b/www/drupal7/distinfo index 8cfbc78f997..d3aba8c76a2 100644 --- a/www/drupal7/distinfo +++ b/www/drupal7/distinfo @@ -1,19 +1,6 @@ -$NetBSD: distinfo,v 1.40 2018/10/18 14:32:48 taca Exp $ +$NetBSD: distinfo,v 1.41 2018/11/15 14:26:45 prlw1 Exp $ -SHA1 (drupal-7.60.tar.gz) = aa54d7fc85d2bc2dc20a639208b91256f8f8d2b0 -RMD160 (drupal-7.60.tar.gz) = 839ce4dc73fa52cf0cdbae9d8bcd74772c9b0c5b -SHA512 (drupal-7.60.tar.gz) = fee59cf303a6c44e3fa3cbeda4912f7d61ffe8294282f9ad0416a6536cc6ea65cf114a6a801dd1f68572185c2b1e300f58f907f9bd61f96beaba3706c527d512 -Size (drupal-7.60.tar.gz) = 3283058 bytes -SHA1 (patch-includes_bootstrap.inc) = 19af750379de283a17a1f8f202586d588fa58569 -SHA1 (patch-includes_form.inc) = 3f8955b576ebf292573f0953f0a07467dbdd4f64 -SHA1 (patch-includes_install.inc) = ff182d242f4637f7bbb509a1b043671ebd952f64 -SHA1 (patch-includes_menu.inc) = 7aa6f4ae82b37f024d54cc7dc6c6d5433f352916 -SHA1 (patch-includes_module.inc) = 4af9f2c26eb16d39bbcd08949183b54a78391b25 -SHA1 (patch-includes_theme.inc) = 4421f9ad1235825f7b3c360e44bbac994fcfe214 -SHA1 (patch-modules_book_book.module) = bab6aabf09736f5ebb7e60860a96116c2779db06 -SHA1 (patch-modules_field_modules_list_list.install) = 45fffa25115818babe9e743fb1f02020d620efca -SHA1 (patch-modules_locale_locale.test) = 66f82c0517d32100da28f33b10d1caa27de839be -SHA1 (patch-modules_simpletest_tests_themes_test__theme_theme-settings.php) = 40f7c7578f4f3c802cd2aaf55130ad9b22b9fea2 -SHA1 (patch-modules_system_system.admin.inc) = d052516a117ca5fecf0da81779ecaac9ef1c4e18 -SHA1 (patch-modules_system_system.tar.inc) = f5bbca9c1b0f5dbb52b744fd5627f83fb8e71cc6 -SHA1 (patch-modules_system_system.test) = 5761278afaa8369453b5857f806cd5d34a2589d0 +SHA1 (drupal-7.61.tar.gz) = 84de421176793566679a7931a2a009cf6c1fbe19 +RMD160 (drupal-7.61.tar.gz) = 44f908cb190bddcabed24fb87c5ebec30a3bf323 +SHA512 (drupal-7.61.tar.gz) = 8f0bdd5b7ef33e62d09698b3889726fab1edb14df6263635bca65c9bbe0400df618dbf02ef298eeee169d48ab554d3b58d867bd4ce0d429b4b9167979917db51 +Size (drupal-7.61.tar.gz) = 3287629 bytes diff --git a/www/drupal7/patches/patch-includes_bootstrap.inc b/www/drupal7/patches/patch-includes_bootstrap.inc deleted file mode 100644 index c715a66e6b0..00000000000 --- a/www/drupal7/patches/patch-includes_bootstrap.inc +++ /dev/null @@ -1,22 +0,0 @@ -$NetBSD: patch-includes_bootstrap.inc,v 1.1 2018/10/03 10:58:15 prlw1 Exp $ - -Issue #2925449 -Function each() is deprecated since PHP 7.2 -commit 28de6772813387bf02a4bf6f75b9119c4c20a3f4 - ---- includes/bootstrap.inc.orig 2018-04-25 15:32:27.000000000 +0000 -+++ includes/bootstrap.inc -@@ -3785,8 +3785,12 @@ function _drupal_shutdown_function() { - chdir(DRUPAL_ROOT); - - try { -- while (list($key, $callback) = each($callbacks)) { -+ // Manually iterate over the array instead of using a foreach loop. -+ // A foreach operates on a copy of the array, so any shutdown functions that -+ // were added from other shutdown functions would never be called. -+ while ($callback = current($callbacks)) { - call_user_func_array($callback['callback'], $callback['arguments']); -+ next($callbacks); - } - } - catch (Exception $exception) { diff --git a/www/drupal7/patches/patch-includes_form.inc b/www/drupal7/patches/patch-includes_form.inc deleted file mode 100644 index c21a1b44332..00000000000 --- a/www/drupal7/patches/patch-includes_form.inc +++ /dev/null @@ -1,23 +0,0 @@ -$NetBSD: patch-includes_form.inc,v 1.1 2018/10/03 10:58:15 prlw1 Exp $ - -Issue #2885610 -Avoid count() calls on uncountable variables -commit 73e12f0ddf1ed60c13331dc3a9b8ea16d1599307 - ---- includes/form.inc.orig 2018-04-25 15:32:27.000000000 +0000 -+++ includes/form.inc -@@ -1438,10 +1438,12 @@ function _form_validate(&$elements, &$fo - // length if it's a string, and the item count if it's an array. - // An unchecked checkbox has a #value of integer 0, different than string - // '0', which could be a valid value. -- $is_empty_multiple = (!count($elements['#value'])); -+ $is_countable = is_array($elements['#value']) || $elements['#value'] instanceof \Countable; -+ $is_empty_multiple = $is_countable && count($elements['#value']) == 0; - $is_empty_string = (is_string($elements['#value']) && drupal_strlen(trim($elements['#value'])) == 0); - $is_empty_value = ($elements['#value'] === 0); -- if ($is_empty_multiple || $is_empty_string || $is_empty_value) { -+ $is_empty_null = is_null($elements['#value']); -+ if ($is_empty_multiple || $is_empty_string || $is_empty_value || $is_empty_null) { - // Although discouraged, a #title is not mandatory for form elements. In - // case there is no #title, we cannot set a form error message. - // Instead of setting no #title, form constructors are encouraged to set diff --git a/www/drupal7/patches/patch-includes_install.inc b/www/drupal7/patches/patch-includes_install.inc deleted file mode 100644 index 7a6aa4a1da2..00000000000 --- a/www/drupal7/patches/patch-includes_install.inc +++ /dev/null @@ -1,17 +0,0 @@ -$NetBSD: patch-includes_install.inc,v 1.1 2018/10/03 10:58:15 prlw1 Exp $ - -Issue #2925449 -Function each() is deprecated since PHP 7.2 -commit 28de6772813387bf02a4bf6f75b9119c4c20a3f4 - ---- includes/install.inc.orig 2018-04-25 15:32:27.000000000 +0000 -+++ includes/install.inc -@@ -779,7 +779,7 @@ function drupal_uninstall_modules($modul - $module_list = array_flip(array_values($module_list)); - - $profile = drupal_get_profile(); -- while (list($module) = each($module_list)) { -+ foreach (array_keys($module_list) as $module) { - if (!isset($module_data[$module]) || drupal_get_installed_schema_version($module) == SCHEMA_UNINSTALLED) { - // This module doesn't exist or is already uninstalled. Skip it. - unset($module_list[$module]); diff --git a/www/drupal7/patches/patch-includes_menu.inc b/www/drupal7/patches/patch-includes_menu.inc deleted file mode 100644 index 7c75e28ab76..00000000000 --- a/www/drupal7/patches/patch-includes_menu.inc +++ /dev/null @@ -1,38 +0,0 @@ -$NetBSD: patch-includes_menu.inc,v 1.1 2018/10/03 10:58:15 prlw1 Exp $ - -Issue #2925449 -Function each() is deprecated since PHP 7.2 -commit 28de6772813387bf02a4bf6f75b9119c4c20a3f4 - ---- includes/menu.inc.orig 2018-04-25 15:32:27.000000000 +0000 -+++ includes/menu.inc -@@ -576,7 +576,8 @@ function _menu_load_objects(&$item, &$ma - // 'load arguments' in the hook_menu() entry, but they need - // some processing. In this case the $function is the key to the - // load_function array, and the value is the list of arguments. -- list($function, $args) = each($function); -+ $args = current($function); -+ $function = key($function); - $load_functions[$index] = $function; - - // Some arguments are placeholders for dynamic items to process. -@@ -2402,7 +2403,8 @@ function menu_set_active_trail($new_trai - // a stripped down menu tree containing the active trail only, in case - // the given menu has not been built in this request yet. - $tree = menu_tree_page_data($preferred_link['menu_name'], NULL, TRUE); -- list($key, $curr) = each($tree); -+ $curr = current($tree); -+ next($tree); - } - // There is no link for the current path. - else { -@@ -2432,7 +2434,8 @@ function menu_set_active_trail($new_trai - } - $tree = $curr['below'] ? $curr['below'] : array(); - } -- list($key, $curr) = each($tree); -+ $curr = current($tree); -+ next($tree); - } - // Make sure the current page is in the trail to build the page title, by - // appending either the preferred link or the menu router item for the diff --git a/www/drupal7/patches/patch-includes_module.inc b/www/drupal7/patches/patch-includes_module.inc deleted file mode 100644 index e64430edd55..00000000000 --- a/www/drupal7/patches/patch-includes_module.inc +++ /dev/null @@ -1,34 +0,0 @@ -$NetBSD: patch-includes_module.inc,v 1.1 2018/10/03 10:58:15 prlw1 Exp $ - -Issue #2925449 -Function each() is deprecated since PHP 7.2 -commit 28de6772813387bf02a4bf6f75b9119c4c20a3f4 - ---- includes/module.inc.orig 2018-04-25 15:32:27.000000000 +0000 -+++ includes/module.inc -@@ -404,7 +404,11 @@ function module_enable($module_list, $en - // Create an associative array with weights as values. - $module_list = array_flip(array_values($module_list)); - -- while (list($module) = each($module_list)) { -+ // The array is iterated over manually (instead of using a foreach) because -+ // modules may be added to the list within the loop and we need to process -+ // them. -+ while ($module = key($module_list)) { -+ next($module_list); - if (!isset($module_data[$module])) { - // This module is not found in the filesystem, abort. - return FALSE; -@@ -540,7 +544,11 @@ function module_disable($module_list, $d - $module_list = array_flip(array_values($module_list)); - - $profile = drupal_get_profile(); -- while (list($module) = each($module_list)) { -+ // The array is iterated over manually (instead of using a foreach) because -+ // modules may be added to the list within the loop and we need to process -+ // them. -+ while ($module = key($module_list)) { -+ next($module_list); - if (!isset($module_data[$module]) || !$module_data[$module]->status) { - // This module doesn't exist or is already disabled, skip it. - unset($module_list[$module]); diff --git a/www/drupal7/patches/patch-includes_theme.inc b/www/drupal7/patches/patch-includes_theme.inc deleted file mode 100644 index 1afdb5ba5d3..00000000000 --- a/www/drupal7/patches/patch-includes_theme.inc +++ /dev/null @@ -1,103 +0,0 @@ -$NetBSD: patch-includes_theme.inc,v 1.1 2018/10/03 10:58:15 prlw1 Exp $ - -Issue #2885610 -Avoid count() calls on uncountable variables -commit 73e12f0ddf1ed60c13331dc3a9b8ea16d1599307 - -Issue #2996519 -PHP 7.2 compatibility - make sure some variables are arrays in -theme_links() -commit 083a4eca4a2ebc5276eed2f11fc4a595b07898ba - ---- includes/theme.inc.orig 2018-10-03 09:32:02.932500773 +0000 -+++ includes/theme.inc -@@ -1776,8 +1776,8 @@ function theme_link($variables) { - * http://www.w3.org/TR/WCAG-TECHS/H42.html for more information. - */ - function theme_links($variables) { -- $links = $variables['links']; -- $attributes = $variables['attributes']; -+ $links = (array) $variables['links']; -+ $attributes = (array) $variables['attributes']; - $heading = $variables['heading']; - global $language_url; - $output = ''; -@@ -1995,7 +1995,7 @@ function theme_table($variables) { - $empty = $variables['empty']; - - // Add sticky headers, if applicable. -- if (count($header) && $sticky) { -+ if (!empty($header) && $sticky) { - drupal_add_js('misc/tableheader.js'); - // Add 'sticky-enabled' class to the table to identify it for JS. - // This is needed to target tables constructed by this function. -@@ -2009,7 +2009,7 @@ function theme_table($variables) { - } - - // Format the table columns: -- if (count($colgroups)) { -+ if (!empty($colgroups)) { - foreach ($colgroups as $number => $colgroup) { - $attributes = array(); - -@@ -2044,38 +2044,40 @@ function theme_table($variables) { - } - - // Add the 'empty' row message if available. -- if (!count($rows) && $empty) { -+ if (empty($rows) && $empty) { - $header_count = 0; -- foreach ($header as $header_cell) { -- if (is_array($header_cell)) { -- $header_count += isset($header_cell['colspan']) ? $header_cell['colspan'] : 1; -- } -- else { -- $header_count++; -+ if (!empty($header)) { -+ foreach ($header as $header_cell) { -+ if (is_array($header_cell)) { -+ $header_count += isset($header_cell['colspan']) ? $header_cell['colspan'] : 1; -+ } -+ else { -+ $header_count++; -+ } - } - } - $rows[] = array(array('data' => $empty, 'colspan' => $header_count, 'class' => array('empty', 'message'))); - } - - // Format the table header: -- if (count($header)) { -+ if (!empty($header)) { - $ts = tablesort_init($header); - // HTML requires that the thead tag has tr tags in it followed by tbody - // tags. Using ternary operator to check and see if we have any rows. -- $output .= (count($rows) ? ' <thead><tr>' : ' <tr>'); -+ $output .= (!empty($rows) ? ' <thead><tr>' : ' <tr>'); - foreach ($header as $cell) { - $cell = tablesort_header($cell, $header, $ts); - $output .= _theme_table_cell($cell, TRUE); - } - // Using ternary operator to close the tags based on whether or not there are rows -- $output .= (count($rows) ? " </tr></thead>\n" : "</tr>\n"); -+ $output .= (!empty($rows) ? " </tr></thead>\n" : "</tr>\n"); - } - else { - $ts = array(); - } - - // Format the table rows: -- if (count($rows)) { -+ if (!empty($rows)) { - $output .= "<tbody>\n"; - $flip = array('even' => 'odd', 'odd' => 'even'); - $class = 'even'; -@@ -2095,7 +2097,7 @@ function theme_table($variables) { - $attributes = array(); - $no_striping = FALSE; - } -- if (count($cells)) { -+ if (!empty($cells)) { - // Add odd/even class - if (!$no_striping) { - $class = $flip[$class]; diff --git a/www/drupal7/patches/patch-modules_book_book.module b/www/drupal7/patches/patch-modules_book_book.module deleted file mode 100644 index d0088c9ee9d..00000000000 --- a/www/drupal7/patches/patch-modules_book_book.module +++ /dev/null @@ -1,37 +0,0 @@ -$NetBSD: patch-modules_book_book.module,v 1.1 2018/10/03 10:58:15 prlw1 Exp $ - -Issue #2925449 -Function each() is deprecated since PHP 7.2 -commit 28de6772813387bf02a4bf6f75b9119c4c20a3f4 - ---- modules/book/book.module.orig 2018-04-25 15:32:27.000000000 +0000 -+++ modules/book/book.module -@@ -768,11 +768,13 @@ function book_prev($book_link) { - return NULL; - } - $flat = book_get_flat_menu($book_link); -- // Assigning the array to $flat resets the array pointer for use with each(). -+ reset($flat); - $curr = NULL; - do { - $prev = $curr; -- list($key, $curr) = each($flat); -+ $curr = current($flat); -+ $key = key($flat); -+ next($flat); - } while ($key && $key != $book_link['mlid']); - - if ($key == $book_link['mlid']) { -@@ -806,9 +808,10 @@ function book_prev($book_link) { - */ - function book_next($book_link) { - $flat = book_get_flat_menu($book_link); -- // Assigning the array to $flat resets the array pointer for use with each(). -+ reset($flat); - do { -- list($key, $curr) = each($flat); -+ $key = key($flat); -+ next($flat); - } - while ($key && $key != $book_link['mlid']); - diff --git a/www/drupal7/patches/patch-modules_field_modules_list_list.install b/www/drupal7/patches/patch-modules_field_modules_list_list.install deleted file mode 100644 index 0eb61143bff..00000000000 --- a/www/drupal7/patches/patch-modules_field_modules_list_list.install +++ /dev/null @@ -1,31 +0,0 @@ -$NetBSD: patch-modules_field_modules_list_list.install,v 1.1 2018/10/03 10:58:15 prlw1 Exp $ - -Issue #2885129 -create_function() is deprecated -commit 76a4dc7098771a14e7d64a827457dcadd7feafbc - ---- modules/field/modules/list/list.install.orig 2018-04-25 15:32:27.000000000 +0000 -+++ modules/field/modules/list/list.install -@@ -61,7 +61,7 @@ function list_update_7001() { - - // Additionally, float keys need to be disambiguated ('.5' is '0.5'). - if ($field['type'] == 'list_number' && !empty($allowed_values)) { -- $keys = array_map(create_function('$a', 'return (string) (float) $a;'), array_keys($allowed_values)); -+ $keys = array_map('_list_update_7001_float_string_cast', array_keys($allowed_values)); - $allowed_values = array_combine($keys, array_values($allowed_values)); - } - -@@ -89,6 +89,13 @@ function list_update_7001() { - } - - /** -+ * Helper callback function to cast the array element. -+ */ -+function _list_update_7001_float_string_cast($element) { -+ return (string) (float) $element; -+} -+ -+/** - * Helper function for list_update_7001: extract allowed values from a string. - * - * This reproduces the parsing logic in use before D7 RC2. diff --git a/www/drupal7/patches/patch-modules_locale_locale.test b/www/drupal7/patches/patch-modules_locale_locale.test deleted file mode 100644 index cfef5788ac7..00000000000 --- a/www/drupal7/patches/patch-modules_locale_locale.test +++ /dev/null @@ -1,21 +0,0 @@ -$NetBSD: patch-modules_locale_locale.test,v 1.1 2018/10/03 10:58:15 prlw1 Exp $ - -Issue #2925449 -Function each() is deprecated since PHP 7.2 -commit 28de6772813387bf02a4bf6f75b9119c4c20a3f4 - ---- modules/locale/locale.test.orig 2018-04-25 15:32:27.000000000 +0000 -+++ modules/locale/locale.test -@@ -3188,11 +3188,7 @@ class LocaleLanguageNegotiationInfoFunct - foreach (language_types_info() as $type => $info) { - if (isset($info['fixed'])) { - $negotiation = variable_get("language_negotiation_$type", array()); -- $equal = count($info['fixed']) == count($negotiation); -- while ($equal && list($id) = each($negotiation)) { -- list(, $info_id) = each($info['fixed']); -- $equal = $info_id == $id; -- } -+ $equal = array_keys($negotiation) === array_values($info['fixed']); - $this->assertTrue($equal, format_string('language negotiation for %type is properly set up', array('%type' => $type))); - } - } diff --git a/www/drupal7/patches/patch-modules_simpletest_tests_themes_test__theme_theme-settings.php b/www/drupal7/patches/patch-modules_simpletest_tests_themes_test__theme_theme-settings.php deleted file mode 100644 index 613ff5c0b62..00000000000 --- a/www/drupal7/patches/patch-modules_simpletest_tests_themes_test__theme_theme-settings.php +++ /dev/null @@ -1,42 +0,0 @@ -$NetBSD: patch-modules_simpletest_tests_themes_test__theme_theme-settings.php,v 1.1 2018/10/03 10:58:15 prlw1 Exp $ - -Issue #2900373 -When a theme has a managed_file field and a submit callback, call -to undefined function error is thrown -commit b014c196e1eab417e0703c3fc77e340a213a8824 - ---- modules/simpletest/tests/themes/test_theme/theme-settings.php.orig 2018-10-03 09:31:14.310243910 +0000 -+++ modules/simpletest/tests/themes/test_theme/theme-settings.php -@@ -0,0 +1,32 @@ -+<?php -+ -+/** -+ * @file -+ * Theme setting callbacks for the test_theme theme. -+ */ -+ -+/** -+ * Implements hook_form_FORM_ID_alter(). -+ */ -+function test_theme_form_system_theme_settings_alter(&$form, &$form_state) { -+ $form['test_theme_checkbox'] = array( -+ '#type' => 'checkbox', -+ '#title' => 'Test theme checkbox', -+ '#default_value' => theme_get_setting('test_theme_checkbox'), -+ ); -+ -+ // Force the form to be cached so we can test that this file is properly -+ // loaded and the custom submit handler is properly called even on a cached -+ // form build. -+ $form_state['cache'] = TRUE; -+ $form['#submit'][] = 'test_theme_form_system_theme_settings_submit'; -+} -+ -+/** -+ * Form submission handler for the test theme settings form. -+ * -+ * @see test_theme_form_system_theme_settings_alter() -+ */ -+function test_theme_form_system_theme_settings_submit($form, &$form_state) { -+ drupal_set_message('The test theme setting was saved.'); -+} diff --git a/www/drupal7/patches/patch-modules_system_system.admin.inc b/www/drupal7/patches/patch-modules_system_system.admin.inc deleted file mode 100644 index 3576ba710da..00000000000 --- a/www/drupal7/patches/patch-modules_system_system.admin.inc +++ /dev/null @@ -1,23 +0,0 @@ -$NetBSD: patch-modules_system_system.admin.inc,v 1.1 2018/10/03 10:58:15 prlw1 Exp $ - -Issue #2900373 -When a theme has a managed_file field and a submit callback, call -to undefined function error is thrown -commit b014c196e1eab417e0703c3fc77e340a213a8824 - ---- modules/system/system.admin.inc.orig 2018-04-25 15:32:27.000000000 +0000 -+++ modules/system/system.admin.inc -@@ -572,9 +572,10 @@ function system_theme_settings($form, &$ - // Process the theme and all its base themes. - foreach ($theme_keys as $theme) { - // Include the theme-settings.php file. -- $filename = DRUPAL_ROOT . '/' . str_replace("/$theme.info", '', $themes[$theme]->filename) . '/theme-settings.php'; -- if (file_exists($filename)) { -- require_once $filename; -+ $theme_settings_path = drupal_get_path('theme', $theme) . '/theme-settings.php'; -+ if (file_exists(DRUPAL_ROOT . '/' . $theme_settings_path)) { -+ require_once DRUPAL_ROOT . '/' . $theme_settings_path; -+ $form_state['build_info']['files'][] = $theme_settings_path; - } - - // Call theme-specific settings. diff --git a/www/drupal7/patches/patch-modules_system_system.tar.inc b/www/drupal7/patches/patch-modules_system_system.tar.inc deleted file mode 100644 index 2f654e6bea9..00000000000 --- a/www/drupal7/patches/patch-modules_system_system.tar.inc +++ /dev/null @@ -1,152 +0,0 @@ -$NetBSD: patch-modules_system_system.tar.inc,v 1.1 2018/08/02 16:18:47 prlw1 Exp $ - -Issue #2946045 -Unable to update modules due to Archive_Tar incompatibility with PHP 7.2 -commit 127ffe91fffb5813c32490672d68c824595d75a0 - ---- modules/system/system.tar.inc.orig 2018-04-25 15:32:27.000000000 +0000 -+++ modules/system/system.tar.inc -@@ -41,8 +41,8 @@ - - /** - * Note on Drupal 8 porting. -- * This file origin is Tar.php, release 1.4.0 (stable) with some code -- * from PEAR.php, release 1.9.5 (stable) both at http://pear.php.net. -+ * This file origin is Tar.php, release 1.4.3 (stable) with some code -+ * from PEAR.php, release 1.10.5 (stable) both at http://pear.php.net. - * To simplify future porting from pear of this file, you should not - * do cosmetic or other non significant changes to this file. - * The following changes have been done: -@@ -259,6 +259,19 @@ class Archive_Tar - return false; - } - } -+ -+ -+ if (version_compare(PHP_VERSION, "5.5.0-dev") < 0) { -+ $this->_fmt = "a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/" . -+ "a8checksum/a1typeflag/a100link/a6magic/a2version/" . -+ "a32uname/a32gname/a8devmajor/a8devminor/a131prefix"; -+ } else { -+ $this->_fmt = "Z100filename/Z8mode/Z8uid/Z8gid/Z12size/Z12mtime/" . -+ "Z8checksum/Z1typeflag/Z100link/Z6magic/Z2version/" . -+ "Z32uname/Z32gname/Z8devmajor/Z8devminor/Z131prefix"; -+ } -+ -+ - } - - public function __destruct() -@@ -278,7 +291,7 @@ class Archive_Tar - * @param string $ext The extension name - * @return bool Success or not on the dl() call - */ -- function loadExtension($ext) -+ public static function loadExtension($ext) - { - if (extension_loaded($ext)) { - return true; -@@ -287,8 +300,7 @@ class Archive_Tar - // if either returns true dl() will produce a FATAL error, stop that - if ( - function_exists('dl') === false || -- ini_get('enable_dl') != 1 || -- ini_get('safe_mode') == 1 -+ ini_get('enable_dl') != 1 - ) { - return false; - } -@@ -714,7 +726,7 @@ class Archive_Tar - } - - // ----- Get the arguments -- $v_att_list = & func_get_args(); -+ $v_att_list = func_get_args(); - - // ----- Read the attributes - $i = 0; -@@ -1720,28 +1732,13 @@ class Archive_Tar - // ----- Calculate the checksum - $v_checksum = 0; - // ..... First part of the header -- for ($i = 0; $i < 148; $i++) { -- $v_checksum += ord(substr($v_binary_data, $i, 1)); -- } -- // ..... Ignore the checksum value and replace it by ' ' (space) -- for ($i = 148; $i < 156; $i++) { -- $v_checksum += ord(' '); -- } -- // ..... Last part of the header -- for ($i = 156; $i < 512; $i++) { -- $v_checksum += ord(substr($v_binary_data, $i, 1)); -- } -+ $v_binary_split = str_split($v_binary_data); -+ $v_checksum += array_sum(array_map('ord', array_slice($v_binary_split, 0, 148))); -+ $v_checksum += array_sum(array_map('ord', array(' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',))); -+ $v_checksum += array_sum(array_map('ord', array_slice($v_binary_split, 156, 512))); - -- if (version_compare(PHP_VERSION, "5.5.0-dev") < 0) { -- $fmt = "a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/" . -- "a8checksum/a1typeflag/a100link/a6magic/a2version/" . -- "a32uname/a32gname/a8devmajor/a8devminor/a131prefix"; -- } else { -- $fmt = "Z100filename/Z8mode/Z8uid/Z8gid/Z12size/Z12mtime/" . -- "Z8checksum/Z1typeflag/Z100link/Z6magic/Z2version/" . -- "Z32uname/Z32gname/Z8devmajor/Z8devminor/Z131prefix"; -- } -- $v_data = unpack($fmt, $v_binary_data); -+ -+ $v_data = unpack($this->_fmt, $v_binary_data); - - if (strlen($v_data["prefix"]) > 0) { - $v_data["filename"] = "$v_data[prefix]/$v_data[filename]"; -@@ -1777,7 +1774,7 @@ class Archive_Tar - $v_header['mode'] = OctDec(trim($v_data['mode'])); - $v_header['uid'] = OctDec(trim($v_data['uid'])); - $v_header['gid'] = OctDec(trim($v_data['gid'])); -- $v_header['size'] = OctDec(trim($v_data['size'])); -+ $v_header['size'] = $this->_tarRecToSize($v_data['size']); - $v_header['mtime'] = OctDec(trim($v_data['mtime'])); - if (($v_header['typeflag'] = $v_data['typeflag']) == "5") { - $v_header['size'] = 0; -@@ -1797,6 +1794,40 @@ class Archive_Tar - } - - /** -+ * Convert Tar record size to actual size -+ * -+ * @param string $tar_size -+ * @return size of tar record in bytes -+ */ -+ private function _tarRecToSize($tar_size) -+ { -+ /* -+ * First byte of size has a special meaning if bit 7 is set. -+ * -+ * Bit 7 indicates base-256 encoding if set. -+ * Bit 6 is the sign bit. -+ * Bits 5:0 are most significant value bits. -+ */ -+ $ch = ord($tar_size[0]); -+ if ($ch & 0x80) { -+ // Full 12-bytes record is required. -+ $rec_str = $tar_size . "\x00"; -+ -+ $size = ($ch & 0x40) ? -1 : 0; -+ $size = ($size << 6) | ($ch & 0x3f); -+ -+ for ($num_ch = 1; $num_ch < 12; ++$num_ch) { -+ $size = ($size * 256) + ord($rec_str[$num_ch]); -+ } -+ -+ return $size; -+ -+ } else { -+ return OctDec(trim($tar_size)); -+ } -+ } -+ -+ /** - * Detect and report a malicious file name - * - * @param string $file diff --git a/www/drupal7/patches/patch-modules_system_system.test b/www/drupal7/patches/patch-modules_system_system.test deleted file mode 100644 index 3029c211ddd..00000000000 --- a/www/drupal7/patches/patch-modules_system_system.test +++ /dev/null @@ -1,40 +0,0 @@ -$NetBSD: patch-modules_system_system.test,v 1.1 2018/10/03 10:58:15 prlw1 Exp $ - -Issue #2900373 -When a theme has a managed_file field and a submit callback, call -to undefined function error is thrown -commit b014c196e1eab417e0703c3fc77e340a213a8824 - ---- modules/system/system.test.orig 2018-04-25 15:32:27.000000000 +0000 -+++ modules/system/system.test -@@ -1944,6 +1944,30 @@ class SystemThemeFunctionalTest extends - $this->assertEqual($elements[0]['src'], file_create_url($uploaded_filename)); - } - -+ -+ /** -+ * Test the individual per-theme settings form. -+ */ -+ function testPerThemeSettings() { -+ // Enable the test theme and the module that controls it. Clear caches in -+ // between so that the module's hook_system_theme_info() implementation is -+ // correctly registered. -+ module_enable(array('theme_test')); -+ drupal_flush_all_caches(); -+ theme_enable(array('test_theme')); -+ -+ // Test that the theme-specific settings form can be saved and that the -+ // theme-specific checkbox is checked and unchecked as appropriate. -+ $this->drupalGet('admin/appearance/settings/test_theme'); -+ $this->assertNoFieldChecked('edit-test-theme-checkbox', 'The test_theme_checkbox setting is unchecked.'); -+ $this->drupalPost(NULL, array('test_theme_checkbox' => TRUE), t('Save configuration')); -+ $this->assertText('The test theme setting was saved.'); -+ $this->assertFieldChecked('edit-test-theme-checkbox', 'The test_theme_checkbox setting is checked.'); -+ $this->drupalPost(NULL, array('test_theme_checkbox' => FALSE), t('Save configuration')); -+ $this->assertText('The test theme setting was saved.'); -+ $this->assertNoFieldChecked('edit-test-theme-checkbox', 'The test_theme_checkbox setting is unchecked.'); -+ } -+ - /** - * Test the administration theme functionality. - */ |