| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
For some failure cases, the correct status is now
PackageManagerCore::Canceled.
Change-Id: Id62c6a06b73eab576977c38a4c66d9e2e1863b9b
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added possibility to overwrite undo in copy, move, delete, mkdir, rmdir,
appendfile and prependfile operations. Undo is performed when component
is uninstalled or updated, by adding UNDOOPERATION to the end of
argument list will skip the undo operation.
Also added unit tests for rmdir and prependfile operations
Task-number: QTIFW-3333
Task-number: QTIFW-393
Change-Id: I88dbb16d2ebabe42b4ff810e6196da0be8b4cc65
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cache validation takes some time especially in Windows, mostly the time
is spent in opening the files for the integrity check. Instead of
writing the sha checksum to file to verify the integrity, name the file
itself with the sha checksum. Then it is enough to check if the correct
file exists and we don't need to open the file.
Task-number: QTIFW-3328
Change-Id: I36835d783ccf2f6aad8c83e14ec19cbdfc6db71e
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Especially in installers which contains huge amount of repositories, it
takes a long time to perform commands from CLI. If the repositories are
filtered using categories, it saves a lot of time if the components to
install/update etc. are tried to install/update from the defaultly selected
repository categories. Assuming that the component is found
from the defaultly selected repositories. If the component is not found from
defaultly selected repository categories, then all categories are searched for
the component.
Implemented also a filter logic, where the components to install are
searched earlier, if the component is not found then we can exit early.
Task-number: QTIFW-3251
Change-Id: I1274b5f56dbff293554cb21839a8cea63a7d2dcc
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
| |
In CI, the ProcessWrapper test sometimes failes, and sometimes passes,
as the target in CI constantly changes skipping the test for now in all
Linux platforms until we can find the real root cause for the fail.
Change-Id: Ideb11db08e689eed1d490a5f4d9529ca27023eb8
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
| |
Change-Id: Iff8798080939dea7cf54e05a8624630ab58f1b75
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
To access buildCpuArchitecture from script
Task-number: QTIFW-3224
Change-Id: I02086f7d3e064fe53d6fa9322b8832110c40c6b1
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a custom requirement for Qt Online Installer. Qt Online
Installer has a huge amount of scripts to be evaluated. Most of the
scripts don't need an evaluation unless those are installed. Skipping
the evaluation of scripts has quite significant
performance impact. As the postLoad setting in component level is a big
task, enabling support for Qt Online Installer to set the postLoad value
to scripts per repository.
Task-number: QTIFW-3173
Change-Id: If37d7ff39ad07ee56e9a9559c837966c23d76d6e
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The JSON formatted source file follows the same properties as
the officially supported XML declaration file. The undocumented
(private) file format support is added for installers extended
via the ProductKeyCheck API, that can use the JSON format.
Task-number: QTIFW-3175
Change-Id: If1463a1e3796b818feb8682d66e443e09fefcf15
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case the "--type=aliases|packages" option is omitted, search first
for aliases, and if not found, search for components. If the option
is specified, search only given type.
This changes the behavior from previous one, where only aliases were
considered for the search by default, if the type option was omitted.
Change-Id: Ie01ea85e1b88376f8df3edbf864d1e78788c3464
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Return early from building the component aliases for non-CLI runs, to
save some time from the metadata evaluation phase. The aliases are
currently only usable from installer's CLI.
Change-Id: Id8acde1b8353f498e3dfd0bd69156b17de245105
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
| |
qHash return value in Qt6 is size_t. Making relevant changes so that no
warnings occur when building with Qt5 or Qt6.
Change-Id: Ia4d8de49b163a59b58ec7c1eea83979b174b1bd1
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
| |
Change "Requires" to "Required" and use plural form for the dependency
properties, to be more uniform with the dependency properties for
components.
Change-Id: Iccb36701bc32ebafd27914272225ad1615c5f9fa
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For the sanity check calculations, all component aliases are manually
selected to detect possible errors in packaging preventing installing
of an alias. As the order of install for selected aliases is undefined,
in some cases the installer did not detect that an alias requires an
unstable alias.
Consider an example scenario:
* aliasA -> requires aliasB
* aliasB -> requires aliasC
* aliasC -> missing from installer
The unstable status is set the first time we query for the required
aliases of an alias, so the case for "ReferenceToUnstable" could go
amiss if the required aliases list for "aliasA" was populated before
for "aliasB".
Fix by populating the required aliases and components in the order
of the alias dependency graph.
Change-Id: Id2fc9e3e1b315f5be98ca8915a0938abad1a2eb5
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
In addition to RequiresComponent and RequiresAlias, introduce new
OptionalComponent and OptionalAlias properties for component aliases.
The new properties are used to declare optional requirements for
aliases, which do not cause the declaring alias to become unstable in
case the referred component or alias is missing from the installer.
Task-number: QTIFW-3166
Change-Id: I43c8cd08099e879180ec7e028b55836750c727bd
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2978
Change-Id: I2ed1368dbaf793f1035d93af88c4c2e73c4271b3
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The fail has already been fixed to IFW, no need to blacklist these tests
any more when building with Qt6.5
Task-number: QTIFW-3087
Change-Id: I9d2a25d12cfe5fb98083826936878ce3770db0d2
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\
| |
| |
| | |
Change-Id: Idadf4fb3047f72880e5a86f76eb21b659589cd17
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, on network errors or hash verification failures, the
download job would be canceled when running the installer from CLI. This
was to prevent infinite retries in case the automatic or default answer
for the error message boxes was to retry.
Add a retry counter and allow retrying the failed downloads from
CLI runs until the max count is reached.
Task-number: QTIFW-3098
Change-Id: Iee95f0eb4e47af89c74ffdd9ad6026bda6c87664
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also adding tests for UpdateOperations which used the deprecated
QVariant functions
Task-number: QTIFW-3077
Change-Id: I5b6b975631b4d0380511f614b0cad1f90a4849e8
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Evaluating scripts which has gui components needs a valid packagenamanagergui when building with Qt6
Task-number: QTIFW-3087
Change-Id: I3ac03f90cb490e7769e6af7db6f7be198ed06b8f
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This also blacklist test function loadComponentUserInterfaces
Task-number: COIN-1050
Task-number: QTIFW-3087
Change-Id: I7c59570b07a54b50898ef0c1bf23ff83540f36bd
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Originally, new Component object was created for javascript so that the garbage collector would not destroy the object. This caused the
thisObject in javascript to differ from the object in packageManagerCore, which in Qt6.5 lead to warning messages when each script was evaluated:
"Warning: :1: Calling C++ methods with 'this' objects different
from the one they were retrieved from is broken, due to historical
reasons. The original object is used as 'this' object."
Fixes so that the new object creation is omitted
and QJSEngine::CppOwnership is set to Component object so that garbage
collector won't destroy it.
Task-number: QTIFW-1829
Change-Id: Ia131d88fc83122f11c5b19a431e7db45e0ba18f9
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|/
|
|
|
|
|
|
|
| |
Due to api changes in Qt6 versus Qt5 we need minor changes to both
tests and to IFW itself.
Task-number: QTIFW-3064
Change-Id: I7e08161db074c96a6d639a2ff8b4c3d73f59e3cf
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There was behavioral mismatch of handling processes to stop for updates
between GUI and CLI modes.
For CLI, each command that would make changes to components would
recursively check the installation directory for running processes
early on, and block continuing if such processes were found. In addition
to this, the component scripts may have requested to stop processes
before performing component 'updates' (add/remove/update).
For GUI, only the latter functionality was utilized, so remove
the early checks from the CLI side to make the behavior uniform.
Task-number: QTIFW-2927
Task-number: QTIFW-3009
Change-Id: I028e699c43ef4352593b49ccc8a927644916c41a
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
By creating a separate class for the metadata cache that inherits
GenericDataCache<Metadata>, we can move the responsibility of setting
up the cache type and version from calling clients to the class
constructors. This way there is less risk of accidentally forgetting
setting the default type and version of the cache - especially the
version, which is always a static value in IFW.
Change-Id: I02f931395ca472a206d51207279fddbe12ba3897
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Calculate and store a checksum for each included file when extracing
meta.7z archives. When the respective meta item will be loaded from
cache on the next run, each file referenced in its Updates.xml will
be checked from disk, that it exist and that its checksum matches
the one calculated when the file was originally extracted.
If the files in cache are not intact, the meta item will be refreshed
(downloaded and extracted again).
Also bump the IFW cache format version, as the existing caches need
to be repopulated to include the new checksum files.
Task-number: QTIFW-3023
Change-Id: I6a8431ffb52cfff69e3cb84cccd4b3d5a1fe21da
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updates.xml was downloaded first to TEMP/MaintenanceTool.xml and from
there renamed to TEMP/remoterepo-XXXXX/Updates.xml. This is quite time
consuming operation in Windows. Fixed so that the Updates.xml is
downloaded directly to TEMP/remoterepo-XXXXX. This change speeds up
Updates.xml parsing around 70 percent in Windows.
Task-number: QTIFW-2805
Change-Id: I1cb282beb2ce2648f5b0e43919800c92465538b4
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updates.xml file elements are read and based on that the installer
calculates for example applicable updates. The files were parsed one by
one which was not very optimal at least in Windows when reading a lot of
files. Fixing the reading so that all files can be read and parsed
using QtConcurrent.
Also changing the class structure so that the private class is removed
and private functions used instead. Another option would have been to
create header file to the private class due to the Q_OBJECT definition
in ParseXMLFilesTask.
Task-number: QTIFW-2805
Change-Id: I40d1c75b87f4bf1f5a8fcd874edf84023891bdcc
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updates.xml contains Checksum variable which can be set to false to
skip the archives checksum verification. The variable was read from one
arbitrary Updates.xml file and that was used in all downloads. Fixed so
that the checksum is read per Updates.xml. This change also speeds up
the component generation phase as it no longer needs to read Updates.xml
file.
Task-number: QTIFW-2805
Task-number: QTIFW-2928
Change-Id: Id28dd370ef200aec67cb85cbbc1d08d925b43c21
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
| |
As the classes already share similar features and public API, it would
make sense to inherit a common abstract class to define the interface.
Change-Id: I7ed278b1b049b7ec12c4401e55fdf39306b0ab85
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|\
| |
| |
| | |
Change-Id: I07baba6a0e64b6022e6a933708e199551be7dd2f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
IFW could already previously detect circular and missing dependencies by
running a precheck calculation when building the component tree.
However, there can be also cases of where the user selection results in
unsolvable changes to components.
One such case was the erroneous possibility to uninstall a component
marked with ForcedInstallation, if any of its dependencies was checkable
and the user unselected it for uninstallation.
Add support for reacting to such errors in the component tree view,
displaying a message box about the invalid dependency resolvation error,
and blocking further navigation until the component selection passes
the dependency calculations.
Also attempt some refactoring the related code to simplify the different
call sequences resulting in recalculation of the components.
Change-Id: I9dc78f858bd4be7932f89f8e14bbfd97fbd3a0f6
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The 'elevatedexecuteoperation' test invoked qmake in its project file
directory when ran, overwriting the original Makefile. This would cause
problems on the consecutive "make check" invocations after first, if
qmake was originally ran with a custom command line arguments. For
example, setting 'CONFIG+=libarchive' would be lost and the test would
try to link against the default lib7z.a, which would not be found on
libarchive enabled builds.
Fix by calling the qmake executable with the version option instead,
we just need to check that the executable could be started, no need
to actually run it for the test sub-project.
Change-Id: Ie10c1622fa529c1338d427b7c757f8cc5834e0ac
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QDomDocument::setContent is time consuming operation especially when
there are thousands of Updates.xml to be parsed. Using QXmlStreamReader
for parsing the xml content instead, the Updates.xml content is already
validated in metadata job after download.
In Windows, using QXmlStreamReader instead of QDomDocument decreases the
xml parsing time from ~10 seconds to ~1 seconds when there are thousands
of Updates.xml to be parsed.
Task-number: QTIFW-2924
Change-Id: I14f5eba5b72f451a12ab4e3bf6b2f00b5f66faaf
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Id8121e6b4cdda23c8c44cf779e35dce8d9a28090
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If component is replaced with a component which is installed as
autodependency to other component, the replaced component was not
uninstalled on update.
Task-number: QTIFW-2887
Change-Id: Ibad04df765191f0e399c6f6020cdf081dba5d803
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As there are several optimizations done, the single click of component
in component selection tree is not slow anymore. Cleaning the code so
it is easier to maintain.
Basically this revers commit a28cf55b5a5007c0dd952b3012c076d9da329f0f
but as there are bug fixes made after that so pure revert could not
be done.
Task-number: QTIFW-2885
Change-Id: Id486d5dc68c42c31b4848cd19a1761bcfe242db6
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Setting can be a file. The Settings path was hard coded to .dat file,
which made it impossible to move the settings file to a different
location or use some other settings file instead.
This change saves the settings path with placeholder name,
which is resolved before performing settings operation or undo
operation. In case settings path is hard coded to .dat file and the
settings file is relocated, this can be overcome by setting variable
name _OLD to point to the location where the settings file originally
was. Installer uses this _OLD syntax to resolve the new location.
For example in the following example Tools.ini is relocated
from OldLocation to NewLocation. Setting the installer values the
following way will tell installer to use the settings from NewLocation
instead of OldLocation.
installer.setValue("MY_OWN_EXECUTABLE", "C:/Qt/NewLocation/Tools.ini")
installer.setValue("MY_OWN_EXECUTABLE_OLD",
"C:/Qt/OldLocation/Tools.ini")
Task-number: QTIFW-2882
Change-Id: I47dc68dfba8a49f37ab361edc8c64d3e5523e02e
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Maintenance Tool can be retrieved from online repositories like any
other component. The component contains files which are listed to remove
correct files in uninstall. As Maintenance Tool differs a bit from other
components in the matter that it should not be deleted in full uninstall as
it is running, we need to exclude the Maintenance Tool (which we call
also installerbasebinary), from the file list. Maintenance Tool itself
is removed in PackageManagerCorePrivate::deleteMaintenanceTool()
Task-number: QTIFW-2875
Change-Id: I33a16e632e3b354099b749d8dde7b65f5cef8f43
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As the components can still be selected with the selection buttons
above the view, it makes little sense to artificially limit selecting
individual items for update and hiding their check state. Also the
documented use case for the property - making a parent component
non-checkable so only some of its children should be checked - does
not apply for the updater view.
Apply similar fix to forced installation components, which should
be also toggleable for updates.
Task-number: QTIFW-836
Change-Id: I18f34c4e8ee1e24e761e50edd3066ec4aea3432e
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also clearing the foundEssentialUpdate flag in clearAllComponentLists()
function so that unit tests core status will match. As the unit tests
are not done to fully cleared core the foundEssentialUpdate was set to
true although the update was done and other components were installed.
Task-number: QTIFW-2732
Change-Id: I9b6754595b4b20b1ddc95d7587d98474a6967add
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change adds attribute, postLoad, to existing <Script> -element.
Using <Script postLoad="True"> will call the script loading and
evaluation only to those components which are selected for install or
update right before the components installation start.
Task-number: QTIFW-2820
Change-Id: Ic1967d329cbb5de6a0216ff3f76cc2ede178db80
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Ic3759bb073b00a168ec3348122484514e02138f5
|
| |\
| | |
| | |
| | | |
Change-Id: If99e84c5f6e6914f0d90770053ce6850e70ed403
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There was an issue with the Extract operations when using the same
"targetDir" argument for multiple archives. The DirectoryGuard object
creating the missing leading directories would occasionally run into
a race condition when multiple threads competed with creating the
directories.
Fix by adding installer specific implementation similar to
QDir::mkpath(), but which checks if the directory was created
elsewhere at every directory level. Also convert an existing similar
case with the Extract operation to use the new function.
Task-number: QTIFW-2752
Change-Id: I4451e931309edb536294314b11c903189dacf2f0
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|/ /
| |
| |
| |
| |
| | |
Change-Id: I05ad82311a050d9b463e96e97c031f6d38153883
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The contents of the cache subdirectories and manifest.json may mismatch
if the installer process is killed after the metadata fetch, because the
manifest file is normally synchronized only when the cache object gets
destroyed. While this is a recoverable error, it creates unnecessary
overhead of discarding broken items and downloading them again.
Add support for synchronizing the cache by the caller and do so each
time the cache is updated by Metadatajob.
Task-number: QTIFW-2817
Change-Id: Ia4cd3de44d57e8d732d11dc26968aa87323ada0f
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously maintenance tool could be updated from online repository
placing installerbase to repository and setting setInstallerBaseBinary()
in install script. The maintenancetool app bundle was written in the
code and installerbase placed under .app/Contents/MacOS/. This prevented
the maintenancetool app bundle to be signed and notarized.
Fixed so that the whole app bundle can be placed to repository. This
does not break the signing nor notarization as the whole bundle is
copied as it is. The setInstallerBaseBinary() is still needed in the
install script so that the installer knows which bundle is the
maintenance tool. Old way of updating maintenancetool still exists, if
the installerbaseBinary does not contain the ending 'app' installer
assumes that the maintenance tool is the executable itself instead of
whole app bundle.
This change also adds a new binarycreator switch
--create-maintenancetool, which can be used in macos to create the app
bundle for maintenance tool.
Task-number: QTIFW-2750
Change-Id: I3483ddb815d035644e826559947f6f9de4af9361
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|