summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2009-09-08 00:14:12 (GMT)
committerMartin Jones <martin.jones@nokia.com>2009-09-08 00:14:12 (GMT)
commitf6c08f5e68c90338a8402c0912cd6be72e84b1e6 (patch)
treed928f975e686b752cd1fc47eca812f376d9d0a03 /bin
parent276a44c0867a76a90b425baa8dcbda733d25b3fb (diff)
parent0cbbc9cb9e87a3a39ee1597f4cea1c2b77d8f8da (diff)
downloadQt-f6c08f5e68c90338a8402c0912cd6be72e84b1e6.zip
Qt-f6c08f5e68c90338a8402c0912cd6be72e84b1e6.tar.gz
Qt-f6c08f5e68c90338a8402c0912cd6be72e84b1e6.tar.bz2
Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into kinetic-declarativeui
Diffstat (limited to 'bin')
-rw-r--r--bin/createpackage.bat43
-rw-r--r--bin/createpackage.pl166
-rw-r--r--bin/patch_capabilities.pl45
3 files changed, 219 insertions, 35 deletions
diff --git a/bin/createpackage.bat b/bin/createpackage.bat
index b5ede18..87d094f 100644
--- a/bin/createpackage.bat
+++ b/bin/createpackage.bat
@@ -1,3 +1,44 @@
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::
+:: Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+:: Contact: Nokia Corporation (qt-info@nokia.com)
+::
+:: This file is part of the test suite of the Qt Toolkit.
+::
+:: $QT_BEGIN_LICENSE:LGPL$
+:: 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
+:: Alternatively, 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 have questions regarding the use of this file, please contact
+:: Nokia at qt-info@nokia.com.
+::
+::
+::
+::
+::
+::
+::
+::
+:: $QT_END_LICENSE$
+::
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+
@echo off
set scriptpath=%~dp0
-perl %scriptpath%createpackage.pl %* \ No newline at end of file
+perl %scriptpath%createpackage.pl %*
diff --git a/bin/createpackage.pl b/bin/createpackage.pl
index a180864..1a83abb 100644
--- a/bin/createpackage.pl
+++ b/bin/createpackage.pl
@@ -1,11 +1,49 @@
-#!\usr\bin\perl
+#!/usr/bin/perl
+#############################################################################
+##
+## Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+## Contact: Nokia Corporation (qt-info@nokia.com)
+##
+## This file is part of the S60 port of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## 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
+## Alternatively, 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 have questions regarding the use of this file, please contact
+## Nokia at qt-info@nokia.com.
+##
+##
+##
+##
+##
+##
+##
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
############################################################################################
#
# Convenience script for creating signed packages you can install on your phone.
#
-# Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# Contact: Qt Software Information (qt-info@nokia.com)
-#
############################################################################################
use strict;
@@ -14,42 +52,70 @@ use strict;
use Getopt::Long;
# Use file name parsing module
use File::Basename;
+# Use File::Spec services mainly rel2abs
+use File::Spec;
+# use CWD abs_bath, which is exported only on request
+use Cwd 'abs_path';
+
sub Usage() {
- print "\n";
- print "==========================================================================================\n";
- print "Convenience script for creating signed packages you can install on your phone.\n";
- print "\n";
- print "Usage: createpackage.pl [-i] templatepkg target-platform [certificate key [passphrase]]\n";
- print "\n";
- print "Where parameters are as follows:\n";
- print " [-i|install] = Install the package right away using PC suite\n";
- print " [-p|preprocess] = Only preprocess the template .pkg file.\n";
- print " templatepkg = Name of .pkg file template\n";
- print " target = Either debug or release\n";
- print " platform = One of the supported platform\n";
- print " winscw | gcce | armv5 | armv6 | armv7\n";
- print " certificate = The certificate file used for signing\n";
- print " key = The certificate's private key file\n";
- print " passphrase = The certificate's private key file's passphrase\n";
- print "\n";
- print "For example:\n";
- print " createpackage.pl fluidlauncher_template.pkg release-armv5\n";
- print "\n";
- print "If no certificate and key files are provided, either a RnD certificate or\n";
- print "a self-signed certificate from Qt installation root directory is used.\n";
- print "\n";
- print "==========================================================================================\n";
+ print <<ENDUSAGESTRING;
+
+==============================================================================================
+Convenience script for creating signed packages you can install on your phone.
+
+Usage: createpackage.pl [options] templatepkg target-platform [certificate key [passphrase]]
+
+Where supported optiobns are as follows:
+ [-i|install] = Install the package right away using PC suite
+ [-p|preprocess] = Only preprocess the template .pkg file.
+ [-c|certfile=<file>] = The file containing certificate information for signing.
+ The file can have several certificates, each specified in
+ separate line. The certificate, key and passphrase in line
+ must be ';' separated. Lines starting with '#' are treated
+ as a comments. Also empty lines are ignored. The paths in
+ <file> can be absolute or relative to <file>.
+Where parameters are as follows:
+ templatepkg = Name of .pkg file template
+ target = Either debug or release
+ platform = One of the supported platform
+ winscw | gcce | armv5 | armv6 | armv7
+ certificate = The certificate file used for signing
+ key = The certificate's private key file
+ passphrase = The certificate's private key file's passphrase
+
+Example:
+ createpackage.pl fluidlauncher_template.pkg release-armv5
+
+Example with certfile:
+ createpackage.pl -c=mycerts.txt fluidlauncher_template.pkg release-armv5
+
+ Content of 'mycerts.txt' must be something like this:
+ # This is comment line, also the empty lines are ignored
+ rd.cer;rd-key.pem
+ .\\cert\\mycert.cer;.\\cert\\mykey.key;yourpassword
+ X:\\QtS60\\selfsigned.cer;X:\\QtS60\\selfsigned.key
+
+If no certificate and key files are provided, either a RnD certificate or
+a self-signed certificate from Qt installation root directory is used.
+==============================================================================================
+
+ENDUSAGESTRING
+
exit();
}
# Read given options
my $install = "";
my $preprocessonly = "";
-unless (GetOptions('i|install' => \$install, 'p|preprocess' => \$preprocessonly)){
+my $certfile = "";
+
+unless (GetOptions('i|install' => \$install, 'p|preprocess' => \$preprocessonly, 'c|certfile=s' => \$certfile)){
Usage();
}
+my $certfilepath = abs_path(dirname($certfile));
+
# Read params to variables
my $templatepkg = $ARGV[0];
my $targetplatform = lc $ARGV[1];
@@ -117,6 +183,32 @@ if (length($certificate)) {
}
}
+# Read the certificates from file to two dimensional array
+my @certificates;
+if (length($certfile)) {
+ open CERTFILE, "<$certfile" or die $!;
+ while(<CERTFILE>){
+ s/#.*//; # ignore comments by erasing them
+ next if /^(\s)*$/; # skip blank lines
+ chomp; # remove trailing newline characters
+ my @certinfo = split(';', $_); # split row to certinfo
+
+ # Trim spaces
+ for(@certinfo) {
+ s/^\s+//;
+ s/\s+$//;
+ }
+
+ # Do some validation
+ unless(scalar(@certinfo) >= 2 && scalar(@certinfo) <= 3 && length($certinfo[0]) && length($certinfo[1]) ) {
+ print "\nError: $certfile line '$_' does not contain valid information!\n";
+ Usage();
+ }
+
+ push @certificates, [@certinfo]; # push data to two dimensional array
+ }
+}
+
# Remove any existing .sis packages
unlink $unsigned_sis_name;
unlink $signed_sis_name;
@@ -142,15 +234,27 @@ if ($preprocessonly) {
exit;
}
-# Create and sign SIS
+# Create SIS.
system ("makesis $pkgoutput $unsigned_sis_name");
+
+# Sign SIS with certificate info given as an argument.
system ("signsis $unsigned_sis_name $signed_sis_name $certificate $key $passphrase");
# Check if creating signed SIS Succeeded
stat($signed_sis_name);
if( -e _ ) {
- print ("\nSuccessfully created $signed_sis_name using certificate $certtext!\n");
+ print ("\nSuccessfully created $signed_sis_name using certificate: $certtext!\n");
+ # Sign with additional certificates & keys
+ for my $row ( @certificates ) {
+ # Get certificate absolute file names, relative paths are relative to certfilepath
+ my $abscert = File::Spec->rel2abs( $row->[0], $certfilepath);
+ my $abskey = File::Spec->rel2abs( $row->[1], $certfilepath);
+
+ system ("signsis $signed_sis_name $signed_sis_name $abscert $abskey $row->[2]");
+ print ("\tAdditionally signed the SIS with certificate: $row->[0]!\n");
+ }
+
# remove temporary pkg and unsigned sis
unlink $pkgoutput;
unlink $unsigned_sis_name;
diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl
index cf8353e..8140207 100644
--- a/bin/patch_capabilities.pl
+++ b/bin/patch_capabilities.pl
@@ -1,10 +1,49 @@
+#!/usr/bin/perl
+#############################################################################
+##
+## Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+## Contact: Nokia Corporation (qt-info@nokia.com)
+##
+## This file is part of the S60 port of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## 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
+## Alternatively, 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 have questions regarding the use of this file, please contact
+## Nokia at qt-info@nokia.com.
+##
+##
+##
+##
+##
+##
+##
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
#######################################################################
#
# A script for setting binary capabilities based on .pkg file contents.
#
-# Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
-# Contact: Nokia Corporation (qt-info@nokia.com)
-#
#######################################################################
sub Usage() {