diff --git a/typo3/sysext/core/Classes/Composer/PackageArtifactBuilder.php b/typo3/sysext/core/Classes/Composer/PackageArtifactBuilder.php index 1492746422e7cd81a64ce293b6740976da4cfb3f..6aae34d4ee0047cffc20204a9aba735adc861310 100644 --- a/typo3/sysext/core/Classes/Composer/PackageArtifactBuilder.php +++ b/typo3/sysext/core/Classes/Composer/PackageArtifactBuilder.php @@ -92,7 +92,7 @@ class PackageArtifactBuilder extends PackageManager implements InstallerScript } $this->sortPackagesAndConfiguration(); $cacheIdentifier = md5(serialize($composer->getLocker()->getLockData())); - $this->setPackageCache(new ComposerPackageArtifact(getenv('TYPO3_PATH_APP') . '/var', new Filesystem(), $cacheIdentifier)); + $this->setPackageCache(new ComposerPackageArtifact($this->config->get('app-dir') . '/var', new Filesystem(), $cacheIdentifier)); $this->saveToPackageCache(); return true; @@ -271,7 +271,7 @@ class PackageArtifactBuilder extends PackageManager implements InstallerScript */ private function scanForRootExtensions(): array { - $thirdPartyExtensionDir = getenv('TYPO3_PATH_ROOT') . '/typo3conf/ext'; + $thirdPartyExtensionDir = $this->config->get('root-dir') . '/typo3conf/ext'; if (!is_dir($thirdPartyExtensionDir) || !$this->hasSubDirectories($thirdPartyExtensionDir)) { return []; } diff --git a/typo3/sysext/core/Classes/Package/PackageManager.php b/typo3/sysext/core/Classes/Package/PackageManager.php index 5268cc381184833357fcaf5dd9c99ca547750ef1..66079e71bb13686a51ea16d0f36afc5ae65afc4c 100644 --- a/typo3/sysext/core/Classes/Package/PackageManager.php +++ b/typo3/sysext/core/Classes/Package/PackageManager.php @@ -249,6 +249,9 @@ class PackageManager implements SingletonInterface */ public function scanAvailablePackages() { + if (Environment::isComposerMode()) { + return; + } $packagePaths = $this->scanPackagePathsForExtensions(); $packages = []; foreach ($packagePaths as $packageKey => $packagePath) { diff --git a/typo3/sysext/install/Classes/Controller/UpgradeController.php b/typo3/sysext/install/Classes/Controller/UpgradeController.php index 92aafe3b71df6ee686ed7bb4a789e3823f214153..f9e8bc44e5b82b4671ade180b2e9b04c7c445932 100644 --- a/typo3/sysext/install/Classes/Controller/UpgradeController.php +++ b/typo3/sysext/install/Classes/Controller/UpgradeController.php @@ -211,7 +211,11 @@ class UpgradeController extends AbstractController public function cardsAction(ServerRequestInterface $request): ResponseInterface { $view = $this->initializeStandaloneView($request, 'Upgrade/Cards.html'); - $view->assign('extensionFoldersInTypo3conf', (new Finder())->directories()->in(Environment::getExtensionsPath())->depth(0)->count()); + $installedExtensions = 0; + if (is_dir(Environment::getExtensionsPath())) { + $installedExtensions = (new Finder())->directories()->in(Environment::getExtensionsPath())->depth(0)->count(); + } + $view->assign('extensionFoldersInTypo3conf', $installedExtensions); return new JsonResponse([ 'success' => true, 'html' => $view->render(), diff --git a/typo3/sysext/install/Classes/FolderStructure/DefaultFactory.php b/typo3/sysext/install/Classes/FolderStructure/DefaultFactory.php index 422fca2b0d2a75bab1c09ab53c9b2deb0d94e113..6d8d502681bede6c948a5d4746496ec9ca6ff4e8 100644 --- a/typo3/sysext/install/Classes/FolderStructure/DefaultFactory.php +++ b/typo3/sysext/install/Classes/FolderStructure/DefaultFactory.php @@ -164,13 +164,6 @@ class DefaultFactory 'name' => 'typo3conf', 'type' => DirectoryNode::class, 'targetPermission' => $directoryPermission, - 'children' => [ - [ - 'name' => 'ext', - 'type' => DirectoryNode::class, - 'targetPermission' => $directoryPermission, - ], - ], ], $this->getFileadminStructure(), ]; diff --git a/typo3/sysext/install/Classes/Service/LanguagePackService.php b/typo3/sysext/install/Classes/Service/LanguagePackService.php index ae39779b61caa7db6a963b0b4dec43eb93f38cb3..e25c04c78ced89288862ab6d958a2e3ab67d4d16 100644 --- a/typo3/sysext/install/Classes/Service/LanguagePackService.php +++ b/typo3/sysext/install/Classes/Service/LanguagePackService.php @@ -217,15 +217,8 @@ class LanguagePackService throw new \RuntimeException('Language iso code ' . (string)$iso . ' not available or active', 1520117054); } $packageManager = GeneralUtility::makeInstance(PackageManager::class); - $activePackages = $packageManager->getActivePackages(); - $packageActive = false; - foreach ($activePackages as $package) { - if ($package->getPackageKey() === $key) { - $packageActive = true; - break; - } - } - if (!$packageActive) { + $package = $packageManager->getActivePackages()[$key] ?? null; + if (!$package) { throw new \RuntimeException('Extension ' . (string)$key . ' not loaded', 1520117245); } @@ -234,9 +227,8 @@ class LanguagePackService // Allow to modify the base url on the fly $event = $this->eventDispatcher->dispatch(new ModifyLanguagePackRemoteBaseUrlEvent(new Uri($languagePackBaseUrl), $key)); $languagePackBaseUrl = $event->getBaseUrl(); - $path = ExtensionManagementUtility::extPath($key); $majorVersion = GeneralUtility::makeInstance(Typo3Version::class)->getMajorVersion(); - if (strpos($path, '/sysext/') !== false) { + if ($package->getValueFromComposerManifest('type') === 'typo3-cms-framework') { // This is a system extension and the package URL should be adapted to have different packs per core major version // https://localize.typo3.org/xliff/b/a/backend-l10n/backend-l10n-fr.v9.zip $packageUrl = $key[0] . '/' . $key[1] . '/' . $key . '-l10n/' . $key . '-l10n-' . $iso . '.v' . $majorVersion . '.zip';