[TASK] ext:install Improve wording in empty database select

On first installation only existing empty databases can be selected.
The hint for "Existing tables will be removed" is obsolete.

Change-Id: I05c0fb460672b8b4bbffe321945c46d2c7be2b2f
Resolves: #52314
Releases: 6.2
Reviewed-on: https://review.typo3.org/24078
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Use SimpleFileBackend for t3lib_l10n cache

The language cache by default uses the FileBackend to store its data.
Language cache entries need to be deleted only if new extensions are
loaded and if new language overlays are fetched. They do not need
tagging and can have an unlimited lifetime.
Switching to SimpleFileBackend removes the tagging and sets unlimited
lifetime by to reduce read and write load on this cache.

Change-Id: I5c4778f4c38ae369b6873574e961fa65208d77a1
Resolves: #52295
Related: #52125
Releases: 6.2, 6.1, 6.0
Reviewed-on: https://review.typo3.org/24064
Reviewed-by: Wouter Wolters
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
Reviewed-by: Thomas Maroschik
Tested-by: Thomas Maroschik
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Configure main extbase caches for unlimited entry lifetime

The extbase reflection and object caches are "stable" cache entries
and only need to be deleted if extensions change or are updates. The
extension manager takes care of flushing in this case.
Currently, the default lifetime of those cache entries is only one
hour, so they are recalculated pretty often. This is especially a
problem if the site was not accessed for more than an hour, since
tons of cache entries exceeded their lifetime and require
recalculation.
The patch moves the cache configuration of the required extbase
extension to DefaultConfiguration and sets unlimited default
lifetime for object and reflection cache.

Change-Id: I671692645aeb104f7fa73595cc79b25ed5984b85
Resolves: #52305
Related: #51116
Related: #52304
Releases: 6.2, 6.1, 6.0
Reviewed-on: https://review.typo3.org/24069
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Fatal in DefaultConfiguration

Change-Id: I6f6c8a2ddc26a6c7584e6a067c887768cf3ae5b1
Resolves: #52316
Related: #52305
Releases: 6.2, 6.1, 6.0
Reviewed-on: https://review.typo3.org/24084
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Install tool uses empty database settings

Some systems allow to connect with empty username / password
configuration to the database. Although this is not wrong the install
tool should always ask for database credentials for new installations.
This patch prevents the install tool from setting an empty username and
password as default values without manually submitting the form.

Resolves: #51540
Resolves: #51956
Releases: 6.2
Change-Id: Ic245635bf649f4ad477d793eda658096ed659aa0
Reviewed-on: https://review.typo3.org/23866
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[BUGFIX] groupFor-VH does not work with @lazy

If you group an property with annotated @lazy option
f:groupedFor-ViewHelper can't group by this property.

Resolves: #52266
Releases: 6.2, 6.1, 6.0
Change-Id: Ie208b67eec8500fee87ee1c62b1bd348c0ed5598
Reviewed-on: https://review.typo3.org/24050
Reviewed-by: Xavier Perseguers
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Check for string before using strlen

If pi_flexform is converted to an array already, checking via strlen
produces a warning. An additional check via is_string suppresses the
warning.

Resolves: #52091
Resolves: #51684
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: I97c41cdedb1afb28e2a9ca39e1d9cfb3921d9f47
Reviewed-on: https://review.typo3.org/24018
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[TASK] Move configuration code from bootstrap to ext:install

Some methods in boostrap silently change TYPO3_CONF_VARS to adapt
some settings. Those methods are moved to the install tool as
"silent upgrade" to write out configuration options.
The silent upgrade code within StepController is extracted to
an own class for better encapsulation.

Change-Id: Id68bfdce7ffb661fb341e21eb8a26a03fe76ac07
Resolves: #52287
Releases: 6.2
Reviewed-on: https://review.typo3.org/24060
Reviewed-by: Thomas Maroschik
Reviewed-by: Wouter Wolters
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Remove "Clear language cache" menu item

* To show the item, SYS/lang/cache/clear_menu has to be manually
enabled, and a (not documented) userTSconfig option must be set.
* The item *never* worked since the underlying LanguageCacheClearer
class expects an array with cacheCmd set to either "all" or
"temp_cached", that is not set in the according AJAX call of the
menu action.
* Class LanguageCacheClearer hooks into DataHandler and is only
triggered on clear "all" cache.
* Clearing "all" cache flushes all caches anyway, so the hook
currently triggers flushing the language cache a second time.
* SYS/lang/cache/lifetime is unused and can be removed.

Since the functionality is broken, not documented, obsolete and
"internal" code of ext:lang, the whole thing is removed without
further deprecation.

Change-Id: Ic0d19bf31109832c9ed88d81d883516c109cf47e
Resolves: #52312
Releases: 6.2
Reviewed-on: https://review.typo3.org/24077
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Fix jumpToUrl()-Usage in Element Browser

The Javascript functions jumpToUrl(URL,anchor) and jumpToUrl(URL,formEl)
cannot be used interchangeably. This leads to a javascript error,
because the formElement is rendered as string
("[object HTMLInputElement]").

Resolves: #50437
Releases: 6.0, 6.1, 6.2
Change-Id: I53e1be3c157a2ef6c646f02af15e8c746b6e6375
Reviewed-on: https://review.typo3.org/23889
Reviewed-by: Eric Chavaillaz
Tested-by: Eric Chavaillaz
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
Reviewed-by: Henrik Ziegenhain
Tested-by: Henrik Ziegenhain
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Clear cached menu by tag

This change adds a table cf_cache_hash for clear cache by tag
for example for cached menu.

Resolves: #51588
Releases: 6.2, 6.1, 6.0
Change-Id: I18b8aad3ac82737bbc52d4aae49be9028b6df944
Reviewed-on: https://review.typo3.org/23624
Reviewed-by: Tymoteusz Motylewski
Tested-by: Tymoteusz Motylewski
Reviewed-by: Piotr Molewski
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] EmConfUtility accesses non-arrays

Properly check for array-type before accessing
or counting the variable.

Resolves: #52045
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: Id161fddadbbcadd462de36e8227278107f2e7a3a
Reviewed-on: https://review.typo3.org/23857
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[FEATURE] Add tstamp column to recycler record table

This adds an extra column to the record table in
the recycler module so users can sort by that
value and come quicker to the decision whether
to recover that record or not.

Resolves: #52324
Releases: 6.2
Change-Id: Ife1d985f517f7ae5e9be419783e1132b532cabef
Reviewed-on: https://review.typo3.org/24115
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
[BUGFIX] Initialize extension name in command requests

This patch initializes the extension name in the configuration manager
as soon as it is available during an Extbase command line request.

Resolves: #51329
Releases: 6.2, 6.1, 6.0
Change-Id: I73b0f0e7a0b20e1773c9eb92f0d2175416ce2bb1
Reviewed-on: https://review.typo3.org/23883
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[FEATURE] ext:install Implement template files in FolderStructure

The folder structure definition can be simplified a bit if target
content of files is not stored in the structure definition array
but moved to template files. This also enables handling of binary
files.
The patch implements an option 'targetContentFile' to FileNode and
adapts the current FolderStructure definition to use it.

Change-Id: I097e87a1f7a16e325b398468286fe661abec3553
Resolves: #52351
Releases: 6.2
Reviewed-on: https://review.typo3.org/24122
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Susanne Moog
Tested-by: Susanne Moog
[TASK] ext:install Protect some methods in FolderStructure

Some methods within FolderStructure class hierachy are public
but should be used internally only. The patch protects them.

Change-Id: I273f829f29ca4f5a6da1d03f028be7a8500e222b
Resolves: #52354
Releases: 6.2
Reviewed-on: https://review.typo3.org/24123
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Susanne Moog
Tested-by: Susanne Moog
[BUGFIX] Fix wrong handling of php and TYPO3 dependencies

Due to a superfluos try-catch block dependencies for TYPO3 and
PHP version were not checked correctly.

Additionally the TER version comparison was wrong as it did not
include the given version (only less or greater was checked, not
...OrEqual).

Resolves: #48809
Resolves: #51730
Resolves: #51182
Releases: 6.2, 6.1, 6.0
Change-Id: I773e1af014cd3e8525794c2fcdc615ea8a5f36a1
Reviewed-on: https://review.typo3.org/23673
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[FEATURE] Add possibility to use an extension as repository

Sometimes extensions depend on customized versions of other
extensions or on extensions that aren't released to the TER.

This feature allows an extension to deliver it's own dependencies
by having the unpacked extensions inside the folder
Initialisation/Extensions. The extensions are then copied to
typo3conf/ext when resolving the dependencies.

Resolves: #51835
Releases: 6.2
Change-Id: I66f6e5d5d40e11471f9766ac2ed9d0eb5386eb49
Reviewed-on: https://review.typo3.org/23672
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[BUGFIX] Follow-up to: Use an extension as repository

Add missing files that got lost during conflict resolving

Change-Id: If9fc0e23aba97659222bee0c5b2205c5030411fc
Resolves: #51835
Releases: 6.2
Reviewed-on: https://review.typo3.org/24129
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[FEATURE] ext:install Relaxed permission check

The document root folder may not have correct permissions and
they can not be fixed if the owner is not the executing webserver
user.

This is a common issue during installation, currently the first
step breaks if permission on document root are not 2770 and the
folder is not owned by the executing webserver user.

The patch adds a new option "targetPermissionRelaxed" to
DirectoryNodes and uses it on the RootNode to lower the severity
if permissions are not correct. The installation will proceed
then as long as sub folders can be created.

Change-Id: Ibde9f7ff0dde14502ac24fdb73c0a2ed384119a6
Resolves: #52356
Releases: 6.2
Reviewed-on: https://review.typo3.org/24130
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Susanne Moog
Tested-by: Susanne Moog