| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Progress information is printed using same static instance of the
coordinator by different operations. The operation object pointer was saved as key to QHash so that progress could be tracked. This has caused problems in installer as QHash insert occasionally caused segmentation fault.
Fixed so that the progress information is no longer tracked based on
operation object pointer, instead object name is used.
Task-number: QTIFW-3314
Change-Id: Ic4007f226321e109109006c5c89415308920c614
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Developer can override productkeycheck, there can be cases that
developer wants to show some additional license text in CLI before accepting
the licenses. The license text can be accepted or rejected by CLI
command Accept/Reject, or by using --accept-licenses switch for
non-interactive acceptance.
Task-number: QTIFW-3319
Change-Id: I60e1ea36cf3f7f98af62c06c2535342003ceb9a6
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
We need to access the core functionality despite of what user interface
is used.
Change-Id: I6c4c7e8526ff24a479128061aa40fba66e61660c
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce concept of component aliases, which act as an alternative way
for referring a set of related components.
Component aliases are declared in an alias definition file, which is
included to the created installer's binary layout as a resource. The
file lists the available aliases, including metadata - such as name,
version, and description - and the list of components and other aliases
the alias requires.
Aliases can be referred only from the CLI for the time being, with the
supported commands 'install' and 'search'.
Task-number: QTIFW-2978
Change-Id: I281f171cc7d932ce496051d7090ae169a4709eec
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The installer.gainAdminRights() and installer.dropAdminRights() methods
are invokable from the scripting API. During installing, updating or
uninstalling components, installer does it's own decision making to
request and drop admin rights on-demand, but this could be overridden
with the aforementioned methods.
This was not taken into account, instead it was only checked if admin
rights were gained in the context of the calling method. Fix by
checking if the admin rights were present at the start of the installer,
or if they were requested by anyone during installation.
Task-number: QTIFW-2929
Change-Id: Ie4f6fc0ac746183b00f460a2e60c57c2eae9808c
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@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>
|
|\
| |
| |
| | |
Change-Id: I486d6f3f6fbdbfe1b92ccff918aaf0fe72aa2fc8
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The states were only updated at the end of PackageManagerCore
::recalculateAllComponents() method - the method calls:
PackageManagerCore::calculateComponentsToInstall() and
PackageManagerCore::calculateComponentsToUninstall()
functions in that order, and both emit signals indicating the finishing
of the calculation. Any install script connecting to these signals that
relies on the correct state of the install actions for the components
would work incorrectly, as the state was not updated to reflect the
calculation result yet.
Fix by updating the install action state in both functions before
emitting their finished signals. Also rename the function to better
distinguish its purpose from updating the check state of the components.
Task-number: QTIFW-2976
Change-Id: I67cd88478c39215ec124a5451c1f29a63cb1c82c
Reviewed-by: Katja Marttila <katja.marttila@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>
|
|\|
| |
| |
| | |
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>
|
|\|
| |
| |
| | |
Change-Id: Id8121e6b4cdda23c8c44cf779e35dce8d9a28090
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce GenericDataCache and Metadata classes for storing the
fetched metadata files (Updates.xml and uncompressed files from
the meta.7z archives) on local filesystem.
The cache uses a checksum based dictionary to keep track of the
cached metadata items, with the SHA1 sums of downloaded Updates.xml
files being the keys to refer single metadata item. We still need
to download all the Updates.xml files on each fetch to check if the
cached metadata items are applicable for the current repositories.
Update the Updates.xml files in auto-test data to have unique
contents, otherwise there could be conflicts with identical test
repositories, as the tests will also utilize the cache now.
Also omit registering Repository type to the meta-object system in
the class contructors, this is expensive as we construct objects
from the class frequently, in the worst case hundreds of thousands
times. PackageManagerCore already does the registering.
Task-number: QTIFW-2621
Change-Id: Iee10ead68befd722ffe7f18ca48483d5a3666658
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The PackageManagerCore::componentByName(const QString &name)
-function is called repeatedly by the InstallerCalculator class
and at minimum once for each install script, because we
automatically inject a snippet which stores the return value
of the function in the 'component' variable for the script context.
Create a <name, component> hash once per each component model reset
to make the lookups faster:
* This avoids constructing a flat list of components and all
their descendants again and again when calling the function.
* The linear lookup from the component list is slow because it
calls componentMatches() for each element until the satisfactory
component was found or the list ends.
* The average time complexity of the key lookup from the QHash
is constant even for large hashes.
Task-number: QTIFW-2790
Change-Id: I580d28f78ac6681d5bcbfbad970002b49de1a830
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Also process pending events for the main thread in the loop that calls
Component::loadComponentScript() repeatedly, to not block the UI while
busy loading the scripts.
Task-number: QTIFW-2701
Change-Id: I4a1dd8e2441e21b5075b6fdffff8a47cd4bc7c80
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Autodependencies can be added also from script. The uninstaller and
installer calculators ignored the values set from script depending on at
what state of the script run the autodependencies were added. Fixed so
that at any point the autodependencies are added from script, the
installer and uninstaller calculators has correct values.
Change-Id: If993bcce72f889b51e4b981473540c4e1ccd6067
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If component is updated to repository, and new dependencies are added,
the dependencies should be installed only when fresh install to
component is made or the component is updated.
This change adds a new LocalDependencies value to component. It keeps
track of the dependencies the local installed packages has.
Fixes also a bug in uninstallecalculator, where we should also read the
dependencies from local installed packages instead of newly introduced
repositories.
Task-number: QTIFW-2624
Change-Id: I0557e5adf1e87c0a1238cc455cfb2c90f6b05c87
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
| |
This makes the output more consistent between operations in Unpack
and Install phase and removes the need to hard code some print
to the operation side.
Change-Id: Ia955f479cb138fcf0ffd6a73a06de6a74df6ed13
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
No need to recalculate local installed components if no changes has been
made. This makes the component selection quicker if there are lots
of components to be installed.
Local components are already calculated and listed in LocalPackageHub.
Using this class directly instead of calculating own local component
hash table. This changes the localInstalledPackages() from QHash to QMap,
which is not as optimized for searching components, but overall performance
is still now way better.
Task-number: QTIFW-2522
Change-Id: I8c16060f4b4014f740be0c7c43ece5e659d92987
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes maintenance tool startable from Launchpad and Spotlight
search. Add "MaintenanceToolAlias" configuration variable for
setting the name of the alias, which may differ from the actual
file name in installation directory.
Task-number: QTIFW-2535
Task-number: QTIFW-2478
Change-Id: I73ae5bbf5d0196b2512b5517cb02c391b2ab278c
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a lot of components are installed, maintenancetool was slow to
select/unselect a single component. This was caused because the whole
tree's components were recalculated. Fixed so that only the
selected/unselected components and their dependencies and
autodependencies are recalculated instead of whole tree.
This change speeds up clicking tree item from zero to 90 percent,
depending on how much components are already installed. The more
components are installed as autodependency, the slower it gets to
select the items.
Task-number: QTIFW-2522
Change-Id: I5e824aed8787fd7ecdce72b15a1b13848f0a3923
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
In a similar fashion to the archive download status, display:
* Performed operations - total operations, on unpack.
* Installed components - total components, on install.
* Rolled back operations - total undo operations, on uninstall.
Task-number: QTIFW-2513
Change-Id: I61690a25afadd1ca1e4a46b5b980ac094429135b
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce ConcurrentOperationRunner class used for running
installer operations concurrently in the global thread pool.
Add execution groups for operations; Unpack operations are run
concurrently for all components requesting installation,
operations belonging to Install group are run sequentially for
sorted components one at a time as before. From the default
registered operations the Extract op is moved to Unpack group.
Move the previously on-the-fly backup steps of Extract operation
to the ExtractArchiveOperation::backup(), so that backups are
done before any archives are extracted, and that we know if any
of the archives requires administrator privileges to unpack.
Reparent QInstaller::Error to QException to support throwing
and catching exceptions across thread boundaries.
Use RAII for the server-side objects of the classes supporting
the remote client-server protocol of installer framework. The
concurrent extraction revealed that it was still possible that
the local socket was disconnected and thus the RemoteServer-
Connection thread finished before receiving and processing the
final "Destroy" command packet, leaking the dynamically
allocated objects.
Task-number: QTIFW-2566
Change-Id: Ib8c2928b9405b7b3465c731018df73acb51e949f
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Replaced component was uninstalled when installing other components
although no update or install was requested to the component. Fixes also
a bug when some components were uninstalled unvisible from user.
Task-number: QTIFW-2577
Change-Id: I6a7e9ce4a56991dfbdea53eb376d782dfb5d050a
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Components with conflicting original identifiers are not registered.
- Components with conflicting tree names are registered with the
original name, if installer is configured to allow unstable
components. Otherwise they are not registered.
- Unaffected components can be installed as usual.
Task-number: QTIFW-2444
Change-Id: Ic1eaf3878f974185bc68202930134e5199dc0398
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Qbsp package adding failed using gui if the package with the same name
existed in the component tree.
Also increased priority to qbsp package so that if the same name and version
exists in the component tree then qbsp package is used.
Task-number: QTIFW-2312
Change-Id: I732fef1a7ba503d2332f411e15b6873c63dcf630
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously subcomponents of a virtual component were shown on
search results, and trying to install these would print a bit
vague message: 'Component not found'. As the sub-branches of
virtual component nodes are hidden on GUI, we should also hide
them when using CLI search, and give a more appropriate error
message why the component cannot be explicitly selected for
installation, if the user still tries to do so.
Also some minor refactoring to the handling of supplemental
information about binary type of the running installer/mt.
This change does not fix the possible case of an install script
changing the 'virtual'-state of a component, as it would require
downloading and evaluating the full metadata for repositories (or
components), which would impose a performance penalty to search.
Task-number: QTIFW-2168
Change-Id: Ibacaca23c38f5ea98967955d91849cefc1f11f61
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Components can be updated from online repository using version number.
Sometimes there is a need to update to an older version which is now
possible by using content sha. Content sha can be added to repository
with repogen --sha-update <component_id>. If there is a new content sha
available in the repository, component is updated although it version
number might be smaller. After the content sha is removed from online
repository, the normal update with version number is performed.
Task-number: QTIFW-1798
Change-Id: Id9e32b0345af5101cccaf6e30c81bd39691d9590
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Execute operation can have hard coded paths to program which is
executed. In case the program is relocated, UNDO operation will fail as
it will not find the program. Implemented new XXXX_OLD value which can
be used for overwriting the hardcoded value. In case the program
execution fails, program is tried to launch again with the replaced
value.
Task-number: QTIFW-2125
Change-Id: I446a4c423e53cc4ffc6e5e25617d2400945ac3d9
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-1945
Change-Id: Ic8a076a28385e99ad09cfbccd07c7012d6570639
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
| |
Also removed logging categories for package information, the full package
information can be printed by increasing the verbosity level.
Task-number: QTIFW-1950
Change-Id: I4bce019a63ba1fbf48e3bb0ca45511e42d4974c9
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
- Add a "priority" attribute to the "License" element used in "package.xml"
for arranging licenses by priority in the LicenseAgreementPage and in CLI.
Priority >0 shows the license on top of others.
- Arrange the licenses with the same priority alphabetically
- Filter duplicate licenses from the LicenseAgreementPage and from CLI
Change-Id: I1dcacdd417d2383b8dc18149e4de329fbf11cfe8
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
| |
Also add new option --confirm-command to skip the interactive query.
Task-number: QTIFW-1834
Change-Id: I1c63fd990431c792a523da7047637f54b193bee6
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
| |
Added missing documentation and fixed warnings.
KDUpdate documentation not added in this commit.
Change-Id: Idc0b167bed95b7ae4a46a350290fdb241aa94448
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-1847
Change-Id: I737b9b527c25e089386f74038b57a83f3d7e2062
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
| |
We might not have componentselection page visible, so we need a
possibility to select/deselect components also using core.
Task-number: QTIFW-1847
Change-Id: I85ccf0602144f843c15ef7c0818ba435d36bdac5
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
| |
This change fixes a bug caused by a blocking runInstaller() call
in PerformInstallationPage::entering() and also contains refactoring
to related parts of code.
Change-Id: Ic3309707c1f975a646937aa96fc407a3e5931359
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
| |
Change-Id: If3fdafc982c8f2180fc15529bba1bd408d9fbfee
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
| |
Change-Id: I045bdd030277eb192d08749bd0208ac5d6d7a52c
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
License agreements can be accepted automatically by using command
line option --accept-licenses or interactively by answering
queries with either "Accept", "Reject" or "Show" selections.
Task-number: QTIFW-1742
Task-number: QTIFW-1745
Change-Id: Iff46b44f91faddb7f163b299994167ab16df68b3
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Maintenancetool does not allow updating install if running processes are
found from install directory. Only maintenancetool process was allowed,
otherwise the install failed with query to shut down processes. This
commit adds a function to extend the allowed processes to be
run, this is mandatory when running tests as test executable lies in the
install directory.
Task-number: QTIFW-1019
Change-Id: I5422b0327e3f77edf3f9c88c74f40eff5cc8c830
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|\
| |
| |
| | |
Change-Id: Ia4cf718409ce431cce8d766865ecec506426afb9
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also move functionality to PackageManagerCore::checkAvailableSpace()
for more convenient later usage, if we want to use this without
starting the Wizard GUI.
Task-number: QTIFW-1602
Change-Id: I4f2d3cc78bc542475fe9c51b9364b1b221098e4a
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add option "--uninstaller" to start the installer binary explicitly as
uninstaller. This complements options "--updater" and
"--manage-packages".
Add convenience functions for setting and checking if the magic binary
marker has been set by the user.
Task-number: QTIFW-1639
Change-Id: Ie40ba9c56e09be079e309bca985b19a8a7bef7ef
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If admin rights are needed, fail and require to install with sudo. This
is how command line interfaces commonly behave. Add convenience
functions for setting and checking if the installer is used from
command line.
Task-number: QTIFW-1598
Change-Id: Ib28d3be08254dade5d9b2d29da9232064f008eb4
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|