summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/metadatajob.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Replace obsolete qrand() with QRandomGeneratorKatja Marttila2020-11-041-1/+2
| | | | | Change-Id: Ie61b192bcf047cc70f728ea15370ff50e7a41769 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Remove unused code blocks and functionsKatja Marttila2020-11-041-2/+0
| | | | | | | | Results analyzed using cppcheck tools. Also add Q_DECL_OVERRIDE to overwrited functions. Change-Id: Iab5eb43206af0050c1dd84efb7ed860ab9594496 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Add missing const parameter referencesKatja Marttila2020-10-051-1/+1
| | | | | | | Results from cppcheck analyzer tool Change-Id: Ib76a53728d2774f5e7ec884e1b98d6bf98d20b21 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Doc: Remove internal classes and structs from generated documentationArttu Tarkiainen2020-09-211-0/+30
| | | | | | | | | | 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/+8
| | | | | | | | | | | | 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>
* Revert "Modify repository category functionality"Arttu Tarkiainen2020-08-251-14/+18
| | | | | | | | | This reverts commit 99cbbd439ea1f572b4242d77035b0da3a27c79ec. Reason for revert: The speed benefit gained by converting existing online repositories to use unified metadata does not offset the penalty of fetching all categorized repositories. This is especially bad on Windows where install script evaluation takes long time. Change-Id: I03f4ab41f21e139b40c82baf741b2459966d6d43 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Add verbose levels and cleanup log categoriesKatja Marttila2020-08-241-1/+1
| | | | | | | | | Setting several verbose switches enables more logging and performs component checking. Also cleanup some logging categories and unify the rules. Task-number: QTIFW-1914 Change-Id: I9195f4bb02affaa87e66cf9023a3512e65e0645b Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Modify repository category functionalityArttu Tarkiainen2020-07-031-18/+14
| | | | | | | | | | | | Remove conditions for checking whether a category containing a certain repository needs to be enabled when fetching & parsing metadata for that repository. All categorized repositories will now be fetched regardless of their enabled state, that will be only used to hide/show individual components in the view. Task-number: QTIFW-1821 Change-Id: Id0dbaed9c5b460bf0faeebd6e45349f0c07d10c2 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Require both SHA1 and MetadataName elements for united metadataKatja Marttila2020-06-161-17/+11
| | | | | | | | | Installer can fetch either meta per component or meta per repository. Fetch meta per repository only when both MetadataName and SHA1 elements are found, otherwise fetch meta per component. Change-Id: Ic6d687525c74d5870cec991dea9dedf765b2df03 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Generate unique metadata name for unified metadataKatja Marttila2020-06-111-2/+11
| | | | | | | | | | | If the metadata name is the same although the package is updated, it might cause problems when pushing the data to distribution systems that requires a filename change in order to replicate content. If the filename stays the same it may not be refreshed to the cache. Task-number: QTIFW-1838 Change-Id: I2fc8c1cdf559dab89b57a74ebbe758cdc71da29c Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Merge remote-tracking branch 'origin/3.2' into masterKatja Marttila2020-05-251-0/+7
|\ | | | | | | Change-Id: Icd1dbcfa7f6eef138aad5287a6dcdf7d061a7d70
| * Add possibility to reduce the metadata simultaneous downloadKatja Marttila2020-04-081-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | For some reason installer freezes on some machines when metadata download amount exceeds certain limit. Currently it is limited to 1000 simultaneous requests and this has solved the issue previously but now the issue has recurred. Added a environment variable IFW_METADATA_SIZE so user can decrease the download amount to prevent freezing. Task-number: QTAINFRA-3634 Change-Id: I09c2f8e589a6b89f351623666994cc12ebd7054a Reviewed-by: Johanna Äijälä <johanna.aijala@qt.io> Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Refactor and add unit tests for metadatajobKatja Marttila2020-03-241-105/+129
| | | | | | | | | | | | | | | | Split long functions into smaller understandable functions, added unit tests for metadatajob. Change-Id: Ib423eab3c9ae7771fb032b99f767f96e52266ea7 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Add possibility to compress metadata per repositoryKatja Marttila2020-03-241-42/+56
| | | | | | | | | | | | | | | | | | | | | | | | Added two new configure options for repogen. --unite-metadata will create both 'old' style meta 7z, which is one per component, and new style which is one per repository. --unite-metadata-only will create only new syntax meta 7z. One meta 7z per repository will significantly decrease the download time if there are several packages in one repository. Change-Id: I651b24e93fdef3efb6253ee9b119ebad3bae4d59 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Show progress in CLI when performing time consuming operationsArttu Tarkiainen2020-03-091-1/+3
| | | | | | | | | | | | | | | | | | | | Add a bottom scrolling progress indicator that is shown during meta job progresses and installation phase. Also add printing of messages previously shown only on the GUI Wizard's progress bar labels. Task-number: QTIFW-1625 Change-Id: Ic3f92a31c98e41686517f49bbe98fd81fe11d13f Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | CLI: decrease the amount of default debug printsKatja Marttila2020-02-201-11/+11
| | | | | | | | | | | | | | | | | | | | 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-18/+24
| | | | | | | | | | | | | | | | 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>
* | List available packages from command lineKatja Marttila2019-11-191-3/+6
|/ | | | | | | | | | | | Available packages can be listed from command line with --listPackages <regexp>. All packages can be listed with --listPackages . . By default package id, name and version are listed in output. In case you want to see all the packet information use logging category --logging-rules ifw.package.*=true. See --help for more detailed information on how to use logging category. Change-Id: Ic0815d2274643e3fb3f0670ed9036fe765805c0e Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Update repository categories on server authentication requestArttu Tarkiainen2019-08-151-0/+3
| | | | | | | | | | | | | | | | If repositories in a category were located on a server that requires user authentication, IFW couldn't update information of the repositories inside a category during runtime. This prevents for example storing credentials from the authentication request dialog and blocks the usage of that category. Add a method for updating contents in repository categories and a unit test for the new method. Also some minor tweaks to relevant bits of code. Task-number: QTIFW-1358 Change-Id: Idfa2559df6d0d2a6de428b8d5fb1f7672aa1e300 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Gain admin rights for writing MaintenanceTool config files if neededArttu Tarkiainen2019-06-141-2/+18
| | | | | | | | | | | | | | | | Running MaintenanceTool from an elevated directory didn't do proper checks for file writing rights when parsing Updates.xml from a repository, for example when a default repository contains actions inside <RepositoryUpdate> tags the MaintenanceTool couldn't write changes to the .ini file immediately. Make MaintenanceTool do proper rights checking when parsing Updates.xml. Create uniform methods for checking directory writing access as it is used on several occasions. Add tests for directory checking methods. Task-number: QTIFW-1363 Change-Id: I6d634ddbd59429e5b98af1d8010e70a71de40f69 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix components shown in categories3.1.0-rc3.1.0Katja Marttila2019-04-011-4/+25
| | | | | | | | | | | | If same repository was included in several different categories, and the categories were fetched in the same time, the components were shown only in one of the categories. Fixed so that once the repository is downloaded, the related meta is included to all categories. This also speeds up other category download times. Task-id: QTIFW-1314 Change-Id: I0d890a52dee15a9bde11383f608f547a32b99ee7 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Rename variablesKatja Marttila2019-04-011-2/+2
| | | | | | | | We have named 'archive' to 'category' ages ago, rename the remaining variables accordingly. Change-Id: I3f723d3e7014c264e2a4db21c434708691a1038e Reviewed-by: Antti Kokko <antti.kokko@qt.io>
* Fix RepositoryUpdate functionalityKatja Marttila2019-02-201-0/+2
| | | | | | | | | After adding the categories, RepositoryUpdate got broken. This commit fixes the issue Task-number: QTIFW-1300 Change-Id: I01671a547712088d344852dc169661ac9587894e Reviewed-by: Antti Kokko <antti.kokko@qt.io>
* Reset error before every new metadata jobKatja Marttila2019-01-281-0/+2
| | | | | | | | | | | Installer crashed when invalid QBSP package was selected and after that new categories were fetched. This was because the error message was not cleared, although the metadata job was succesfull, installer thought there was still problems causing it to eventually crash. Task-number: QTIFW-1272 Change-Id: I8a5a6fd8568dcabd9c857c462b83d0e0b77669f8 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Fix tmp file removalKatja Marttila2019-01-221-0/+7
| | | | | | | | | | | | | | | Tmp files were not removed when all or these were met: 1. Using Linux 2. Installing to a folder which needs authorization 3. Installing a component which has no metadata Tmp 'remoterepo-XXXXXX' is created before acquiring authorization. In previous version if above list was met, a tmp folder was created inside remoterepo-XXXXX after authorization leading to permission error when deleting the folder. Task-id: QTIFW-1268 Change-Id: I937fe3ce13440c817d1264c80ad060dfc966e456 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Replace 0 with nullptrKatja Marttila2019-01-091-1/+1
| | | | | | | Prevents a lot of warnings seen in QtCreator Change-Id: I63bf95aca68a04fc9fd0eecbe29c63e9b9c47efd Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Enable usage of categorized repositoriesKatja Marttila2018-09-261-8/+64
| | | | | | | | | | | | | | | | | | | | This change allows to categorize repositories in component selection page. Using categorized repositories will by default show only uncagetorized repository items in tree. Selecting one or several categories using checkbox will update the treeview to show all selected categorized repository content. Repository's metadata is fetched only after the category is selected. Categorized repositories can be defined in config.xml: <RepositoryCategories> <RemoteRepositories> <Displayname>category 1</Displayname> <Repository> <Url>(url)</Url></Repository> </RemoteReposiories> ... <RepositoryCategories Change-Id: I6eae9daee70b1afa322144d52c11f25d0b655ebf Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io> Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Merge remote-tracking branch 'origin/3.0' into masterKatja Marttila2018-09-171-1/+5
|\ | | | | | | Change-Id: I77d539e079f3c7d61c4a965b222f4e02c35b1108
| * Fix install fail if there is no metadataKatja Marttila2018-06-121-1/+3
| | | | | | | | | | | | | | | | | | | | Installer was never able to continue from metadata download phase in case there was no metadata in any of the packages. If metadata not found, emit finished signal to continue installation. Task-number: QTIFW-1150 Change-Id: I0d3f8fb147899fff4b1a1cc0c6de7a587aae9053 Reviewed-by: Antti Kokko <antti.kokko@qt.io>
| * Reset meta information download resultKatja Marttila2018-06-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | As metadata can be downloaded in chunks, there are extra step counter in UI in case there are more than 1 chunk to be fetched. Reset the counter and result in case e.g. repositories are changed from settings and meta information is retrieved again. Task-number: QTIFW-1137 Change-Id: I1bfe06dc0ba375508efb0b6ebe5edce884310ea8 Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
* | Merge remote-tracking branch 'origin/3.0' into masterKatja Marttila2018-06-061-13/+27
|\| | | | | | | Change-Id: Ia00c88061f15fc9c9517b536609ac3260c0df2ef
| * Decrease metadata dowload amountKatja Marttila2018-06-011-12/+26
| | | | | | | | | | | | | | | | | | | | If there are no Script, Translations, Licenses nor UserInterfaces -tags in Updates.xml, there is no metadata. In such case, do not download the empty metadata to decrease the time used in downloading metadata. Task-number: QTIFW-975 Change-Id: I1b81a07b5ad43677e190fb058ece8b06382d215b Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Allow install other components if sha mismatches in metadataKatja Marttila2018-06-041-0/+11
|/ | | | | | | | | Expanding commit "Add attribute to mark parts of install tree unstable." This change will allow installing other components if some component has sha mismatch. Change-Id: I61202da95dc07ca3f1fe931cfe1fbbb053596f42 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Fix build error in MacOSKatja Marttila2018-04-051-1/+2
| | | | | | | MacOS does not understand ceil, use qCeil instead Change-Id: I075aab60ae7e00336bdd4faf864c3922482401ac Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Fix install fail if there is huge amount of downloadable packagesKatja Marttila2018-04-031-20/+46
| | | | | | | | | | | In some machines, installer does not manage to download meta files if there are huge amount of downloadable packages. It seems that QtConcurrent is not always able to handle so many download tasks. Divided the downloadable tasks into size of 1000 to keep the QtConcurrent running. Change-Id: I3ba110e2cc565251e540349a6b073245280a6fbe Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* Fix install fail if there are missing repositoriesKatja Marttila2017-06-201-4/+6
| | | | | | | | | | If any of the repositories was not found or had unparsable Updates.xml, install failed although there was other valid repositories. Fixed so that warning is printed when such repositories found but continue install if there are other valid repositories. Change-Id: I04fe8d91382a3ea97ce22cd64159a6a7d825128d Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Fix 'Failure to fetch repositories' if repo missing in Qt5.9Katja Marttila2017-06-131-0/+4
| | | | | Change-Id: I0bb66c412bd60a6ec1a9a3dd30059928b43f3c0a Reviewed-by: Antti Kokko <antti.kokko@qt.io>
* Add progressbar to indicate unzip job is proceedingKatja Marttila2017-05-101-3/+12
| | | | | | | | | | | 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>
* Fix metadata resetKatja Marttila2017-04-251-1/+2
| | | | | | | | 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>
* Fix invalid QBSP installer breakKatja Marttila2017-04-241-32/+80
| | | | | | Change-Id: I7e0bfc2fb0dc4c5438ec2c5ce59b49eb0f0348ee Task-number: QTIFW-954 Reviewed-by: Iikka Eklund <iikka.eklund@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'Katja Marttila2017-01-031-1/+1
|\| | | | | | | | | | | | | Conflicts: doc/installerfw.qdoc Change-Id: I3d991775eae96c7de689e4b92393065564940a5f
| * Resolve relative URLs from Updates.xmlKonstantin Podsvirov2016-11-081-4/+12
| | | | | | | | | | | | | | | | | | | | 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>
* | allow installing compressed packagesKatja Marttila2016-11-091-26/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/2.0'Iikka Eklund2016-10-251-1/+2
|\| | | | | | | Change-Id: Ibd01bc156481df973e3c9371d77af338a5e82607
| * Set also display name for Repository action "remove"Iikka Eklund2016-10-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Resolve relative URLs from Updates.xmlKonstantin Podsvirov2016-07-071-4/+12
| | | | | | | | | | | | | | | | | | | | 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>
* | 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>