summaryrefslogtreecommitdiffstats
path: root/tools
Commit message (Collapse)AuthorAgeFilesLines
* Fixed (and greatly simplified) creating .dmg filesFrerich Raabe2016-04-083-79/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add new '--sign' switch to binarycreator for signing OS X app bundlesFrerich Raabe2016-02-181-2/+46
| | | | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/2.0'Iikka Eklund2016-01-2024-92/+101
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2924-92/+101
| | | | | | | | | | | | | | | | | | 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>
* | Allow defining non-checkable itemsKatja Marttila2016-01-181-0/+9
| | | | | | | | | | | | | | | | | | | | | | 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>
* | Let mkdmg.sh script on OS X actually create random temporary file namesFrerich Raabe2016-01-131-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Fix timeout errors while building app bundles files on OS XFrerich Raabe2016-01-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...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>
* | Compile with namespaces.Karsten Heimrich2015-09-071-1/+2
| | | | | | | | | | | | Change-Id: I734b0e27d53fd8b6199a3fb5891497df0e1815bb Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com> Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
* | Rename files. Remove {kd} prefix. Remove {kdupdater} prefix.Karsten Heimrich2015-07-143-3/+3
| | | | | | | | | | Change-Id: I88c93cab718f4659296d5f7f562beefd747a366f Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
* | Make use of the new varadic template feature + cosmetic changes.Karsten Heimrich2015-07-101-1/+1
| | | | | | | | | | | | | | | | 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>
* | Sanitize QDebug outputKai Koehne2015-07-092-17/+13
| | | | | | | | | | | | | | | | | | | | | | | | 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-249-85/+93
| | | | | | | | | | | | | | | | | | | | | | | | * 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-153-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Remove %0 from tr() callsKai Koehne2015-06-151-1/+1
| | | | | | | | | | | | | | | | 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>
* | Use qmake .depends instead of CONFIG += ordered.Karsten Heimrich2015-06-101-1/+0
| | | | | | | | | | | | | | | | 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>
* | Update archivegen.Karsten Heimrich2015-06-102-14/+149
| | | | | | | | | | | | | | | | | | | | 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>
* | Split the huge header file in more dedicated ones.Karsten Heimrich2015-06-104-3/+5
| | | | | | | | | | Change-Id: I35a1500d5a9bb8986765488660cf0487c32d9720 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Update source tree with version 9.38.beta of LZMA SDK.Karsten Heimrich2015-06-103-18/+8
| | | | | | | | | | | | | | | | | | | | - Remove unused files. - Split in .pri files. - Add HEADERS section. - Adjust lib7z_facade. Change-Id: I31e7bafbfe1a9346364bd58c391601955f98ad3a Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Remove scRemoteVersion, it's the same as scVersionJarek Kobus2015-05-071-1/+1
| | | | | | | | | | Change-Id: I552b2f62865ff88fb6827819240b283485d0e4c7 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Remove pseudo static core instance, fixes autotests.Karsten Heimrich2015-05-061-3/+1
| | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge "Merge remote-tracking branch 'origin/2.0'"Karsten Heimrich2015-05-041-6/+0
|\ \
| * | Merge remote-tracking branch 'origin/2.0'Kai Koehne2015-04-301-6/+0
| |\| | | | | | | | | | Change-Id: I2c66fe453db03b833a57a4a400cf859096f81165
| | * Fix dubious warning about RequiresAdminRights tag.kh12015-04-271-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Fix some warnings in devtoolNiels Weber2015-04-291-5/+5
|/ / | | | | | | | | Change-Id: I9d12cd49ad4d82ec8f48798f087929fa3ee07fa8 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Use positional arguments instead of options.kh2015-04-241-31/+114
| | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/2.0'Kai Koehne2015-04-211-3/+4
|\| | | | | | | | | | | | | Conflicts: Changelog Change-Id: Idd7d569f97fba75b05bfc006c7a5b0b9cf8ccf73
| * Compile with Qt 5.5kh2015-04-131-3/+4
| | | | | | | | | | Change-Id: Iaab5bd3821bc4f1d4a826c9fee0c2a8c75d06bba Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Merge remote-tracking branch 'origin/2.0'Kai Koehne2015-04-081-1/+1
|\| | | | | | | | | | | | | | | | | | | 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
| * Change binary name to Qt Installer FrameworkNiels Weber2015-03-241-1/+1
| | | | | | | | | | Change-Id: I9b721ae055ec9849492171dacf07c56ca7cc4b08 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Don't mix iterator and const_iteratorKai Koehne2015-04-082-3/+3
|/ | | | | | | | | 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>
* Correct usage info for archivegenNiels Weber2015-03-101-1/+1
| | | | | Change-Id: I51c5ba84320f4a31e1dce236157e53b57624f89d Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
* Strip binaries before packagingNiels Weber2015-03-061-0/+6
| | | | | Change-Id: I4156f6aaff57eab95bc492da993709bee9db8e59 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* Installer: Do not package binary artifacts in /binKai Koehne2015-03-051-1/+1
| | | | | Change-Id: I9b54208b66f894a7eb248fc93a8628513b9102aa Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
* Update CopyrightKai Koehne2015-02-1823-161/+161
| | | | | Change-Id: I8dde6629cfd461104364d5cdc255cb54b58283fa Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
* Dump binary content for both installer and maintenance tool.kh2015-02-051-4/+2
| | | | | Change-Id: I749912ebba5e1765f0d60e089a0366f59e09279b Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* no longer use Version as the repository format versionChristoph Vogtländer2015-01-201-1/+1
| | | | | | | | | | | | 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>
* Fix qmake warning about "Redunant entry in QTPLUGIN"Kai Koehne2015-01-131-1/+0
| | | | | | | | | | 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>
* Rename the exceptions class to be more generic.kh2014-11-241-1/+1
| | | | | Change-Id: Ia96477920055ee6a6f15be1334516746ddf3573b Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* Small cosmetical changes, no functional.karsten.heimrich@theqtcompany.com2014-11-211-1/+1
| | | | | Change-Id: Ic984503444187dfcfcfa83f82768bebb329381d0 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
* Fix generation of Updates.xmlChristoph Vogtländer2014-11-181-8/+14
| | | | | | | | | | | 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>
* Introduce scScript constant and use whenever neededjkobus2014-11-181-1/+1
| | | | | | Change-Id: Icdbd110f4778bbf8fa75cf54a564fcd0bc8f7a49 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* Fix compilation on OSX and WindowsNiels Weber2014-11-141-6/+1
| | | | | Change-Id: I2981cdebda3fba7d69269ae6b1a1ae7999162fa6 Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
* Remove -c from repogenNiels Weber2014-11-141-9/+0
| | | | | | | | 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>
* Fix binary data extractionChristoph Vogtländer2014-11-131-8/+8
| | | | | | | | | | | | 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>
* Allow to check for IFW version in codeKai Koehne2014-11-111-1/+1
| | | | | | | | | | Rename the IFW_VERSION to IFW_VERSION_STR, and add a new IFW_VERSION define that encodes the version in hex. This follows the pattern of QT_VERSION and QT_VERSION_STR, and allows easy checking of the IFW version e.g. in macros. Change-Id: I232c8aa53c9a04522810208cdd1ac595d8676879 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* Fix the steps we perform to build an installer.kh12014-11-051-11/+21
| | | | | | | | | | | We need to keep a specific order, otherwise the data might endup in the resource file as well and gets appended twice to the installer binary. Task-number: QTIFW-564 Change-Id: Idcadb5d65043d1855846556b63191898a4a54027 Reviewed-by: Christoph Vogtländer <c.vogtlaender@sigma-surface-science.com> Reviewed-by: Niels Weber <niels.weber@digia.com>
* Remove now superfluous tool, functionality ported to devtool.kh12014-11-059-918/+1
| | | | | Change-Id: I9c2a61ce5c141ac51df38be98c43477c7cc6ac20 Reviewed-by: Niels Weber <niels.weber@digia.com>
* add info message line endingChristoph Vogtländer2014-11-041-1/+1
| | | | | | | added missing std::endl in "repogen --update-new-components" info message in case packages list is empty Change-Id: I9a49e46ee031c14a9b02cd41e0a4be2d0234c1af Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
* Fix unregistering resources. Fix --operation argument parsing.kh12014-11-041-7/+7
| | | | | | | | | 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>
* Remove superfluous include.kh12014-10-311-1/+0
| | | | | Change-Id: I24b7cfe2bc67eb4b0d4a63e4a75e4171e7f0d4ea Reviewed-by: Niels Weber <niels.weber@digia.com>