diff --git a/typo3/sysext/install/Classes/Command/SetupCommand.php b/typo3/sysext/install/Classes/Command/SetupCommand.php index 30e03a309e0b530deaec1d8c9e9a25cd6458b106..e38f99adaa8adc3b60030a7f666d543da83429ae 100644 --- a/typo3/sysext/install/Classes/Command/SetupCommand.php +++ b/typo3/sysext/install/Classes/Command/SetupCommand.php @@ -28,6 +28,7 @@ use Symfony\Component\Console\Question\ConfirmationQuestion; use Symfony\Component\Console\Question\Question; use TYPO3\CMS\Core\Configuration\ConfigurationManager; use TYPO3\CMS\Core\Database\ConnectionPool; +use TYPO3\CMS\Core\Package\FailsafePackageManager; use TYPO3\CMS\Core\Resource\Exception\ExistingTargetFileNameException; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -56,7 +57,8 @@ class SetupCommand extends Command private readonly SetupDatabaseService $setupDatabaseService, private readonly SetupService $setupService, private readonly ConfigurationManager $configurationManager, - private readonly LateBootService $lateBootService + private readonly LateBootService $lateBootService, + private readonly FailsafePackageManager $packageManager, ) { parent::__construct($name); @@ -210,6 +212,8 @@ EOT $serverType = $this->getServerType($questionHelper, $input, $output); $folderStructureFactory = GeneralUtility::makeInstance(DefaultFactory::class); $folderStructureFactory->getStructure($serverType)->fix(); + // Ensure existing PackageStates.php for non-composer installation. + $this->packageManager->recreatePackageStatesFileIfMissing(true); try { $force = $input->getOption('force'); diff --git a/typo3/sysext/install/Classes/Service/SetupService.php b/typo3/sysext/install/Classes/Service/SetupService.php index 94c55991d32057f68811a34e2fe980deb5c21a18..bedc731a57d486b60056b40ed6a549e1da13b05c 100644 --- a/typo3/sysext/install/Classes/Service/SetupService.php +++ b/typo3/sysext/install/Classes/Service/SetupService.php @@ -135,7 +135,9 @@ class SetupService ); } - // @todo: Remove once LocalConfiguration.php support was dropped. + // @todo Remove once LocalConfiguration.php support was dropped. + // @todo Web installer creates default configuration based on default factory configuration. Recheck if we + // should use this here too instead of an empty array. // Ugly hack to write system/settings.php, to avoid fallback to // LocalConfiguration.php causing issues because it does not exist! @unlink($configurationFileLocation); diff --git a/typo3/sysext/install/Classes/ServiceProvider.php b/typo3/sysext/install/Classes/ServiceProvider.php index f72e507cf137a6e055a9971f44d2e59ef2ceb5ac..a2d41531d27313b4cc49250beac2970aac0be23f 100644 --- a/typo3/sysext/install/Classes/ServiceProvider.php +++ b/typo3/sysext/install/Classes/ServiceProvider.php @@ -359,7 +359,8 @@ class ServiceProvider extends AbstractServiceProvider $container->get(Service\SetupDatabaseService::class), $container->get(Service\SetupService::class), $container->get(ConfigurationManager::class), - $container->get(LateBootService::class) + $container->get(LateBootService::class), + $container->get(FailsafePackageManager::class), ); }