4
0
mirror of https://github.com/QuasarApp/installer-framework.git synced 2025-05-09 03:29:33 +00:00

250 Commits

Author SHA1 Message Date
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
Frerich Raabe
b5480f253a Fixed (and greatly simplified) creating .dmg files
The mkdmg.sh script which is used to create .dmg files made some effort
to calculate the size of the file system contained in the .dmg file.
However, it neglected to consider that a .dmg file is not always
(never?) totally empty. A sample session on OS X 10.10.5 shows:

  $ hdiutil create /tmp/foo.dmg -megabytes 33 -ov -volname foo -type UDIF -fs HFS+
  ... <a lot more dots here>
  created: /tmp/foo.dmg
  $ hdid /tmp/foo.dmg
  /dev/disk3              GUID_partition_scheme
  /dev/disk3s1            Apple_HFS                       /Volumes/foo
  $ df /Volumes/foo
  Filesystem   512-blocks Used Available Capacity iused ifree %iused Mounted on
  /dev/disk3s1      67504 1584     65920     3%     196  8240    2% /Volumes/foo

About 792kB are apparently used for bookkeeping (in ".Trashes" and
".fseventsd") directories.

Since mkdmg.sh failed to account for these 792kB, the .dmg file it
creates was occasionally too small, causing an error message to be
printed by the 'cp' command in the mkdmg.sh script (but that error
message was never printed anywhere, at least I never noticed when
executing binarycreator - always only when running mkdmg.sh directly).

Instead of fixing the allocated size, let's just make use of the
'-srcfolder' argument to 'hdiutil create' which does all of this
automatically. It requires no copying around or calculating sizes, which
not only makes the script much simpler, it also avoids the
above-mentioned issue but also makes the script run faster: about 30%
faster in my experiments.

With this, the mkdmg.sh script is so small (just one hdiutil and one rm
call) that we may just as well drop it completely and perform those
operations straight from the C++ code.

A final nice side-effect is that '-srcfolder' can be specified multiple
times: this makes it very easy to copy multiple directory trees in the
resulting .dmg file. This in turn is useful to create nicely styled .dmg
files with custom background image and icon arrangements.

Change-Id: I54d63a00e56d1ee9fa61c2690ca42d512fda37b1
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2016-04-08 10:18:57 +00:00
Katja Marttila
39c2dadb47 Update minimum Qt version for 2.0.3 release
Minimum required version is now Qt5.5

Change-Id: If000a507f0067650605987d38374bf6694eb16aa
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2016-03-22 11:24:35 +00:00
Frerich Raabe
4de3b0612b Add new '--sign' switch to binarycreator for signing OS X app bundles
This patch introduces -s/--sign switches for binarycreator which are
only available on OS X. Using these switches, a 'Code Signing Identity'
can be configured which should be used for signing the generated .app
bundle.

Signing the application bundles avoids that Apple's Gatekeeper complains
about the application coming from an unidentified publisher.

Change-Id: I507c6cac0b99faf19faf48c21e47a2df054b0b11
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2016-02-18 08:38:28 +00:00
Karsten Heimrich
22a0f6b682 Fix compile with namespace'ed Qt.
Change-Id: I9c0d399943d2f6eb9a0ab136abf24a5c8b108abb
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-01-21 13:55:35 +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
Katja Marttila
ba1209000a Allow defining non-checkable items
This change will introduce new element 'Checkable' for package.
Setting checkable to false will hide checkbox. Useful if use case
is to install one sub item instead of all sub items.

Change-Id: I8c731e77353b6da539dddcecdc8495b28ef5f7ea
Task-number: QTIFW-773
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
2016-01-18 12:01:50 +00:00
Frerich Raabe
e53cb9d364 Let mkdmg.sh script on OS X actually create random temporary file names
When asking binarycreator to create an app bundle on OS X, temporary
files are created in /tmp via, the name of which is determined via

  DMG=`mktemp "/tmp/$VOL.XXXXXX.dmg"`

However, on OS X, this doesn't actually create a random file name. OS X
uses the BSD implementation of 'mktemp'. The man page explains:

  The trailing `Xs' are replaced with the current process number and/or
  a unique letter combination.

Note the *trailing*. Hence, on OS X, the 'XXXXXX' part should be at the
end of the template.

This manifested as a problem in case creation of the .dmg file is
aborted (e.g. via Ctrl+C) in which case the temporary file is not
removed. In that case, a subsequent attempt to create a .dmg will fail
since mktemp fails to create the temporary file - since it's already
there! The only remedy is to remove the temporary file by hand.

Alas, 'hdiutil' and 'hdid' apparently depend on the file extension in
order to detect the file format. So it's not just a matter of changing
the template for mktemp. Instead, let's pass just '$VOL.XXXXXX' to
mktemp but then tack on the file extension when using the file name.

Change-Id: I7a1a548df24054e01630c441f259031045703ff3
Task-number: QTIFW-780
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2016-01-13 07:36:06 +00:00
Frerich Raabe
ba9ddaed74 Fix timeout errors while building app bundles files on OS X
...by simply not using any timeout anymore. I believe this was the
original intention of the code (it's arguably hideous that the default
value of the waitForFinished() method is a 30000ms timeout).

What happened for me is that the mkdmg.sh script took longer than 30
seconds. As a consequence

  1. the 'waitForFinished()' call returned
  2. The mkdgm.sh script was deleted
  3. The QProcess object went out of scope, terminating the shell process
  4. The binarycreator process terminated successfully

The resulting .dmg file seemed plausible (it was fairly large already)
but it wasn't usable yet since the hdiutil process started by mkdmg.sh
was still running, i.e. the .dmg file was still growing. Hence, the
caller of binarycreator (e.g. some CI system) continued processing a
malformed .dmg file (and the temporary file created by mkdmg.sh never
got deleted).

Last but not least, proper error handling would have been nice of course
but I considered that to be out of scope for this particular commit.

Change-Id: I767ff89d20802306189660804cea617c148a943e
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com>
2016-01-12 12:57:06 +00: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
d3de2b14cb Compile with namespaces.
Change-Id: I734b0e27d53fd8b6199a3fb5891497df0e1815bb
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2015-09-07 10:41:58 +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
b2a65ce68b Sanitize QDebug output
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>
2015-07-09 13:38:42 +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
Kai Koehne
90135a5b7a Convert to Qt 5 connect syntax
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>
2015-06-15 13:48:13 +00:00
Kai Koehne
80b2694aed Remove %0 from tr() calls
The placeholder of the first argument to QString::tr() is %1, not %0.

Change-Id: I69fcddb42ddbfda27dfb4430f03ebef156280c64
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2015-06-15 13:22:59 +00:00
Karsten Heimrich
cb7613e816 Use qmake .depends instead of CONFIG += ordered.
Fixes my sporadic build issues with IncrediBuild.

Change-Id: I825c1473dac63159ae592814596dce3484467321
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2015-06-10 12:53:33 +00:00
Karsten Heimrich
97b5fe3ebc Update archivegen.
Stop on file errors. Better verbose/ help output. Add support
for compression level. Do not hide symbols in statically build
lib7z to use e.g. CPercentPrinter symbol in dynamic IFW builds.

Task-number: QTIFW-695
Change-Id: I18e2ea58b5f1880bfb7f3ed84e34b8810f864188
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-06-10 12:53:28 +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
4677d36298 Update source tree with version 9.38.beta of LZMA SDK.
- Remove unused files.
- Split in .pri files.
- Add HEADERS section.
- Adjust lib7z_facade.

Change-Id: I31e7bafbfe1a9346364bd58c391601955f98ad3a
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-06-10 08:15:38 +00:00
Jarek Kobus
48c08cc958 Remove scRemoteVersion, it's the same as scVersion
Change-Id: I552b2f62865ff88fb6827819240b283485d0e4c7
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2015-05-07 08:33:42 +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
Karsten Heimrich
05d1c5d7b2 Merge "Merge remote-tracking branch 'origin/2.0'" 2015-05-04 09:41:49 +00:00
Kai Koehne
be481e3af7 Merge remote-tracking branch 'origin/2.0'
Change-Id: I2c66fe453db03b833a57a4a400cf859096f81165
2015-04-30 15:49:54 +02: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
kh1
32221180df Fix dubious warning about RequiresAdminRights tag.
The tag was added once component script is parsed and we did
know that addElevatedOperation is called from script. However,
the initial commit 7ccd0acdcf35b957e9e7d04cd81902bac362ad04 did
not append the node to the parent package update node. Now we
decided to have the option statically and declarative available,
so we can remove the warning.

Task-number: QTIFW-670
Change-Id: I8cd8f702391d7bf80fc4c42074e1fd6d2d4abc57
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-04-27 10:55:37 +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
ffed7d2b6d Merge remote-tracking branch 'origin/2.0'
Conflicts:
	Changelog

Change-Id: Idd7d569f97fba75b05bfc006c7a5b0b9cf8ccf73
2015-04-21 14:18:07 +02:00
kh
c6c815e3d0 Compile with Qt 5.5
Change-Id: Iaab5bd3821bc4f1d4a826c9fee0c2a8c75d06bba
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-04-13 13:13:26 +00:00
Kai Koehne
2630ce6661 Merge remote-tracking branch 'origin/2.0'
Conflicts:
	dist/config/config.xml
	dist/packages/org.qtproject.ifw.binaries/meta/package.xml
	dist/packages/org.qtproject.ifw/meta/package.xml
	installerfw.pri

Change-Id: I60673fac543f1153dad3ef01e589c1f9c6d64599
2015-04-08 14:20:04 +02:00
Kai Koehne
c3f5744d2e Don't mix iterator and const_iterator
Add QT_STRICT_ITERATORS to disallow implicit conversions
between iterator and const_iterator. This avoids potential
detaches of the Qt containers.

Change-Id: I79d381f531ddda9ac402c6f5c63cdc7c6808a0bd
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2015-04-08 08:36:57 +00:00
Niels Weber
d03e1def99 Change binary name to Qt Installer Framework
Change-Id: I9b721ae055ec9849492171dacf07c56ca7cc4b08
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-03-24 11:25:18 +00:00
Niels Weber
6c796ce13c Correct usage info for archivegen
Change-Id: I51c5ba84320f4a31e1dce236157e53b57624f89d
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
2015-03-10 12:25:58 +00:00
Niels Weber
ebb0925b81 Strip binaries before packaging
Change-Id: I4156f6aaff57eab95bc492da993709bee9db8e59
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2015-03-06 11:51:53 +00:00
Kai Koehne
5ba3fe6bae Installer: Do not package binary artifacts in /bin
Change-Id: I9b54208b66f894a7eb248fc93a8628513b9102aa
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2015-03-05 14:58:04 +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
Christoph Vogtländer
552d964c6f no longer use Version as the repository format version
Use the Version value defined in config.xml as the product version
exclusively instead of sometimes using it as the repository format
version in components.xml (which must be 1.0.0) and sometimes as the
product version.

Change-Id: I63864947bf131ac6e246a2aaf6febdda0555c13d
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-01-20 17:01:39 +01:00
Kai Koehne
aa9d789c26 Fix qmake warning about "Redunant entry in QTPLUGIN"
In qtbase commit 4255ba40ab073af (Qt 5.3.0 and newer) the plugins are
added automatically, based on the Qt module one links against.

Therefore just remove the QTPLUGIN line (similar to commit 807de07).

Change-Id: I776627639fa30a289daafa38dd42835a6b7f53e1
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2015-01-13 09:07:10 +01: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
karsten.heimrich@theqtcompany.com
2e30849eb9 Small cosmetical changes, no functional.
Change-Id: Ic984503444187dfcfcfa83f82768bebb329381d0
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2014-11-21 13:18:50 +01:00
Christoph Vogtländer
de66578f22 Fix generation of Updates.xml
Generated Updates.xml was missing DownloadableArchives property and
component size was not calculated properly in case package directory
contains files that are packaged into 7zip archives by the installer.

Change-Id: I73e3d16b73cfbe25cb8b2e55b9c93f48b1ecdb1c
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2014-11-18 16:34:49 +01:00
jkobus
41e58eb4a4 Introduce scScript constant and use whenever needed
Change-Id: Icdbd110f4778bbf8fa75cf54a564fcd0bc8f7a49
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2014-11-18 15:38:13 +01:00
Niels Weber
ddb068f7c3 Fix compilation on OSX and Windows
Change-Id: I2981cdebda3fba7d69269ae6b1a1ae7999162fa6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-11-14 14:24:08 +01:00
Niels Weber
a503c3aae5 Remove -c from repogen
This is now an error, we had the warning long enough.

Change-Id: I8272dd3c886dae54045f97bc33fa96c17bc7eb33
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2014-11-14 12:42:02 +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