| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| | |
Change-Id: I6426c4e8f932cf26c6c638dec18d0c12e22972d1
Reviewed-by: Janne Anttila <janne.anttila@theqtcompany.com>
|
| |
| |
| |
| |
| | |
Change-Id: I2537aec5d3065da78bf9b0c6970ff3b38c7d4946
Reviewed-by: Samuli Piippo <samuli.piippo@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>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
doc/installerfw.qdoc
Change-Id: I3d991775eae96c7de689e4b92393065564940a5f
|
| |
| |
| |
| |
| |
| |
| | |
Change-Id: I07f22c9452deae7a044ac186c8d1953df00df43c
Task-number: QTIFW-902
Reviewed-by: SIGMA Surface Science
Reviewed-by: Joerg Bornemann <joerg.bornemann@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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| | |
Change-Id: Ibd01bc156481df973e3c9371d77af338a5e82607
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 76fd6e8f2953347ea0bf7a57b643968784bc9acc.
The change caused that two installation files were needed -
one executable and one dat file. Many users did not find it acceptable.
We need to figure out something else.
Change-Id: Ief12cd47f9897cee8a234d8611a5c18296d42b1c
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch introduces support for a new setting 'SupportsModify' in the
config.xml file. This is only relevant for Windows installers.
By default (i.e. when omitting) this setting, it
defaults to 'true' which means that the product supports modifying
(i.e. reconfiguring) an existing installations. As such, the 'Modify'
button show in Windows' list of installed programs will be enabled.
Setting this to 'false' will cause the button to be disabled.
Change-Id: I4105f3f0bce67830aa2ee8ae0e6f6abb25c35b30
Reviewed-by: Karsten Heimrich <karsten.heimrich@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: I5935355dfeee2236e9752cc2545c2d42da216f9e
Reviewed-by: Konstantin Podsvirov <konstantin@podsvirov.pro>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
Changelog
dist/config/config.xml
dist/packages/org.qtproject.ifw.binaries/meta/package.xml
dist/packages/org.qtproject.ifw/meta/package.xml
installerfw.pri
src/libs/7zip/7zip.pro
src/libs/7zip/win/CPP/7zip/UI/Common/Update.cpp
src/libs/installer/component.cpp
src/libs/installer/lib7z_facade.cpp
src/libs/installer/packagemanagercore.cpp
src/libs/installer/proxycredentialsdialog.h
src/sdk/translations/ja.ts
tests/auto/installer/messageboxhandler/tst_messageboxhandler.cpp
tests/auto/installer/scriptengine/tst_scriptengine.cpp
tests/auto/installer/settings/tst_settings.cpp
Change-Id: I3bb98b8490b3c3eb7f664c1abb7417155b5430b2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since Qt5.5, QProcess start() needs a program to start.
When using native arguments the program is empty and QProcess will
fail to start. Removed the use of native arguments until
QProcess supports setting program through native arguments.
Task-number: QTIFW-862
Change-Id: Ia56344e1bf82fbd76e4e8f2ae8b6817e4bb2fce1
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I8bad1c9bbe7b705ff0842f15fb0c9bc6c127e9bc
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The \enum command \brief commands do not seem to get
automatically completed during builds anymore.
Change-Id: Id81aa8f3044f6151d6b4d8a441e386deb0ca4844
Reviewed-by: Topi Reiniƶ <topi.reinio@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
...to suppress QDoc warnings.
Change-Id: Ib79b0392efaed37b4a52932d4f7d98327a3ad306
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Change the documentation accordingly.
Change-Id: I2f15bf724558794b66e99eab1120dc2d224600de
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Added space between 'convert' from 'path'.
Change-Id: I25f4eedc7d322d29c8c93dd7dd80fc13232de0b7
Reviewed-by: Niels Weber <niels.weber@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Change-Id: Ibebc25b738c843c0eb4291faa2bba7ac9836b008
Task-number: QTIFW-841
Reviewed-by: Ralf Nolden <nolden@kde.org>
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
|
| |
| |
| |
| |
| | |
Change-Id: I502e48dea6329bd6f05a776a669093f41698a274
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit eb574d77b0ab9a92b61e7738d089cd4ea4304e51.
The change will not work with Qt5.5 as it is causing constant
crashes in Qt installers. Using this change will require a fix
for Qt5. As we are about to make Qt installers based on 2.0 we
need to revert this change for now.
Change-Id: Ia7906d02db645f2407ab07d14f5a037224574b29
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Grant permission rights for writing maintenance config file
Change-Id: I9364358455b8ad5e98b03c20d949c2562ba2535a
Task-number: QTIFW-740
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
|
| |
| |
| |
| |
| | |
Change-Id: I60d248ea38e8176e18a9b2a642e81a0ad5fb21d3
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| |
| |
| |
| |
| | |
Change-Id: I9c0d399943d2f6eb9a0ab136abf24a5c8b108abb
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Signing was not possible for maintenancetool since metadata was
added to binary. Separated metadata to installer.dat like in OS X.
Task-number: QTIFW-667
Change-Id: I74ef307c51a2f43059475dd943d6f0910925fa86
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When pressing cancel button when testing repositories, the dialog
pops up again and again. Cancel the TestRepository job if cancel
button is pressed.
Change-Id: I48da41a8b791bf04571acd8af4a421b11e0fccc7
Task-number: QTIFW-832
Reviewed-by: Niels Weber <niels.weber@qt.io>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This utility function can be used to populate a Qt control which is
backed by some QAbstractItemModel with a list of strings. E.g. this can
be used to populate a QComboBox or any QAbstractItemView with some
items.
This is very useful since in many cases, the methods for adding elements
to such controls are neither slots, nor marked with Q_INVOKABLE and such
unreachable from the script code.
Change-Id: I2195f41e53765ef3a798477ed08d8f09ab5c4379
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
License agreement was hard to read and the title sometimes
needed scrolling. Make the layout vertical so there is more
room for license title and license agreement text.
Change-Id: I46a9d4880b0219a2a92af19a8f17a39ba53faf6a
Task-number: QTIFW-815
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is needed for QV4::Object usage. Missing include was causing
compile errors in Qt5.7.
Change-Id: Idf9cc6dafedb54be4cb02f12176b31c794b592fa
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 95ae661cba931a982d12cd68d8b4da392d74bdd0.
As we now require at least Qt5.5.0 we don't need this workaround
Change-Id: I6ab930886bc9af0716a61a8e21b12db83018b0c2
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Asking users to use the authorization fallback in case of authorization errors
might be a bit problematic in some cases. If the users are not familiar with the
concept, running: "<installer_exe> --startserver PRODUCTION,{GUID},{GUID}" from
command line might be confusing or difficult. Also it might not help at all.
So let's make this optional. If the config variable DisableAuthorizationFallback
is set to true the installer will not ask users to run the authorization
fallback but instead it will abort the installation immediately.
In RemoteClient this is implemented by adding a new function called
setAuthorizationFallbackDisabled. The init function could be also extend for
this but the config settings are not loaded at the time when the function is
called.
Change-Id: I4baf1dea34c5cc0016e98df47a9492ee1418c5ee
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add variables
- ApplicationsDirX86
- ApplicationsDirX64
Change that the application directory can be selected on Windows, don't depend on the architecture(32bit or 64bit) of QtIFW.
For example:
When on Windows(64bit version).
- QtIFW(32bit version)
- ApplicationsDir -> C:\Program Files (x86)
- ApplicationsDirX86 -> C:\Program Files (x86)
- ApplicationsDirX64 -> C:\Program Files
- QtIFW(64bit version)
- ApplicationsDir -> C:\Program Files
- ApplicationsDirX86 -> C:\Program Files (x86)
- ApplicationsDirX64 -> C:\Program Files
Change-Id: Idbc41d6f1ba9d7b0b9a9ff5590d05077662345cb
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Niels Weber <niels.weber@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The installer would always consider the exit status of the sudo process,
but if executing sudo itself fails (e.g. because the file does not
exist, or because of insufficient permissions), a success exit status
(zero) was returned.
Fix this by rather returning the (negative) errno value in case anything
goes wrong with execve.
Change-Id: Iac5051e998982c6a31fa49cb6f4290cf66050c44
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Destroying QProcess or QAbstractFileEngine objects never worked, since
the code for deciding what type of object is to be destroyed confused
the 'type' with the 'command'.
Change-Id: I8d6c6bf2f11ff82cfbd744c43fcc91d234967b69
Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Sometimes installing fails due to a problem in server.
Since downloading can happen from mirror, it is hard to
detect where the problem is. Print the IP address where
the download actually happens to ease the problem solving.
Change-Id: I31e15c2b1926745c251093cd1663d1ca1c65bff6
Task-number: QTIFW-813
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It was impossible to pass Unicode data safely to a process started via
installer.execute(), or to read Unicode data printed by that process
safely back in. The reason for this is that the code hardcoded the
latin1 codec for converting between strings used in the script
interpreter and bytes used by the QProcessWrapper API.
Fix this by adding two new optional arguments to installer.execute()
which can be used to define the codec to be used for writing to stdin
resp. reading from stdout. This defaults to latin1 for backwards
compatibility.
Change-Id: I290d8d9617b286ef90b2f0a05c6e7a47f6df317f
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Reviewed-by: Frerich Raabe <raabe@froglogic.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I922e572e246abfbd0647216a0134df615d36b484
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The write handle of the stderr pipe was closed in the parent process
further up already. What's left to close is the read handle.
Change-Id: I988c5334edb2df002cb29b1f2d47fb34eb284185
Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The WizardDefaultWidth and WizardDefaultHeight configuration settings
always expected pixel values. This made the installer look somewhat
awkward on high DPI displays, in which case the ratio between the font
size and the installer window size was such that the fonts looked very
big.
Let's fix this by allowing to specify the width/height of the installer
using units which are defined in terms of the font size, namely 'em'
("The width of the letter M") and 'ex' ("The width of the letter x").
'px' is supported as well and means the same thing as not specifying any
unit at all: the given size is defined in pixels.
We choose to *not* use the font width for 'em' and 'ex' to be consistent
with what the Qt CSS parser does (see src/gui/text/qcssparser.cpp),
which adheres to what the W3C document at
https://www.w3.org/WAI/GL/css2em.htm describes.
Change-Id: Iaeb5a29c79d437ef4b956cb318158181f6289ec9
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Uninstalling packages on OS X didn't seem to work very reliably, it
often (always?) seemed to not remove a couple of files. When clicking
the 'Show Progress' button while uninstalling, it became apparent that
the paths to all the files to remove were computed wrongly: instead of
deleting e.g. the file
/tmp/installdir/foo.txt
The uninstaller attempted to remove
/tmp/installdir/Uninstall.app/foo.txt
What happens is when uninstalling, the ExtractArchiveOperation class
(which performs deletion of installed files in its 'undoOperation'
reimplementation) reads the files which were installed from the XML
markup embedded in the maintenance tool binary (this happens in
UpdateOperation::fromXml()). The paths to the files which were installed
make use of a special '@RELOCATABLE_PATH@' placeholder which denotes the
effective installation directory. This placeholder is meant to be
replaced with the actual installation directory, which is assumed to be
the directory where the maintenance tool resides, i.e. what
QCoreApplication::applicationDirPath();.
On OS X however, the maintenance tool is an app bundle, i.e. the actual
binary is not in
/tmp/installdir/Uninstall
but rather
/tmp/installdir/Uninstall.app/Contents/MacOS/Uninstall
The code already called the QInstaller:isInBundle() utility function to
handle this case, but did so wrongly: isInBundle() returns the directory
to the app bundle, i.e.
/tmp/installdir/Uninstall.app
What we want though is just '/tmp/installdir'. Hence, let's go one
directory up.
Change-Id: I927a453d7fbdd1048ff3d2172bd3cfec3a563b4a
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If WizardDefaultSize was not set, banner size was zero. In this commit
default banner size to page size if WizardDefaultSize is not set.
Also resize banner only when it is found
to avoid warning messages in console.
Change-Id: If47f947b134714ae935d80bc3074226763ca8ea7
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When using RegisterFileType, argumens include progId.
Removed it from arguments and saved as member variable.
This way progId won't interfere argument check count and
it can be used also in undo operation.
Change-Id: Ic80a54a28b5e171a5d4e3023b58eb1636a16fa49
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After the sudo process finished, we need to make sure to read any
buffered bytes from the stderr pipe. Without this, the stderr data which
was shown in the message box often ended up being incomplete. For
instance, three failures to enter the correct root password would show a
message box saying
Sorry, try again.
Sorry, try again.
Instead of
Sorry, try again.
Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts
Change-Id: Ib1e7aa40d95f9bf140ba1978fdb9be92cad926b6
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Any stderr data printed by 'sudo' was always printed as part of an error
message box, even if sudo succeeded. This issue is triggered very easily
by entering a wrong root password first, and then the correct password
on the second try.
Let's just print stderr data in case we have some *and* in case 'sudo'
returns a non-zero return code.
Change-Id: Icbb2d31cdf5c4d5d20ed4200553e9bf7e2b5bedd
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com>
|