From 02db96498345f6e74e21e375c75376d5f66d921c Mon Sep 17 00:00:00 2001
From: Benni Mack <benni@typo3.org>
Date: Wed, 13 Jan 2016 09:14:22 +0100
Subject: [PATCH] [!!!][TASK] Merge EXT:aboutmodules in EXT:about
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Resolves: #72671
Releases: master
Change-Id: I57b4b6b74e8d4b6839755f064b46084b8ae114be
Reviewed-on: https://review.typo3.org/45860
Reviewed-by: Frank Nägler <frank.naegler@typo3.org>
Tested-by: Frank Nägler <frank.naegler@typo3.org>
Reviewed-by: Markus Sommer <markussom@posteo.de>
Tested-by: Markus Sommer <markussom@posteo.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Benni Mack <benni@typo3.org>
---
 composer.json                                 |   2 -
 .../Classes/Controller/ModulesController.php  |   7 +-
 .../Language/Modules/aboutmodules.xlf}        |   0
 .../about/Resources/Private/Less/styles.less  |  28 ++++++-
 .../Private/Templates/Modules/Index.html      |   0
 .../about/Resources/Public/Css/styles.css     |  15 ++++
 .../Public/Icons/module-aboutmodules.svg      |   0
 typo3/sysext/about/composer.json              |   3 +-
 typo3/sysext/about/ext_emconf.php             |   7 +-
 typo3/sysext/about/ext_tables.php             |  15 ++++
 .../aboutmodules/Resources/Private/.htaccess  |  11 ---
 .../Resources/Private/Layouts/Default.html    |   2 -
 .../Resources/Private/Less/styles.less        |  37 --------
 .../Resources/Public/Css/styles.css           |  27 ------
 typo3/sysext/aboutmodules/composer.json       |  26 ------
 typo3/sysext/aboutmodules/ext_emconf.php      |  21 -----
 typo3/sysext/aboutmodules/ext_icon.png        | Bin 768 -> 0 bytes
 typo3/sysext/aboutmodules/ext_tables.php      |  20 -----
 .../BackendUserAuthentication.php             |   2 +-
 ...ing-72671-ExtensionAboutmodulesRemoved.rst |  14 ++++
 ...ackendUserStartModuleUpdateAboutModule.php |  79 ++++++++++++++++++
 typo3/sysext/install/ext_localconf.php        |   4 +
 22 files changed, 164 insertions(+), 156 deletions(-)
 rename typo3/sysext/{aboutmodules => about}/Classes/Controller/ModulesController.php (96%)
 rename typo3/sysext/{aboutmodules/Resources/Private/Language/locallang_mod.xlf => about/Resources/Private/Language/Modules/aboutmodules.xlf} (100%)
 rename typo3/sysext/{aboutmodules => about}/Resources/Private/Templates/Modules/Index.html (100%)
 rename typo3/sysext/{aboutmodules => about}/Resources/Public/Icons/module-aboutmodules.svg (100%)
 delete mode 100644 typo3/sysext/aboutmodules/Resources/Private/.htaccess
 delete mode 100644 typo3/sysext/aboutmodules/Resources/Private/Layouts/Default.html
 delete mode 100644 typo3/sysext/aboutmodules/Resources/Private/Less/styles.less
 delete mode 100644 typo3/sysext/aboutmodules/Resources/Public/Css/styles.css
 delete mode 100644 typo3/sysext/aboutmodules/composer.json
 delete mode 100644 typo3/sysext/aboutmodules/ext_emconf.php
 delete mode 100644 typo3/sysext/aboutmodules/ext_icon.png
 delete mode 100644 typo3/sysext/aboutmodules/ext_tables.php
 create mode 100644 typo3/sysext/core/Documentation/Changelog/master/Breaking-72671-ExtensionAboutmodulesRemoved.rst
 create mode 100644 typo3/sysext/install/Classes/Updates/BackendUserStartModuleUpdateAboutModule.php

diff --git a/composer.json b/composer.json
index dd1a50c0c2bc..091a221b2e08 100644
--- a/composer.json
+++ b/composer.json
@@ -66,7 +66,6 @@
 	},
 	"replace": {
 		"typo3/cms-about": "self.version",
-		"typo3/cms-aboutmodules": "self.version",
 		"typo3/cms-adodb": "self.version",
 		"typo3/cms-backend": "self.version",
 		"typo3/cms-belog": "self.version",
@@ -123,7 +122,6 @@
 	"autoload": {
 		"psr-4": {
 			"TYPO3\\CMS\\About\\": "typo3/sysext/about/Classes/",
-			"TYPO3\\CMS\\Aboutmodules\\": "typo3/sysext/aboutmodules/Classes/",
 			"TYPO3\\CMS\\Backend\\": "typo3/sysext/backend/Classes/",
 			"TYPO3\\CMS\\Belog\\": "typo3/sysext/belog/Classes/",
 			"TYPO3\\CMS\\Beuser\\": "typo3/sysext/beuser/Classes/",
diff --git a/typo3/sysext/aboutmodules/Classes/Controller/ModulesController.php b/typo3/sysext/about/Classes/Controller/ModulesController.php
similarity index 96%
rename from typo3/sysext/aboutmodules/Classes/Controller/ModulesController.php
rename to typo3/sysext/about/Classes/Controller/ModulesController.php
index d9f322f0e18f..8768ca597710 100644
--- a/typo3/sysext/aboutmodules/Classes/Controller/ModulesController.php
+++ b/typo3/sysext/about/Classes/Controller/ModulesController.php
@@ -1,5 +1,5 @@
 <?php
-namespace TYPO3\CMS\Aboutmodules\Controller;
+namespace TYPO3\CMS\About\Controller;
 
 /*
  * This file is part of the TYPO3 CMS project.
@@ -14,6 +14,7 @@ namespace TYPO3\CMS\Aboutmodules\Controller;
  * The TYPO3 project - inspiring people to share!
  */
 
+use TYPO3\CMS\Backend\Module\ModuleLoader;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Backend\View\BackendTemplateView;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
@@ -111,8 +112,8 @@ class ModulesController extends ActionController
      */
     protected function getModulesData()
     {
-        /** @var $loadedModules \TYPO3\CMS\Backend\Module\ModuleLoader */
-        $loadedModules = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Module\ModuleLoader::class);
+        /** @var $loadedModules ModuleLoader */
+        $loadedModules = GeneralUtility::makeInstance(ModuleLoader::class);
         $loadedModules->observeWorkspaces = true;
         $loadedModules->load($GLOBALS['TBE_MODULES']);
         $mainModulesData = array();
diff --git a/typo3/sysext/aboutmodules/Resources/Private/Language/locallang_mod.xlf b/typo3/sysext/about/Resources/Private/Language/Modules/aboutmodules.xlf
similarity index 100%
rename from typo3/sysext/aboutmodules/Resources/Private/Language/locallang_mod.xlf
rename to typo3/sysext/about/Resources/Private/Language/Modules/aboutmodules.xlf
diff --git a/typo3/sysext/about/Resources/Private/Less/styles.less b/typo3/sysext/about/Resources/Private/Less/styles.less
index 67f2ab1709a3..13b6ef3cdad6 100644
--- a/typo3/sysext/about/Resources/Private/Less/styles.less
+++ b/typo3/sysext/about/Resources/Private/Less/styles.less
@@ -41,4 +41,30 @@ Help > About
 		color: black;
 		text-decoration: underline;
 	}
-}
\ No newline at end of file
+}
+
+
+/* - - - - - - - - - - - - - - - - - - - - -
+Help > About modules
+- - - - - - - - - - - - - - - - - - - - - */
+
+.typo3-aboutmodules-inner-docbody {
+
+	a {
+		text-decoration: underline;
+	}
+
+	.end-text {
+		padding-top: 3em;
+	}
+
+	h2 {
+		margin-bottom: 1em;
+	}
+
+	.submodule {
+		padding-bottom: 3em;
+	}
+}
+
+
diff --git a/typo3/sysext/aboutmodules/Resources/Private/Templates/Modules/Index.html b/typo3/sysext/about/Resources/Private/Templates/Modules/Index.html
similarity index 100%
rename from typo3/sysext/aboutmodules/Resources/Private/Templates/Modules/Index.html
rename to typo3/sysext/about/Resources/Private/Templates/Modules/Index.html
diff --git a/typo3/sysext/about/Resources/Public/Css/styles.css b/typo3/sysext/about/Resources/Public/Css/styles.css
index 2778745d7865..fc677b3a87d0 100644
--- a/typo3/sysext/about/Resources/Public/Css/styles.css
+++ b/typo3/sysext/about/Resources/Public/Css/styles.css
@@ -36,3 +36,18 @@ Help > About
   color: black;
   text-decoration: underline;
 }
+/* - - - - - - - - - - - - - - - - - - - - -
+Help > About modules
+- - - - - - - - - - - - - - - - - - - - - */
+.typo3-aboutmodules-inner-docbody a {
+	text-decoration: underline;
+}
+.typo3-aboutmodules-inner-docbody .end-text {
+	padding-top: 3em;
+}
+.typo3-aboutmodules-inner-docbody h2 {
+	margin-bottom: 1em;
+}
+.typo3-aboutmodules-inner-docbody .submodule {
+	padding-bottom: 3em;
+}
diff --git a/typo3/sysext/aboutmodules/Resources/Public/Icons/module-aboutmodules.svg b/typo3/sysext/about/Resources/Public/Icons/module-aboutmodules.svg
similarity index 100%
rename from typo3/sysext/aboutmodules/Resources/Public/Icons/module-aboutmodules.svg
rename to typo3/sysext/about/Resources/Public/Icons/module-aboutmodules.svg
diff --git a/typo3/sysext/about/composer.json b/typo3/sysext/about/composer.json
index 34bc7e3ff598..485fcaf8563f 100644
--- a/typo3/sysext/about/composer.json
+++ b/typo3/sysext/about/composer.json
@@ -9,7 +9,8 @@
 		"typo3/cms-core": "*"
 	},
 	"replace": {
-		"about": "*"
+		"about": "*",
+		"aboutmodules": "*"
 	},
 	"extra": {
 		"typo3/cms": {
diff --git a/typo3/sysext/about/ext_emconf.php b/typo3/sysext/about/ext_emconf.php
index 2c8cde0a1f60..3faf535b4a8b 100644
--- a/typo3/sysext/about/ext_emconf.php
+++ b/typo3/sysext/about/ext_emconf.php
@@ -1,15 +1,14 @@
 <?php
 $EM_CONF[$_EXTKEY] = array(
     'title' => 'Help>About',
-    'description' => 'Shows info about TYPO3 and installed extensions.',
+    'description' => 'Shows info about TYPO3, installed extensions and a separate module for available modules.',
     'category' => 'module',
     'state' => 'stable',
     'uploadfolder' => 0,
     'createDirs' => '',
     'clearCacheOnLoad' => 0,
-    'author' => 'Kasper Skaarhoj',
-    'author_email' => 'kasperYYYY@typo3.com',
-    'author_company' => 'Curby Soft Multimedia',
+    'author' => 'TYPO3 Core Team',
+    'author_email' => 'typo3cms@typo3.org',
     'version' => '8.0.0',
     'constraints' => array(
         'depends' => array(
diff --git a/typo3/sysext/about/ext_tables.php b/typo3/sysext/about/ext_tables.php
index 9383d603ce71..1f58c3225d5a 100644
--- a/typo3/sysext/about/ext_tables.php
+++ b/typo3/sysext/about/ext_tables.php
@@ -15,4 +15,19 @@ if (TYPO3_MODE === 'BE' && !(TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_INSTALL)) {
             'labels' => 'LLL:EXT:lang/locallang_mod_help_about.xlf'
         )
     );
+
+    \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
+        'TYPO3.CMS.About',
+        'help',
+        'aboutmodules',
+        'after:about',
+        array(
+            'Modules' => 'index'
+        ),
+        array(
+            'access' => 'user,group',
+            'icon' => 'EXT:about/Resources/Public/Icons/module-aboutmodules.svg',
+            'labels' => 'LLL:EXT:about/Resources/Private/Language/Modules/aboutmodules.xlf'
+        )
+    );
 }
diff --git a/typo3/sysext/aboutmodules/Resources/Private/.htaccess b/typo3/sysext/aboutmodules/Resources/Private/.htaccess
deleted file mode 100644
index 9a2aa5a29957..000000000000
--- a/typo3/sysext/aboutmodules/Resources/Private/.htaccess
+++ /dev/null
@@ -1,11 +0,0 @@
-# Apache < 2.3
-<IfModule !mod_authz_core.c>
-	Order allow,deny
-	Deny from all
-	Satisfy All
-</IfModule>
-
-# Apache ≥ 2.3
-<IfModule mod_authz_core.c>
-	Require all denied
-</IfModule>
diff --git a/typo3/sysext/aboutmodules/Resources/Private/Layouts/Default.html b/typo3/sysext/aboutmodules/Resources/Private/Layouts/Default.html
deleted file mode 100644
index 615d84a6d306..000000000000
--- a/typo3/sysext/aboutmodules/Resources/Private/Layouts/Default.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<f:be.pageRenderer includeCssFiles="{0: '{f:uri.resource(path:\'Css/styles.css\')}'}" />
-<f:render section="Content" />
\ No newline at end of file
diff --git a/typo3/sysext/aboutmodules/Resources/Private/Less/styles.less b/typo3/sysext/aboutmodules/Resources/Private/Less/styles.less
deleted file mode 100644
index 7ff3be680b32..000000000000
--- a/typo3/sysext/aboutmodules/Resources/Private/Less/styles.less
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-/* - - - - - - - - - - - - - - - - - - - - -
-Help > About modules
-- - - - - - - - - - - - - - - - - - - - - */
-
-.typo3-aboutmodules-inner-docbody {
-
-	a {
-		text-decoration: underline;
-	}
-
-	.end-text {
-		padding-top: 3em;
-	}
-
-	h2 {
-		margin-bottom: 1em;
-	}
-
-	.submodule {
-		padding-bottom: 3em;
-	}
-}
-
-
diff --git a/typo3/sysext/aboutmodules/Resources/Public/Css/styles.css b/typo3/sysext/aboutmodules/Resources/Public/Css/styles.css
deleted file mode 100644
index ffe11620d413..000000000000
--- a/typo3/sysext/aboutmodules/Resources/Public/Css/styles.css
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-/* - - - - - - - - - - - - - - - - - - - - -
-Help > About modules
-- - - - - - - - - - - - - - - - - - - - - */
-.typo3-aboutmodules-inner-docbody a {
-  text-decoration: underline;
-}
-.typo3-aboutmodules-inner-docbody .end-text {
-  padding-top: 3em;
-}
-.typo3-aboutmodules-inner-docbody h2 {
-  margin-bottom: 1em;
-}
-.typo3-aboutmodules-inner-docbody .submodule {
-  padding-bottom: 3em;
-}
diff --git a/typo3/sysext/aboutmodules/composer.json b/typo3/sysext/aboutmodules/composer.json
deleted file mode 100644
index 0e1f7ccd48ac..000000000000
--- a/typo3/sysext/aboutmodules/composer.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-	"name": "typo3/cms-aboutmodules",
-	"type": "typo3-cms-framework",
-	"description": "TYPO3 Core",
-	"homepage": "https://typo3.org",
-	"license": ["GPL-2.0+"],
-
-	"require": {
-		"typo3/cms-core": "*"
-	},
-	"replace": {
-		"aboutmodules": "*"
-	},
-	"extra": {
-		"typo3/cms": {
-			"Package": {
-				"partOfFactoryDefault": true
-			}
-		}
-	},
-	"autoload": {
-		"psr-4": {
-			"TYPO3\\CMS\\Aboutmodules\\": "Classes/"
-		}
-	}
-}
diff --git a/typo3/sysext/aboutmodules/ext_emconf.php b/typo3/sysext/aboutmodules/ext_emconf.php
deleted file mode 100644
index e04f0cefb6c6..000000000000
--- a/typo3/sysext/aboutmodules/ext_emconf.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-$EM_CONF[$_EXTKEY] = array(
-    'title' => 'Help>About Modules',
-    'description' => 'Shows an overview of the installed and available modules including description and links.',
-    'category' => 'module',
-    'state' => 'stable',
-    'uploadfolder' => 0,
-    'createDirs' => '',
-    'clearCacheOnLoad' => 0,
-    'author' => 'Kasper Skaarhoj',
-    'author_email' => 'kasperYYYY@typo3.com',
-    'author_company' => 'Curby Soft Multimedia',
-    'version' => '8.0.0',
-    'constraints' => array(
-        'depends' => array(
-            'typo3' => '8.0.0-8.0.99',
-        ),
-        'conflicts' => array(),
-        'suggests' => array(),
-    ),
-);
diff --git a/typo3/sysext/aboutmodules/ext_icon.png b/typo3/sysext/aboutmodules/ext_icon.png
deleted file mode 100644
index 9576a2108ede970505ace5115747be4c0bb67fa5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 768
zcmV+b1ONPqP)<h;3K|Lk000e1NJLTq002M$002M;0{{R3owtGP0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzK~PLoMLL1BJAt%3g0($^wLXKjKZLeG
zg|<P3w?c-uM2EOVh`2_GxJQY(Ns78ji@HjSx=oF{Pma7$kGxQiy-|?8Q<1(@lD=G*
z!CsicV41>Un!{wA#AThtXP(7rpT=yV$8V#^aHPp{rO9)q%5|s8b*IaCsmyt*%zUfO
zfUVAhuh56G(TTItjJ4B^w$qNc)Q`8+khs;6xz(4w*qguEp26Cm!rP+6+@;0csL0-`
z$=|EV->k~tt;^uA%;B@o;<V4=xzpvk)8)I=<-OJBz}Dx)+33gH>dD;d%H8YD-|Wuc
z?9Slq)Z_2f<nP$#@Z0F|-0AY&>GIy{^5E<9<nHz6@Al~M_UZBV>+<*R^!e}g`SJGp
z^7s1l`1|zu`}O(z_WAqw`uzC&{Q3L+`uzR-{r>#@{{8;`{{R2~|Nk@>`RD)u0aZyv
zK~xwS?ZN3<QehZ|(VHz~PG!zR<y1;$T8Rx9Ii+P;IFK5q1`fe<{s$2K<H~pUeh0AE
zB9TZW934BCW&Pu7dw^hhSq>rs-KomdPoTVPcL_5oTZuq(vb`oyP7URIG-<C%dO-gW
zA&P2Pr%CiuQaNI_(u425Y%8##7r3Gw*``UKX#v+e{k0U)q#)^{m2qhV*B3R^I%(2V
zmb3-SI!@u*mF+1User4uE>o?WVQB(aPPT85(^&>j`-yCeP}B!pD~d5lZ(UDtm1O%4
z&vf01r}dX?Z{d?Z<C;;7F*>gF9M?zLex}Jv19(R3vaP|I_V8r(6(dXfRIl(nRE+9v
z#-vd^BZ{#BdHqP?nU?K(7!LIw*P<-v#YZqCP2rl?X&bhjDj8gTzx5bXOG%pqSklEp
y7dPEnl_m+0Dk#ny!c1*fbW`<fmP8_v_^&@<8zo8E@X}cT0000<MNUMnLSTY$W2=1t

diff --git a/typo3/sysext/aboutmodules/ext_tables.php b/typo3/sysext/aboutmodules/ext_tables.php
deleted file mode 100644
index 8a2e5c6fe000..000000000000
--- a/typo3/sysext/aboutmodules/ext_tables.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-defined('TYPO3_MODE') or die();
-
-// Avoid that this block is loaded in frontend or within upgrade wizards
-if (TYPO3_MODE === 'BE' && !(TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_INSTALL)) {
-    \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
-        'TYPO3.CMS.Aboutmodules',
-        'help',
-        'aboutmodules',
-        'after:about',
-        array(
-            'Modules' => 'index'
-        ),
-        array(
-            'access' => 'user,group',
-            'icon' => 'EXT:aboutmodules/Resources/Public/Icons/module-aboutmodules.svg',
-            'labels' => 'LLL:EXT:aboutmodules/Resources/Private/Language/locallang_mod.xlf'
-        )
-    );
-}
diff --git a/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php b/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php
index 97a8ea3bb5c1..b2b03c774bff 100644
--- a/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php
+++ b/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php
@@ -280,7 +280,7 @@ class BackendUserAuthentication extends \TYPO3\CMS\Core\Authentication\AbstractU
         // user-data for the modules
         'thumbnailsByDefault' => 1,
         'emailMeAtLogin' => 0,
-        'startModule' => 'help_AboutmodulesAboutmodules',
+        'startModule' => 'help_AboutAboutmodules',
         'titleLen' => 50,
         'edit_RTE' => '1',
         'edit_docModuleUpload' => '1',
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-72671-ExtensionAboutmodulesRemoved.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-72671-ExtensionAboutmodulesRemoved.rst
new file mode 100644
index 000000000000..999b7ab95670
--- /dev/null
+++ b/typo3/sysext/core/Documentation/Changelog/master/Breaking-72671-ExtensionAboutmodulesRemoved.rst
@@ -0,0 +1,14 @@
+===================================================
+Breaking: #72671 - Extension "aboutmodules" removed
+===================================================
+
+Description
+===========
+
+The system extension "aboutmodules" is removed, as all functionality has been moved to the system extension "about".
+
+
+Impact
+======
+
+It is not possible to have just "aboutmodules" or "about" installed without having the other module shown as well.
\ No newline at end of file
diff --git a/typo3/sysext/install/Classes/Updates/BackendUserStartModuleUpdateAboutModule.php b/typo3/sysext/install/Classes/Updates/BackendUserStartModuleUpdateAboutModule.php
new file mode 100644
index 000000000000..934eb8c09d86
--- /dev/null
+++ b/typo3/sysext/install/Classes/Updates/BackendUserStartModuleUpdateAboutModule.php
@@ -0,0 +1,79 @@
+<?php
+namespace TYPO3\CMS\Install\Updates;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+/**
+ * Update backend user setting startModule if set to "help_aboutmodules"
+ */
+class BackendUserStartModuleUpdateAboutModule extends AbstractUpdate
+{
+    /**
+     * @var string
+     */
+    protected $title = 'Update backend user setting "startModule"';
+
+    /**
+     * Checks if an update is needed
+     *
+     * @param string &$description The description for the update
+     * @return bool Whether an update is needed (TRUE) or not (FALSE)
+     */
+    public function checkForUpdate(&$description)
+    {
+        $backendUsersCount = $this->getDatabaseConnection()->exec_SELECTcountRows('uid', 'be_users');
+        if ($this->isWizardDone() || $backendUsersCount === 0) {
+            return false;
+        }
+
+        $description = 'The backend user setting startModule is changed for the extension aboutmodules. Update all '
+            . 'backend users that use ext:aboutmodules as startModule.';
+
+        return true;
+    }
+
+    /**
+     * Performs the database update if backend user's startmodule is help_aboutmodules
+     *
+     * @param array &$databaseQueries Queries done in this update
+     * @param mixed &$customMessages Custom messages
+     * @return bool
+     */
+    public function performUpdate(array &$databaseQueries, &$customMessages)
+    {
+        $db = $this->getDatabaseConnection();
+        $backendUsers = $db->exec_SELECTgetRows('uid,uc', 'be_users', '1=1');
+        if (!empty($backendUsers)) {
+            foreach ($backendUsers as $backendUser) {
+                if ($backendUser['uc'] !== null) {
+                    $userConfig = unserialize($backendUser['uc']);
+                    if ($userConfig['startModule'] === 'help_AboutmodulesAboutmodules') {
+                        $userConfig['startModule'] = 'help_AboutAboutmodules';
+                        $db->exec_UPDATEquery(
+                            'be_users',
+                            'uid=' . (int)$backendUser['uid'],
+                            array(
+                                'uc' => serialize($userConfig),
+                            )
+                        );
+                        $databaseQueries[] = $db->debug_lastBuiltQuery;
+                    }
+                }
+            }
+        }
+
+        $this->markWizardAsDone();
+        return true;
+    }
+}
diff --git a/typo3/sysext/install/ext_localconf.php b/typo3/sysext/install/ext_localconf.php
index 735976b892f8..96fbc2bf1243 100644
--- a/typo3/sysext/install/ext_localconf.php
+++ b/typo3/sysext/install/ext_localconf.php
@@ -14,3 +14,7 @@ $signalSlotDispatcher->connect(
     \TYPO3\CMS\Core\Category\CategoryRegistry::class,
     'addCategoryDatabaseSchemaToTablesDefinition'
 );
+
+
+$TYPO3_CONF_VARS['SC_OPTIONS']['ext/install']['update'][\TYPO3\CMS\Install\Updates\BackendUserStartModuleUpdateAboutModule::class]
+    = \TYPO3\CMS\Install\Updates\BackendUserStartModuleUpdateAboutModule::class;
-- 
GitLab