diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2023-12-13 12:40:24 +0200 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2023-12-29 15:05:04 +0200 |
commit | bf5b701b10b2e2c8ddeba1485e87cd22053d488d (patch) | |
tree | b2daf10bdc1bcdf163b9571f8c67ee43eccd5fd5 | |
parent | 58e96428a20d654477d6731c789fd127e2eb3a7f (diff) |
Allow disabling usage of configured repositories for offline installers
Previously, offline installers did not consider configured repositories
for metadata fetch, but this was changed in a fix for bug
report QTIFW-3078.
Some users were relying on the previous behavior, so make it
configurable in the installer's config file, and default to the
new behavior.
Task-number: QTIFW-3160
Change-Id: I26c0ab825f080f81ce2320e0be5f75334207c33e
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
-rw-r--r-- | doc/installerfw.qdoc | 5 | ||||
-rw-r--r-- | src/libs/installer/constants.h | 1 | ||||
-rw-r--r-- | src/libs/installer/metadatajob.cpp | 3 | ||||
-rw-r--r-- | src/libs/installer/settings.cpp | 9 | ||||
-rw-r--r-- | src/libs/installer/settings.h | 2 | ||||
-rw-r--r-- | tests/auto/installer/settings/data/full_config.xml | 1 | ||||
-rw-r--r-- | tests/auto/installer/settings/tst_settings.cpp | 1 |
7 files changed, 19 insertions, 3 deletions
diff --git a/doc/installerfw.qdoc b/doc/installerfw.qdoc index 15f6f866a..c834e5c8a 100644 --- a/doc/installerfw.qdoc +++ b/doc/installerfw.qdoc @@ -561,6 +561,11 @@ \li RepositorySettingsPageVisible \li Set to \c false to hide the repository settings page inside the settings dialog. \row + \li AllowRepositoriesForOfflineInstaller + \li Set to \c false to disable usage of any temporary or user configured repositories + set for offline installers. The maintenance tool written by an offline installer + can still access the repositories. Defaults to \c true. + \row \li AllowSpaceInPath \li Set to \c false if the installation path cannot contain space characters. \row diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h index e69d1bd4d..d0173b872 100644 --- a/src/libs/installer/constants.h +++ b/src/libs/installer/constants.h @@ -158,6 +158,7 @@ static const QLatin1String scRemoteRepositories("RemoteRepositories"); static const QLatin1String scRepositoryCategories("RepositoryCategories"); static const QLatin1String scRepositorySettingsPageVisible("RepositorySettingsPageVisible"); static const QLatin1String scAllowSpaceInPath("AllowSpaceInPath"); +static const QLatin1String scAllowRepositoriesForOfflineInstaller("AllowRepositoriesForOfflineInstaller"); static const QLatin1String scWizardStyle("WizardStyle"); static const QLatin1String scStyleSheet("StyleSheet"); static const QLatin1String scTitleColor("TitleColor"); diff --git a/src/libs/installer/metadatajob.cpp b/src/libs/installer/metadatajob.cpp index 8cdeedaed..8a06ef435 100644 --- a/src/libs/installer/metadatajob.cpp +++ b/src/libs/installer/metadatajob.cpp @@ -236,7 +236,8 @@ void MetadataJob::doStart() const bool onlineInstaller = m_core->isInstaller() && !m_core->isOfflineOnly(); const QSet<Repository> repositories = getRepositories(); - if (onlineInstaller || m_core->isMaintainer() || !repositories.isEmpty()) { + if (onlineInstaller || m_core->isMaintainer() + || (m_core->settings().allowRepositoriesForOfflineInstaller() && !repositories.isEmpty())) { static const QString updateFilePath(QLatin1Char('/') + scUpdatesXML + QLatin1Char('?')); static const QString randomQueryString = QString::number(QRandomGenerator::global()->generate()); diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp index 594ba8fea..e18f63689 100644 --- a/src/libs/installer/settings.cpp +++ b/src/libs/installer/settings.cpp @@ -323,8 +323,8 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix, << scRemoveTargetDir << scLocalCacheDir << scPersistentLocalCache << scRunProgram << scRunProgramArguments << scRunProgramDescription << scDependsOnLocalInstallerBinary - << scAllowSpaceInPath << scAllowNonAsciiCharacters << scDisableAuthorizationFallback - << scDisableCommandLineInterface + << scAllowSpaceInPath << scAllowNonAsciiCharacters << scAllowRepositoriesForOfflineInstaller + << scDisableAuthorizationFallback << scDisableCommandLineInterface << scWizardStyle << scStyleSheet << scTitleColor << scWizardDefaultWidth << scWizardDefaultHeight << scWizardMinimumWidth << scWizardMinimumHeight << scWizardShowPageList << scProductImages @@ -649,6 +649,11 @@ bool Settings::allowNonAsciiCharacters() const return d->m_data.value(scAllowNonAsciiCharacters, false).toBool(); } +bool Settings::allowRepositoriesForOfflineInstaller() const +{ + return d->m_data.value(scAllowRepositoriesForOfflineInstaller, true).toBool(); +} + bool Settings::disableAuthorizationFallback() const { return d->m_data.value(scDisableAuthorizationFallback, false).toBool(); diff --git a/src/libs/installer/settings.h b/src/libs/installer/settings.h index 077646dff..85b59869c 100644 --- a/src/libs/installer/settings.h +++ b/src/libs/installer/settings.h @@ -145,6 +145,8 @@ public: bool allowSpaceInPath() const; bool allowNonAsciiCharacters() const; + bool allowRepositoriesForOfflineInstaller() const; + bool disableAuthorizationFallback() const; bool disableCommandLineInterface() const; diff --git a/tests/auto/installer/settings/data/full_config.xml b/tests/auto/installer/settings/data/full_config.xml index 304dd21f4..bccb6f7ca 100644 --- a/tests/auto/installer/settings/data/full_config.xml +++ b/tests/auto/installer/settings/data/full_config.xml @@ -37,6 +37,7 @@ File should contain all elements we allow in a config.xml <DependsOnLocalInstallerBinary>true</DependsOnLocalInstallerBinary> <AllowSpaceInPath>true</AllowSpaceInPath> <AllowNonAsciiCharacters>true</AllowNonAsciiCharacters> + <AllowRepositoriesForOfflineInstaller>true</AllowRepositoriesForOfflineInstaller> <DisableAuthorizationFallback>true</DisableAuthorizationFallback> <DisableCommandLineInterface>true</DisableCommandLineInterface> <RepositorySettingsPageVisible>false</RepositorySettingsPageVisible> diff --git a/tests/auto/installer/settings/tst_settings.cpp b/tests/auto/installer/settings/tst_settings.cpp index d120f5680..15dcc98a1 100644 --- a/tests/auto/installer/settings/tst_settings.cpp +++ b/tests/auto/installer/settings/tst_settings.cpp @@ -109,6 +109,7 @@ void tst_Settings::loadTutorialConfig() QCOMPARE(settings.repositorySettingsPageVisible(), true); QCOMPARE(settings.allowSpaceInPath(), true); QCOMPARE(settings.allowNonAsciiCharacters(), false); + QCOMPARE(settings.allowRepositoriesForOfflineInstaller(), true); QCOMPARE(settings.disableAuthorizationFallback(), false); QCOMPARE(settings.disableCommandLineInterface(), false); QCOMPARE(settings.createLocalRepository(), false); |