this file is merely a placeholder. there is no point in it being in the
repository.
Change-Id: Id07be46a9fa0c2eb14cbc567cb95e67c00f18b02
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
instead of using a hand-crafted qrc file, auto-generate one. this allows
us to collect available translations dynamically, which means that we
don't need to limit ourselves to the state of qt 5.5.
as a side effect, this removes the possibility to compile the qt
translations ourselves. i'm not sure what the point of that was, as
every qt installation would have pre-compiled qm files.
Change-Id: Ie88327e848c2498eb2a63a895a80e1cd603619b8
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
the pattern *_?? (meant to exclude *_untranslated) doesn't match
ifw's translations without a country code, because they have only a
language code. use two patterns instead.
Change-Id: I5c0f67c339053281dfbee1bcd16b03ac6ca1b6e2
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
The separations might differ in QDirIterator and excludeFiles.
Make sure that same separators are used when comparing the values.
Change-Id: Ib1c810150e600cd647f5b3a24565268b79f4b09f
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
When a big compressed package is unzipped, it seemed that the installer
hanged as there was no indication that the job is still ongoing. Added
undetermined state to progress bar as unzip job does not inform the
progress state.
Task-number: QTIFW-967
Change-Id: I21ca394e1856038c51413f9e5011307ae7a9850a
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
If there are updates available for a component that is executable and the
executable is running, installer is unable to update the component and
results to a corrupted install. Check that there are no processes running
from the install tree and cancel update if there are any. The update is
canceled if there are processes running even if the process does not get
update.
Task-number: QTIFW-969
Change-Id: I5614cdd21d8538ccf8b0d114d3616804fe367667
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Since there is generally confusion as to what will be installed,
removed or updated the string is clarified further to hopefully
make it much more clearer what will happen depending on whether
it is checked or not.
Change-Id: I1077b3dd3e4511e01ca64d0598942d5254e33a54
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
If there are no updates available, no need to calculate components to
install
Change-Id: I95068ef0e062f1745cbe10138407e658befb2c5b
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
MetadataJob items should be reseted each time metadatajob starts only when
it is not concerning compressed repositories.
Change-Id: Ifa7e9d39bb9644ec36e057929f6874821c119ce3
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
In macOS, QBSP button was taking too much space making component tree quite
narrow. Shorten the button name to make more space to tree
Change-Id: I92355c2a7ebe2442bdb6779454f2e6b2c01bb6e7
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Removed the destroy call to RemoteClientPrivate object as that has been
destroyed at that point already in packagemanagercore destructor
Task-number: QTIFW-943
Change-Id: Ibb7b4f00842d780b32055dbdc3673d031c52a89a
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Do not execute the component script of a to be replaced component.
This make no sense at all, cause in case of installer it is hidden
and we can't install it anyway.
Task-number: QTIFW-915
Change-Id: Ia0378047b162dafb854dff24e77a113b27885f9d
(cherry picked from commit b1ed687f91d9b75e290ebabcb624684f7d177cb1)
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
Installer was able to install dependency correctly. However, it ignored
the version dependency might have.
Dependencies>componentA->=4.0</Dependencies>
If there was already a dependency installed with lower version number,
the newer version, which was required by the selected component, was not
installed. Fixed so that maintenancetool will not only check if the
dependency is installed but also the installed version.
Change-Id: Ia26b5233cf8847bce73095d19a13c481318d27f2
Task-number: QTIFW-914
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
This patch adds the missing include statements for QRegExp.
Change-Id: I05fed3e83514af895b95a3df746b0ae1e6b31828
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
To both tools added options:
--repository The directory containing the available repository.
--ignore-invalid-repositories Ignore all invalid repositories instead of aborting.
Documentation added to ifw-tools.html page.
Task-number: QTIFW-925
Change-Id: I36519385df6166d0e450c0ef9d7df44c8611d6a6
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
If repository address becomes invalid or is deleted from the server,
update or install fails if installer points to a removed repository.
However, Updates.xml might have RepositoryUpdate with action 'remove'. If
we prevent updating when one of the repositories is not found we never get
to perform the 'remove' action to repository which makes the whole
'remove' action unusable. This commit changes the behavior so that warning
is printed when repository is not found but it does not prevent the
install or update if there are other valid repositories.
Change-Id: Ic75b2e09542e304e09af87c7039798120f58d844
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Adds shortcut to the following widgets:
* Add or Remove components
* Update components
* Remove all components
* Quit
Change-Id: I828f5efe877b62f4437ddaf89eb690572948bf43
Reviewed-by: Konstantin Podsvirov <konstantin@podsvirov.pro>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
On Windows when a target path contains non-ascii characters and MaintenanceTool
has a custom name like Uninstaller it was not possible to start uninstallation
after otherwise successful installation. That was because the renaming of
Uninstaller.exe.new and Uninstaller.dat.new was silently failing somewhere at
the end of installation and there were actaully no files Uninstaller.exe and
Uninstaller.dat.
To fix this encode the vbs file which is passed to cscript as UTF-16 so that it
can handle non-ascii file paths correctly.
Change-Id: Id0feb8f8503594f2a9eedddcaa35ae103ccf2938
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Do not execute the component script of a to be replaced component.
This make no sense at all, cause in case of installer it is hidden
and we can't install it anyway.
Task-number: QTIFW-915
Change-Id: Ia0378047b162dafb854dff24e77a113b27885f9d
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
If the warning is written to stdout, parsing the output of --checkupdates
might fail with invalid XML output. The change log shows that the warning
was introduced in 70cc8ce0e1bd2beb15007045b99b26f6c6956206 and shown only
in verbose mode, while change 70cc8ce0e1bd2beb15007045b99b26f6c6956206
made it always 'visible'. The later change went in probably without testing
the check updates case...
Change-Id: I9183089be89e823b4b082a7343885e360d9ad7f4
Reviewed-by: Riho Pihlak <rpihlak@gmail.com>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Unattended installations typically use no UI, and the documentation
recommends passing '-platform minimal' (note: one dash!) to hide the UI.
Alas, the command line parsing is not implemented in terms of
QCoreApplication::arguments() which means that even the -platform
argument which is meant to be processed by QApplication is interpreted
by the command line parser -- which then complains about the unknown
switch by printing
Unknown option: p, l, a, t, f, o, r, m
Let's avoid this by just registering a dummy '--platform' switch
ourselves. It has no effect, but avoids the warning. This however means
that two dashes need to be used, because that's how the command line
parser works.
For what it's worth, there is also a 'gui.setSilent()' setter, but it's
not quite as comprehensive as using the 'minimal' platform plugin: using
setSilent() will still create a QApplication and thus create e.g. a task
bar entry on OS X (and I suspect it requires an X connection on Linux).
The 'minimal' platform plugin apparently avoids this.
Change-Id: I8cd4cfd496f8c435f0766e3162672eaefbef94cc
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Some components have an equal sorting priority. Therefore, we use the
display name to disambiguate to avoid a "random" sorting order.
Task-number: QTIFW-833
Change-Id: Ie0fea8cf6f251a1a712aca5ed53ed3c6f7cd9877
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
The installer occasionally crashed at the very end of the installation,
apparently this is often triggered on Linux 64bit. It appears that this
is caused by two or more threads using qDebug() concurrently: some
operation still uses OperationTrace::trace() to print status output and
at the same time we try to call showFinishedPage(), which uses qDebug()
to print a not-so-useful message.
Getting qDebug() out of the operations seems to be tough, and defining
QT_NO_DEBUG_OUTPUT at build time to disable *all* qDebug() output feels
like overkill, so let's fix this crash by just not printing a message in
showFinishedPage().
Task-number: QTIFW-905
Change-Id: I4702eb511577148ae6cc0d32f1580d842e58e0b2
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
With this feature one can update all installed components
silently with maintenancetool by passing --silentUpdate parameter
Change-Id: If31d37ce24e794775c2fe47b603259da133c9ee7
Task-number: QTIFW-906
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Corrects inaccuracies on the ifw-updates.html page.
Change-Id: I874edf6b23b68b6db5eb6581340e814e3d878d42
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Konstantin Podsvirov <konstantin@podsvirov.pro>
This change introduces new feature to add 7z packages to be
installed. Packages must be installer repositories (created with repogen),
compressed to 7z file and named as qtbsp or 7z. Selecting compressed package
is done either with button in component selection page or with
--installCompressedRepository parameter given to installer or to maintenancetool.
Button will not be created by default. If you want to show the button
either build IFW with DEFINES+=INSTALLCOMPRESSED or enable the button in control
script with allowCompressedRepositoryInstall() in ComponentSelectionPageCallback
Task-number: QTIFW-886
Change-Id: Ia060092c348991d5195393b7dc154205f8bf92a5
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
This change allows you to use relative URLs to update repositories.
Absolute addresses are resolved relative to the current Updates.xml file is parsed.
Documentation added to ifw-updates.html page.
Change-Id: I025bdc3044d1ca9d6abcce3ccdc043d5f03667fc
Reviewed-by: Konstantin Podsvirov <konstantin@podsvirov.pro>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
...such that they can be used in style sheets.
Change-Id: I677be428972dbfe9385cf438b0ccf2f0f3fcd822
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
We should use the display name parameter if given when using action:
<Repository action="remove" url="http://foo.bar" displayname="foobar"/>
I.e. when the repository gets removed it should print out the given
displayname. Now it always prints the url.
Change-Id: I227c02c45c21be3c7c93d57f4242e1fc5c189f3c
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>