4
0
mirror of https://github.com/QuasarApp/installer-framework.git synced 2025-05-07 18:49:34 +00:00

42 Commits

Author SHA1 Message Date
Arttu Tarkiainen
c7066c9dc2 Update usage of Apple-related terminology
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>
2019-08-16 08:35:19 +00:00
Katja Marttila
9dacee18f9 Replace 0 with nullptr
Prevents a lot of warnings seen in QtCreator

Change-Id: I63bf95aca68a04fc9fd0eecbe29c63e9b9c47efd
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
2019-01-09 05:41:16 +00:00
Katja Marttila
da9e13b703 Fix devtool
After we implemented maintenancetool signing, we wrote the binary magic
marker to separate installer.dat file in maintenancetool (like we have always
done in macOS in both installer and maintenancetool). Devtool needs to
know about this change too to fetch the magic marker from correct place.

Task-number: QTIFW-1222
Change-Id: I08e74596033cb33ccb9c49d9db1ee7b4beef59ca
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2019-01-04 05:34:02 +00:00
Takayuki ORITO
35af20a8ed Fix devtool's segmentation fault when using operation
change the name of the variable to parse the arguments of operation command.

Change-Id: I251b17e6e48b0a5c12636199de57bbb761b3ac23
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2018-03-13 11:03:07 +00:00
Jake Petroules
21214c88dd Explicitly declare implicit dependency on QtQml in devtool
Change-Id: I4ef19a4733d5c469676f3b419c6f4adf1e6ff0de
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2017-09-13 04:01:15 +00:00
Katja Marttila
9772474dd9 Merge remote-tracking branch 'origin/2.0'
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
2017-01-30 14:40:26 +02:00
Katja Marttila
c9d11cc991 License header update to GPL-EXCEPT
Change-Id: I6426c4e8f932cf26c6c638dec18d0c12e22972d1
Reviewed-by: Janne Anttila <janne.anttila@theqtcompany.com>
2017-01-26 10:02:56 +00:00
Katja Marttila
49201fdb99 Revert "Allow signing maintenancetool in Windows"
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>
2016-09-15 07:01:05 +00:00
Katja Marttila
e87c58548a Merge remote-tracking branch 'origin/2.0'
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
2016-06-21 12:32:42 +03:00
Katja Marttila
76fd6e8f29 Allow signing maintenancetool in Windows
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>
2016-06-21 04:51:29 +00:00
Katja Marttila
62c34c7e55 add make install functionality with INSTALL_ROOT
Change-Id: I8bad1c9bbe7b705ff0842f15fb0c9bc6c127e9bc
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
2016-05-19 09:02:03 +00:00
Iikka Eklund
2af57eb8c8 Merge remote-tracking branch 'origin/2.0'
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
2016-01-20 14:18:30 +02:00
Iikka Eklund
6ba58b42ab Update license headers
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>
2015-12-29 07:31:11 +00:00
Karsten Heimrich
de8b7ede25 Rename files. Remove {kd} prefix. Remove {kdupdater} prefix.
Change-Id: I88c93cab718f4659296d5f7f562beefd747a366f
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
2015-07-14 12:37:58 +00:00
Karsten Heimrich
38799ceaf1 Make use of the new varadic template feature + cosmetic changes.
Change constructor to take the a package manager argument. Add a
package manager member to the operation. Remove setter function.

Change-Id: Iffb860e24089beb6496ac4ee479d547a29463728
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-07-10 08:54:06 +00:00
Kai Koehne
1e589e37a9 Unify translated error messages
* 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>
2015-06-24 09:22:42 +00:00
Karsten Heimrich
02f1c6cde8 Split the huge header file in more dedicated ones.
Change-Id: I35a1500d5a9bb8986765488660cf0487c32d9720
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-06-10 08:15:45 +00:00
Karsten Heimrich
478a8a1db3 Remove pseudo static core instance, fixes autotests.
We need the core engine in operations anyway, so pass the pointer
to the create function instead of setting it on our own after the
operation was created. The only reason to introduce the static
was the ~UpdateOperation() destructor, which now can get the value
from its internal data instead of using the static instance call.

Change-Id: Ide27542837355ec8c642a6687ca02977983f84fa
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
2015-05-06 19:55:51 +00:00
Niels Weber
88b5604fa3 Fix some warnings in devtool
Change-Id: I9d12cd49ad4d82ec8f48798f087929fa3ee07fa8
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2015-04-29 10:53:22 +00:00
kh
a1418fbffd Use positional arguments instead of options.
As requested use positional arguments instead of options to run
the devtool. Should help unifying further additions to the tool.

Change-Id: I794a7f7956d86082111f8aa1b14012c3695c965d
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-04-24 12:31:14 +00:00
Kai Koehne
99996591e0 Update Copyright
Change-Id: I8dde6629cfd461104364d5cdc255cb54b58283fa
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2015-02-18 10:33:48 +00:00
kh
e880633818 Dump binary content for both installer and maintenance tool.
Change-Id: I749912ebba5e1765f0d60e089a0366f59e09279b
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-02-05 16:19:29 +00:00
kh
68b3092d32 Rename the exceptions class to be more generic.
Change-Id: Ia96477920055ee6a6f15be1334516746ddf3573b
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-11-24 17:44:58 +01:00
Christoph Vogtländer
fe97303ee7 Fix binary data extraction
Extract binary data based on list of available package names when using
"devtool --dump" or "--create-offline-repository" installer option. An
entry in meta data resource only exists if the component actually has
meta data (e.g. a script) so it is not possible to rely on sub
directory structure after copying meta data to extract binary data.

Change-Id: Icd70d3495a921229f0043360b93905dc36cf6514
Task-number: QTIFW-574
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2014-11-13 11:44:36 +01:00
kh1
c6ae7c8a44 Fix unregistering resources. Fix --operation argument parsing.
In case of dump we register some resources, though since we
return immediately after the function call, never unregister.
We need to split the arguments on our own, the parser does not.

Change-Id: Id97e0a4d8a3c15fd0027a09514a9c0a6930e7fdb
Reviewed-by: Niels Weber <niels.weber@digia.com>
2014-11-04 11:24:53 +01:00
kh1
df70f005d8 Remove superfluous include.
Change-Id: I24b7cfe2bc67eb4b0d4a63e4a75e4171e7f0d4ea
Reviewed-by: Niels Weber <niels.weber@digia.com>
2014-10-31 12:50:51 +01:00
Kai Koehne
4ebfecf411 Add LGPLv3 as new license
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>
2014-10-16 15:17:56 +02:00
kh1
84875396b7 Overhaul the binary format API.
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>
2014-10-15 17:10:18 +02:00
kh1
bc91a2204e Fix warning and handle file scheme like files better.
Calling setFileName() prints a warning if the path is reset
without calling close() before.
Convert the source path with file:/// scheme to local file.

Change-Id: Ie21e7e8ad8f76dbe1afc1843ff5bf7fb4598123a
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-10-10 16:08:47 +02:00
kh1
6857a0e87e Fix broken update option.
We need to read the marker on our own, BinaryContent::binaryLayout()
throws cause it cannot read the full layout in case of maintenance
tool binary (part of the stuff is inside the .dat file).
To be able to read the layout from the .dat file, we need to open it.
Pass the right file to relace, in both cases the executable.

Change-Id: Ic76e78a2ee289f3d59d51cc8984d84ab5edf5b46
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-10-10 15:50:47 +02:00
kh1
a88d6dc9d3 Fix relative path issue.
Change-Id: Ia866503bf503a4b1dce8fbb44cc4240463302eb8
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-10-10 15:35:56 +02:00
kh1
1d080a743c Add missing help option.
Change-Id: Ie70cf698e1761b26a6d6ff11a782c0a871587132
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-10-10 15:35:26 +02:00
kh1
85cc7f8fc5 Rewrite binary layout read/ write implementation.
Move BinaryLayout into its own file. Calculate the segment
offsets in place instead of letting the caller do the work.
Adjust autotest to match the new behavior. Adjust uses to
the new behavior.

Change-Id: Iba7a4398bd097f1768c33f0c528efd12b7458541
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-04 10:42:05 +02:00
kh1
77b1e16820 Split and implement new installer base, update checker.
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>
2014-09-04 10:41:53 +02:00
kh1
df2663a932 Let the binary layout function find the cookie on its own.
Saves some ugly looking call convention, as we need to find
the cookie anyway, pass the cookie instead of the position.

Change-Id: I2227576a8ad251fac5312fc477f8381287b0d36d
Reviewed-by: Niels Weber <niels.weber@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-08-29 12:40:05 +02:00
kh1
cf60ba8b28 Make BinaryFormatEngineHandler a real singleton.
It is really needed only once.

Change-Id: I0b2231432541c2781afe55105f88809db4fe19e1
Reviewed-by: Niels Weber <niels.weber@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-08-29 12:39:58 +02:00
kh1
42d2b1ba06 Adjust implementation to not use the collection manager.
Change-Id: Ie38460ff4a94b5583cabb1ecad97cd6c9a906c15
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-08-29 12:39:48 +02:00
kh1
2312e7fd59 Rename binary format classes and functions. Move to QInstaller.
Adjust some minor implementation details. Some renaming of member
variables and function names is left out but will follow in later
patches. Add some documentation.

Change-Id: I929dcbe13fa701be5224b9e5fdf8d19bfff81235
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Niels Weber <niels.weber@digia.com>
2014-08-27 10:44:00 +02:00
kh1
0b9cd7ff84 Move permissions handling after rename.
At least on Linux we lost the executable permission while doing
a rename before setPermissions(...).
Not so urgent in these cases, though more correct.

Change-Id: Ibb1ca9f04fe94732ff22afd004fbf921255df690
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-15 20:15:34 +02:00
kh1
5a3063968c Make the marker and the find function class members.
Prepare for QTIFW-292 and QTIFW-345.

Change-Id: I065366742d28e72bc5ae55e70eabf6532b809fea
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
2014-07-15 11:37:07 +02:00
kh1
62ef1132ae Move class BinaryContent into its own file.
Prepare for QTIFW-292 and QTIFW-345.

Change-Id: I938b5aa728e8f81eb9521df5753ad80ac630d96e
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
2014-07-15 11:36:15 +02:00
kh1
2a364e7135 Introduce developer tool.
Supports dump binary content, run operation and update existing
binary with new installer base. The support for starting with
binary data of a different installer got dropped completely, use
update and run instead.

Change-Id: I41073d0bfc9a4c4da18fbb9f49fd3e65bb54b501
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-11 15:37:54 +02:00