From ba9302b8a9b6b50f37987261c1ade9af2ade2d3c Mon Sep 17 00:00:00 2001
From: Xizhi Zhu <xizhi.zhu@gmail.com>
Date: Mon, 23 Jan 2012 21:25:30 +0100
Subject: [PATCH] Remove Symbian specific code from qtbase.

Change-Id: I27d37d914b71e1e43c94e2a975ffec49e1ecd456
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
---
 INSTALL                                       |   2 -
 bin/createpackage                             |   3 -
 bin/createpackage.bat                         |  44 --
 bin/createpackage.pl                          | 439 ------------------
 bin/elf2e32_qtwrapper                         |   3 -
 bin/elf2e32_qtwrapper.bat                     |   3 -
 bin/elf2e32_qtwrapper.pl                      | 325 -------------
 bin/patch_capabilities                        |   3 -
 bin/patch_capabilities.bat                    |   1 -
 bin/patch_capabilities.pl                     | 398 ----------------
 config.tests/unix/openssl/openssl.pri         |  10 -
 config.tests/unix/openssl/openssl.pro         |   1 -
 configure                                     |   3 -
 doc/src/examples/applicationicon.qdoc         |  21 -
 doc/src/examples/htmlinfo.qdoc                |   9 +-
 doc/src/examples/symbianvibration.qdoc        | 192 --------
 doc/src/images/symbianvibration-example.png   | Bin 23217 -> 0 bytes
 examples/embedded/raycasting/raycasting.cpp   |   4 -
 examples/richtext/calendar/calendar.pro       |   2 -
 examples/widgets/imageviewer/imageviewer.pro  |   2 -
 qtbase.pro                                    |  30 +-
 tests/auto/corelib/io/qdir/tst_qdir.cpp       |   2 -
 tests/auto/network/ssl/qsslkey/qsslkey.pro    |   1 -
 tests/auto/widgets/util/util.pro              |   4 -
 .../corelib/thread/qmutex/tst_qmutex.cpp      |  21 +-
 .../qnetworkaccessmanager/qget/qget.pro       |   3 -
 26 files changed, 4 insertions(+), 1522 deletions(-)
 delete mode 100755 bin/createpackage
 delete mode 100755 bin/createpackage.bat
 delete mode 100755 bin/createpackage.pl
 delete mode 100755 bin/elf2e32_qtwrapper
 delete mode 100644 bin/elf2e32_qtwrapper.bat
 delete mode 100755 bin/elf2e32_qtwrapper.pl
 delete mode 100755 bin/patch_capabilities
 delete mode 100644 bin/patch_capabilities.bat
 delete mode 100755 bin/patch_capabilities.pl
 delete mode 100644 config.tests/unix/openssl/openssl.pri
 delete mode 100644 doc/src/examples/symbianvibration.qdoc
 delete mode 100644 doc/src/images/symbianvibration-example.png

diff --git a/INSTALL b/INSTALL
index 7279f06f580..25781a48259 100644
--- a/INSTALL
+++ b/INSTALL
@@ -10,5 +10,3 @@ Mac OS X:         http://qt.nokia.com/doc/%SHORTVERSION%/install-mac.html
 Windows:          http://qt.nokia.com/doc/%SHORTVERSION%/install-win.html
 Windows CE:       http://qt.nokia.com/doc/%SHORTVERSION%/install-wince.html
 X11 Platforms:    http://qt.nokia.com/doc/%SHORTVERSION%/install-x11.html
-Symbian Platform: http://qt.nokia.com/doc/%SHORTVERSION%/install-symbian.html
-
diff --git a/bin/createpackage b/bin/createpackage
deleted file mode 100755
index fdd4eebdea0..00000000000
--- a/bin/createpackage
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-scriptpath=`dirname $0`
-perl $scriptpath/createpackage.pl "$@"
diff --git a/bin/createpackage.bat b/bin/createpackage.bat
deleted file mode 100755
index cf815b58a4e..00000000000
--- a/bin/createpackage.bat
+++ /dev/null
@@ -1,44 +0,0 @@
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-::
-:: Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-:: Contact: http://www.qt-project.org/
-::
-:: This file is part of the test suite of the Qt Toolkit.
-::
-:: $QT_BEGIN_LICENSE:LGPL$
-:: 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.
-::
-:: GNU General Public License Usage
-:: Alternatively, this file may be used under the terms of the GNU General
-:: Public License version 3.0 as published by the Free Software Foundation
-:: and appearing in the file LICENSE.GPL included in the packaging of this
-:: file. Please review the following information to ensure the GNU General
-:: Public License version 3.0 requirements will be met:
-:: http://www.gnu.org/copyleft/gpl.html.
-::
-:: Other Usage
-:: Alternatively, this file may be used in accordance with the terms and
-:: conditions contained in a signed written agreement between you and Nokia.
-::
-::
-::
-::
-::
-::
-:: $QT_END_LICENSE$
-::
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-
-@echo off
-set scriptpath=%~dp0
-perl %scriptpath%createpackage.pl %*
diff --git a/bin/createpackage.pl b/bin/createpackage.pl
deleted file mode 100755
index d4a953dfddb..00000000000
--- a/bin/createpackage.pl
+++ /dev/null
@@ -1,439 +0,0 @@
-#!/usr/bin/perl
-#############################################################################
-##
-## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-## Contact: http://www.qt-project.org/
-##
-## This file is part of the S60 port of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## 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.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU General
-## Public License version 3.0 as published by the Free Software Foundation
-## and appearing in the file LICENSE.GPL included in the packaging of this
-## file. Please review the following information to ensure the GNU General
-## Public License version 3.0 requirements will be met:
-## http://www.gnu.org/copyleft/gpl.html.
-##
-## Other Usage
-## Alternatively, this file may be used in accordance with the terms and
-## conditions contained in a signed written agreement between you and Nokia.
-##
-##
-##
-##
-##
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-############################################################################################
-#
-# Convenience script for creating signed packages you can install on your phone.
-#
-############################################################################################
-
-use strict;
-
-# use a command-line parsing module
-use Getopt::Long;
-# Use file name parsing module
-use File::Basename;
-# Use File::Spec services mainly rel2abs
-use File::Spec;
-# Use File::Path - to make stub sis target directory
-use File::Path;
-# use CWD abs_bath, which is exported only on request
-use Cwd 'abs_path';
-use File::Copy;
-
-sub Usage() {
-    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 options 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>.
-     [-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.
-     [-g|gcce-is-armv5]      = Convert gcce platform to armv5.
-     [-d|dont-patch]         = Skip automatic patching of capabilities and pkg file if default certificate
-                               is used. Instead non-self-signable capabilities just cause warnings.
-     [-t|tmp-dir <path>]     = Specifies temporary directory to be used for package creation.
-                               Defaults to 'createpackage_tmp' under same directory as templatepkg.
-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
-                               Note that when packaging binaries built using gcce and symbian-sbsv2
-                               mkspec, armv5 must be used for platform instead of gcce.
-     certificate             = The certificate file used for signing
-     key                     = The certificate's private key file
-     passphrase              = The passphrase of the certificate's private key file
-
-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\\s60installs\\selfsigned.cer;X:\\QtS60\\s60installs\\selfsigned.key
-
-If no certificate and key files are provided, either a RnD certificate or
-a self-signed certificate from QtDir\\src\\s60installs directory is used.
-In the latter case the resulting package will also be automatically patched
-using patch_capabilities.pl script, which makes it unsuitable for distribution.
-Always specify certificates explicitly if you wish to distribute your package.
-
-==============================================================================================
-
-ENDUSAGESTRING
-
-    exit();
-}
-
-# Read given options
-my $install = "";
-my $preprocessonly = "";
-my $certfile = "";
-my $preserveUnsigned = "";
-my $stub = "";
-my $signed_sis_name = "";
-my $onlyUnsigned = "";
-my $convertGcce = "";
-my $dontPatchCaps = "";
-my $tempPackageDir = "";
-
-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,
-                   'g|gcce-is-armv5' => \$convertGcce,
-                   'd|dont-patch' => \$dontPatchCaps,
-                   't|tmp-dir=s' => \$tempPackageDir,)) {
-    Usage();
-}
-
-my $epocroot = $ENV{EPOCROOT};
-my $epocToolsDir = "";
-if ($epocroot ne "") {
-    $epocroot =~ s,\\,/,g;
-    if ($epocroot =~ m,[^/]$,) {
-        $epocroot = $epocroot."/";
-    }
-    $epocToolsDir = "${epocroot}epoc32/tools/";
-}
-
-my $certfilepath = abs_path(dirname($certfile));
-
-# Read params to variables
-my $templatepkg = $ARGV[0];
-my $targetplatform = lc $ARGV[1];
-
-if ($targetplatform eq "") {
-    $targetplatform = "-";
-}
-
-my @tmpvalues = split('-', $targetplatform);
-my $target;
-$target = $tmpvalues[0] or $target = "";
-my $platform;
-$platform = $tmpvalues[1] or $platform = "";
-
-if ($platform =~ m/^gcce$/i) {
-    if (($convertGcce ne "")) {
-        $platform = "armv5";
-    } elsif ($ENV{SBS_HOME}) {
-        # Print a informative note in case suspected misuse is detected.
-        print "\nNote: You should use armv5 as platform or specify -g parameter to convert platform\n";
-        print "      when packaging gcce binaries built using symbian-sbsv2 mkspec.\n\n";
-    }
-}
-
-# Convert visual target to real target (debug->udeb and release->urel)
-$target =~ s/debug/udeb/i;
-$target =~ s/release/urel/i;
-
-my $certificate;
-$certificate = $ARGV[2] or $certificate = "";
-my $key;
-$key = $ARGV[3] or $key = "";
-my $passphrase;
-$passphrase = $ARGV[4] or $passphrase = "";
-
-if ($tempPackageDir eq "") {
-    my ($templateVolume, $templatePath, $templateFileName) = File::Spec->splitpath($templatepkg);
-    $tempPackageDir = File::Spec->catpath($templateVolume, $templatePath."createpackage_tmp", "");
-}
-
-mkpath($tempPackageDir);
-
-# Generate output pkg basename (i.e. file name without extension)
-my $pkgoutputbasename = $templatepkg;
-$pkgoutputbasename =~ s/_template/_$targetplatform/g;
-$pkgoutputbasename =~ s/_installer\.pkg/_installer___temp\.pkg/g;
-$pkgoutputbasename =~ s/\.pkg//g;
-
-# Store output file names to variables
-my ($dummy1, $dummy2, $pkgoutput) = File::Spec->splitpath($pkgoutputbasename.".pkg");
-$pkgoutput = $tempPackageDir."/".$pkgoutput;
-my $sisoutputbasename;
-if ($signed_sis_name eq "") {
-    $sisoutputbasename = $pkgoutputbasename;
-    $sisoutputbasename =~ s/_$targetplatform//g;
-    $sisoutputbasename =~ s/_installer___temp/_installer/g;
-    $signed_sis_name = $sisoutputbasename.".sis";
-} else {
-    $sisoutputbasename = $signed_sis_name;
-    if ($sisoutputbasename =~ m/(\.sis$|\.sisx$)/i) {
-        $sisoutputbasename =~ s/$1//i;
-    } else {
-        $signed_sis_name = $signed_sis_name.".sis";
-    }
-}
-
-my $installer_unsigned_app_sis_name = "";
-my $installer_app_sis_name = "";
-
-if ($templatepkg =~ m/_installer\.pkg$/i && $onlyUnsigned) {
-    $installer_unsigned_app_sis_name = $templatepkg;
-    $installer_unsigned_app_sis_name =~ s/_installer.pkg$/_unsigned.sis/i;
-    $installer_app_sis_name = $installer_unsigned_app_sis_name;
-    $installer_app_sis_name =~ s/_unsigned.sis$/.sis/;
-}
-
-my $unsigned_sis_name = $sisoutputbasename."_unsigned.sis";
-my $stub_sis_name = $sisoutputbasename.".sis";
-
-my $certtext = $certificate;
-
-# Check some pre-conditions and print error messages if needed.
-unless (length($templatepkg)) {
-    print "\nERROR: Template PKG filename is not defined!\n";
-    Usage();
-}
-
-# Check template exist
-stat($templatepkg);
-unless( -e _ ) {
-    print "\nERROR: Package description file '$templatepkg' does not exist!\n";
-    Usage();
-}
-
-# Check certifcate preconditions and set default certificate variables if needed
-if (length($certificate)) {
-    unless(length($key)) {
-        print "\nERROR: Custom certificate key file parameter missing.!\n";
-        Usage();
-    }
-} else {
-    #If no certificate is given, check default options
-    my $scriptpath = dirname(__FILE__);
-    my $certpath = File::Spec->catdir($scriptpath, File::Spec->updir(), "src/s60installs");
-
-    unless (-e $certpath) {
-        my $qmakeCmd = File::Spec->catfile($scriptpath, "qmake");
-        $certpath = `$qmakeCmd -query QT_INSTALL_PREFIX`;
-        $certpath =~ s/\s+$//;
-        $certpath = File::Spec->catdir($certpath, "src/s60installs");
-    }
-
-    $certtext = "RnD";
-    $certificate = File::Spec->catfile($certpath, "rd.cer");
-    $key = File::Spec->catfile($certpath, "rd-key.pem");
-
-    stat($certificate);
-    unless( -e _ ) {
-        $certtext = "Self Signed";
-        $certificate = File::Spec->catfile($certpath, "selfsigned.cer");
-        $key = File::Spec->catfile($certpath, "selfsigned.key");
-    }
-}
-
-# 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;
-if (!$onlyUnsigned) {
-    unlink $signed_sis_name;
-}
-unlink $pkgoutput;
-
-# Preprocess PKG
-
-local $/;
-# read template file
-open( TEMPLATE, $templatepkg) or die "ERROR: '$templatepkg': $!";
-$_=<TEMPLATE>;
-close (TEMPLATE);
-
-# If the pkg file does not contain macros, there is no need for platform or target.
-if (m/\$\(PLATFORM\)/) {
-    unless (length($platform) && length($target)) {
-        print "\nERROR: Platform or target is not defined!\n";
-        Usage();
-    }
-}
-
-# replace the PKG variables
-s/\$\(PLATFORM\)/$platform/gm;
-s/\$\(TARGET\)/$target/gm;
-
-if ($installer_unsigned_app_sis_name ne "") {
-    s/$installer_app_sis_name\"/$installer_unsigned_app_sis_name\"/;
-}
-
-#write the output
-open( OUTPUT, ">$pkgoutput" ) or die "ERROR: '$pkgoutput' $!";
-print OUTPUT $_;
-close OUTPUT;
-
-if ($preprocessonly) {
-    # Copy preprocessed file from tmp dir to pkg file dir
-    my ($templateVolume, $templatePath, $templateFileName) = File::Spec->splitpath($templatepkg);
-    my ($dummy1, $dummy2, $copyFileName) = File::Spec->splitpath($pkgoutput);
-    my $copyTarget = File::Spec->catpath($templateVolume, $templatePath, $copyFileName);
-    copy($pkgoutput, $copyTarget) or die "Preprocessed pkg file '$pkgoutput' cannot be copied.";
-    exit;
-}
-
-if($stub) {
-    if(!($epocroot)) { die("ERROR: EPOCROOT must be set to create stub sis files"); }
-    my $systeminstall = "${epocroot}epoc32/data/z/system/install";
-    mkpath($systeminstall);
-    my $stub_sis_name = $systeminstall."/".$stub_sis_name;
-    # Create stub SIS.
-    system ("${epocToolsDir}makesis -s $pkgoutput $stub_sis_name");
-} else {
-    if ($certtext eq "Self Signed"
-        && !@certificates
-        && $templatepkg !~ m/_installer\.pkg$/i
-        && !$onlyUnsigned) {
-        my $patch_capabilities = File::Spec->catfile(dirname($0), "patch_capabilities");
-        if ($dontPatchCaps) {
-            system ("$patch_capabilities -c $pkgoutput") and print ("Warning: Package check for self-signing viability failed. Installing the package on a device will most likely fail!\n\n");
-        } else {
-            print("Auto-patching self-signed package.\n");
-            system ("$patch_capabilities -t $tempPackageDir $pkgoutput") and die ("ERROR: Automatic patching failed");
-        }
-    }
-
-    # Create SIS.
-    # The 'and' is because system uses 0 to indicate success.
-    system ("${epocToolsDir}makesis $pkgoutput $unsigned_sis_name") and die ("ERROR: 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");
-        }
-
-        print ("\n");
-        exit;
-    }
-
-    # Sign SIS with certificate info given as an argument.
-    my $relcert = File::Spec->abs2rel($certificate);
-    my $relkey = File::Spec->abs2rel($key);
-    # The 'and' is because system uses 0 to indicate success.
-    system ("${epocToolsDir}signsis $unsigned_sis_name $signed_sis_name $relcert $relkey $passphrase") and die ("ERROR: signsis failed");
-
-    # Check if creating signed SIS Succeeded
-    stat($signed_sis_name);
-    if( -e _ ) {
-        print ("Successfully created signed package ${signed_sis_name}${targetInsert} 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 $relcert = File::Spec->abs2rel(File::Spec->rel2abs( $row->[0], $certfilepath));
-            my $relkey = File::Spec->abs2rel(File::Spec->rel2abs( $row->[1], $certfilepath));
-
-            system ("${epocToolsDir}signsis $signed_sis_name $signed_sis_name $relcert $relkey $row->[2]");
-            print ("\tAdditionally signed the SIS with certificate: $row->[0]!\n");
-        }
-
-        # remove temporary unsigned sis
-        if (!$preserveUnsigned) {
-            unlink $unsigned_sis_name;
-        }
-
-        # Install the sis if requested
-        if ($install) {
-            print ("\nInstalling $signed_sis_name...\n");
-            system ("$signed_sis_name");
-        }
-    } else {
-        # Lets leave the generated PKG for problem solving purposes
-        print ("\nSIS creation failed!\n");
-    }
-    print ("\n");
-}
-
-#end of file
diff --git a/bin/elf2e32_qtwrapper b/bin/elf2e32_qtwrapper
deleted file mode 100755
index a3a4065f30d..00000000000
--- a/bin/elf2e32_qtwrapper
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-scriptpath=`dirname $0`
-perl $scriptpath/elf2e32_qtwrapper.pl "$@"
diff --git a/bin/elf2e32_qtwrapper.bat b/bin/elf2e32_qtwrapper.bat
deleted file mode 100644
index 52910df0079..00000000000
--- a/bin/elf2e32_qtwrapper.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-set scriptpath=%~dp0
-perl %scriptpath%elf2e32_qtwrapper.pl %*
diff --git a/bin/elf2e32_qtwrapper.pl b/bin/elf2e32_qtwrapper.pl
deleted file mode 100755
index a9ea7711813..00000000000
--- a/bin/elf2e32_qtwrapper.pl
+++ /dev/null
@@ -1,325 +0,0 @@
-#!/usr/bin/perl -w
-#############################################################################
-##
-## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-## Contact: http://www.qt-project.org/
-##
-## This file is part of the utilities of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## 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.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU General
-## Public License version 3.0 as published by the Free Software Foundation
-## and appearing in the file LICENSE.GPL included in the packaging of this
-## file. Please review the following information to ensure the GNU General
-## Public License version 3.0 requirements will be met:
-## http://www.gnu.org/copyleft/gpl.html.
-##
-## Other Usage
-## Alternatively, this file may be used in accordance with the terms and
-## conditions contained in a signed written agreement between you and Nokia.
-##
-##
-##
-##
-##
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-# A script to get around some shortcomings in elf2e32, namely:
-# - Returning 0 even when there are errors.
-# - Excluding symbols from the dso file even when they are present in the ELF file.
-# - Including symbols in the the dso file even when they are not present in the ELF file.
-# - Overwriting the old dso file even when there are no changes (increases build time).
-
-use File::Copy;
-
-my @args = ();
-my @definput;
-my @defoutput;
-my @dso;
-my @tmpdso;
-foreach (@ARGV) {
-    if (/^--definput/o) {
-        @definput = split('=', $_);
-    } elsif (/^--defoutput/o) {
-        @defoutput = split('=', $_);
-    } elsif (/^--dso/o) {
-        @dso = split('=', $_);
-    } elsif (/^--tmpdso/o) {
-        @tmpdso = split('=', $_);
-        $tmpdso[0] = "--dso";
-    } else {
-        push(@args, $_);
-    }
-}
-
-@definput = () if (!@definput || ! -e $definput[1]);
-
-if (@dso && !@tmpdso || !@dso && @tmpdso) {
-    print("--dso and --tmpdso must be used together.\n");
-    exit 1;
-}
-
-my $buildingLibrary = (@defoutput && @dso) ? 1 : 0;
-
-my $fixupFile = "";
-my $runCount = 0;
-my $returnCode = 0;
-
-# For debugging. Make it nonzero to give verbose output.
-my $debugScript = 1;
-my @usedDefFiles;
-sub recordDefFile {
-    return if (!$debugScript);
-
-    my ($msg, $file) = @_;
-    my $content = "$msg, $file:\n";
-    my $defFileFd;
-    if (!open($defFileFd, "< $file")) {
-        print("Warning: Could not open $file (for debug analysis)\n");
-        return;
-    }
-    while (<$defFileFd>) {
-        $content .= $_;
-    }
-
-    push(@usedDefFiles, $content);
-}
-sub printRecordedDefFiles {
-    return if (!$debugScript);
-
-    foreach (@usedDefFiles) {
-        print ("$_\n");
-    }
-}
-
-sub missingSymbolMismatch
-{
-    my $missingSymbolSum = $_[0];
-
-    printRecordedDefFiles;
-
-    print("Bug in the native elf2e32 tool: Number of missing symbols does not\n");
-    print("match number of removed symbols in the output DEF file.\n\n");
-
-    print("Original elf2e32 output:\n");
-    print("  $missingSymbolSum Frozen Export\(s\) missing from the ELF file\n\n");
-
-    print("However $defoutput[1] contains more missing entries than that.\n\n");
-
-    print("This needs to be fixed manually in the DEF file.\n");
-    exit(2);
-}
-
-if ($debugScript) {
-    print("PATH: $ENV{PATH}\n");
-    print("EPOCROOT: $ENV{EPOCROOT}\n");
-}
-
-while (1) {
-    if (++$runCount > 2) {
-        printRecordedDefFiles if ($debugScript);
-        print("Internal error in $0, link succeeded, but exports may be wrong.\n");
-        last;
-    }
-
-    my $elf2e32Pipe;
-    my $elf2e32Cmd = "elf2e32 @args"
-         . " " . join("=", @definput)
-         . " " . join("=", @defoutput)
-         . " " . join("=", @tmpdso);
-    open($elf2e32Pipe, "$elf2e32Cmd 2>&1 |") or die ("Could not run elf2e32");
-
-    my %fixupSymbols;
-    my $foundBrokenSymbols = 0;
-    my $missingSymbolSum = 0;
-    my $missingSymbolCount = 0;
-    my $errors = 0;
-    while (<$elf2e32Pipe>) {
-        print;
-        if (/Error:/io) {
-            $errors = 1;
-        } elsif (/symbol ([a-z0-9_]+) absent in the DEF file, but present in the ELF file/io) {
-            $fixupSymbols{$1} = 1;
-            $foundBrokenSymbols = 1;
-        } elsif (/([0-9]+) Frozen Export\(s\) missing from the ELF file/io) {
-            $missingSymbolSum = $1;
-            $foundBrokenSymbols = 1;
-        }
-    }
-    close($elf2e32Pipe);
-
-    if ($debugScript) {
-        recordDefFile("Run no $runCount, elf2e32 DEF file input", "$definput[1]");
-        recordDefFile("Run no $runCount, elf2e32 DEF file output", "$defoutput[1]");
-    }
-
-    if ($errors) {
-        $returnCode = 1;
-        last;
-    }
-
-    if ($buildingLibrary && $runCount == 1) {
-        my $tmpDefFile;
-        my $newDefFile;
-        my $origDefFile;
-        my $savedNewDefFileLine = "";
-        if ($definput[1]) {
-            open($origDefFile, "< $definput[1]") or die("Could not open $definput[1]");
-        }
-        open($newDefFile, "< $defoutput[1]") or die("Could not open $defoutput[1]");
-        open($tmpDefFile, "> $defoutput[1].tmp") or die("Could not open $defoutput[1].tmp");
-        print($tmpDefFile "EXPORTS\n") or die("Could not write to temporary DEF file: $!");
-        $fixupFile = "$defoutput[1].tmp";
-        while (1) {
-            my $origDefLine;
-            my $origSym;
-            my $origOrdinal;
-            my $origExtraData;
-            my $newDefLine;
-            my $newSym;
-            my $newOrdinal;
-            my $newExtraData;
-            my $defLine;
-            my $sym;
-            my $ordinal;
-            my $extraData;
-            if ($definput[1]) {
-                # Read from original def file, and skip non-symbol lines
-                while (1) {
-                    $origDefLine = <$origDefFile>;
-                    if (defined($origDefLine)) {
-                        $origDefLine =~ s/[\n\r]//;
-                        if ($origDefLine =~ /([a-z0-9_]+) +\@ *([0-9]+) (.*)/i) {
-                            $origSym = $1;
-                            $origOrdinal = $2;
-                            $origExtraData = $3;
-                            last;
-                        }
-                    } else {
-                        last;
-                    }
-                }
-            }
-
-            if ($savedNewDefFileLine) {
-                # This happens if the new def file was missing an entry.
-                $newDefLine = $savedNewDefFileLine;
-                $newDefLine =~ /([a-z0-9_]+) +\@ *([0-9]+) (.*)/i or die("$0: Shouldn't happen");
-                $newSym = $1;
-                $newOrdinal = $2;
-                $newExtraData = $3;
-            } else {
-                # Read from new def file, and skip non-symbol lines
-                while (1) {
-                    $newDefLine = <$newDefFile>;
-                    if (defined($newDefLine)) {
-                        $newDefLine =~ s/[\n\r]//;
-                        if ($newDefLine =~ /([a-z0-9_]+) +\@ *([0-9]+) (.*)/i) {
-                            $newSym = $1;
-                            $newOrdinal = $2;
-                            $newExtraData = $3;
-                            last;
-                        }
-                    } else {
-                        last;
-                    }
-                }
-            }
-            $savedNewDefFileLine = "";
-            last if (!defined($origDefLine) && !defined($newDefLine));
-
-            if (defined($origOrdinal) && (!defined($newOrdinal) || $origOrdinal != $newOrdinal)) {
-                # If the symbol is missing from the new def file, use the original symbol.
-                $savedNewDefFileLine = $newDefLine;
-                $defLine = $origDefLine;
-                $sym = $origSym;
-                $ordinal = $origOrdinal;
-                $extraData = $origExtraData;
-            } else {
-                $defLine = $newDefLine;
-                $sym = $newSym;
-                $ordinal = $newOrdinal;
-                if ($newExtraData =~ /ABSENT/) {
-                    # Special case to keep "DATA [0-9]+" data in absent entries.
-                    $extraData = $origExtraData;
-                } else {
-                    $extraData = $newExtraData;
-                }
-            }
-            if (exists($fixupSymbols{$sym})) {
-                # Fix symbols that have returned after first being marked ABSENT.
-                $extraData =~ s/ ABSENT//;
-            } elsif ($defLine =~ s/; MISSING://) {
-                # Auto-absent symbols.
-                $extraData .= " ABSENT";
-                if (++$missingSymbolCount > $missingSymbolSum) {
-                    missingSymbolMismatch($missingSymbolSum);
-                }
-            }
-            print($tmpDefFile "\t$sym \@ $ordinal $extraData\n") or die("Could not write to temporary DEF file: $!");
-        }
-        print($tmpDefFile "\n") or die("Could not write to temporary DEF file: $!");
-        close($origDefFile) if ($definput[1]);
-        close($newDefFile);
-        close($tmpDefFile);
-
-        $definput[1] = "$defoutput[1].tmp";
-
-    }
-    if (!$foundBrokenSymbols || $errors) {
-        last;
-    }
-
-    print("Rerunning elf2e32 due to DEF file / ELF file mismatch\n");
-};
-
-if ($fixupFile) {
-    unlink($defoutput[1]);
-    move($fixupFile, $defoutput[1]);
-}
-
-exit $returnCode if ($returnCode != 0);
-
-if ($buildingLibrary) {
-    my $differenceFound = 0;
-
-    if (-e $dso[1]) {
-        my $dsoFile;
-        my $tmpdsoFile;
-        my $dsoBuf;
-        my $tmpdsoBuf;
-        open($dsoFile, "< $dso[1]") or die("Could not open $dso[1]");
-        open($tmpdsoFile, "< $tmpdso[1]") or die("Could not open $tmpdso[1]");
-        binmode($dsoFile);
-        binmode($tmpdsoFile);
-        while(read($dsoFile, $dsoBuf, 4096) && read($tmpdsoFile, $tmpdsoBuf, 4096)) {
-            if ($dsoBuf ne $tmpdsoBuf) {
-                $differenceFound = 1;
-            }
-        }
-        close($tmpdsoFile);
-        close($dsoFile);
-    } else {
-        $differenceFound = 1;
-    }
-
-    if ($differenceFound) {
-        copy($tmpdso[1], $dso[1]) or die("Could not copy $tmpdso[1] to $dso[1]: $!");
-    }
-}
diff --git a/bin/patch_capabilities b/bin/patch_capabilities
deleted file mode 100755
index 0d8962260ec..00000000000
--- a/bin/patch_capabilities
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-scriptpath=`dirname $0`
-perl $scriptpath/patch_capabilities.pl "$@"
diff --git a/bin/patch_capabilities.bat b/bin/patch_capabilities.bat
deleted file mode 100644
index 6a0c4d777ac..00000000000
--- a/bin/patch_capabilities.bat
+++ /dev/null
@@ -1 +0,0 @@
-@perl.exe -S %~dp0patch_capabilities.pl %*
diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl
deleted file mode 100755
index daa5e12930c..00000000000
--- a/bin/patch_capabilities.pl
+++ /dev/null
@@ -1,398 +0,0 @@
-#!/usr/bin/perl
-#############################################################################
-##
-## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-## Contact: http://www.qt-project.org/
-##
-## This file is part of the S60 port of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:LGPL$
-## 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.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU General
-## Public License version 3.0 as published by the Free Software Foundation
-## and appearing in the file LICENSE.GPL included in the packaging of this
-## file. Please review the following information to ensure the GNU General
-## Public License version 3.0 requirements will be met:
-## http://www.gnu.org/copyleft/gpl.html.
-##
-## Other Usage
-## Alternatively, this file may be used in accordance with the terms and
-## conditions contained in a signed written agreement between you and Nokia.
-##
-##
-##
-##
-##
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-#######################################################################
-#
-# A script for setting binary capabilities based on .pkg file contents.
-#
-#######################################################################
-
-#
-# Note: Please make sure to output all changes done to the pkg file in a print statements
-#       starting with "Patching: " to ease integration into IDEs!
-#
-
-use File::Copy;
-use File::Spec;
-use File::Path;
-
-sub Usage() {
-    print("This script can be used to set capabilities of all binaries\n");
-    print("specified for deployment in a .pkg file.\n");
-    print("If no capabilities are given, the binaries will be given the\n");
-    print("capabilities supported by self-signed certificates.\n\n");
-    print(" *** NOTE: If *_template.pkg file is given and one is using symbian-abld or\n");
-    print(" symbian-sbsv2 platform, 'target-platform' is REQUIRED. ***\n\n");
-    print(" *** NOTE2: When patching gcce binaries built with symbian-sbsv2 toolchain,\n");
-    print(" armv5 must be specified as platform.\n");
-    print("\nUsage: patch_capabilities.pl [-c|-t tmp_path] pkg_filename [target-platform [capability list]]\n");
-    print("\nE.g. patch_capabilities.pl myapp_template.pkg release-armv5 \"All -TCB\"\n");
-    print("\nThe parameter -c can be used to just check if package is compatible with self-signing\n");
-    print("without actually doing any patching.\n");
-    print("Explicit capability list cannot be used with -c parameter.\n");
-    print("\nThe parameter -t can be used to specify a dir under which the temporary files are created.\n");
-    print("Defaults to 'patch_capabilities_tmp' under the path to pkg file.\n");
-    exit();
-}
-
-sub trim($) {
-    my $string = shift;
-    $string =~ s/^\s+//;
-    $string =~ s/\s+$//;
-    return $string;
-}
-
-my $epocroot = $ENV{EPOCROOT};
-my $epocToolsDir = "";
-if ($epocroot ne "") {
-    $epocroot =~ s,\\,/,g;
-    if ($epocroot =~ m,[^/]$,) {
-        $epocroot = $epocroot."/";
-    }
-    $epocToolsDir = "${epocroot}epoc32/tools/";
-}
-
-my $nullDevice = "/dev/null";
-$nullDevice = "NUL" if ($^O =~ /MSWin/);
-
-my @capabilitiesToAllow = ("LocalServices", "NetworkServices", "ReadUserData", "UserEnvironment", "WriteUserData", "Location");
-my @capabilitiesSpecified = ();
-
-# If arguments were given to the script,
-if (@ARGV)
-{
-    # Parse the first given script argument as a ".pkg" file name.
-    my $pkgFileName = shift(@ARGV);
-    my $justCheck = "";
-    my $msgPrefix = "Patching:";
-    my $tempPatchPath = "";
-
-    if ($pkgFileName eq "-c") {
-        $pkgFileName = shift(@ARGV);
-        $justCheck = true;
-        $msgPrefix = "Warning:";
-    }
-
-    if ($pkgFileName eq "-t") {
-        $tempPatchPath = shift(@ARGV);
-        $pkgFileName = shift(@ARGV);
-    }
-
-    my ($pkgVolume, $pkgPath, $pkgPlainFileName) = File::Spec->splitpath($pkgFileName);
-    if ($tempPatchPath eq "") {
-        $tempPatchPath = File::Spec->catpath($pkgVolume, $pkgPath."patch_capabilities_tmp", "");
-    }
-
-    mkpath($tempPatchPath);
-
-    # These variables will only be set for template .pkg files.
-    my $target;
-    my $platform;
-
-    # Check if using template .pkg and set target/platform variables
-    if (($pkgFileName =~ m|_template\.pkg$|i) && -r($pkgFileName))
-    {
-        my $targetplatform;
-        my $templateFile;
-        my $templateContents;
-        open($templateFile, "< $pkgFileName") or die ("Could not open $pkgFileName");
-        $templateContents = <$templateFile>;
-        close($templateFile);
-        unless (($targetplatform = shift(@ARGV)) || $templateContents !~ /\$\(PLATFORM\)/)
-        {
-            Usage();
-        }
-        $targetplatform = "-" if (!$targetplatform);
-        my @tmpvalues = split('-', $targetplatform);
-        $target = $tmpvalues[0];
-        $platform = $tmpvalues[1];
-
-        # Convert visual target to real target (debug->udeb and release->urel)
-        $target =~ s/debug/udeb/i;
-        $target =~ s/release/urel/i;
-
-        if (($platform =~ m/^gcce$/i) && ($ENV{SBS_HOME})) {
-            # Print a informative note in case suspected misuse is detected.
-            print "\nNote: You must use armv5 as platform when packaging gcce binaries built using symbian-sbsv2 mkspec.\n";
-        }
-    }
-
-    # If the specified ".pkg" file exists (and can be read),
-    if (($pkgFileName =~ m|\.pkg$|i) && -r($pkgFileName))
-    {
-        print ("\n");
-        if ($justCheck) {
-            print ("Checking");
-        } else {
-            print ("Patching");
-        }
-        print (" package file and relevant binaries...\n");
-
-        if (!$justCheck) {
-            # If there are more arguments given, parse them as capabilities.
-            if (@ARGV)
-            {
-                @capabilitiesSpecified = ();
-                while (@ARGV)
-                {
-                    push (@capabilitiesSpecified, pop(@ARGV));
-                }
-            }
-        }
-
-        # Start with no binaries listed.
-        my @binaries = ();
-        my $binariesDelimeter = "///";
-
-        my $tempPkgFileName = $tempPatchPath."/__TEMP__".$pkgPlainFileName;
-
-        if (!$justCheck) {
-            unlink($tempPkgFileName);
-            open (NEW_PKG, ">>".$tempPkgFileName);
-        }
-        open (PKG, "<".$pkgFileName);
-
-        my $checkFailed = "";
-        my $somethingPatched = "";
-
-        # Parse each line.
-        while (<PKG>)
-        {
-            my $line = $_;
-            my $newLine = $line;
-
-            # Patch pkg UID if it's in protected range
-            if ($line =~ m/^\#.*\((0x[0-7][0-9a-fA-F]*)\).*$/)
-            {
-                my $oldUID = $1;
-                print ("$msgPrefix UID $oldUID is not compatible with self-signing!\n");
-
-                if ($justCheck) {
-                    $checkFailed = true;
-                } else {
-                    my $newUID = $oldUID;
-                    $newUID =~ s/0x./0xE/i;
-                    $newLine =~ s/$oldUID/$newUID/;
-                    print ("$msgPrefix Package UID changed to: $newUID.\n");
-                    $somethingPatched = true;
-                }
-            }
-
-            # If the line specifies a file, parse the source and destination locations.
-            if ($line =~ m|^ *\"([^\"]+)\"\s*\-\s*\"([^\"]+)\"|)
-            {
-                my $sourcePath = $1;
-
-                # If the given file is a binary, check the target and binary type (+ the actual filename) from its path.
-                if ($sourcePath =~ m:\w+(\.dll|\.exe)$:i)
-                {
-                    # Do preprocessing for template pkg,
-                    # In case of template pkg target and platform variables are set
-                    if(length($target) && length($platform))
-                    {
-                        $sourcePath =~ s/\$\(PLATFORM\)/$platform/gm;
-                        $sourcePath =~ s/\$\(TARGET\)/$target/gm;
-                    }
-
-                    my ($dummy1, $dummy2, $binaryBaseName) = File::Spec->splitpath($sourcePath);
-
-                    if ($justCheck) {
-                        push (@binaries, $binaryBaseName.$binariesDelimeter.$sourcePath);
-                    } else {
-                        # Copy original files over to patching dir
-                        # Patching dir will be flat to make it cleanable with QMAKE_CLEAN, so path
-                        # will be collapsed into the file name to avoid name collisions in the rare
-                        # case where custom pkg rules are used to install files with same names from
-                        # different directories (probably using platform checks to choose only one of them.)
-                        my $patchedSourcePath = $sourcePath;
-                        $patchedSourcePath =~ s/[\/\\:]/_/g;
-                        $patchedSourcePath = "$tempPatchPath/$patchedSourcePath";
-                        $newLine =~ s/^.*(\.dll|\.exe)(.*)(\.dll|\.exe)/\"$patchedSourcePath$2$3/i;
-
-                        copy($sourcePath, $patchedSourcePath) or die "$sourcePath cannot be copied for patching.";
-                        push (@binaries, $binaryBaseName.$binariesDelimeter.$patchedSourcePath);
-                    }
-                }
-            }
-
-            print NEW_PKG $newLine;
-
-            chomp ($line);
-        }
-
-        close (PKG);
-        if (!$justCheck) {
-            close (NEW_PKG);
-
-            unlink($pkgFileName);
-            rename($tempPkgFileName, $pkgFileName);
-        }
-        print ("\n");
-
-        my $baseCommandToExecute = "${epocToolsDir}elftran -vid 0x0 -capability \"%s\" ";
-
-        # Actually set the capabilities of the listed binaries.
-        foreach my $binariesItem(@binaries)
-        {
-            $binariesItem =~ m|^(.*)$binariesDelimeter(.*)$|;
-            my $binaryBaseName = $1;
-            my $binaryPath = $2;
-
-            # Create the command line for setting the capabilities.
-            my $commandToExecute = $baseCommandToExecute;
-            my $executeNeeded = "";
-            if (@capabilitiesSpecified)
-            {
-                $commandToExecute = sprintf($baseCommandToExecute, join(" ", @capabilitiesSpecified));
-                $executeNeeded = true;
-                my $capString = join(" ", @capabilitiesSpecified);
-                print ("$msgPrefix Patching the the Vendor ID to 0 and the capabilities used to: \"$capString\" in \"$binaryBaseName\".\n");
-            } else {
-                # Test which capabilities are present and then restrict them to the allowed set.
-                # This avoid raising the capabilities of apps that already have none.
-                my $dllCaps;
-                open($dllCaps, "${epocToolsDir}elftran -dump s $binaryPath |") or die ("ERROR: Could not execute elftran");
-                my $capsFound = 0;
-                my $originalVid;
-                my @capabilitiesToSet;
-                my $capabilitiesToAllow = join(" ", @capabilitiesToAllow);
-                my @capabilitiesToDrop;
-                while (<$dllCaps>) {
-                    if (/^Secure ID: ([0-7][0-9a-fA-F]*)$/) {
-                        my $exeSid = $1;
-                        if ($binaryBaseName =~ /\.exe$/) {
-                            # Installer refuses to install protected executables in a self signed package, so abort if one is detected.
-                            # We can't simply just patch the executable SID, as any registration resources executable uses will be linked to it via SID.
-                            print ("$msgPrefix Executable with SID in the protected range (0x$exeSid) detected: \"$binaryBaseName\". A self-signed sis with protected executables is not supported.\n\n");
-                            $checkFailed = true;
-                        }
-                    }
-                    if (/^Vendor ID: ([0-9a-fA-F]*)$/) {
-                        $originalVid = "$1";
-                    }
-                    if (!$capsFound) {
-                        $capsFound = 1 if (/Capabilities:/);
-                    } else {
-                        $_ = trim($_);
-                        if ($capabilitiesToAllow =~ /$_/) {
-                            push(@capabilitiesToSet, $_);
-                            if (Location =~ /$_/i) {
-                                print ("$msgPrefix \"Location\" capability detected for binary: \"$binaryBaseName\". This capability is not self-signable for S60 3rd edition feature pack 1 devices, so installing this package on those devices will most likely not work.\n\n");
-                            }
-                        } else {
-                            push(@capabilitiesToDrop, $_);
-                        }
-                    }
-                }
-                close($dllCaps);
-                if ($originalVid !~ "00000000") {
-                    print ("$msgPrefix Non-zero vendor ID (0x$originalVid) is incompatible with self-signed packages in \"$binaryBaseName\"");
-                    if ($justCheck) {
-                        print (".\n\n");
-                        $checkFailed = true;
-                    } else {
-                        print (", setting it to zero.\n\n");
-                        $executeNeeded = true;
-                    }
-                }
-                if ($#capabilitiesToDrop) {
-                    my $capsToDropStr = join("\", \"", @capabilitiesToDrop);
-                    $capsToDropStr =~ s/\", \"$//;
-
-                    if ($justCheck) {
-                        print ("$msgPrefix The following capabilities used in \"$binaryBaseName\" are not compatible with a self-signed package: \"$capsToDropStr\".\n\n");
-                        $checkFailed = true;
-                    } else {
-                        if ($binaryBaseName =~ /\.exe$/) {
-                            # While libraries often have capabilities they do not themselves need just to enable them to be loaded by wider variety of processes,
-                            # executables are more likely to need every capability they have been assigned or they won't function correctly.
-                            print ("$msgPrefix Executable with capabilities incompatible with self-signing detected: \"$binaryBaseName\". (Incompatible capabilities: \"$capsToDropStr\".) Reducing capabilities is only supported for libraries.\n");
-                            $checkFailed = true;
-                        } else {
-                            print ("$msgPrefix The following capabilities used in \"$binaryBaseName\" are not compatible with a self-signed package and will be removed: \"$capsToDropStr\".\n");
-                            $executeNeeded = true;
-                        }
-                    }
-                }
-                $commandToExecute = sprintf($baseCommandToExecute, join(" ", @capabilitiesToSet));
-            }
-            $commandToExecute .= $binaryPath;
-
-            if ($executeNeeded) {
-                # Actually execute the elftran command to set the capabilities.
-                print ("\n");
-                system ("$commandToExecute > $nullDevice");
-                $somethingPatched = true;
-            }
-        }
-
-        if ($checkFailed) {
-            print ("\n");
-            if ($justCheck) {
-                print ("$msgPrefix The package is not compatible with self-signing.\n");
-            } else {
-                print ("$msgPrefix Unable to patch the package for self-singing.\n");
-            }
-            print ("Use a proper developer certificate for signing this package.\n\n");
-            exit(1);
-        }
-
-        if ($justCheck) {
-            print ("Package is compatible with self-signing.\n");
-        } else {
-            if ($somethingPatched) {
-                print ("NOTE: A patched package may not work as expected due to reduced capabilities and other modifications,\n");
-                print ("      so it should not be used for any kind of Symbian signing or distribution!\n");
-                print ("      Use a proper certificate to avoid the need to patch the package.\n");
-            } else {
-                print ("No patching was required!\n");
-            }
-        }
-        print ("\n");
-    } else {
-        Usage();
-    }
-}
-else
-{
-    Usage();
-}
diff --git a/config.tests/unix/openssl/openssl.pri b/config.tests/unix/openssl/openssl.pri
deleted file mode 100644
index 377d6307c89..00000000000
--- a/config.tests/unix/openssl/openssl.pri
+++ /dev/null
@@ -1,10 +0,0 @@
-# Empty file since Qt 4.6
-# I'm too lazy to find all places where this file is included
-
-symbian{
-    TRY_INCLUDEPATHS = $${EPOCROOT}epoc32 $${EPOCROOT}epoc32/include $${EPOCROOT}epoc32/include/stdapis $${EPOCROOT}epoc32/include/stdapis/sys $$OS_LAYER_LIBC_SYSTEMINCLUDE $$QMAKE_INCDIR $$INCLUDEPATH 
-    for(p, TRY_INCLUDEPATHS) {
-        pp = $$join(p, "", "", "/openssl")
-        exists($$pp):INCLUDEPATH *= $$pp
-    } 
-}
diff --git a/config.tests/unix/openssl/openssl.pro b/config.tests/unix/openssl/openssl.pro
index 6891e7832f0..1c537cb2b14 100644
--- a/config.tests/unix/openssl/openssl.pro
+++ b/config.tests/unix/openssl/openssl.pro
@@ -1,4 +1,3 @@
 SOURCES = openssl.cpp
 CONFIG -= x11 qt
 mac:CONFIG -= app_bundle
-include(openssl.pri)
diff --git a/configure b/configure
index 12a8bab375d..d49ecd673d5 100755
--- a/configure
+++ b/configure
@@ -7172,9 +7172,6 @@ QMakeVar set sql-plugins "$SQL_PLUGINS"
 [ "$CFG_SXE" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
 [ "$CFG_DBUS" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
 
-# ATM we need this define to compile Qt. Remove later!
-QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_S60"
-
 # X11/Unix/Mac only configs
 [ "$CFG_CUPS" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
 [ "$CFG_ICONV" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
diff --git a/doc/src/examples/applicationicon.qdoc b/doc/src/examples/applicationicon.qdoc
index 6e97b6b2aa0..6f54ff6bfdc 100644
--- a/doc/src/examples/applicationicon.qdoc
+++ b/doc/src/examples/applicationicon.qdoc
@@ -47,29 +47,8 @@
     \c /usr/share/icons/hicolor/64x64/apps directory
     and desktop files in the \c /usr/share/applications/hildon directory.
 
-    \section1 Creating an icon for Symbian
-
-    Symbian uses Scalable Vector Graphics (SVG Tiny 1.1+) to render
-    application icons in the application menu. Therefore icons could be
-    created manually with a text editor, since SVG files are plain text with
-    XML syntax, but usually you would use a vector graphics program that is
-    able to output SVG files. Popular graphics programs such as Adobe
-    Illustrator or Inkscape are able to do so.
-
-    For best results, the icon should be created on a 44x44 pixel canvas.
-    Otherwise the image might be scaled in unexpected ways.
-
-    Once you have created your icon, make sure that it is stored according to
-    the SVG-Tiny 1.1+ standard. Inkscape, for instance, is not able to save
-    images that way, but there are tools that can convert general SVG files
-    into the Tiny format. For instance, the svg2svgt tool that is bundled with
-    Symbian 3rd and 5th editon SDKs under the folder s60tools can do this
-    conversion to some extent. Another tool to convert SVG to SVG Tiny is SVG
-    Pony.
-
     \section1 Adding the icons to the project
 
-    Edit the .pro file and specify the ICON variable for the symbian target. 
     For Maemo, we need to add that the \c .desktop and icon file should be
     installed.
 
diff --git a/doc/src/examples/htmlinfo.qdoc b/doc/src/examples/htmlinfo.qdoc
index 96c61f5541d..0f55b4b28e7 100644
--- a/doc/src/examples/htmlinfo.qdoc
+++ b/doc/src/examples/htmlinfo.qdoc
@@ -32,14 +32,7 @@
     The XML HTML Info example provides a simple command line utility that
     scans the current directory for HTML files and prints statistics about
     them to standard out.
-    
-    \note Standard out is redirected on some platforms. On Symbian using Open
-    C \c stdout is by default directed to the console window, but this window
-    may not always be visible. To redirect to a file instead, locate the \c
-    c:\\system\\data\\config.ini file (on either the emulator or the device)
-    and change \c STDOUT to point to \c MEDIA4. This will redirect the console
-    to \c c:\\system\\data\\out.txt.
-    
+
     The files are parsed using a QXmlStreamReader object. If the file does
     not contain a well-formed XML document, a description of the error is
     printed to the standard error console.
diff --git a/doc/src/examples/symbianvibration.qdoc b/doc/src/examples/symbianvibration.qdoc
deleted file mode 100644
index 7c2e055f4c6..00000000000
--- a/doc/src/examples/symbianvibration.qdoc
+++ /dev/null
@@ -1,192 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms
-** and conditions contained in a signed written agreement between you
-** and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*! \example widgets/symbianvibration
-    \group all-examples
-    \title Symbian Vibration Example
-
-    The Symbian Vibrator example shows how to get fine-grained vibration
-    control on Symbian devices.
-
-    Native Symbian APIs have to be used to enable vibration, since QtMobility
-    doesn't provide an interface for it yet. It is, however, planned to be
-    included in a future release. In anticipation for that, we make use of the
-    \c XQVibra class that was a part of the Mobile Extensions Technology Preview
-    API for Qt for Symbian. The pre-compiled libraries are no longer compatible
-    with Qt 4.6, but we can include the source code itself with the project.
-
-    \image symbianvibration-example.png Screenshot of the Symbian Vibration example
-
-    The example application divides the window into rectangles, which can be
-    pressed to make the device vibrate. Pressing different rectangles make the
-    device vibrate with different intensities. Each rectangle has a different
-    color and its intensity number is drawn on top of it. Moving the cursor
-    from one rectangle to another changes the vibration intensity to that of
-    the new one.  Vibration stops when the mouse button has been released. It
-    is also possible to launch a short burst of vibration through the menu.
-
-    The example consists of four classes:
-
-    \list
-    \o \c XQVibra is the vibration interface class taken from the Mobile
-       Extensions for Qt for Symbian.
-
-    \o \c XQVibraPrivate is the Symbian specific private implementation of the
-       vibration implementation.
-
-    \o \c VibrationSurface is a custom widget that uses a XQVibra instance to
-       vibrate the device depending on where the user presses.
-
-    \o \c MainWindow inherits from QMainWindow and contains a \c VibrationSurface
-       as its central widget, and also has a menu from which it is possible to
-       make the phone vibrate.
-    \endlist
-
-    \section1 XQVibra Class Definition
-
-    The \c XQVibra class uses the pimpl-idiom to hide the platform specific
-    implementation behind a common interface. Technically it would be possible
-    to support more target platforms, with only the addition of a private
-    implementation. The rest of the code would work the same, since only the
-    common interface is used.
-
-    \snippet examples/widgets/symbianvibration/xqvibra.h 0
-
-    \c XQVibra provides a very simple interface for us to use. The interesting
-    part are the three slots \c start(), \c stop() and \c setIntensity(). Calling the start
-    method initiates vibration for the specified duration. Calling it while the
-    device is already vibrating causes it to stop the current one and start the
-    new one, even if the intensities are the same. The \c setIntensity() method
-    should be called before starting vibration.
-
-
-    \section1 VibrationSurface Class Definition
-
-    \c VibrationSurface inherits from QWidget and acts like a controller for a
-    \c XQVibra object. It responds to mouse events and performs custom painting.
-
-    \snippet examples/widgets/symbianvibration/vibrationsurface.h 0
-
-    The virtual event methods are reimplemented from QWidget. As can be seen,
-    there is no public programmable interface beyond what QWidget provides.
-
-
-    \section1 VibrationSurface Class Implementation
-
-    Mouse events control the intensity of the vibration.
-
-    \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 0
-    \codeline
-    \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 1
-    \codeline
-    \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 2
-
-    Presses starts the vibration, movement changes the intensity and releases
-    stops the vibration. To set the right amount of vibration, the private
-    method \c applyIntensity() is used. It sets the vibration intensity according to
-    which rectangle the mouse currently resides in.
-
-    \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 3
-
-    We make sure only to change the intensity if it is different than last
-    time, so that the vibrator isn't stopped and restarted unnecessarily.
-
-    The range of vibration intensity ranges from 0 to XQVibra::MaxIntensity. We
-    divide this range into a set of levels. The number of levels and the intensity
-    increase for each level are stored in two constants.
-
-    \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 4
-
-    Each rectangle has an intensity of one \c IntensityPerLevel more than the
-    previous one.
-
-    \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 5
-
-    The rectangles are either put in a row, if the widget's width is greater
-    than its height (landscape), otherwise they are put in a column (portrait).
-    Each rectangle's size is thus dependent on the length of the width or the
-    height of the widget, whichever is longer. The length is then divided by
-    the number of levels, which gets us either the height or the width of each
-    rectangle. The dx and dy specify the distance from one rectangle to the
-    next, which is the same as either the width or height of the rectangle.
-
-    \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 6
-
-    For each level of intensity, we draw a rectangle with increasing
-    brightness.  On top of the rectangle a text label is drawn, specifying the
-    intesity of this level. We use the rectangle rect as a template for
-    drawing, and move it down or right at each iteration.
-
-    The intensity is calculated by dividing the greater of the width and height
-    into \c NumberOfLevels slices.
-
-    \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 7
-
-    In case the widget's geometry is too small to fit all the levels, the user
-    interface will not work. For simplicity, we just return 0.
-
-    When we know the axis along which the rectangles lie, we can find the one
-    in which the mouse cursor lie.
-
-    \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 8
-
-    The final clamp of the intensity value at the end is necessary in case the
-    mouse coordinate lies outside the widget's geometry.
-
-
-    \section1 MainWindow Class Definition
-
-    Here's the definition of the \c MainWindow class:
-
-    \snippet examples/widgets/symbianvibration/mainwindow.h 0
-
-    \c MainWindow is a top level window that uses a \c XQVibra and a
-    \c VibrationSurface. It also adds a menu option to the menu bar which can
-    start a short vibration.
-
-    \section1 MainWindow Class Implementation
-
-    In the \c MainWindow constructor the \c XQVibra and the \c VibrationSurface
-    are created. An action is added to the menu and is connected to the vibrate
-    slot.
-
-    \snippet examples/widgets/symbianvibration/mainwindow.cpp 0
-
-    The \c vibrate() slot offers a way to invoke the vibration in case no
-    mouse is present on the device.
-
-    \snippet examples/widgets/symbianvibration/mainwindow.cpp 1
-
-    \section1 Symbian Vibration Library
-
-    The \c XQVibra class requires a platform library to be included. It is
-    included in the \c .pro file for the symbian target.
-
-    \quotefromfile examples/widgets/symbianvibration/symbianvibration.pro
-    \skipto /^symbian \{/
-    \printuntil /^\}/
-*/
diff --git a/doc/src/images/symbianvibration-example.png b/doc/src/images/symbianvibration-example.png
deleted file mode 100644
index 21461b6a19605d83925c948deb200db95b649cf4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 23217
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

diff --git a/examples/embedded/raycasting/raycasting.cpp b/examples/embedded/raycasting/raycasting.cpp
index f98b9605f4e..1b94ab7d624 100644
--- a/examples/embedded/raycasting/raycasting.cpp
+++ b/examples/embedded/raycasting/raycasting.cpp
@@ -253,10 +253,6 @@ protected:
     void resizeEvent(QResizeEvent*) {
 #if defined(Q_OS_WINCE_WM)
         touchDevice = true;
-#elif defined(Q_OS_SYMBIAN)
-        // FIXME: use HAL
-        if (width() > 480 || height() > 480)
-            touchDevice = true;
 #else
         touchDevice = false;
 #endif
diff --git a/examples/richtext/calendar/calendar.pro b/examples/richtext/calendar/calendar.pro
index f65e8852bde..3867a027cfd 100644
--- a/examples/richtext/calendar/calendar.pro
+++ b/examples/richtext/calendar/calendar.pro
@@ -2,8 +2,6 @@ HEADERS     = mainwindow.h
 SOURCES     = main.cpp \
               mainwindow.cpp
 
-# App cannot be with name "calendar" in Symbian due to same named system component.
-
 # install
 target.path = $$[QT_INSTALL_EXAMPLES]/qtbase/richtext/calendar
 sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS calendar.pro
diff --git a/examples/widgets/imageviewer/imageviewer.pro b/examples/widgets/imageviewer/imageviewer.pro
index 5468a951ca3..a8d92a6b180 100644
--- a/examples/widgets/imageviewer/imageviewer.pro
+++ b/examples/widgets/imageviewer/imageviewer.pro
@@ -9,8 +9,6 @@ sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/widgets/imageviewer
 INSTALLS += target sources
 
 
-#Symbian has built-in component named imageviewer so we use different target
-
 wince*: {
    DEPLOYMENT_PLUGIN += qjpeg qgif
 }
diff --git a/qtbase.pro b/qtbase.pro
index b766a7a776a..56f40cdb7a9 100644
--- a/qtbase.pro
+++ b/qtbase.pro
@@ -35,9 +35,9 @@ contains(PROJECTS, tests) {
     message(Unknown PROJECTS: $$PROJECTS)
 }
 
-!symbian: confclean.depends += clean
+confclean.depends += clean
 confclean.commands =
-unix:!symbian {
+unix {
   confclean.commands += (cd config.tests/unix/stl && $(MAKE) distclean); \
 			(cd config.tests/unix/endian && $(MAKE) distclean); \
 			(cd config.tests/unix/ipv6 && $(MAKE) distclean); \
@@ -88,32 +88,6 @@ win32 {
 			-$(DEL_FILE) .qmake.cache $$escape_expand(\\n\\t) \
 			(cd qmake && $(MAKE) distclean)
 }
-symbian {
-  confclean.depends += distclean
-  contains(QMAKE_HOST.os, "Windows") {
-    confclean.commands += \
-            (cd src\\tools\\moc && $(MAKE) distclean) $$escape_expand(\\n\\t) \
-            (cd src\\tools\\rcc && $(MAKE) distclean) $$escape_expand(\\n\\t) \
-            (cd src\\tools\\uic && $(MAKE) distclean) $$escape_expand(\\n\\t) \
-            -$(DEL_FILE) src\\corelib\\global\\qconfig.h $$escape_expand(\\n\\t) \
-            -$(DEL_FILE) src\\corelib\\global\\qconfig.cpp $$escape_expand(\\n\\t) \
-            -$(DEL_FILE) mkspecs\\qconfig.pri $$escape_expand(\\n\\t) \
-            -$(DEL_FILE) mkspecs\\qmodule.pri $$escape_expand(\\n\\t) \
-            -$(DEL_FILE) .qmake.cache $$escape_expand(\\n\\t) \
-            (cd qmake && $(MAKE) distclean)
-  } else {
-    confclean.commands += \
-            (cd src/tools/moc && $(MAKE) distclean) $$escape_expand(\\n\\t) \
-            (cd src/tools/rcc && $(MAKE) distclean) $$escape_expand(\\n\\t) \
-            (cd src/tools/uic && $(MAKE) distclean) $$escape_expand(\\n\\t) \
-            -$(DEL_FILE) src/corelib/global/qconfig.h $$escape_expand(\\n\\t) \
-            -$(DEL_FILE) src/corelib/global/qconfig.cpp $$escape_expand(\\n\\t) \
-            -$(DEL_FILE) mkspecs/qconfig.pri $$escape_expand(\\n\\t) \
-            -$(DEL_FILE) mkspecs/qmodule.pri $$escape_expand(\\n\\t) \
-            -$(DEL_FILE) .qmake.cache $$escape_expand(\\n\\t) \
-            (cd qmake && $(MAKE) distclean)
-  }
-}
 QMAKE_EXTRA_TARGETS += confclean
 qmakeclean.commands += (cd qmake && $(MAKE) clean)
 QMAKE_EXTRA_TARGETS += qmakeclean
diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp
index 464e53d7488..f1c9015092e 100644
--- a/tests/auto/corelib/io/qdir/tst_qdir.cpp
+++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp
@@ -1848,8 +1848,6 @@ void tst_QDir::equalityOperator_data()
     //need a path in the root directory that is unlikely to be a symbolic link.
 #if defined (Q_OS_WIN)
     QString pathinroot("c:/windows/..");
-#elif defined (Q_OS_SYMBIAN)
-    QString pathinroot("c:/data/..");
 #else
     QString pathinroot("/sbin/..");
 #endif
diff --git a/tests/auto/network/ssl/qsslkey/qsslkey.pro b/tests/auto/network/ssl/qsslkey/qsslkey.pro
index d8823622907..4af35487cd5 100644
--- a/tests/auto/network/ssl/qsslkey/qsslkey.pro
+++ b/tests/auto/network/ssl/qsslkey/qsslkey.pro
@@ -25,5 +25,4 @@ wince* {
     DEFINES += SRCDIR=\\\".\\\"
 } else {
     DEFINES+= SRCDIR=\\\"$$PWD\\\"
-    TARGET.CAPABILITY = NetworkServices
 }
diff --git a/tests/auto/widgets/util/util.pro b/tests/auto/widgets/util/util.pro
index b7fe35ce4c6..33f28450019 100644
--- a/tests/auto/widgets/util/util.pro
+++ b/tests/auto/widgets/util/util.pro
@@ -5,7 +5,3 @@ SUBDIRS=\
    qsystemtrayicon \
    qundogroup \
    qundostack \
-
-symbian:SUBDIRS -= \
-    qsystemtrayicon \
-
diff --git a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp
index 31783a4431d..12420e25a1e 100644
--- a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp
+++ b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp
@@ -44,26 +44,7 @@
 
 #include <math.h>
 
-#ifdef Q_OS_SYMBIAN
-# include <e32std.h>
-typedef RMutex NativeMutexType;
-void NativeMutexInitialize(NativeMutexType *mutex)
-{
-    mutex->CreateLocal();
-}
-void NativeMutexDestroy(NativeMutexType *mutex)
-{
-    mutex->Close();
-}
-void NativeMutexLock(NativeMutexType *mutex)
-{
-    mutex->Wait();
-}
-void NativeMutexUnlock(NativeMutexType *mutex)
-{
-    mutex->Signal();
-}
-#elif defined(Q_OS_UNIX)
+#if defined(Q_OS_UNIX)
 #  include <pthread.h>
 #  include <errno.h>
 typedef pthread_mutex_t NativeMutexType;
diff --git a/tests/manual/qnetworkaccessmanager/qget/qget.pro b/tests/manual/qnetworkaccessmanager/qget/qget.pro
index 80af8a556f5..341f772b518 100644
--- a/tests/manual/qnetworkaccessmanager/qget/qget.pro
+++ b/tests/manual/qnetworkaccessmanager/qget/qget.pro
@@ -5,6 +5,3 @@ CONFIG += console
 # Input
 SOURCES += qget.cpp
 HEADERS += qget.h
-
-symbian: TARGET.CAPABILITY += ReadUserData NetworkServices
-
-- 
GitLab