diff --git a/core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php index 03d84061d3..1d7ec8ff13 100644 --- a/core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php +++ b/core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php @@ -91,12 +91,18 @@ protected function validateModules(ConfigImporter $config_importer) { $config_importer->logError($this->t('Unable to install the %module module since it does not exist.', ['%module' => $module])); } + // Get a list of parent profiles and the main profile. + /* @var $profiles \Drupal\Core\Extension\Extension[] */ + $profiles = \Drupal::service('profile_handler')->getProfileInheritance(); + /* @var $main_profile \Drupal\Core\Extension\Extension */ + $main_profile = end($profiles); + // Ensure that all modules being installed have their dependencies met. $installs = $config_importer->getExtensionChangelist('module', 'install'); foreach ($installs as $module) { $missing_dependencies = []; foreach (array_keys($module_data[$module]->requires) as $required_module) { - if (!isset($core_extension['module'][$required_module])) { + if (!isset($core_extension['module'][$required_module]) && !array_key_exists($module, $profiles)) { $missing_dependencies[] = $module_data[$required_module]->info['name']; } } @@ -120,12 +126,6 @@ protected function validateModules(ConfigImporter $config_importer) { } } - // Get a list of parent profiles and the main profile. - /* @var $profiles \Drupal\Core\Extension\Extension[] */ - $profiles = \Drupal::service('profile_handler')->getProfileInheritance(); - /* @var $main_profile \Drupal\Core\Extension\Extension */ - $main_profile = end($profiles); - // Ensure that all modules being uninstalled are not required by modules // that will be installed after the import. $uninstalls = $config_importer->getExtensionChangelist('module', 'uninstall');