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

moved some directories and adjusted the README

- also removed some unused projects under examples(updater, updaterplugin)
 - adjusted pro files to the new structure
This commit is contained in:
Tim Jenssen 2011-03-08 20:46:27 +01:00
parent 76122d63ec
commit 64391c88c7
96 changed files with 53 additions and 1644 deletions
READMERepositoryExchangeTutorial.txt
admin
examples
installerbuilder
tests
tools

94
README

@ -1,64 +1,37 @@
These are instructions for the Nokia SDK installer.
== Qt configuration ==
Recommended configure options:
Windows static/release:
configure -static -release -no-webkit -platform win32-msvc2008 -no-phonon -fast -no-dbus -no-opengl -exceptions -nomake demos -nomake examples -confirm-license -commercial
== Tested Platforms ==
Platforms tested so far:
On all platforms: Qt 4.5.2
Linux 32bit, gcc 4.3.3: CI, tested, works
Linux 64bit, gcc 4.3.3: CI, tested, works
OS X 10.5 32 bit, gcc 4.0.1: CI, tested, works
OS X 10.6 32 bit: not tested
OS X 10.6 64 bit: not tested
Windows 32 bit XP, MSVC 2005/2008: CI, tested, works
Windows Vista 32 bit: not tested
Windows Vista 64 bit: not tested
These are instructions to create the installer framework
== Build ==
To build an installer, it is advised to use a statically linked Qt.
Shared build of the actual installer lib is not supported any longer.
Only examples/updaterplugin, the Qt Creator plugin, is build shared.
== Qt configuration under Windows ==
- adjust the qmake.conf to have a real stand alone working installer(at the moment we are using msvc2005, but it should work with msvc2008 aswell)
Note: To build the Qt Creator plugin, an environment variable QTCREATOR_SOURCE_PATH
containing the path to the Qt Creator source directory needs to be set:
--- a/mkspecs/win32-msvc20XX/qmake.conf
+++ b/mkspecs/win32-msvc20XX/qmake.conf
@@ -6,7 +6,7 @@
MAKEFILE_GENERATOR = MSVC.NET
TEMPLATE = app
-CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe
+CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target
QT += core gui
DEFINES += UNICODE WIN32 QT_LARGEFILE_SUPPORT
QMAKE_COMPILER_DEFINES += _MSC_VER=1400 WIN32
@@ -19,9 +19,9 @@ QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-
QMAKE_CFLAGS_WARN_ON = -W3
QMAKE_CFLAGS_WARN_OFF = -W0
-QMAKE_CFLAGS_RELEASE = -O2 -MD
-QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
-QMAKE_CFLAGS_DEBUG = -Zi -MDd
+QMAKE_CFLAGS_RELEASE = -O2 -MT
+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
+QMAKE_CFLAGS_DEBUG = -Zi -MTd
QMAKE_CFLAGS_YACC =
QMAKE_CFLAGS_LTCG = -GL
export QTCREATOR_SOURCE_PATH=~/Downloads/qt-creator-1.3.0/
or
set QTCREATOR_SOURCE_PATH=C:\Downloads\qt-creator-1.3.0\
To build an installer, it is advised to use a statically linked Qt. The Creator plugin
needs to be linked against a shared Qt, though.
=== Static/Debug/Unix ===
cd installer/kdtools/kdtools
./configure.sh -static -debug
make
cd /path/to/installer
./configure.sh -static -debug
make
== Static/Debug/Windows ==
cd installer\kdtools\kdtools
configure.bat -static -debug
nmake
cd P:\ath\to\installer
configure.bat -static -debug
nmake
Recommended configure options:
configure.exe -debug -static -no-webkit -no-qt3support -no-dbus -no-multimedia -no-phonon -fast -no-opengl -exceptions -nomake demos -nomake examples -qt-sql-sqlite -plugin-sql-sqlite
== Create an Installer ==
@ -66,20 +39,17 @@ To create an installer, use binarycreator:
in windows;
cd installerbuilder
bin\binarycreator.exe -t bin\installerbase.exe -p ..\examples\packages -c ..\examples\config createdinstaller.exe com.nokia.sdk
create-test-installer.bat
in unix;
cd installerbuilder
bin/binarycreator -t bin/installerbase -p ../examples/packages -c ../examples/config createdinstaller com.nokia.sdk
This creates an installer "createdinstaller.exe" from the installerbase binary and the components required by the com.nokia.sdk package.
create-test-installer.sh
This creates an installer "test-installer.exe"/"test-installer" from the installerbase binary and the components required by the com.nokia.testapp package(examples\testapp\packages\com.nokia.testapp).
== Create an Archive ==
To create an 7zip archive named qt-copy.7z that contains the directory qt-copy use:
cd /path/where/qt-copy/is/located
7z a -t7z -mx=9 -ms=off -l qt-copy.7z qt-copy

@ -1,72 +0,0 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import copy, platform, os, re
from AutobuildCore.Configuration import Configuration
from AutobuildCore.Project import Project
from AutobuildCore.helpers.build_script_helpers import DebugN
from AutobuildCore.helpers.build_script_helpers import AddToPathCollection
from AutobuildCore.helpers.platformdefs import PlatformDefs
from AutobuildCore.helpers.exceptdefs import AutobuildException
from AutobuildCore import autobuildRoot
from AutobuildCore import Callback
hiddenFileIdent = '.'
buildSequenceSwitches = ''
#if 'Windows' in platform.platform():
# buildSequenceSwitches += ',disable-conf-bin-package'
# hiddenFileIdent = '_'
class KDToolsBuilder( Callback.ConfigurationCallback ):
def __init__( self, platform ):
Callback.ConfigurationCallback.__init__( self, 'KD Tools Builder' )
self.__platform = platform
def preBuildCallback( self, job ):
config = job.configuration()
project = config.project()
kdtoolsFolder = job.buildDir() + os.sep + 'kdtools' + os.sep + 'kdtools'
if 'Windows' in self.__platform:
confcmd = 'configure.bat ' + config.getOptions()
else:
confcmd = './configure.sh ' + config.getOptions()
step = job.executomat().step( 'conf-configure' )
step.addPreCommand( confcmd, kdtoolsFolder )
defs = PlatformDefs.GivePlatformDefs()
makecmd = defs.makeProgram()
step.addPreCommand( makecmd, kdtoolsFolder )
maketestcmd = defs.makeProgram() + ' test'
step.addPreCommand( maketestcmd, kdtoolsFolder )
AddToPathCollection( defs.libPathVariable() , kdtoolsFolder + os.sep + 'lib' )
scmPath = 'svn+ssh://svn.kdab.net/home/SVN-klaralv/projects/Nokia/SDK'
product = Project( 'Installer' )
product.setScmUrl( scmPath + '/trunk' )
#product.setPackageLocation( 'svn.kdab.net:/home/build/autobuild/packages/kdchart' )
product.setBuildSequenceSwitches( 's', buildSequenceSwitches )
product.setBuildSequenceSwitches( 'f', buildSequenceSwitches )
product.getSettings().addRecipientOnSuccess( 'nokia-sdk@kdab.net' )
product.getSettings().addRecipientOnFailure( 'nokia-sdk@kdab.net' )
debug = Configuration( product, 'Debug' )
debug.addCallback( KDToolsBuilder( platform.platform() ) )
debug.setBuilder('autotools')
debug.setPackageDependencies( [ 'Qt-4.[5-9].?-Static-Debug' ] )
debug.setBuildMode( 'inSource' )
debug.setOptions( '-static -debug' )
debug.setBuildTypes('MCDFE')
release = copy.copy( debug ) # use debug as the base configuration
release.setConfigName( 'Release' )
release.setPackageDependencies( [ 'Qt-4.[5-9].?-Static-Release' ] )
release.setOptions( '-static -release' )
release.setBuildTypes( 'MCDSFE' ) # snapshots are release builds
jobs = [ debug, release ]
#jobs = [ debug, eval ]
product.build( jobs )

@ -1,22 +0,0 @@
<?xml version="1.0"?>
<Installer>
<Name>Test App</Name>
<Version>1.0.0</Version>
<Title>Test App_Hurra</Title>
<MaintenanceTitle>Test App_MAN</MaintenanceTitle>
<Publisher>Nokia</Publisher>
<ProductUrl>http://qt.nokia.com</ProductUrl>
<Icon>qticon</Icon>
<Watermark>watermark.png</Watermark>
<UninstallerName>TestAppUninstaller</UninstallerName>
<RemoteRepositories>
<Repository>
<Url>http://www.kdab.com/~bjoern/sha1repo</Url>
<Required>false</Required>
</Repository>
</RemoteRepositories>
<!-- @homeDir@ and @rootDir@ are some of the supported vars -->
<TargetDir>@homeDir@/testinstall</TargetDir>
<AdminTargetDir>/opt</AdminTargetDir>
</Installer>

@ -1,7 +1,3 @@
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += testapp
SUBDIRS += updater
IDE_BUILD_TREE = "$$(QTCREATOR_SOURCE_PATH)"
!isEmpty( IDE_BUILD_TREE ):SUBDIRS += updaterplugin

@ -1,13 +0,0 @@
#!/bin/bash
echo "<Components>"
for i in `find . -maxdepth 1 -type d -not -name \\\.*`; do
echo "Processing $i..." >&2
if [ -f "$i/meta/package.xml" ]; then
echo "<Component>$i</Component>"
else
echo "Ignoring $i: Could not find meta/package.xml" >&2
fi
done
echo "</Components>"

@ -1,76 +0,0 @@
#!/bin/sh
if [ $# -lt 1 ]; then
echo "Usage: $0 scriptfile [uifiles]*" >/dev/stderr
exit 1
fi
FILE="$TMPDIR/$(basename $0).$RANDOM.$$.tmp"
FILE2="$TMPDIR/$(basename $0).$RANDOM.$$.tmp"
FILE3="$TMPDIR/$(basename $0).$RANDOM.$$.tmp"
CONTEXT=`basename $1 | sed -e 's,\([^.]*\)\..*,\1,'`
# first work on the script file
sed -ne 's/qsTr *( *"\(\([^"\\]*\(\\.\)*\)*\)"/\
TRANSLATE\1TRANSLATE\
/pg' $1 | sed -ne 's,^TRANSLATE\(.*\)TRANSLATE$,\1,p' |
sed -e 's/\\"/";/g' |
sed -e 's/</\&lt;/g' > $FILE
# remove duplicates
sort -u $FILE > $FILE3
mv $FILE3 $FILE
echo "<?xml version=\"1.0\" encoding=\"utf8\"?>" > $FILE2
echo "<!DOCTYPE TS><TS version=\"1.1\">" >> $FILE2
echo "<context>" >> $FILE2
echo " <name>$CONTEXT</name>" >> $FILE2
sed -e 's/\(.*\)/ <message>\
<source>\1<\/source>\
<translation type="unfinished"><\/translation>\
<\/message>/' < $FILE >> $FILE2
echo "</context>" >> $FILE2
while [ $# -gt 1 ]; do
shift
CONTEXT=`sed -ne 's,.*<class>\([^<]*\)</class>.*,\1,p' $1`
echo "<context>" >> $FILE2
echo " <name>$CONTEXT</name>" >> $FILE2
# then work on the ui files
sed -ne 's/<string>\([^<\\]*\)<\/string>/\
TRANSLATE\1TRANSLATE\
/pg' $1 | sed -ne 's,^TRANSLATE\(.*\)TRANSLATE$,\1,p' |
sed -e 's/\\"/";/g' |
sed -e 's/</\&lt;/g' > $FILE
# remove duplicates
sort -u $FILE > $FILE3
mv $FILE3 $FILE
sed -e 's/\(.*\)/ <message>\
<source>\1<\/source>\
<translation type="unfinished"><\/translation>\
<\/message>/' < $FILE >> $FILE2
echo "</context>" >> $FILE2
done
echo "</TS>" >> $FILE2
cat $FILE2
rm $FILE
rm $FILE2
exit 0

@ -1,9 +0,0 @@
<Components>
<Component>./qtcore</Component>
<Component>./qtgui</Component>
<Component>./qt</Component>
<Component>./qtcreator</Component>
<Component>./dbus4win</Component>
<Component>./nokiasdk</Component>
<Component>./python</Component>
</Components>

@ -1,11 +1,22 @@
<?xml version="1.0"?>
<Installer>
<Name>Test App</Name>
<Version>1</Version>
<Title>Test App</Title>
<Version>1.0.0</Version>
<Title>Test App_Hurra</Title>
<MaintenanceTitle>Test App_MAN</MaintenanceTitle>
<Publisher>Nokia</Publisher>
<ProductUrl>http://qt.nokia.com</ProductUrl>
<Icon>qticon</Icon>
<Watermark>watermark.png</Watermark>
<UninstallerName>TestAppUninstaller</UninstallerName>
<!-- <RemoteRepositories>
<Repository>
<Url>http://www.xxxx.com/repository</Url>
<Required>false</Required>
</Repository>
</RemoteRepositories>
-->
<PublicKey>
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDzdb8ti9Ss5kmEY5rGf2HFEsj0

Before

(image error) Size: 1.6 KiB

After

(image error) Size: 1.6 KiB

Before

(image error) Size: 347 KiB

After

(image error) Size: 347 KiB

Before

(image error) Size: 2.1 KiB

After

(image error) Size: 2.1 KiB

Before

(image error) Size: 14 KiB

After

(image error) Size: 14 KiB

@ -1,409 +0,0 @@
<Packages>
<ApplicationName>Qt SDK</ApplicationName>
<ApplicationVersion>1.0.0</ApplicationVersion>
<Package>
<Name>com.nokia.ndk</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.2.0</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.api</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.api.qtmobility</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.api.qtmobility.maemo</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.symbian.readme</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.misc.vcredist_x86</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.api.qtmobility.simulator2008</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.simulator.qtmingw</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.api.qtmobility.simulatormingw</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.api.qtmobility.symbian</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.api.qtmobility.symbian.462</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.documentation</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.2.0</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.documentation.qmake</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.documentation.qt</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.documentation.qtcreator</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.documentation.qtdesigner</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.documentation.qtlinguist</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.documentation.qtmobility</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.documentation.simulator</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.misc</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.misc.examples</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.3</Version>
<LastUpdateDate>2010-03-30</LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.misc.examples.46</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.4</Version>
<LastUpdateDate>2010-03-30</LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.misc.mingw</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>4.4.0</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.misc.qtsources</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.misc.qtsources.462</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.qtcreator.application</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>1.3.80</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.linguist</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>4.7.0</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.maemo</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.maemo.462</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.maemo.readme</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.maemo.usbdriver</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.qtcreator</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.4</Version>
<LastUpdateDate>2010-03-30</LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.qtcreator.gdb</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.qtcreator.jom</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.8.0</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.simulator</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.simulator.application</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.3</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.simulator.qt2008</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.symbian</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.symbian.462</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.symbian.462.devicefiles</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.1</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.symbian.462.gcce</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>4.3.3</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.symbian.462.sdk</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.tools.maemo.462.madde</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.5.0</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
<Package>
<Name>com.nokia.ndk.api.qtmobility.maemo.462</Name>
<Pixmap></Pixmap>
<Title></Title>
<Description></Description>
<Version>0.0.2</Version>
<LastUpdateDate></LastUpdateDate>
<InstallDate>2010-03-29</InstallDate>
</Package>
</Packages>

@ -1,29 +0,0 @@
<?xml version="1.0"?>
<Installer>
<Name>Qt SDK</Name>
<Version>0.9.0</Version>
<Title>Qt SDK</Title>
<MaintenanceTitle>Maintain Qt SDK</MaintenanceTitle>
<Publisher>Nokia</Publisher>
<Logo>logo.png</Logo>
<LogoSmall>logo-small.png</LogoSmall>
<Icon>logo-small</Icon>
<License>license.txt</License>
<Watermark>watermark.png</Watermark>
<RunProgram></RunProgram>
<StartMenuDir>Qt SDK - Release Candidate</StartMenuDir>
<UninstallerName>SDKMaintenanceTool</UninstallerName>
<!-- @homeDir@ and @rootDir@ are some of the supported vars -->
<TargetDir>@homeDir@/NokiaQtSDK</TargetDir>
<RemoteRepositories>
<Repository>
<!--
<Url>http://schnappie.nokia.troll.no/alpha/onlinendk</Url>
-->
<Url>http://hegel.europe.nokia.com/projects/ndk/installers/linux/x64/online_nokiaqtsdk_repo</Url>
<Required>true</Required>
</Repository>
</RemoteRepositories>
</Installer>

@ -1,60 +0,0 @@
/**************************************************************************
**
** This file is part of Qt SDK**
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).*
**
** Contact: Nokia Corporation qt-info@nokia.com**
**
** No Commercial Usage
**
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the Technology Preview License Agreement accompanying
** this package.
**
** GNU Lesser General Public License Usage
**
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this file.
** Please review the following information to ensure the GNU Lesser General
** Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception version
** 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you are unsure which license is appropriate for your use, please contact
** (qt-info@nokia.com).
**
**************************************************************************/
#include <QApplication>
#include <QStringList>
#include "updater.h"
#include "common/utils.h"
int main( int argc, char* argv[] )
{
bool checkonly = false;
{
QCoreApplication app( argc, argv );
checkonly = app.arguments().contains( QLatin1String( "--check-only" ) );
QInstaller::setVerbose( app.arguments().contains( QLatin1String( "--verbose" ) ) );
}
if( checkonly )
{
QCoreApplication app( argc, argv );
Updater u;
return u.checkForUpdates( true ) ? 0 : 1;
}
else
{
QApplication app( argc, argv );
Updater u;
return u.checkForUpdates( false ) ? 0 : 1;
}
}

@ -1,174 +0,0 @@
/**************************************************************************
**
** This file is part of Qt SDK**
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).*
**
** Contact: Nokia Corporation qt-info@nokia.com**
**
** No Commercial Usage
**
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the Technology Preview License Agreement accompanying
** this package.
**
** GNU Lesser General Public License Usage
**
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this file.
** Please review the following information to ensure the GNU Lesser General
** Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception version
** 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you are unsure which license is appropriate for your use, please contact
** (qt-info@nokia.com).
**
**************************************************************************/
#include "updater.h"
#include <QDateTime>
#include <QDomDocument>
#include <QProgressDialog>
#include "common/binaryformat.h"
#include "common/binaryformatenginehandler.h"
#include "common/errors.h"
#include "componentselectiondialog.h"
#include "qinstaller.h"
#include "qinstallercomponent.h"
#include "qinstallercomponentmodel.h"
#include "updatesettings.h"
#include "init.h"
#include <KDUpdater/Application>
#include <KDUpdater/PackagesInfo>
#include <KDToolsCore/KDAutoPointer>
#include <iostream>
using namespace QInstaller;
class Updater::Private
{
public:
KDUpdater::Application updaterapp;
Installer installer;
};
Updater::Updater( QObject* parent )
: QObject( parent )
{
QInstaller::init();
}
Updater::~Updater()
{
}
bool Updater::checkForUpdates( bool checkonly )
{
d->installer.setLinearComponentList( true );
std::auto_ptr< QInstallerCreator::BinaryFormatEngineHandler > handler( new QInstallerCreator::BinaryFormatEngineHandler( QInstallerCreator::ComponentIndex() ) );
handler->setComponentIndex( QInstallerCreator::ComponentIndex() );
UpdateSettings settings;
KDAutoPointer< ComponentSelectionDialog > dialog( checkonly ? 0 : new ComponentSelectionDialog( &d->installer ) );
if( !checkonly )
dialog->show();
ComponentModel::setVirtualComponentsVisible( true );
try
{
KDAutoPointer< QProgressDialog > progress( checkonly ? 0 : new QProgressDialog( dialog.get() ) );
if( !checkonly )
{
progress->setLabelText( tr( "Checking for updates..." ) );
progress->setRange( 0, 0 );
progress->show();
}
settings.setLastCheck( QDateTime::currentDateTime() );
d->installer.setRemoteRepositories( settings.repositories() );
d->installer.setValue( QLatin1String( "TargetDir" ), QFileInfo( d->updaterapp.packagesInfo()->fileName() ).absolutePath() );
}
catch( const Error& error )
{
if( !checkonly )
QMessageBox::critical( dialog.get(), tr( "Check for Updates" ), tr( "Error while checking for updates:\n%1" ).arg( error.what() ) );
settings.setLastResult( tr( "Software Update failed." ) );
return false;
}
catch( ... )
{
if( !checkonly )
QMessageBox::critical( dialog.get(), tr( "Check for Updates" ), tr( "Unknown error while checking for updates." ) );
settings.setLastResult( tr( "Software Update failed." ) );
return false;
}
const QList< Component* > components = d->installer.components( true );
// no updates for us
if( components.isEmpty() && !checkonly )
{
QMessageBox::information( dialog.get(), tr( "Check for Updates" ), tr( "There are currently no updates available for you." ) );
return false;
}
if( checkonly )
{
QDomDocument doc;
QDomElement root = doc.createElement( QLatin1String( "updates" ) );
doc.appendChild( root );
for( QList< Component* >::const_iterator it = components.begin(); it != components.end(); ++it )
{
QDomElement update = doc.createElement( QLatin1String( "update" ) );
update.setAttribute( QLatin1String( "name" ), (*it)->value( QLatin1String( "DisplayName" ) ) );
update.setAttribute( QLatin1String( "version" ), (*it)->value( QLatin1String( "Version" ) ) );
update.setAttribute( QLatin1String( "size" ), (*it)->value( QLatin1String( "UncompressedSize" ) ) );
root.appendChild( update );
}
std::cout << doc.toString( 4 ).toStdString() << std::endl;
return true;
}
if( dialog->exec() == QDialog::Rejected )
return false;
try
{
QProgressDialog dialog;
dialog.setRange( 0, 100 );
dialog.show();
connect( &dialog, SIGNAL( canceled() ), &d->installer, SLOT( interrupt() ) );
connect( &d->installer, SIGNAL( installationProgressTextChanged( QString ) ), &dialog, SLOT( setLabelText( QString ) ) );
connect( &d->installer, SIGNAL( installationProgressChanged( int ) ), &dialog, SLOT( setValue( int ) ) );
d->installer.installSelectedComponents();
}
catch( const Error& error )
{
QMessageBox::critical( dialog.get(), tr( "Check for Updates" ), tr( "Error while installing updates:\n%1" ).arg( error.what() ) );
d->installer.rollBackInstallation();
settings.setLastResult( tr( "Software Update failed." ) );
return false;
}
catch( ... )
{
QMessageBox::critical( dialog.get(), tr( "Check for Updates" ), tr( "Unknown error while installing updates." ) );
d->installer.rollBackInstallation();
settings.setLastResult( tr( "Software Update failed." ) );
return false;
}
return true;
}

@ -1,45 +0,0 @@
/**************************************************************************
**
** This file is part of Qt SDK**
**
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).*
**
** Contact: Nokia Corporation qt-info@nokia.com**
**
** GNU Lesser General Public License Usage
**
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this file.
** Please review the following information to ensure the GNU Lesser General
** Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception version
** 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you are unsure which license is appropriate for your use, please contact
** (qt-info@nokia.com).
**
**************************************************************************/
#ifndef UPDATER_H
#define UPDATER_H
#include <QtCore/QObject>
#include <KDToolsCore/pimpl_ptr.h>
class Updater : public QObject
{
public:
explicit Updater( QObject* parent = 0 );
~Updater();
bool checkForUpdates( bool checkonly = false );
private:
class Private;
kdtools::pimpl_ptr< Private > d;
};
#endif

@ -1,12 +0,0 @@
TEMPLATE = app
TARGET = Updater
include( ../../installerbuilder/libinstaller/libinstaller.pri )
LIBS = -L$$OUT_PWD/../../installerbuilder/lib -linstaller $$LIBS
QT += gui
CONFIG += uitools
SOURCES += main.cpp
RESOURCES += updater.qrc

@ -1,5 +0,0 @@
<RCC>
<qresource prefix="/metadata/installer-config">
<file>config.xml</file>
</qresource>
</RCC>

@ -1,9 +0,0 @@
<plugin name="Updater" version="0.0.1" compatVersion="0.0.1">
<vendor>KDAB</vendor>
<copyright>(C) 2009 Klarälvdalens Datakonsult AB</copyright>
<license>We're not licensing that stuff at all :-)</license>
<description>Updater for Qt Creator and plugins</description>
<url>http://qt.nokia.com</url>
<dependencyList>
</dependencyList>
</plugin>

@ -1,15 +0,0 @@
<?xml version="1.0"?>
<Installer>
<Name>Qt Creator</Name>
<Version>1</Version>
<Title>Qt Creator</Title>
<Publisher>Nokia</Publisher>
<ProductUrl>http://qt.nokia.com</ProductUrl>
<RemoteRepositories>
<Repository>
<Url>http://www.kdab.com/~christoph/qtcreator/</Url>
<Required>true</Required>
</Repository>
</RemoteRepositories>
</Installer>

@ -1,17 +0,0 @@
<?xml version="1.0"?>
<Installer>
<Name>Qt Creator</Name>
<Version>1</Version>
<Title>Qt Creator</Title>
<Publisher>Nokia</Publisher>
<ProductUrl>http://qt.nokia.com</ProductUrl>
<!-- @homeDir@ and @rootDir@ are some of the supported vars -->
<TargetDir>@homeDir@/testinstall</TargetDir>
<RemoteRepositories>
<Repository>
<Url>http://www.kdab.com/~christoph/qtcreator/</Url>
<Required>true</Required>
</Repository>
</RemoteRepositories>
</Installer>

@ -1,50 +0,0 @@
function Component()
{
if( installer.value( "os" ) == "win" )
{
component.addDownloadableArchive( "bin.7z" );
component.addDownloadableArchive( "installer.dll" );
component.addDownloadableArchive( "KDToolsCore2.dll" );
component.addDownloadableArchive( "KDUpdater2.dll" );
component.addDownloadableArchive( "lib.7z" );
component.addDownloadableArchive( "LICENSE" );
component.addDownloadableArchive( "Qt Creator.url" );
component.addDownloadableArchive( "share.7z" );
component.addDownloadableArchive( "uninst.exe" );
component.addDownloadableArchive( "Updater.dll" );
component.addDownloadableArchive( "Updater.pluginspec" );
}
else if( installer.value( "os" ) == "mac" )
{
component.addDownloadableArchive( "libUpdater.dylib" );
component.addDownloadableArchive( "Updater.pluginspec" );
component.addDownloadableArchive( "Qt Creator.app.7z" );
}
}
Component.prototype.createOperations = function( archive )
{
if( installer.value( "os" ) == "win" )
{
component.createOperationsForArchive( "bin.7z" );
component.addOperation( "Copy", "installer://com.nokia.qtcreator/installer.dll", "@TargetDir@/bin/installer.dll" );
component.addOperation( "Copy", "installer://com.nokia.qtcreator/KDToolsCore2.dll", "@TargetDir@/bin/KDToolsCore2.dll" );
component.addOperation( "Copy", "installer://com.nokia.qtcreator/KDUpdater2.dll", "@TargetDir@/bin/KDUpdater2.dll" );
component.addOperation( "Copy", "installer://com.nokia.qtcreator/LICENSE", "@TargetDir@/LICENSE" );
component.addOperation( "Copy", "installer://com.nokia.qtcreator/Qt Creator.url", "@TargetDir@/Qt Creator.url" );
component.createOperationsForArchive( "lib.7z" );
component.createOperationsForArchive( "share.7z" );
component.addOperation( "Copy", "installer://com.nokia.qtcreator/uninst.exe", "@TargetDir@/uninst.exe" );
component.addOperation( "Copy", "installer://com.nokia.qtcreator/Updater.dll", "@TargetDir@/lib/qtcreator/plugins/Nokia/Updater.dll" );
component.addOperation( "Copy", "installer://com.nokia.qtcreator/Updater.pluginspec", "@TargetDir@/lib/qtcreator/plugins/Nokia/Updater.pluginspec" );
}
else if( installer.value( "os" ) == "mac" )
{
component.createOperationsForArchive( "Qt Creator.app.7z" );
component.addOperation( "Copy", "installer://com.nokia.qtcreator/libUpdater.dylib", "@TargetDir@/Qt Creator.app/Contents/PlugIns/Nokia/libUpdater.dylib" );
component.addOperation( "Copy", "installer://com.nokia.qtcreator/Updater.pluginspec", "@TargetDir@/Qt Creator.app/Contents/PlugIns/Nokia/Updater.pluginspec" );
}
if( installer.isUpdater() )
component.addOperation( "SelfRestart" );
}

@ -1,9 +0,0 @@
<?xml version="1.0"?>
<Package>
<DisplayName>Qt Creator</DisplayName>
<Description>Installs Qt Creator.</Description>
<Version>1</Version>
<ReleaseDate>2009-12-03</ReleaseDate>
<Name>com.nokia.qtcreator</Name>
<Script>installscript.js</Script>
</Package>

@ -1,256 +0,0 @@
/**************************************************************************
**
** This file is part of Qt SDK**
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).*
**
** Contact: Nokia Corporation qt-info@nokia.com**
**
** No Commercial Usage
**
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the Technology Preview License Agreement accompanying
** this package.
**
** GNU Lesser General Public License Usage
**
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this file.
** Please review the following information to ensure the GNU Lesser General
** Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception version
** 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you are unsure which license is appropriate for your use, please contact
** (qt-info@nokia.com).
**
**************************************************************************/
#include "updaterplugin.h"
#include <QAbstractButton>
#include <QApplication>
#include <QFileInfo>
#include <QMessageBox>
#include <QProgressDialog>
#include <QStringList>
#include <QtPlugin>
#include "componentselectiondialog.h"
#include "updateagent.h"
#include "updatesettings.h"
#include "updatesettingsdialog.h"
#include "common/binaryformat.h"
#include "common/binaryformatenginehandler.h"
#include "common/errors.h"
#include "common/installersettings.h"
#include "init.h"
#include "qinstaller.h"
#include "updatersettingspage.h"
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/icore.h>
#include <KDUpdater/Application>
#include <KDUpdater/PackagesInfo>
#include <KDToolsCore/KDAutoPointer>
#include <KDToolsCore/KDSelfRestarter>
using namespace Updater;
using namespace Updater::Internal;
using namespace QInstaller;
class UpdaterPlugin::Private
{
public:
Private( UpdaterPlugin* qq )
: q( qq ),
agent( 0 )
{
QInstaller::init();
}
private:
UpdaterPlugin* const q;
public:
void checkForUpdates()
{
std::auto_ptr< QInstallerCreator::BinaryFormatEngineHandler > handler( new QInstallerCreator::BinaryFormatEngineHandler( QInstallerCreator::ComponentIndex() ) );
handler->setComponentIndex( QInstallerCreator::ComponentIndex() );
UpdateSettings settings;
try
{
settings.setLastCheck( QDateTime::currentDateTime() );
installer.setRemoteRepositories( settings.repositories() );
// no updates for us
if( installer.components().isEmpty() )
{
QMessageBox::information( qApp->activeWindow(), tr( "Check for Updates" ), tr( "There are currently no updates available for you." ) );
return;
}
// set the target directory to the actual one
installer.setValue( QLatin1String( "TargetDir" ), QFileInfo( updaterapp.packagesInfo()->fileName() ).absolutePath() );
// this will automatically mork components as to get installed
ComponentSelectionDialog componentSelection( &installer );
if( componentSelection.exec() == QDialog::Rejected )
return;
QProgressDialog dialog;
dialog.setRange( 0, 100 );
dialog.show();
connect( &dialog, SIGNAL( canceled() ), &installer, SLOT( interrupt() ) );
connect( &installer, SIGNAL( installationProgressTextChanged( QString ) ), &dialog, SLOT( setLabelText( QString ) ) );
connect( &installer, SIGNAL( installationProgressChanged( int ) ), &dialog, SLOT( setValue( int ) ) );
installer.installSelectedComponents();
updatesInstalled();
}
catch( const QInstaller::Error& error )
{
QMessageBox::critical( qApp->activeWindow(), tr( "Check for Updates" ), tr( "Error while installing updates:\n%1" ).arg( error.what() ) );
installer.rollBackInstallation();
settings.setLastResult( tr( "Software Update failed." ) );
}
catch( ... )
{
QMessageBox::critical( qApp->activeWindow(), tr( "Check for Updates" ), tr( "Unknown error while installing updates." ) );
installer.rollBackInstallation();
settings.setLastResult( tr( "Software Update failed." ) );
}
}
void updatesAvailable()
{
KDAutoPointer< QMessageBox > box( new QMessageBox( qApp->activeWindow() ) );
box->setWindowTitle( tr( "Updates Available" ) );
box->setText( tr( "Software updates are available for your computer. Do you want to install them?" ) );
box->setStandardButtons( QMessageBox::Yes | QMessageBox::No );
box->button( QMessageBox::Yes )->setText( tr( "Continue" ) );
box->button( QMessageBox::No )->setText( tr( "Not Now" ) );
box->exec();
if ( !box )
return;
if ( box->clickedButton() == box->button( QMessageBox::Yes ) )
checkForUpdates();
}
void updatesInstalled()
{
// only ask that dumb question if a SelfUpdateOperation was executed
if( !KDSelfRestarter::restartOnQuit() )
{
QMessageBox::information( qApp->activeWindow(), tr( "Updates Installed" ), tr( "Installation complete." ) );
return;
}
KDAutoPointer< QMessageBox > box( new QMessageBox( qApp->activeWindow() ) );
box->setWindowTitle( tr( "Updates Installed" ) );
box->setText( tr( "Installation complete, you need to restart the application for the changes to take effect." ) );
box->setStandardButtons( QMessageBox::Yes | QMessageBox::No );
box->button( QMessageBox::Yes )->setText( tr( "Restart Now" ) );
box->button( QMessageBox::No )->setText( tr( "Restart Later" ) );
box->exec();
if ( !box )
return;
if ( box->clickedButton() == box->button( QMessageBox::Yes ) )
QCoreApplication::quit();
else
KDSelfRestarter::setRestartOnQuit( false );
}
void configureUpdater()
{
UpdateSettingsDialog dialog( qApp->activeWindow() );
connect( &dialog, SIGNAL( checkForUpdates() ), q, SLOT( checkForUpdates() ), Qt::QueuedConnection );
dialog.exec();
}
KDUpdater::Application updaterapp;
Installer installer;
UpdateAgent* agent;
};
UpdaterPlugin::UpdaterPlugin()
: d( new Private( this ) )
{
if( !KDSelfRestarter::hasInstance() )
{
const KDSelfRestarter* const restarter = new KDSelfRestarter;
Q_UNUSED( restarter )
}
}
UpdaterPlugin::~UpdaterPlugin()
{
}
/*!
\reimpl
*/
bool UpdaterPlugin::initialize( const QStringList& arguments, QString* error_message )
{
Q_UNUSED( arguments )
try
{
InstallerSettings::fromFileAndPrefix( QLatin1String( ":/metadata/installer-config/config.xml" ), QLatin1String( ":/metadata/installer-config/" ) );
}
catch ( const Error& e )
{
if( error_message )
*error_message = e.message();
return false;
}
Core::ActionManager* const am = Core::ICore::instance()->actionManager();
Core::ActionContainer* const ac = am->actionContainer( Core::Constants::M_FILE );
UpdateSettings::setSettingsSource( Core::ICore::instance()->settings() );
d->agent = new UpdateAgent( this );
QAction* const checkForUpdates = ac->menu()->addAction( tr( "Check for Updates" ), this, SLOT( checkForUpdates() ) );
checkForUpdates->setMenuRole( QAction::ApplicationSpecificRole );
QAction* const updateSettings = ac->menu()->addAction( tr( "Updater Settings" ), this, SLOT( configureUpdater() ) );
updateSettings->setMenuRole( QAction::ApplicationSpecificRole );
UpdaterSettingsPage* const page = new UpdaterSettingsPage;
connect( page, SIGNAL( checkForUpdates() ), this, SLOT( checkForUpdates() ) );
addAutoReleasedObject( page );
if( error_message )
error_message->clear();
return true;
}
/*!
\reimpl
*/
void UpdaterPlugin::shutdown()
{
}
/*!
\reimpl
*/
void UpdaterPlugin::extensionsInitialized()
{
}
#include "moc_updaterplugin.cpp"
Q_EXPORT_PLUGIN( UpdaterPlugin )

@ -1,61 +0,0 @@
/**************************************************************************
**
** This file is part of Qt SDK**
**
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).*
**
** Contact: Nokia Corporation qt-info@nokia.com**
**
** GNU Lesser General Public License Usage
**
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this file.
** Please review the following information to ensure the GNU Lesser General
** Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception version
** 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you are unsure which license is appropriate for your use, please contact
** (qt-info@nokia.com).
**
**************************************************************************/
#ifndef UPDATERPLUGIN_H
#define UPDATERPLUGIN_H
#include <extensionsystem/iplugin.h>
#include <KDToolsCore/pimpl_ptr.h>
namespace Updater
{
namespace Internal
{
class UpdaterPlugin : public ExtensionSystem::IPlugin
{
Q_OBJECT
public:
UpdaterPlugin();
~UpdaterPlugin();
protected:
// implementation of ExtensionSystem::IPlugin
bool initialize( const QStringList& arguments, QString* error_message );
void shutdown();
void extensionsInitialized();
private:
Q_PRIVATE_SLOT( d, void checkForUpdates() )
Q_PRIVATE_SLOT( d, void configureUpdater() )
class Private;
kdtools::pimpl_ptr< Private > d;
};
}
}
#endif

@ -1,37 +0,0 @@
TEMPLATE = lib
TARGET = Updater
include( ../../installerbuilder/libinstaller/libinstaller.pri )
# maybe wo should not build a static plugin for Qt Creator
CONFIG -= static
CONFIG -= staticlib
CONFIG += shared
#PROVIDER = KDAB
IDE_PLUGIN_PATH = PlugInst
IDE_BUILD_TREE = "$$(QTCREATOR_SOURCE_PATH)"
include($$(QTCREATOR_SOURCE_PATH)/src/qtcreatorplugin.pri)
include($$(QTCREATOR_SOURCE_PATH)/src/libs/extensionsystem/extensionsystem.pri)
include($$(QTCREATOR_SOURCE_PATH)/src/plugins/coreplugin/coreplugin.pri)
QT += gui
CONFIG += uitools
LIBS = -L../../installerbuilder/lib -linstaller $$LIBS
DEST=$$DESTDIR/libUpdater.dylib
# this will make sure we are using the Qt from the QtCreater.app bundle
ddlib="$"$lib
macx:QMAKE_POST_LINK = for lib in `otool -L \"$${DEST}\" | sed -ne \'s,.*\\(libQt[^ ]*\\).*,\1,p\'`; do install_name_tool -change $$[QT_INSTALL_LIBS]/$${ddlib} @executable_path/../Frameworks/$${ddlib} \"$${DEST}\"; done;
macx:QMAKE_POST_LINK += ../../installerbuilder/bin/binarycreator -p packages -c config -t ../../installerbuilder/bin/installerbase -e com.nokia.qtcreator QtCreatorInstaller.app com.nokia.qtcreator ;
SOURCES += updaterplugin.cpp updatersettingspage.cpp
HEADERS += updaterplugin.h updatersettingspage.h
RESOURCES += updaterplugin.qrc
OTHER_FILES += Updater.pluginspec

@ -1,5 +0,0 @@
<RCC>
<qresource prefix="/metadata/installer-config">
<file>config.xml</file>
</qresource>
</RCC>

@ -1,125 +0,0 @@
/**************************************************************************
**
** This file is part of Qt SDK**
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).*
**
** Contact: Nokia Corporation qt-info@nokia.com**
**
** No Commercial Usage
**
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the Technology Preview License Agreement accompanying
** this package.
**
** GNU Lesser General Public License Usage
**
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this file.
** Please review the following information to ensure the GNU Lesser General
** Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception version
** 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you are unsure which license is appropriate for your use, please contact
** (qt-info@nokia.com).
**
**************************************************************************/
#include "updatersettingspage.h"
#include "updatesettingswidget.h"
#include <KDToolsCore/KDAutoPointer>
using namespace QInstaller;
class UpdaterSettingsPage::Private
{
public:
Private()
: widget( 0 )
{
}
KDAutoPointer< UpdateSettingsWidget > widget;
};
UpdaterSettingsPage::UpdaterSettingsPage( QObject* parent )
: Core::IOptionsPage( parent )
{
}
UpdaterSettingsPage::~UpdaterSettingsPage()
{
}
/*!
\reimpl
*/
QString UpdaterSettingsPage::id() const
{
return QLatin1String( "UpdaterSettings" );
}
/*!
\reimpl
*/
QString UpdaterSettingsPage::trName() const
{
return tr( "Updater Settings" );
}
/*!
\reimpl
*/
QString UpdaterSettingsPage::category() const
{
return QLatin1String( "General" );
}
/*!
\reimpl
*/
QString UpdaterSettingsPage::trCategory() const
{
return displayCategory();
}
/*!
\reimpl
*/
QString UpdaterSettingsPage::displayCategory() const
{
return tr( "General" );
}
/*!
\reimpl
*/
QWidget* UpdaterSettingsPage::createPage( QWidget* parent )
{
d->widget.reset( new UpdateSettingsWidget( parent ) );
connect( d->widget.get(), SIGNAL( checkForUpdates() ), this, SIGNAL( checkForUpdates() ) );
return d->widget.get();
}
/*!
\reimpl
*/
void UpdaterSettingsPage::apply()
{
d->widget->accept();
}
/*!
\reimpl
*/
void UpdaterSettingsPage::finish()
{
d->widget.reset();
}

@ -1,59 +0,0 @@
/**************************************************************************
**
** This file is part of Qt SDK**
**
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).*
**
** Contact: Nokia Corporation qt-info@nokia.com**
**
** GNU Lesser General Public License Usage
**
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this file.
** Please review the following information to ensure the GNU Lesser General
** Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception version
** 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you are unsure which license is appropriate for your use, please contact
** (qt-info@nokia.com).
**
**************************************************************************/
#ifndef UPDATERSETTINGSPAGE_H
#define UPDATERSETTINGSPAGE_H
#include <coreplugin/dialogs/ioptionspage.h>
#include <KDToolsCore/pimpl_ptr.h>
class UpdaterSettingsPage : public Core::IOptionsPage
{
Q_OBJECT
public:
explicit UpdaterSettingsPage( QObject* parent = 0 );
~UpdaterSettingsPage();
QString id() const;
QString trName() const;
QString category() const;
QString displayCategory() const;
QString trCategory() const;
QWidget* createPage( QWidget* parent );
void apply();
void finish();
Q_SIGNALS:
void checkForUpdates();
private:
class Private;
kdtools::pimpl_ptr< Private > d;
};
#endif

@ -1 +1 @@
bin\binarycreator -t bin\installerbase.exe -v -p ..\examples\packages -c ..\examples\config --offline-only test-installer.exe com.nokia.sdk
bin\binarycreator -t bin\installerbase.exe -v -p ..\examples\testapp\packages -c ..\examples\testapp\config --offline-only test-installer.exe com.nokia.testapp

@ -1 +1 @@
./bin/binarycreator -t bin/installerbase -v -p ../examples/packages -c ../examples/config test-installer -e com.nokia.sdk.installerbase --offline-only com.nokia.sdk
./bin/binarycreator -t bin/installerbase -v -p ../examples/testapp/packages -c ../examples/testapp/config test-installer --offline-only com.nokia.testapp

@ -1,6 +1,6 @@
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += libinstaller installerbase binarycreator repogen operationrunner archivegen #tests
SUBDIRS += libinstaller installerbase binarycreator repogen archivegen tests
#test.commands=(cd tests && $(MAKE) test)

1
tests/README Normal file

@ -0,0 +1 @@
These are files for the unfinished test framework of the installer framework.

@ -49,7 +49,7 @@ int main( int argc, char** argv ) {
if ( ok )
return num;
if ( arg == QLatin1String("crash") ) {
std::cout << "Yeth, mather. I Crath." << std::endl;
std::cout << "Yeth, mather. I Crash." << std::endl;
crash();
}
if ( arg == QLatin1String("--script") ) {

@ -1,16 +1,16 @@
TEMPLATE = app
TARGET = operationrunner
DEPENDPATH += . .. ../common
DEPENDPATH += . .. ../../installerbuilder/common
INCLUDEPATH += . ..
DESTDIR = ../bin
DESTDIR = ../../installerbuilder/bin
CONFIG += console
CONFIG -= app_bundle
QT += xml
include(../libinstaller/libinstaller.pri)
include(../../installerbuilder/libinstaller/libinstaller.pri)
# Input
SOURCES += operationrunner.cpp