summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/fileutils.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add support for generating offline installer from onlineArttu Tarkiainen2021-01-151-0/+95
| | | | | | Task-number: QTIFW-1945 Change-Id: Ic8a076a28385e99ad09cfbccd07c7012d6570639 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Add high dpi image support for Logo and ProductImagesKatja Marttila2020-12-211-0/+17
| | | | | | | Task-number: QTIFW-2061 Task-number: QTIFW-2060 Change-Id: Idaabb6a08f5e52aa7808de4b3ad541ae47dc4dd8 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Replace obsolete qrand() with QRandomGeneratorKatja Marttila2020-11-041-2/+2
| | | | | Change-Id: Ie61b192bcf047cc70f728ea15370ff50e7a41769 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Remove unused code blocks and functionsKatja Marttila2020-11-041-23/+1
| | | | | | | | Results analyzed using cppcheck tools. Also add Q_DECL_OVERRIDE to overwrited functions. Change-Id: Iab5eb43206af0050c1dd84efb7ed860ab9594496 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Doc: Remove internal classes and structs from generated documentationArttu Tarkiainen2020-09-211-0/+6
| | | | | | | | | | After migration to using 5.12.7 based qdoc, the generated documentation contains also empty declarations for members of undocumented internal classes. Mark them internal as needed. Task-number: QTIFW-1483 Change-Id: Iad40e4efdd098f09a825ce1c8d0aafcc76bd83bf Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Doc: Reduce the amount of documentation warningsArttu Tarkiainen2020-09-211-0/+82
| | | | | | | | | | | | Miscellaneous fixes to missing function documentation, undocumented parameters, namespace scope etc. As 5.12.7 based qdoc gives a lot more warnings about code missing documentation, mark undocumented implementation details with \internal command. Also some spelling fixes to related parts of documentation. Task-number: QTIFW-1483 Change-Id: Ibf5d1e5098713acbd152c5b61ea4f46cc11feb4b Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Doc: Fix documentation warningsTopi Reinio2020-09-161-1/+3
| | | | | | | | | These changes fix many of the documentation warnings when building with a recent version of (Clang-integrated) QDoc. Change-Id: I5714635a25707cd7ab7bec209fa043a95f0b9832 Reviewed-by: Katja Marttila <katja.marttila@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* CLI: decrease the amount of default debug printsKatja Marttila2020-02-201-6/+6
| | | | | | | | | | Debug prints can be suppressed or extended with logging rules. Make the default usage so that only relevant information will be shown to user, such as uninstall/install progress, server information, warning messages and package name, version and displayname. Change-Id: I09be754a36dd97530d75cdea3edb5fc77e67a856 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Use of QLoggingCategoryKatja Marttila2020-02-131-7/+9
| | | | | | | | The change enables easier filtering of log messages Change-Id: I769f7c163e20f34c37fa0fe2b0729867ffca5bcb Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io> Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Enable QInstaller::setDefaultFilePermissions() also on WindowsArttu Tarkiainen2019-11-011-6/+2
| | | | | | | | | | | | | | In some cases, for example in CreateLocalRepository files may be left with legacy read-only flag on Windows. Even though the permission entries in its Access Control List are sane, this will block all writing operations to the file. Enable setDefaultFilePermissions() on Windows as this will unset the read-only flag if it is set. This still does not affect ACLs. Task-number: QTIFW-1464 Change-Id: I95399e7cb83cb136ef1c978a05f79b6a6790b7e4 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Refactor setting and checking of file permissionsArttu Tarkiainen2019-08-301-0/+37
| | | | | | | | | | | | | | | | | | | | | | | Create methods to explicitly set default file permissions on Unix platforms, use these on installer created files and installation target directory. Add unit test for introduced functions. Remove method introduced in 46aecc23b2983c807ff2232ae9cb9651b4d2fdc2 as the same effect is achieved more efficiently by ensuring target directory will be written with explicit permissions on initial installation. Unlike the removed method, this will also not break if an installed component contains owner non-writable directories. Further simplify PackageManagerCore::directoryWritable() introduced in 89f772f819178ee2502768c3d259d22ecb910fbe. Remove orphan unit test for removed PackageManagerCore::subdirectoriesWritable(). This does not change permissions of files and directories extracted for installed components. Task-number: QTIFW-1412 Change-Id: I59698c78aceef874b1f79482bff5a618b9a1b536 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Update usage of Apple-related terminologyArttu Tarkiainen2019-08-161-2/+2
| | | | | | | | | | | Replace deprecated Q_OS_OSX macro used in several places with the newer Q_OS_MACOS. Old style reference of Apple's desktop operating system name as "OS X" in documentation and files are also replaced with "macOS" where applicable. Task-number: QTIFW-1406 Change-Id: I0561d5e0d964917ac4fca0702d58a06b85d30e57 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Change quantity information unit textKatja Marttila2019-02-071-8/+8
| | | | | | Task-number: QTIFW-1288 Change-Id: Ie5a6fdc27bb5eb96b080638839ee09f06370848e Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Replace 0 with nullptrKatja Marttila2019-01-091-3/+3
| | | | | | | Prevents a lot of warnings seen in QtCreator Change-Id: I63bf95aca68a04fc9fd0eecbe29c63e9b9c47efd Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Delete directory if there are readonly filesKatja Marttila2018-09-241-8/+17
| | | | | | | Task-number:QTIFW-637 Change-Id: I38b947b10517de68aee5619915886c719cd5e2bf Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Merge remote-tracking branch 'origin/2.0'Katja Marttila2017-01-301-17/+12
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/installer/lib7z_create.h src/libs/kdtools/kdgenericfactory.cpp src/libs/kdtools/kdgenericfactory.h src/libs/kdtools/kdupdaterapplication.cpp src/libs/kdtools/kdupdaterapplication.h src/libs/kdtools/kdupdaterupdatesourcesinfo.cpp src/libs/kdtools/kdupdaterupdatesourcesinfo.h src/libs/kdtools/localpackagehub.cpp src/libs/kdtools/localpackagehub.h src/libs/kdtools/updatefinder.cpp src/libs/kdtools/updatefinder.h tools/binarycreator/resources/mkdmg.sh Change-Id: Iab2513f549832d2e750e77131c673457ab265af4
| * License header update to GPL-EXCEPTKatja Marttila2017-01-261-17/+12
| | | | | | | | | | Change-Id: I6426c4e8f932cf26c6c638dec18d0c12e22972d1 Reviewed-by: Janne Anttila <janne.anttila@theqtcompany.com>
* | Merge remote-tracking branch 'origin/2.0'Iikka Eklund2016-01-201-4/+3
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: installerfw.pri src/libs/kdtools/kdgenericfactory.cpp src/libs/kdtools/kdgenericfactory.h src/libs/kdtools/kdupdaterapplication.cpp src/libs/kdtools/kdupdaterapplication.h src/libs/kdtools/kdupdaterupdatesourcesinfo.cpp src/libs/kdtools/kdupdaterupdatesourcesinfo.h sync.profile Change-Id: Ifdc8b065f89b7e241bd3788ed79768e21888161f
| * Update license headersIikka Eklund2015-12-291-4/+3
| | | | | | | | | | | | | | | | | | Update existing license headers. LGPL -> LGPLv21. Update copyright year as well. Change-Id: Ie1d71f8c68186b8f625f409ddf94691f178093c9 Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com> Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* | Make the installation relocatable (with some limitations).Karsten Heimrich2015-07-141-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace the install path with a constant that's updated while loading the stored configuration and operation values. Dynamic variables now need to be set after reading the .ini file, cause there we store the values we found during installation. Makes an installation relocatable, though with some limitations: * Uninstaller entry might break on Windows * Start menu sortcuts might break on Windows * Everything else written to the system using full path Task-number: QTIFW-653 Change-Id: Ie3255299460d4ad7f18c88de9044c95db10d17ac Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Sanitize QDebug outputKai Koehne2015-07-091-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | Prefer using the stream operator logic instead of using QString::fromLatin1. Add a noquote() where a QString should be printed without any quotes/escapes. This also fixes the tests with Qt 5.5, where QString's are further escaped. Change-Id: Ie3afd14b9355101d3c0b52f30f66ec759c76526c Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Unify translated error messagesKai Koehne2015-06-241-18/+24
| | | | | | | | | | | | | | | | | | | | | | | | * Enclose file paths in "" * Localize file paths with QDir::toNativeSeparators. * Make sure sentences end with a '.' * Append error details always by ':', e.g. tr("Failed to copy file '%1': %2").(...) * Use 'directory' instead of 'folder' everywhere Change-Id: Ie045f429f72ad5045c96537465c5fb9d2e99d250 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Convert to Qt 5 connect syntaxKai Koehne2015-06-151-1/+1
|/ | | | | | | | | | | | Convert to new signal/slot syntax where it does not make things more complicated: connections where the signal or slot is an overloaded method, or where the receiver method is not in a QObject, are left alone. The new syntax allows compile-time checking of the connection. Change-Id: I2cc3c93b9812797bd67f64a8728569491eeec668 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com> Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
* Update CopyrightKai Koehne2015-02-181-7/+7
| | | | | Change-Id: I8dde6629cfd461104364d5cdc255cb54b58283fa Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
* Set objectName for QThreadKai Koehne2015-02-021-0/+1
| | | | | | | | The objectName of a QThread will be picked up and shown by debuggers. Change-Id: Iabd1006a228a73fff0a9a89bd3d8c1021bab6945 Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com> Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
* Add LGPLv3 as new licenseKai Koehne2014-10-161-14/+7
| | | | | | | Change-Id: I61158f956894e209dccf83744b4753774676099d Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com> Reviewed-by: Niels Weber <niels.weber@digia.com> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
* Some more documentation fixes (removes more warnings).kh12014-10-151-3/+0
| | | | | Change-Id: I1efb7f98ac4cccdc4dbd1784806cce286654af9f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
* Workaround for QFileInfo::isBundle().kh12014-07-041-0/+19
| | | | | | | | | | | | | | | For some reason the former code did not work anyore as expected, the issue seems to be in QFileInfo::isBundle or how we used it. To not depend on a possible fix in Qt, we now always resolve the path before we ask QFileInfo if it is a bundle. Fixes also the behavior change introduced in cead4555. On OSX, we get the .dat file passed that's inside the bundle, still we need to read the data from a .dat file that's located beside the app bundle... Change-Id: Idaa7adc6fbad6bd8e9ce90c383b34ea51fe40e8f Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Replace Q_OS_MAC with Q_OS_OSXNiels Weber2014-07-031-1/+1
| | | | | | | | Q_OS_MAC also refers to iOS. Change-Id: I91603d0add90a0f3948453a6b9628814b0d9f80c Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com> Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
* Don't use QObject::tr().kh12014-06-241-25/+36
| | | | | Change-Id: Icefbff9851a4e096a4b800adea7d17db756abe99 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Split out the file IO stuff and adjust other files respectively.kh12014-06-241-70/+0
| | | | | | | | | Also adjust the API to use QFileDevice instead of QIODevice to make clear we just operate on files here and not on any possible device like sockets, processes etc... Change-Id: I4ecbb6e244fe4bb666ed12e62f9f5586bc1347f0 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Fix replace maintenance tool binary.kh12014-06-041-1/+1
| | | | | | | | | | 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>
* Use QTemporaryDir instead of our homemade solution.kh12014-06-031-60/+0
| | | | | | Change-Id: Ia584a9b2f954df5c29a2f0aa5f12b201b2bfbcc4 Reviewed-by: Niels Weber <niels.weber@digia.com> Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
* Use qt_windows.h.kh12014-01-071-7/+1
| | | | | | | Fixes NOMINMAX and mingw missing _WIN32_WINNT define. Change-Id: I28ea6f328b495033d484fa07181062dc92f0855f Reviewed-by: Niels Weber <niels.weber@digia.com>
* fix generation of random temp directory nameTim Jenssen2013-12-101-6/+49
| | | | | | | Task-number: QTIFW-427 Change-Id: Id398f810e8bf4488919297581298307ed3251d28 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Merge remote-tracking branch 'origin/1.4' into 1.5Tim Jenssen2013-10-231-9/+12
|\ | | | | | | Change-Id: Ib2d382d1aa398b642dc15f4df7c03b19bf638546
| * Fix broken random name generation for temporary directories.kh12013-09-201-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTIFW-354 The function was correctly calculating the initial part of the name using QTemporaryFile, though the appended "meta" was not checked and could result in duplicated names later on. Change-Id: I00eeebbb01fbfcc5a626e4bdfe04013f8e520ed5 Reviewed-by: Niels Weber <niels.weber@digia.com> Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
| * Small cleanup.kh12013-09-201-2/+1
| | | | | | | | | | | | Change-Id: I4c0732ac03dc98bd5ed59b6924d551c2303db407 Reviewed-by: Niels Weber <niels.weber@digia.com> Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
* | Change some messages translator friendly.Takumi Asaki2013-07-141-3/+10
|/ | | | | Change-Id: Ib61b852dccf08c6efa272c48601919fdbd9ac1ce Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Properly calculate the file size for symlinks.kh12013-05-301-0/+34
| | | | | | | | Task-number: QTIFW-137 Change-Id: I8a39094228bbb82ff99adfa814cda79634f71274 Reviewed-by: Niels Weber <niels.weber@digia.com> Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
* reformat initialize list of classesTim Jenssen2013-04-241-3/+3
| | | | | Change-Id: I4107c571497a98b962716bd7915c29fb50d70108 Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
* Merge remote-tracking branch 'origin/1.3'Tim Jenssen2013-03-211-18/+22
|\ | | | | | | Change-Id: Ibe38be81d8e763fb58899e2594641b8b062c5504
| * don't pollute output too muchTim Jenssen2013-03-211-2/+0
| | | | | | | | | | Change-Id: I554abf932ad6907155078cf132cdddda8414fe65 Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
| * fix possible loop in moveDirectoryContents methodTim Jenssen2013-03-211-2/+5
| | | | | | | | | | | | | | | | If the user wants to move the content of a directory in a subdirectory, it shouldn't copy itself. Change-Id: I5d5d1b8bdb315b8122fb77ada779d46a63cd2277 Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
| * Fix missing wizard icon on a windows static build.kh12013-03-211-14/+17
| | | | | | | | | | | | | | | | | | | | Q_IMPORT_PLUGIN() macros are needed in application code only for Qt4, in Qt5 those are automatically generated by qmake. Change-Id: Ic75795be402592a0595bb3aa084d0b7ee9a9f8c5 Reviewed-by: Niels Weber <niels.weber@digia.com> Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com> Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
* | Introduce QInstallerTools::copyWithException functionTim Jenssen2013-03-141-1/+1
|/ | | | | | | | | Also use this new function and clean up some output lines related to this. Change-Id: I74e9385b449bbca79b70fbd214c5fa75b419ea29 Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com> Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
* Add 2013 to the copyright.Niels Weber2013-02-051-1/+1
| | | | | Change-Id: If64730ba7203d1a910a426c0d9c9a738ecfeff4b Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
* Fix mingw build...kh12013-02-041-0/+5
| | | | | Change-Id: Ie864b7ff47872f6097deb0b8b85d972fb383aa3c Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
* "Normalize" installation path on Windows installer.kh12013-02-041-0/+46
| | | | | | | | Task-number: QTIFW-175 Change-Id: I10ecc5830ff80f00a2aa67a2d9b66d9e37ac8ef0 Reviewed-by: Niels Weber <niels.weber@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Make IFW compile with mingw.kh12013-01-291-1/+1
| | | | | Change-Id: I0336e02ef701a2bc392bd385d1822bc51cee0c5c Reviewed-by: Kai Koehne <kai.koehne@digia.com>