--- 1356276-675.patch 2021-11-19 06:28:37.000000000 +1300 +++ 1356276-678.patch 2022-02-21 16:59:28.626564588 +1300 @@ -1,8 +1,8 @@ diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc -index 5a5f92339b..dede4b9f7b 100644 +index 6d83278c..b051ad77 100644 --- a/core/includes/install.core.inc +++ b/core/includes/install.core.inc -@@ -464,6 +464,12 @@ function install_begin_request($class_loader, &$install_state) { +@@ -465,6 +465,12 @@ function install_begin_request($class_loader, &$install_state) { if (isset($install_state['profile_info']['distribution']['install']['theme'])) { $install_state['theme'] = $install_state['profile_info']['distribution']['install']['theme']; } @@ -15,7 +15,7 @@ } // Before having installed the system module and being able to do a module -@@ -847,18 +853,22 @@ function install_tasks($install_state) { +@@ -848,18 +854,22 @@ function install_tasks($install_state) { // Now add any tasks defined by the installation profile. if (!empty($install_state['parameters']['profile'])) { @@ -50,7 +50,7 @@ } } } -@@ -876,11 +886,13 @@ function install_tasks($install_state) { +@@ -877,11 +887,13 @@ function install_tasks($install_state) { // Allow the installation profile to modify the full list of tasks. if (!empty($install_state['parameters']['profile'])) { @@ -69,7 +69,7 @@ } } } -@@ -1264,7 +1276,9 @@ function install_select_profile(&$install_state) { +@@ -1265,7 +1277,9 @@ function install_select_profile(&$install_state) { * - For interactive installations via request query parameters. * - For non-interactive installations via install_drupal() settings. * - One of the available profiles is a distribution. If multiple profiles are @@ -80,7 +80,7 @@ * - Only one visible profile is available. * * @param array $install_state -@@ -1289,12 +1303,9 @@ function _install_select_profile(&$install_state) { +@@ -1290,12 +1304,9 @@ function _install_select_profile(&$install_state) { return $profile; } } @@ -96,7 +96,7 @@ } // Get all visible (not hidden) profiles. $visible_profiles = array_filter($install_state['profiles'], function ($profile) { -@@ -1522,7 +1533,9 @@ function _install_get_version_info($version) { +@@ -1523,7 +1534,9 @@ function _install_get_version_info($version) { */ function install_load_profile(&$install_state) { $profile = $install_state['parameters']['profile']; @@ -107,7 +107,7 @@ $install_state['profile_info'] = install_profile_info($profile, $install_state['parameters']['langcode'] ?? 'en'); $sync_directory = Settings::get('config_sync_directory'); -@@ -1656,6 +1669,10 @@ function install_install_profile(&$install_state) { +@@ -1657,6 +1670,10 @@ function install_install_profile(&$install_state) { \Drupal::service('module_installer')->install([$install_state['parameters']['profile']], FALSE); @@ -119,10 +119,10 @@ // @see _drupal_maintenance_theme() \Drupal::theme()->resetActiveTheme(); diff --git a/core/includes/install.inc b/core/includes/install.inc -index dcb7ffa691..aaedfb415c 100644 +index adc4a787..1a4fb5bb 100644 --- a/core/includes/install.inc +++ b/core/includes/install.inc -@@ -532,7 +532,6 @@ function _drupal_rewrite_settings_dump_one(\stdClass $variable, $prefix = '', $s +@@ -533,7 +533,6 @@ function _drupal_rewrite_settings_dump_one(\stdClass $variable, $prefix = '', $s * The list of modules to install. */ function drupal_verify_profile($install_state) { @@ -130,7 +130,7 @@ $info = $install_state['profile_info']; // Get the list of available modules for the selected installation profile. -@@ -541,10 +540,11 @@ function drupal_verify_profile($install_state) { +@@ -542,10 +541,11 @@ function drupal_verify_profile($install_state) { foreach ($listing->scan('module') as $present_module) { $present_modules[] = $present_module->getName(); } @@ -146,7 +146,7 @@ // Verify that all of the profile's required modules are present. $missing_modules = array_diff($info['install'], $present_modules); -@@ -1076,6 +1076,9 @@ function drupal_check_module($module) { +@@ -1087,6 +1087,9 @@ function drupal_check_module($module) { * Drupal's default installer theme. * - finish_url: A destination to visit after the installation of the * distribution is finished @@ -156,18 +156,41 @@ * * Note that this function does an expensive file system scan to get info file * information for dependencies. If you only need information from the info -@@ -1115,8 +1118,8 @@ function install_profile_info($profile, $langcode = 'en') { - 'config_install_path' => NULL, - ]; +@@ -1114,22 +1117,9 @@ function install_profile_info($profile, $langcode = 'en') { + static $cache = []; + + if (!isset($cache[$profile][$langcode])) { +- // Set defaults for module info. +- $defaults = [ +- 'dependencies' => [], +- 'install' => [], +- 'themes' => ['stark'], +- 'description' => '', +- 'version' => NULL, +- 'hidden' => FALSE, +- 'php' => \Drupal::MINIMUM_PHP, +- 'config_install_path' => NULL, +- ]; $profile_path = \Drupal::service('extension.list.profile')->getPath($profile); -- $info = \Drupal::service('info_parser')->parse("$profile_path/$profile.info.yml"); +- /** @var \Drupal\Core\Extension\InfoParserInterface $parser */ +- $parser = \Drupal::service('info_parser'); +- $info = $parser->parse("$profile_path/$profile.info.yml"); - $info += $defaults; + $info = \Drupal::service('extension.list.profile')->getExtensionInfo($profile); + $ancestors = \Drupal::service('extension.list.profile')->getAncestors($profile); $dependency_name_function = function ($dependency) { return Dependency::createFromString($dependency)->getName(); -@@ -1137,6 +1140,9 @@ function install_profile_info($profile, $langcode = 'en') { +@@ -1140,6 +1130,8 @@ function install_profile_info($profile, $langcode = 'en') { + // Convert install key in [project:module] format. + $info['install'] = array_map($dependency_name_function, $info['install']); + ++ /** @var \Drupal\Core\Extension\InfoParserInterface $parser */ ++ $parser = \Drupal::service('info_parser'); + // Get a list of core's required modules. + $required = []; + $listing = new ExtensionDiscovery(\Drupal::root()); +@@ -1157,6 +1149,9 @@ function install_profile_info($profile, $langcode = 'en') { // remove any duplicates. $info['install'] = array_unique(array_merge($info['install'], $required, $info['dependencies'], $locale)); @@ -178,7 +201,7 @@ if (is_dir($profile_path . '/config/sync')) { $info['config_install_path'] = $profile_path . '/config/sync'; diff --git a/core/lib/Drupal/Core/Config/ConfigInstaller.php b/core/lib/Drupal/Core/Config/ConfigInstaller.php -index 107ca8a071..4e4c14a94b 100644 +index 107ca8a0..4e4c14a9 100644 --- a/core/lib/Drupal/Core/Config/ConfigInstaller.php +++ b/core/lib/Drupal/Core/Config/ConfigInstaller.php @@ -4,6 +4,7 @@ @@ -233,7 +256,7 @@ // that already exists. Additionally, can not continue installing more // modules because those may depend on the current module being installed. diff --git a/core/lib/Drupal/Core/Config/ExtensionInstallStorage.php b/core/lib/Drupal/Core/Config/ExtensionInstallStorage.php -index 1006013f5f..6aae5ef046 100644 +index 1006013f..6aae5ef0 100644 --- a/core/lib/Drupal/Core/Config/ExtensionInstallStorage.php +++ b/core/lib/Drupal/Core/Config/ExtensionInstallStorage.php @@ -3,6 +3,7 @@ @@ -327,7 +350,7 @@ } return $this->folders; diff --git a/core/lib/Drupal/Core/Config/InstallStorage.php b/core/lib/Drupal/Core/Config/InstallStorage.php -index a21388b3cb..01f25285b4 100644 +index a21388b3..01f25285 100644 --- a/core/lib/Drupal/Core/Config/InstallStorage.php +++ b/core/lib/Drupal/Core/Config/InstallStorage.php @@ -4,6 +4,7 @@ @@ -396,7 +419,7 @@ return $this->folders; } diff --git a/core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php -index 99b933754d..c2dd38d769 100644 +index 99b93375..c2dd38d7 100644 --- a/core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php +++ b/core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php @@ -7,6 +7,7 @@ @@ -481,7 +504,7 @@ } diff --git a/core/lib/Drupal/Core/Extension/ExtensionDiscovery.php b/core/lib/Drupal/Core/Extension/ExtensionDiscovery.php -index 266886ba95..3874e08b87 100644 +index 42cbb571..0f6f9042 100644 --- a/core/lib/Drupal/Core/Extension/ExtensionDiscovery.php +++ b/core/lib/Drupal/Core/Extension/ExtensionDiscovery.php @@ -91,6 +91,15 @@ class ExtensionDiscovery { @@ -548,7 +571,7 @@ return $this; } diff --git a/core/lib/Drupal/Core/Extension/ModuleExtensionList.php b/core/lib/Drupal/Core/Extension/ModuleExtensionList.php -index 5aed60c0b0..efc482d905 100644 +index 6337cd08..eefe100b 100644 --- a/core/lib/Drupal/Core/Extension/ModuleExtensionList.php +++ b/core/lib/Drupal/Core/Extension/ModuleExtensionList.php @@ -42,7 +42,7 @@ class ModuleExtensionList extends ExtensionList { @@ -605,10 +628,10 @@ return $extensions; } diff --git a/core/lib/Drupal/Core/Extension/ModuleInstaller.php b/core/lib/Drupal/Core/Extension/ModuleInstaller.php -index 21970253e9..6640e0044e 100644 +index c017f6a4..a2e9f9ff 100644 --- a/core/lib/Drupal/Core/Extension/ModuleInstaller.php +++ b/core/lib/Drupal/Core/Extension/ModuleInstaller.php -@@ -421,7 +421,7 @@ public function uninstall(array $module_list, $uninstall_dependents = TRUE) { +@@ -424,7 +424,7 @@ public function uninstall(array $module_list, $uninstall_dependents = TRUE) { return FALSE; } @@ -618,7 +641,7 @@ $module_list[$dependent] = $dependent; } diff --git a/core/lib/Drupal/Core/Extension/ProfileExtensionList.php b/core/lib/Drupal/Core/Extension/ProfileExtensionList.php -index 5ef9c451fd..5f139a00ed 100644 +index 5ef9c451..5f139a00 100644 --- a/core/lib/Drupal/Core/Extension/ProfileExtensionList.php +++ b/core/lib/Drupal/Core/Extension/ProfileExtensionList.php @@ -23,13 +23,172 @@ class ProfileExtensionList extends ExtensionList { @@ -797,7 +820,7 @@ } diff --git a/core/lib/Drupal/Core/Installer/InstallerProfileExtensionList.php b/core/lib/Drupal/Core/Installer/InstallerProfileExtensionList.php new file mode 100644 -index 0000000000..d5c42adea3 +index 00000000..d5c42ade --- /dev/null +++ b/core/lib/Drupal/Core/Installer/InstallerProfileExtensionList.php @@ -0,0 +1,58 @@ @@ -860,7 +883,7 @@ + +} diff --git a/core/lib/Drupal/Core/Installer/NormalInstallerServiceProvider.php b/core/lib/Drupal/Core/Installer/NormalInstallerServiceProvider.php -index a35905b587..82923801a0 100644 +index a35905b5..82923801 100644 --- a/core/lib/Drupal/Core/Installer/NormalInstallerServiceProvider.php +++ b/core/lib/Drupal/Core/Installer/NormalInstallerServiceProvider.php @@ -53,6 +53,7 @@ public function register(ContainerBuilder $container) { @@ -872,7 +895,7 @@ $container->getDefinition('extension.list.theme_engine')->setClass(InstallerThemeEngineExtensionList::class); diff --git a/core/modules/config/tests/config_test/src/TestInstallStorage.php b/core/modules/config/tests/config_test/src/TestInstallStorage.php -index e3c4918df4..6d140815b7 100644 +index e3c4918d..6d140815 100644 --- a/core/modules/config/tests/config_test/src/TestInstallStorage.php +++ b/core/modules/config/tests/config_test/src/TestInstallStorage.php @@ -21,9 +21,10 @@ protected function getAllFolders() { @@ -891,7 +914,7 @@ } diff --git a/core/modules/config/tests/src/Functional/ConfigImportBaseInstallProfileTest.php b/core/modules/config/tests/src/Functional/ConfigImportBaseInstallProfileTest.php new file mode 100644 -index 0000000000..583c31153b +index 00000000..583c3115 --- /dev/null +++ b/core/modules/config/tests/src/Functional/ConfigImportBaseInstallProfileTest.php @@ -0,0 +1,96 @@ @@ -992,7 +1015,7 @@ + +} diff --git a/core/modules/config/tests/src/Functional/ConfigImportInstallProfileTest.php b/core/modules/config/tests/src/Functional/ConfigImportInstallProfileTest.php -index 9766979d4e..b870aeed33 100644 +index 9766979d..b870aeed 100644 --- a/core/modules/config/tests/src/Functional/ConfigImportInstallProfileTest.php +++ b/core/modules/config/tests/src/Functional/ConfigImportInstallProfileTest.php @@ -62,7 +62,7 @@ public function testInstallProfileValidation() { @@ -1005,7 +1028,7 @@ // Uninstall dependencies of testing_config_import. $core['module']['testing_config_import'] = 0; diff --git a/core/modules/system/src/Form/ModulesUninstallForm.php b/core/modules/system/src/Form/ModulesUninstallForm.php -index 0719511e8e..0e4f80f503 100644 +index 0719511e..0e4f80f5 100644 --- a/core/modules/system/src/Form/ModulesUninstallForm.php +++ b/core/modules/system/src/Form/ModulesUninstallForm.php @@ -143,10 +143,15 @@ public function buildForm(array $form, FormStateInterface $form_state) { @@ -1036,7 +1059,7 @@ $form['modules'][$module->getName()]['#required_by'][] = $dependent; diff --git a/core/profiles/testing_inherited/config/install/block.block.stable_login.yml b/core/profiles/testing_inherited/config/install/block.block.stable_login.yml new file mode 100644 -index 0000000000..3650c6c41a +index 00000000..3650c6c4 --- /dev/null +++ b/core/profiles/testing_inherited/config/install/block.block.stable_login.yml @@ -0,0 +1,19 @@ @@ -1061,7 +1084,7 @@ +visibility: { } diff --git a/core/profiles/testing_inherited/config/install/system.theme.yml b/core/profiles/testing_inherited/config/install/system.theme.yml new file mode 100644 -index 0000000000..67aeeeeac7 +index 00000000..67aeeeea --- /dev/null +++ b/core/profiles/testing_inherited/config/install/system.theme.yml @@ -0,0 +1,2 @@ @@ -1069,7 +1092,7 @@ +default: stable diff --git a/core/profiles/testing_inherited/modules/child_profile_module/child_profile_module.info.yml b/core/profiles/testing_inherited/modules/child_profile_module/child_profile_module.info.yml new file mode 100644 -index 0000000000..132b11493f +index 00000000..132b1149 --- /dev/null +++ b/core/profiles/testing_inherited/modules/child_profile_module/child_profile_module.info.yml @@ -0,0 +1,5 @@ @@ -1080,7 +1103,7 @@ +version: VERSION diff --git a/core/profiles/testing_inherited/modules/contrib/contrib_child_profile_module/contrib_child_profile_module.info.yml b/core/profiles/testing_inherited/modules/contrib/contrib_child_profile_module/contrib_child_profile_module.info.yml new file mode 100644 -index 0000000000..822c572099 +index 00000000..822c5720 --- /dev/null +++ b/core/profiles/testing_inherited/modules/contrib/contrib_child_profile_module/contrib_child_profile_module.info.yml @@ -0,0 +1,5 @@ @@ -1091,7 +1114,7 @@ +version: VERSION diff --git a/core/profiles/testing_inherited/modules/custom/custom_child_profile_module/custom_child_profile_module.info.yml b/core/profiles/testing_inherited/modules/custom/custom_child_profile_module/custom_child_profile_module.info.yml new file mode 100644 -index 0000000000..ef81a8a55b +index 00000000..ef81a8a5 --- /dev/null +++ b/core/profiles/testing_inherited/modules/custom/custom_child_profile_module/custom_child_profile_module.info.yml @@ -0,0 +1,5 @@ @@ -1102,7 +1125,7 @@ +version: VERSION diff --git a/core/profiles/testing_inherited/testing_inherited.info.yml b/core/profiles/testing_inherited/testing_inherited.info.yml new file mode 100644 -index 0000000000..92e183c86a +index 00000000..92e183c8 --- /dev/null +++ b/core/profiles/testing_inherited/testing_inherited.info.yml @@ -0,0 +1,17 @@ @@ -1125,7 +1148,7 @@ + - stable diff --git a/core/profiles/testing_inherited/tests/src/Functional/InheritedProfileTest.php b/core/profiles/testing_inherited/tests/src/Functional/InheritedProfileTest.php new file mode 100644 -index 0000000000..0af6c4f68d +index 00000000..0af6c4f6 --- /dev/null +++ b/core/profiles/testing_inherited/tests/src/Functional/InheritedProfileTest.php @@ -0,0 +1,46 @@ @@ -1177,7 +1200,7 @@ +} diff --git a/core/profiles/testing_inherited_standard/testing_inherited_standard.info.yml b/core/profiles/testing_inherited_standard/testing_inherited_standard.info.yml new file mode 100644 -index 0000000000..0728ada2d1 +index 00000000..0728ada2 --- /dev/null +++ b/core/profiles/testing_inherited_standard/testing_inherited_standard.info.yml @@ -0,0 +1,12 @@ @@ -1195,7 +1218,7 @@ + - bartik diff --git a/core/profiles/testing_inherited_standard/tests/src/Functional/InheritedProfileTest.php b/core/profiles/testing_inherited_standard/tests/src/Functional/InheritedProfileTest.php new file mode 100644 -index 0000000000..1bc6b51db0 +index 00000000..1bc6b51d --- /dev/null +++ b/core/profiles/testing_inherited_standard/tests/src/Functional/InheritedProfileTest.php @@ -0,0 +1,31 @@ @@ -1232,7 +1255,7 @@ +} diff --git a/core/profiles/testing_sub_sub_profile/config/install/system.theme.yml b/core/profiles/testing_sub_sub_profile/config/install/system.theme.yml new file mode 100644 -index 0000000000..5cb3db7201 +index 00000000..5cb3db72 --- /dev/null +++ b/core/profiles/testing_sub_sub_profile/config/install/system.theme.yml @@ -0,0 +1,2 @@ @@ -1240,7 +1263,7 @@ +default: stable diff --git a/core/profiles/testing_sub_sub_profile/modules/grandchild_profile_module/grandchild_profile_module.info.yml b/core/profiles/testing_sub_sub_profile/modules/grandchild_profile_module/grandchild_profile_module.info.yml new file mode 100644 -index 0000000000..06e0e52d59 +index 00000000..06e0e52d --- /dev/null +++ b/core/profiles/testing_sub_sub_profile/modules/grandchild_profile_module/grandchild_profile_module.info.yml @@ -0,0 +1,5 @@ @@ -1251,7 +1274,7 @@ +version: VERSION diff --git a/core/profiles/testing_sub_sub_profile/testing_sub_sub_profile.info.yml b/core/profiles/testing_sub_sub_profile/testing_sub_sub_profile.info.yml new file mode 100644 -index 0000000000..25d7ca67ed +index 00000000..25d7ca67 --- /dev/null +++ b/core/profiles/testing_sub_sub_profile/testing_sub_sub_profile.info.yml @@ -0,0 +1,11 @@ @@ -1268,7 +1291,7 @@ + - grandchild_profile_module diff --git a/core/profiles/testing_sub_sub_profile/tests/src/Functional/DeepInheritedProfileTest.php b/core/profiles/testing_sub_sub_profile/tests/src/Functional/DeepInheritedProfileTest.php new file mode 100644 -index 0000000000..e14705d581 +index 00000000..e14705d5 --- /dev/null +++ b/core/profiles/testing_sub_sub_profile/tests/src/Functional/DeepInheritedProfileTest.php @@ -0,0 +1,38 @@ @@ -1311,7 +1334,7 @@ + +} diff --git a/core/tests/Drupal/KernelTests/Core/Config/ConfigImporterTest.php b/core/tests/Drupal/KernelTests/Core/Config/ConfigImporterTest.php -index 14a51290b2..d14233b8b5 100644 +index 14a51290..d14233b8 100644 --- a/core/tests/Drupal/KernelTests/Core/Config/ConfigImporterTest.php +++ b/core/tests/Drupal/KernelTests/Core/Config/ConfigImporterTest.php @@ -732,7 +732,7 @@ public function testInstallProfileMisMatch() { @@ -1325,7 +1348,7 @@ } diff --git a/core/tests/Drupal/KernelTests/Core/Extension/ProfileExtensionListTest.php b/core/tests/Drupal/KernelTests/Core/Extension/ProfileExtensionListTest.php new file mode 100644 -index 0000000000..0c8faa21c4 +index 00000000..0c8faa21 --- /dev/null +++ b/core/tests/Drupal/KernelTests/Core/Extension/ProfileExtensionListTest.php @@ -0,0 +1,145 @@