We can close the .dat file in maintenance mode. There is no need
to keep it open since no packages are in there and resources are
mapped into memory anyway. Fixes commit 7f2c98c8 that updates the
.dat file on soft restart. On Windows updating did not work cause
the .dat is opened and locked by the OS. To overcome locked files
we run a VB script that does a deferred rename once the lock is
gone, but in case of a soft restart we now did start several of
them depending on the amount of restarts.
That had the undesired effect of several replace/rename operations,
of which only 2 "succeeded":
- First script: Remove .dat | Rename .dat.new -> .dat
- Second script: Remove .dat | no .dat anymore...
Task-number: QTIFW-689
Change-Id: Ic3ee1b418890eabe5b854dc7879cd7bc118f9240
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Now by default all categories are disabled.
They get enabled only in verbose mode.
Verbose mode enables all categories by default.
Categories can be filtered using logging-rules option.
Change-Id: I9324826a6e2d7a746e3d7369747fcd31a42b84b6
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
To enable them export the following environment variable:
QT_LOGGING_RULES=ifw.componentChecker=true
Change-Id: Ied6744c745ca3fd0840c622c71a8ba30ad22e3d9
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
So far the arguments to --startclient have been ignored.
Change-Id: Ib76b061381a9320e6e4e9e2e970132c2f614aca7
GPush-Base: 92da4093e32040cb7cd7ed5587de78262d825e65
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
In case we hit the English translation just try to load it
and break in any case. In case we hit another language
we only install the translation if the qt translation was
loaded properly, and break.
Change-Id: I2755501c1af8cb51b38cf21e0205bcf05541fb91
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
If we provide an en_us translation only this won't be picked up
by users having configured 'en', or 'en_uk'. This also mirrors the
naming of the qt translations.
The exception is zh_CN though, because the difference between
simplified and traditional characters is big. I'm not sure whether
taiwanese people would rather prefer traditional characters or english.
For Qt we have both zh_CN and zh_TW, maybe we will get a zh_TW in the
future too...
Change-Id: I73490337aef8f54da14b6feca3a035e1e405d65b
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Setting CreateOfflineRepository to "true" in config.xml will
create a local offline repository, same functionality as
"--create-offline-repository" command line option
Change-Id: I51b947157ebc27800b1e9ad0b55d139ac6e164b2
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Right now we support control scripts just as command line argument,
but now we can also bundle it in the binary as well. This helps e.g.
with running scripts during uninstallation, enables the possibility
to modify the introduction page or enables headless installer builds.
Task-number: QTIFW-495
Task-number: QTIFW-166
Change-Id: I6fee6a55db78ed28b1eeb8257a4febaa2703c04e
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
1; Passing debug as first argument to the starting server does not
start the server side so the server keeps running in an endless loop.
This makes it far easier to attach a debugger.
2; API cleanup and unify init function to take port, key, and mode.
The address was never able to be changed anyway, so stop passing them
around.
Change-Id: I2a847f009ed1557a5e136e2b0006de5c62426da2
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
This allows us to store proxy settings in the factory later on.
Change-Id: Ib389ccffb3163be4f5cd511be4c4b8bbe15e8a93
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
If we can't lock the file (possible missing privileges to create
and lock it), we now check the running processes before we fail.
Task-number: QTIFW-566
Change-Id: I821ccf8c37d6a235df49e060c59a0283bb91261c
Reviewed-by: Takayuki ORITO
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Niels Weber <niels.weber@digia.com>
Use a more descriptive enum name. On Windows keep the lower case
version of the process name instead of calling toLower() several
times. Print a warning if we cannot obtain or release the lock.
Change-Id: Iaaefae0359cd214290f62ce78677cb343da8823c
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Niels Weber <niels.weber@digia.com>
Adjust some naming. Add documentation. Make the Resource class
handle files only, this is sufficient to read and map inbuild
resources. Keep the QResources inside the manager as well, no
need to handle them separate. Remove read, write functions from
collection class, the API was just unclear how to use. Still it
is far from intuitive in the manager class either. If we open a
Resource, we need to close it on our own case they are pointers.
Change-Id: Ic8aa32a84a15ac774fe1194ba0dbb5733f7216d6
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Fixes missing timestamps and some propably wrong conversion.
Change-Id: I6106e1ea61d0840d132dd3b44cd746f023e795af
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Based on the former patches, split the installer base into its
own class. Use the new binary content read functions. Adjust uses
to match the new classes. Adjust installer base /update checker
signature and inheritance. Remove all now superfluous functions
from binary content. Core engine instantiates the operations now,
makes reading and writing more generic. Move product key check
into QInstaller namespace. Make use of the new command line parser.
Change-Id: I00aff79085b69ce627906881b43f374681ea7e91
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
In commit 6466dbd11190 the list iterator advances two times in one go.
Change-Id: I24aae53b764732b04159261921365c99518ee3e9
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Remove some now superfluous methods from binary format.
Adjust initializing some objects as we need them not earlier.
Unify implementation of accessing the right binary to read the
content from.
UpdateChecker does now have its own run checker, makes it possible
to run the binary even if a e.g. maintenace tool is already running.
Change-Id: I94f32f7f38b62b5aee433753abc2fe72e879ddc9
Reviewed-by: Niels Weber <niels.weber@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Remove: --runoperation, --undooperation, --update-installerbase
--dump-binary-data, Script, Updater, ManagePackages
Some of these options will go into a separate dev related tool.
Change-Id: I31084f60d3ed9a33abeb3df90fadf939d3b4c0a7
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Rename UninstallerName to MaintenanceToolName
(change its default value to "maintenancetool").
Rename UninstallerIniFile to MaintenanceToolIniFile.
Change-Id: Ic8ceae80b43c6793ae9b0baacea2ea374a0f90d1
Reviewed-by: Niels Weber <niels.weber@digia.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Missing QInstaller::init() did lead to crashes cause of
uninitialized lib7z (in case we used a zipped file as input).
In verbose mode console did not show up. Get rid of KDSaveFile
as it complicated to code unnecessary.
Change-Id: I5911c895d7763e4ce919b1d4761568e47b244b1b
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Remove superfluous file engine tests. Introduce auto test
for newly added client server classes. Fix some wrong
implementations serverside for settings array handling and
broken arguments in process wrapper. Replace all other parts
that with new implementations. Remove now unused classes.
Change-Id: I6f9e836993096a2c2c06b06f2b06d7aa4b287e56
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Increase the number of file descriptors that the process can open
to the maximum allowed. By default, Mac OS X only allows 256 file
descriptors, which can easily be reached.
Change-Id: Ie4e5ab1051d8e3bf1cb39747f629360915a22d97
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Task-number: QTIFW-431
We need to add a separate console window in case we run on windows,
though we can't use a gui application as the lib might popup message
boxes. (MessageBoxHandler checks against a running core application)
Change-Id: Idad8dff44c6c0bfb0bb45e8a0fb408b3db832c3c
Reviewed-by: Niels Weber <niels.weber@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Change-Id: I2e362d255bf2526f216cbb872bbb64d37383d229
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Reviewed-by: Michal Klocek <michal.klocek@digia.com>
Change-Id: I384f036a24e3eb648bde0fa8e40ab8dcb0779e7b
Reviewed-by: Michal Klocek <michal.klocek@digia.com>
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
In cases where there where multiple uilanguages, sometimes the
wrong language was chosen for the Qt localisation.
Also, use the standard matching for locales for the ifw
translation as well.
Task-number: QTIFW-324
Change-Id: I2c4cd079baa3d1ce4c5c69bf6692ba313616f722
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Task-number: QTIFW-214
Simplifies testing an already existing installer or maintenancetool
using a newer installerbase or IFW build.
Change-Id: I11df629614eb1c2c15ecc28af37d8e40b5173a79
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Obviously there was a problem with the indexOf call. Also once we
omit the -i, the input could be -o or even worse the output path.
Change-Id: I60a970c7e2857195e214cf2441d87468d297a7c2
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>