diff options
author | Martin Jones <martin.jones@nokia.com> | 2009-09-08 00:14:12 (GMT) |
---|---|---|
committer | Martin Jones <martin.jones@nokia.com> | 2009-09-08 00:14:12 (GMT) |
commit | f6c08f5e68c90338a8402c0912cd6be72e84b1e6 (patch) | |
tree | d928f975e686b752cd1fc47eca812f376d9d0a03 /bin | |
parent | 276a44c0867a76a90b425baa8dcbda733d25b3fb (diff) | |
parent | 0cbbc9cb9e87a3a39ee1597f4cea1c2b77d8f8da (diff) | |
download | Qt-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.bat | 43 | ||||
-rw-r--r-- | bin/createpackage.pl | 166 | ||||
-rw-r--r-- | bin/patch_capabilities.pl | 45 |
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() { |