summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/createpackage.pl33
-rwxr-xr-xbin/patch_capabilities.pl3
-rw-r--r--doc/src/platforms/symbian-introduction.qdoc2
-rw-r--r--mkspecs/features/sis_targets.prf25
4 files changed, 56 insertions, 7 deletions
diff --git a/bin/createpackage.pl b/bin/createpackage.pl
index 939c38e..8b787cb 100755
--- a/bin/createpackage.pl
+++ b/bin/createpackage.pl
@@ -78,6 +78,7 @@ Where supported options are as follows:
as a comments. Also empty lines are ignored. The paths in
<file> can be absolute or relative to <file>.
[-u|unsigned] = Preserves the unsigned package.
+ [-o|only-unsigned] = Creates only unsigned package.
[-s|stub] = Generates stub sis for ROM.
[-n|sisname <name>] = Specifies the final sis name.
Where parameters are as follows:
@@ -121,11 +122,13 @@ my $certfile = "";
my $preserveUnsigned = "";
my $stub = "";
my $signed_sis_name = "";
+my $onlyUnsigned = "";
unless (GetOptions('i|install' => \$install,
'p|preprocess' => \$preprocessonly,
'c|certfile=s' => \$certfile,
'u|unsigned' => \$preserveUnsigned,
+ 'o|only-unsigned' => \$onlyUnsigned,
's|stub' => \$stub,
'n|sisname=s' => \$signed_sis_name,)) {
Usage();
@@ -292,7 +295,10 @@ if($stub) {
# Create stub SIS.
system ("makesis -s $pkgoutput $stub_sis_name");
} else {
- if ($certtext eq "Self Signed" && !@certificates && $templatepkg !~ m/_installer\.pkg$/i) {
+ if ($certtext eq "Self Signed"
+ && !@certificates
+ && $templatepkg !~ m/_installer\.pkg$/i
+ && !$onlyUnsigned) {
print("Auto-patching capabilities for self signed package.\n");
system ("patch_capabilities $pkgoutput");
}
@@ -302,6 +308,25 @@ if($stub) {
system ("makesis $pkgoutput $unsigned_sis_name") and die ("makesis failed");
print("\n");
+ my $targetInsert = "";
+ if ($targetplatform ne "-") {
+ $targetInsert = " for $targetplatform";
+ }
+
+ if ($onlyUnsigned) {
+ stat($unsigned_sis_name);
+ if( -e _ ) {
+ print ("Successfully created unsigned package ${unsigned_sis_name}${targetInsert}!\n");
+ } else {
+ print ("\nUnsigned package creation failed!\n");
+ }
+
+ if (!$preservePkgOutput) {
+ unlink $pkgoutput;
+ }
+ exit;
+ }
+
# Sign SIS with certificate info given as an argument.
my $relcert = File::Spec->abs2rel($certificate);
my $relkey = File::Spec->abs2rel($key);
@@ -311,11 +336,7 @@ if($stub) {
# Check if creating signed SIS Succeeded
stat($signed_sis_name);
if( -e _ ) {
- my $targetInsert = "";
- if ($targetplatform ne "-") {
- $targetInsert = "for $targetplatform ";
- }
- print ("Successfully created $signed_sis_name ${targetInsert}using certificate: $certtext!\n");
+ print ("Successfully created signed package ${signed_sis_name}${targetInsert} using certificate: $certtext!\n");
# Sign with additional certificates & keys
for my $row ( @certificates ) {
diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl
index 9741bc3..501939a 100755
--- a/bin/patch_capabilities.pl
+++ b/bin/patch_capabilities.pl
@@ -269,7 +269,8 @@ if (@ARGV)
}
print ("\n");
- print ("NOTE: A patched package should not be used for distribution!\n");
+ print ("NOTE: A patched package may not work as expected due to reduced capabilities.\n");
+ print (" Therefore it should not be used for any kind of Symbian signing or distribution!\n");
print ("\n");
}
}
diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc
index 6ffc568..316764b 100644
--- a/doc/src/platforms/symbian-introduction.qdoc
+++ b/doc/src/platforms/symbian-introduction.qdoc
@@ -127,6 +127,7 @@
\row \o \c run \o Run the application on the emulator.
\row \o \c runonphone \o Run the application on a device.
\row \o \c sis \o Create signed \c .sis file for project.
+ \row \o \c unsigned_sis \o Create unsigned \c .sis file for project.
\row \o \c installer_sis \o Create signed \l{Smart Installer}{smart installer}
\c .sis file for project.
Smart installer will attempt to download
@@ -193,6 +194,7 @@
\row \o -p \o Only preprocess the template \c .pkg file.
\row \o -c <file> \o Read certificate information from a file.
\row \o -u \o Preserves unsigned package.
+ \row \o -o \o Creates only unsigned package.
\row \o -s \o Generates stub sis for ROM.
\row \o -n <name> \o Specifies the final sis name.
\endtable
diff --git a/mkspecs/features/sis_targets.prf b/mkspecs/features/sis_targets.prf
index b149a22..37b758b 100644
--- a/mkspecs/features/sis_targets.prf
+++ b/mkspecs/features/sis_targets.prf
@@ -32,6 +32,24 @@ equals(GENERATE_SIS_TARGETS, true) {
ok_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $$basename(TARGET)_template.pkg \
$(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
+ unsigned_sis_target.target = unsigned_sis
+ unsigned_sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
+ $(if $(wildcard $$make_cache_name), \
+ $(MAKE) -f $(MAKEFILE) ok_unsigned_sis MAKEFILES=$$make_cache_name \
+ , \
+ $(if $(QT_SIS_TARGET), \
+ $(MAKE) -f $(MAKEFILE) ok_unsigned_sis \
+ , \
+ $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
+ ) \
+ ) \
+ , \
+ $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
+ )
+
+ ok_unsigned_sis_target.target = ok_unsigned_sis
+ ok_unsigned_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) -o $$basename(TARGET)_template.pkg $(QT_SIS_TARGET)
+
target_sis_target.target = $${sis_destdir}$${TARGET}.sis
target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
@@ -74,6 +92,8 @@ equals(GENERATE_SIS_TARGETS, true) {
QMAKE_EXTRA_TARGETS += sis_target \
ok_sis_target \
+ unsigned_sis_target \
+ ok_unsigned_sis_target \
target_sis_target \
installer_sis_target \
ok_installer_sis_target \
@@ -114,6 +134,10 @@ equals(GENERATE_SIS_TARGETS, true) {
- $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
sis_target.depends = first
+ unsigned_sis_target.target = unsigned_sis
+ unsigned_sis_target.commands = createpackage $(QT_SIS_OPTIONS) -o $$basename(TARGET)_template.pkg
+ unsigned_sis_target.depends = first
+
target_sis_target.target = $${sis_destdir}$${TARGET}.sis
target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
@@ -128,6 +152,7 @@ equals(GENERATE_SIS_TARGETS, true) {
}
QMAKE_EXTRA_TARGETS += sis_target \
+ unsigned_sis_target \
target_sis_target \
installer_sis_target
}