code:
commit 88c6e9334c8440721189ef7d020fa94d47f30f8b
Author: Harald Sitter <sitter@kde.org>
Date:   Fri Aug 1 16:34:03 2014 +0200

    do not use global static systembus instance

    global static destruction order cannot be controlled and we need our bus
    to disconnect from the consolekit signals, so use our own bus instance
    to connect to systembus signals

    REVIEW: 119545

diff --git a/core/polkitqt1-authority.cpp b/core/polkitqt1-authority.cpp
index dd014cf..f25354d 100644
--- a/core/polkitqt1-authority.cpp
+++ core/polkitqt1-authority.cpp
@@ -83,7 +83,10 @@ public:
     // Polkit will return NULL on failures, hence we use it instead of 0
     Private(Authority *qq) : q(qq)
             , pkAuthority(NULL)
-            , m_hasError(false) {}
+            , m_hasError(false)
+            , m_systemBus(0)
+    {
+    }

     ~Private();

@@ -103,6 +106,13 @@ public:
     bool m_hasError;
     Authority::ErrorCode m_lastError;
     QString m_errorDetails;
+    // Local system bus. QDBusConnection::systemBus() may only be savely used
+    // inside a QCoreApplication scope as for example destruction of connected
+    // objects need to happen before the bus disappears. Since this class however
+    // is a global static and systemBus() internally is a global static we
+    // cannot assure destruction order. Instead we create a local copy of the
+    // global systemBus instance so we can make life time to our needs.
+    // This prevents crashes when cleaning up the global statics.
     QDBusConnection *m_systemBus;
     GCancellable *m_checkAuthorizationCancellable,
     *m_enumerateActionsCancellable,
@@ -127,6 +137,7 @@ public:

 Authority::Private::~Private()
 {
+    delete m_systemBus;
     g_object_unref(m_checkAuthorizationCancellable);
     g_object_unref(m_enumerateActionsCancellable);
     g_object_unref(m_registerAuthenticationAgentCancellable);
@@ -170,6 +181,9 @@ void Authority::Private::init()

     g_type_init();

+    m_systemBus = new QDBusConnection(QDBusConnection::connectToBus(QDBusConnection::SystemBus,
+                                                                    QString("polkit_qt_system_bus")));
+
     m_checkAuthorizationCancellable = g_cancellable_new();
     m_enumerateActionsCancellable = g_cancellable_new();
     m_registerAuthenticationAgentCancellable = g_cancellable_new();
@@ -219,7 +233,7 @@ void Authority::Private::init()

     // then we need to extract all seats from ConsoleKit
     QDBusMessage msg = QDBusMessage::createMethodCall(consoleKitService, consoleKitManagerPath, consoleKitManagerInterface, "GetSeats");
-    msg = QDBusConnection::systemBus().call(msg);
+    msg = m_systemBus->call(msg);
     if (!msg.arguments().isEmpty()) {
         // this method returns a list with present seats
         QList<QString> seats;
@@ -256,8 +270,7 @@ void Authority::Private::seatSignalsConnect(const QString &seat)
 void Authority::Private::dbusSignalAdd(const QString &service, const QString &path, const QString &interface, const QString &name)
 {
     // FIXME: This code seems to be nonfunctional - it needs to be fixed somewhere (is it Qt BUG?)
-    QDBusConnection::systemBus().connect(service, path, interface, name,
-                                         q, SLOT(dbusFilter(QDBusMessage)));
+    m_systemBus->connect(service, path, interface, name, q, SLOT(dbusFilter(QDBusMessage)));
 }

 void Authority::Private::dbusFilter(const QDBusMessage &message)


code:
<PISI>
    <Source>
        <Name>polkit-qt</Name>
        <Homepage>http://www.kde.org</Homepage>
        <Packager>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Packager>
        <License>GPL2</License>
        <IsA>app:gui</IsA>
        <Summary>A library that allows developers to access PolicyKit API with a nice Qt-style API</Summary>
        <Description>A library that allows developers to access PolicyKit API with a nice Qt-style API</Description>
        <Archive sha1sum="042b8a42e88bd578c27600e9b70c4e142a39da91" type="tarbz2">http://download.kde.org/stable/apps/KDE4.x/admin/polkit-qt-1-0.112.0.tar.bz2</Archive>
        <BuildDependencies>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency versionFrom="2.50.2">glib2-devel</Dependency>
            <Dependency>polkit-devel</Dependency>
            <Dependency versionFrom="13.0.4">mesa-devel</Dependency>
            <Dependency>cmake</Dependency>
        </BuildDependencies>
        <Patches>
            <Patch>systembus-usage.patch</Patch>
        </Patches>
    </Source>
    <Package>
        <Name>polkit-qt</Name>
        <RuntimeDependencies>
            <Dependency versionFrom="5.9.3">qt5-base</Dependency>
            <Dependency versionFrom="2.50.2">glib2</Dependency>
            <Dependency>polkit</Dependency>
            <Dependency>libgcc</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="doc">/usr/share/doc</Path>
            <Path fileType="library">/usr/lib</Path>
        </Files>
    </Package>

    <Package>
        <Name>polkit-qt-devel</Name>
        <RuntimeDependencies>
            <Dependency release="current">polkit-qt</Dependency>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency versionFrom="2.50.2">glib2-devel</Dependency>
            <Dependency>polkit-devel</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib/pkgconfig</Path>
            <Path fileType="header">/usr/include/polkit-qt5-1</Path>
        </Files>
    </Package>

    <History>
        <Update release="7">
            <Date>2018-01-18</Date>
            <Version>0.112</Version>
            <Comment>Rebuild for qt5.9.3</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
        <Update release="6">
            <Date>2017-02-20</Date>
            <Version>0.112</Version>
            <Comment>Rebuild for new Toolchain</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="5">
            <Date>2016-10-21</Date>
            <Version>0.112</Version>
            <Comment>Version Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="4">
            <Date>2016-06-09</Date>
            <Version>0.112</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="3">
            <Date>2016-05-16</Date>
            <Version>0.112</Version>
            <Comment>Release Bump</Comment>
            <Name>PisiLinux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="2">
            <Date>2016-05-01</Date>
            <Version>0.112</Version>
            <Comment>Release Bump</Comment>
            <Name>PisiLinux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-04-17</Date>
            <Version>0.112</Version>
            <Comment>First release</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
    </History>
</PISI>

repo_name: ayhanyalcinsoy/main


code:
<PISI>
    <Source>
        <Name>lxqt-policykit</Name>
        <Summary xml:lang="tr">Policykit agent.</Summary>
        <Description xml:lang="tr">LXQt policykit doğrulama aracı.</Description>
    </Source>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/copyleft/gpl.txt

from pisi.actionsapi import qt5
from pisi.actionsapi import pisitools

def setup():
    qt5.configure()

def build():
    qt5.make()

def install():
    qt5.install()

    pisitools.dodoc("LICENSE.GPL3-EXCEPT", "LICENSE.GPLv3", "LICENSE.LGPLv3", "LICENSE.GPL3", "LICENSE.LGPL3", "LICENSE.GPL", "LICENSE.GPL2", "LICENSE.LGPLv3", "README")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>qt5-3d</Name>
        <Homepage>http://qt-project.org/</Homepage>
        <Packager>
            <Name>Stefan Gronewold</Name>
            <Email>groni@pisilinux.org</Email>
        </Packager>
        <License>custom</License>
        <License>FDL</License>
        <License>GPL3</License>
        <License>LGPL3</License>
        <PartOf>desktop</PartOf>
        C++ and QML APIs for easy inclusion of 3D graphics
        <Description>C++ and QML APIs for easy inclusion of 3D graphics</Description>
        <Archive sha1sum="d8eb7d5d87364319e9044ded9c587cc8d8e88fb4" type="tarxz">http://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qt3d-opensource-src-5.9.3.tar.xz</Archive>
        <BuildDependencies>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative-devel</Dependency>
            <Dependency versionFrom="3.3.1">assimp-devel</Dependency>
            <Dependency>zlib-devel</Dependency>
        </BuildDependencies>
    </Source>
    <Package>
        <Name>qt5-3d</Name>
        C++ and QML APIs for easy inclusion of 3D graphics
        <RuntimeDependencies>
            <Dependency versionFrom="5.9.3">qt5-base</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative</Dependency>
            <Dependency>libgcc</Dependency>
            <Dependency versionFrom="3.3.1">assimp</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="executable">/usr/bin</Path>
            <Path fileType="library">/usr/lib/qt5</Path>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="doc">/usr/share/doc</Path>
        </Files>
    </Package>

    <Package>
        <Name>qt5-3d-devel</Name>
        Development files for qt5-3d
        <RuntimeDependencies>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative-devel</Dependency>
            <Dependency release="current">qt5-3d</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="header">/usr/include/qt5</Path>
            <Path fileType="config">/usr/lib/cmake</Path>
            <Path fileType="data">/usr/lib/pkgconfig</Path>
        </Files>
    </Package>

    <History>
        <Update release="2">
            <Date>2018-01-18</Date>
            <Version>5.9.3</Version>
            <Comment>version bump</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2017-02-21</Date>
            <Version>5.7.1</Version>
            <Comment>First Release</Comment>
            <Name>Stefan Gronewold</Name>
            <Email>groni@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/copyleft/gpl.txt

from pisi.actionsapi import cmaketools
from pisi.actionsapi import get
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools

def setup():
    shelltools.makedirs("build")
    shelltools.cd("build")
    cmaketools.configure("-DCMAKE_INSTALL_PREFIX=/usr \
                          -DCMAKE_BUILD_TYPE=Release \
                          -DCMAKE_LIBDIR=/usr/lib", sourceDir="..")
def build():
    shelltools.cd("build")
    cmaketools.make()

def install():
    shelltools.cd("build")
    cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())

    pisitools.domove("/usr/lib64/*", "/usr/lib")
    pisitools.removeDir("/usr/lib64")

    shelltools.cd("..")
    pisitools.dodoc("LICENSE*", "README.md")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>qt5-accountsservice</Name>
        <Homepage>https://github.com/hawaii-desktop/qt-accountsservice-addon</Homepage>
        <Packager>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Packager>
        <Summary>Qt5 - AccountService addon</Summary>
        <Description>Qt5 - AccountService addon</Description>
        <License>LGPLv2.1-linking-exception</License>
        <Archive sha1sum="4382572cd7fdb2bcb22152706892fb57bed952db" type="targz">https://github.com/hawaii-desktop/qtaccountsservice/archive/v0.6.0.tar.gz</Archive>
        <BuildDependencies>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative-devel</Dependency>
            <Dependency>extra-cmake-modules</Dependency>
        </BuildDependencies>
    </Source>

    <Package>
        <Name>qt5-accountsservice</Name>
        <RuntimeDependencies>
            <Dependency>libgcc</Dependency>
            <Dependency versionFrom="5.9.3">qt5-base</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="library">/usr/lib/qt5</Path>
            <Path fileType="library">/usr/share/licenses</Path>
            <Path fileType="doc">/usr/share/doc</Path>
            <Path fileType="executable">/usr/lib/qt5/bin/</Path>
            <Path fileType="executable">/usr/bin</Path>
        </Files>
    </Package>

    <Package>
        <Name>qt5-accountsservice-devel</Name>
        <Files>
            <Path fileType="header">/usr/include</Path>
        </Files>
        <RuntimeDependencies>
            <Dependency versionFrom="5.9.3">qt5-base</Dependency>
            <Dependency release="current">qt5-accountsservice</Dependency>
        </RuntimeDependencies>
    </Package>

    <History>
        <Update release="7">
            <Date>2018-01-18</Date>
            <Version>0.6.0</Version>
            <Comment>Rebuild for qt5.9.3</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
        <Update release="6">
            <Date>2017-02-20</Date>
            <Version>0.6.0</Version>
            <Comment>Rebuild for new Toolchain</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="5">
            <Date>2016-10-22</Date>
            <Version>0.6.0</Version>
            <Comment>Version Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="4">
            <Date>2016-06-09</Date>
            <Version>0.6.0</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="3">
            <Date>2016-05-16</Date>
            <Version>0.6.0</Version>
            <Comment>Release Bump</Comment>
            <Name>PisiLinux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="2">
            <Date>2016-05-01</Date>
            <Version>0.6.0</Version>
            <Comment>Release Bump</Comment>
            <Name>PisiLinux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-04-17</Date>
            <Version>0.6.0</Version>
            <Comment>First release</Comment>
            <Name>Ertuğrul Erata</Name>
            <Email>ertugrulerata@gmail.com</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>qt5-accountservice</Name>
        <Summary xml:lang="tr">Qt5 - Hesap Hizmeti eklentisi</Summary>
        <Description xml:lang="tr">Qt5 - Hesap Hizmeti eklentisi</Description>
    </Source>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import shelltools
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import qt5
from pisi.actionsapi import get

import os

WorkDir = "qtbase-opensource-src-%s" % get.srcVERSION().replace('_','-').replace('pre1', 'tp')

qtbase = qt5.prefix
absoluteWorkDir = "%s/%s" % (get.workDIR(), WorkDir)

#Temporary bindir to avoid qt4 conflicts
bindirQt5="/usr/lib/qt5/bin"

def setup():
    checkdeletepath="%s/qtbase/src/3rdparty"  % absoluteWorkDir
    for dir in ('libjpeg', 'freetype', 'libpng', 'zlib', "xcb", "sqlite"):
        if os.path.exists(checkdeletepath+dir):
            shelltools.unlinkDir(checkdeletepath+dir)

    filteredCFLAGS = get.CFLAGS().replace("-g3", "-g")
    filteredCXXFLAGS = get.CXXFLAGS().replace("-g3", "-g")

    vars = {"PISILINUX_CC" :       get.CC() + (" -m32" if get.buildTYPE() == "emul32" else ""),
            "PISILINUX_CXX":       get.CXX() + (" -m32" if get.buildTYPE() == "emul32" else ""),
            "PISILINUX_CFLAGS":    filteredCFLAGS + (" -m32" if get.buildTYPE() == "emul32" else ""),
            "PISILINUX_LDFLAGS":   get.LDFLAGS() + (" -m32" if get.buildTYPE() == "emul32" else "")}

    for k, v in vars.items():
        pisitools.dosed("mkspecs/common/g++-base.conf", k, v)
        pisitools.dosed("mkspecs/common/g++-unix.conf", k, v)

    shelltools.export("CFLAGS", filteredCFLAGS)
    shelltools.export("CXXFLAGS", filteredCXXFLAGS)
    #check that dosed commands without releated patches
    pisitools.dosed("mkspecs/common/gcc-base-unix.conf", "\-Wl,\-rpath,")
    pisitools.dosed("mkspecs/common/gcc-base.conf", "\-O2", filteredCFLAGS)
    pisitools.dosed("mkspecs/common/gcc-base.conf", "^(QMAKE_LFLAGS\s+\+=)", r"\1 %s" % get.LDFLAGS())

    if not get.buildTYPE() == "emul32":
        #-no-pch makes build ccache-friendly
        options = "-v -confirm-license -opensource \
                            -no-rpath \
                            -no-use-gold-linker\
                            -prefix %s \
                            -bindir %s \
                            -headerdir %s \
                            -archdatadir %s\
                            -docdir %s \
                            -plugindir %s \
                            -importdir %s \
                            -qmldir %s \
                            -datadir %s \
                            -testsdir %s \
                            -translationdir %s \
                            -sysconfdir %s \
                            -examplesdir %s \
                            -libdir %s \
                            -system-harfbuzz \
                            -system-sqlite \
                            -openssl-linked \
                            -nomake tests \
                            -nomake examples \
                            -optimized-qmake \
                            -reduce-relocations \
                            -dbus-linked" % (qt5.prefix, bindirQt5, qt5.headerdir, qt5.archdatadir, qt5.docdir, qt5.plugindir, qt5.importdir, qt5.qmldir, qt5.datadir, qt5.testdir, qt5.translationdir, qt5.sysconfdir, qt5.examplesdir, qt5.libdir)
    else:
        pisitools.dosed("mkspecs/linux-g++-64/qmake.conf", "-m64", "-m32")
        shelltools.export("LDFLAGS", "-m32 %s" % get.LDFLAGS())
        options = "-no-pch -v -confirm-license -opensource -no-use-gold-linker\
                   -platform linux-g++-32 \
                   -xplatform linux-g++-32 \
                   -prefix /usr/lib32 \
                   -bindir /usr/lib32/qt5/bin \
                   -docdir /usr/share/doc/qt \
                   -headerdir /usr/lib32/qt5/include/qt5 \
                   -datadir /usr/share/qt5 \
                   -sysconfdir /etc/xdg \
                   -examplesdir /usr/share/doc/qt/examples \
                   -system-sqlite \
                   -openssl-linked \
                   -nomake examples \
                   -no-xcb \
                   -no-rpath \
                   -optimized-qmake \
                   -dbus-linked \
                   -system-harfbuzz \
                   -libdir /usr/lib32/ \
                   -archdatadir /usr/lib32/qt5/"

    autotools.rawConfigure(options)

def build():
    shelltools.export("LD_LIBRARY_PATH", "%s/lib:%s" % (get.curDIR(), get.ENV("LD_LIBRARY_PATH")))
    qt5.make()

def install():
    if get.buildTYPE() == "emul32":
        qt5.install("INSTALL_ROOT=%s32" % get.installDIR())
        shelltools.move("%s32/usr/lib32" % get.installDIR(), "%s/usr" % get.installDIR())
        return

    pisitools.dodir(qt5.libdir)
    qt5.install("INSTALL_ROOT=%s" % get.installDIR())

    #I hope qtchooser will manage this issue
    for bin in shelltools.ls("%s/usr/lib/qt5/bin" % get.installDIR()):
        pisitools.dosym("/usr/lib/qt5/bin/%s" % bin, "/usr/bin/%s-qt5" % bin)

    mkspecPath = "%s/mkspecs" %  qt5.archdatadir

    pisitools.dodoc("LGPL_EXCEPTION.txt", "LICENSE.*")


code:
From c71fc3860b0947c3c793578117e9eb0a3eb3fb31 Mon Sep 17 00:00:00 2001
From: Shawn Rutledge <shawn.rutledge@qt.io>
Date: Thu, 24 Nov 2016 11:58:19 +0100
Subject: [PATCH] add docs for QPlatformTheme::WheelScrollLines,
 MouseDoubleClickDistance
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

These theme hints were added in fac71528 and 4a2e297b respectively.

Change-Id: Ic39f32dae4d0843b1b2398beb27081ad07d75772
Reviewed-by: Jan Arve SÃ¦ther <jan-arve.saether@qt.io>
(cherry picked from commit 847a152474550e0952d31f15069fb346565938df)
Reviewed-by: Simo FÃ¤lt <simo.falt@qt.io>
---
 src/gui/kernel/qplatformtheme.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/gui/kernel/qplatformtheme.cpp b/src/gui/kernel/qplatformtheme.cpp
index 7f74959..2379b23 100644
--- a/src/gui/kernel/qplatformtheme.cpp
+++ b/src/gui/kernel/qplatformtheme.cpp
@@ -79,6 +79,10 @@ QT_BEGIN_NAMESPACE
     \value MouseDoubleClickInterval (int) Mouse double click interval in ms,
                                     overriding QPlatformIntegration::styleHint.

+    \value MouseDoubleClickDistance (int) The maximum distance in logical pixels which the mouse can travel
+                        between clicks in order for the click sequence to be handled as a double click.
+                        The default value is 5 logical pixels.
+
     \value MousePressAndHoldInterval (int) Mouse press and hold interval in ms,
                                     overriding QPlatformIntegration::styleHint.

@@ -88,6 +92,9 @@ QT_BEGIN_NAMESPACE
     \value StartDragTime (int) Start drag time in ms,
                                overriding QPlatformIntegration::styleHint.

+    \value WheelScrollLines (int) The number of lines to scroll a widget, when the mouse wheel is rotated.
+                        The default value is 3.  \sa QApplication::wheelScrollLines()
+
     \value KeyboardAutoRepeatRate (int) Keyboard auto repeat rate,
                                   overriding QPlatformIntegration::styleHint.

--
2.7.4

path: desktop/toolkit/qt5/qt5-base/files/add docs for QPlatformTheme.patch


code:
From a55f36211efe1bb0d6717c8545366120bd6dfd9f Mon Sep 17 00:00:00 2001
From: Thiago Macieira <thiago.macieira@intel.com>
Date: Mon, 21 Nov 2016 15:17:03 -0800
Subject: Fix the JPEG EXIF reader to deal with some broken/corrupt files

We parse the EXIF header in order to get the proper orientation, so
let's be a bit more careful in what we accept. This patch adds better
handling for reading past the end of the stream, plus it limits the
number of IFDs read (to avoid processing too much data) and deals with a
pathological case of the EXIF file format: EXIF (due to its TIFF
origins) permits the offset to the next IFD to be backwards in the file,
which means it could result in a loop or pointing to plain corrupt data.
We disallow any backwards pointers, since it seems that's what other
decoders do (libexif, for example).

Change-Id: Iaeecaffe26af4535b416fffd1489332db92e3888
(cherry picked from 5.6 commit 02150649f95b8f46f826e6e002be3fa0b6d009bc)
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
---
 src/gui/image/qjpeghandler.cpp                     |  31 ++++++++++++++-------
 .../jpeg_exif_invalid_data_back_pointers.jpg       | Bin 0 -> 910 bytes
 .../images/jpeg_exif_invalid_data_past_end.jpg     | Bin 0 -> 910 bytes
 .../jpeg_exif_invalid_data_too_many_ifds.jpg       | Bin 0 -> 964 bytes
 .../jpeg_exif_invalid_data_too_many_tags.jpg       | Bin 0 -> 910 bytes
 tests/auto/gui/image/qimage/tst_qimage.cpp         |  17 +++++++++--
 6 files changed, 35 insertions(+), 13 deletions(-)
 create mode 100644 tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_back_pointers.jpg
 create mode 100644 tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_past_end.jpg
 create mode 100644 tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_too_many_ifds.jpg
 create mode 100644 tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_too_many_tags.jpg

diff --git a/src/gui/image/qjpeghandler.cpp b/src/gui/image/qjpeghandler.cpp
index 52e8b39..f3ba303 100644
--- a/src/gui/image/qjpeghandler.cpp
+++ b/src/gui/image/qjpeghandler.cpp
@@ -786,6 +786,10 @@ static bool readExifHeader(QDataStream &stream)
  */
 static int getExifOrientation(QByteArray &exifData)
 {
+    // Current EXIF version (2.3) says there can be at most 5 IFDs,
+    // byte we allow for 10 so we're able to deal with future extensions.
+    const int maxIfdCount = 10;
+
     QDataStream stream(&exifData, QIODevice::ReadOnly);

     if (!readExifHeader(stream))
@@ -793,7 +797,8 @@ static int getExifOrientation(QByteArray &exifData)

     quint16 val;
     quint32 offset;
-    const qint64 headerStart = stream.device()->pos();
+    const qint64 headerStart = 6;   // the EXIF header has a constant size
+    Q_ASSERT(headerStart == stream.device()->pos());

     // read byte order marker
     stream >> val;
@@ -804,7 +809,7 @@ static int getExifOrientation(QByteArray &exifData)
     else
         return -1; // unknown byte order

-    // read size
+    // confirm byte order
     stream >> val;
     if (val != 0x2a)
         return -1;
@@ -812,18 +817,22 @@ static int getExifOrientation(QByteArray &exifData)
     stream >> offset;

     // read IFD
-    while (!stream.atEnd()) {
+    for (int n = 0; n < maxIfdCount; ++n) {
         quint16 numEntries;

-        // skip offset bytes to get the next IFD
         const qint64 bytesToSkip = offset - (stream.device()->pos() - headerStart);
-
-        if (stream.skipRawData(bytesToSkip) != bytesToSkip)
+        if (bytesToSkip < 0 || (offset + headerStart >= exifData.size())) {
+            // disallow going backwards, though it's permitted in the spec
             return -1;
+        } else if (bytesToSkip != 0) {
+            // seek to the IFD
+            if (!stream.device()->seek(offset + headerStart))
+                return -1;
+        }

         stream >> numEntries;

-        for (; numEntries > 0; --numEntries) {
+        for (; numEntries > 0 && stream.status() == QDataStream::Ok; --numEntries) {
             quint16 tag;
             quint16 type;
             quint32 components;
@@ -847,12 +856,14 @@ static int getExifOrientation(QByteArray &exifData)

         // read offset to next IFD
         stream >> offset;
+        if (stream.status() != QDataStream::Ok)
+            return -1;
         if (offset == 0) // this is the last IFD
-            break;
+            return 0;   // No Exif orientation was found
     }

-    // No Exif orientation was found
-    return 0;
+    // too many IFDs
+    return -1;
 }

 static QImageIOHandler::Transformations exif2Qt(int exifOrientation)
diff --git a/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_back_pointers.jpg b/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_back_pointers.jpg
new file mode 100644
index 0000000..164d308
Binary files /dev/null and b/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_back_pointers.jpg differ
diff --git a/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_past_end.jpg b/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_past_end.jpg
new file mode 100644
index 0000000..7e2451e
Binary files /dev/null and b/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_past_end.jpg differ
diff --git a/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_too_many_ifds.jpg b/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_too_many_ifds.jpg
new file mode 100644
index 0000000..52c6a93
Binary files /dev/null and b/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_too_many_ifds.jpg differ
diff --git a/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_too_many_tags.jpg b/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_too_many_tags.jpg
new file mode 100644
index 0000000..6a080aa
Binary files /dev/null and b/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_too_many_tags.jpg differ
diff --git a/tests/auto/gui/image/qimage/tst_qimage.cpp b/tests/auto/gui/image/qimage/tst_qimage.cpp
index 85d258d..26772d5 100644
--- a/tests/auto/gui/image/qimage/tst_qimage.cpp
+++ b/tests/auto/gui/image/qimage/tst_qimage.cpp
@@ -183,7 +183,8 @@ private slots:
     void exifOrientation();

     void exif_QTBUG45865();
-    void exif_invalid_data_QTBUG46870();
+    void exifInvalidData_data();
+    void exifInvalidData();

     void cleanupFunctions();

@@ -3028,10 +3029,20 @@ void tst_QImage::exif_QTBUG45865()
     QCOMPARE(image.size(), QSize(5, 8));
 }

-void tst_QImage::exif_invalid_data_QTBUG46870()
+void tst_QImage::exifInvalidData_data()
+{
+    QTest::addColumn<bool>("$never used");
+    QTest::newRow("QTBUG-46870");
+    QTest::newRow("back_pointers");
+    QTest::newRow("past_end");
+    QTest::newRow("too_many_ifds");
+    QTest::newRow("too_many_tags");
+}
+
+void tst_QImage::exifInvalidData()
 {
     QImage image;
-    QVERIFY(image.load(m_prefix + "jpeg_exif_invalid_data_QTBUG-46870.jpg"));
+    QVERIFY(image.load(m_prefix + "jpeg_exif_invalid_data_" + QTest::currentDataTag() + ".jpg"));
     QVERIFY(!image.isNull());
 }

--
cgit v1.0-4-g1e03

path: desktop/toolkit/qt5/qt5-base/files/fix the JPEG EXIF reader.patch


code:
diff -Nurp qtbase-opensource/mkspecs/common/g++-base.conf qtbase-opensourcey/mkspecs/common/g++-base.conf
--- qtbase-opensource/mkspecs/common/g++-base.conf	2015-10-13 07:35:32.000000000 +0300
+++ mkspecs/common/g++-base.conf	2015-10-18 00:30:49.000000000 +0300
@@ -10,15 +10,19 @@

 QMAKE_COMPILER          = gcc

-QMAKE_CC                = gcc
+QMAKE_CC                = PISILINUX_CC

 QMAKE_LINK_C            = $$QMAKE_CC
 QMAKE_LINK_C_SHLIB      = $$QMAKE_CC

-QMAKE_CXX               = g++
+QMAKE_CXX               = PISILINUX_CXX

-QMAKE_LINK              = $$QMAKE_CXX
-QMAKE_LINK_SHLIB        = $$QMAKE_CXX
+QMAKE_LINK     = PISILINUX_CXX
+QMAKE_LINK_SHLIB   = PISILINUX_CXX
+QMAKE_LINK_C       = PISILINUX_CC
+QMAKE_LINK_C_SHLIB = PISILINUX_CC
+
+QMAKE_LFLAGS_RELEASE    += PISILINUX_LDFLAGS

 QMAKE_PCH_OUTPUT_EXT    = .gch

diff -Nurp qtbase-opensource/mkspecs/common/g++-unix.conf qtbase-opensourcey/mkspecs/common/g++-unix.conf
--- qtbase-opensource/mkspecs/common/g++-unix.conf	2015-10-13 07:35:32.000000000 +0300
+++ mkspecs/common/g++-unix.conf	2015-10-18 00:31:47.000000000 +0300
@@ -10,5 +10,5 @@

 include(g++-base.conf)

-QMAKE_LFLAGS_RELEASE   += -Wl,-O1
+QMAKE_LFLAGS_RELEASE += PISILINUX_LDFLAGS
 QMAKE_LFLAGS_NOUNDEF   += -Wl,--no-undefined
diff -Nurp qtbase-opensource/mkspecs/common/linux.conf qtbase-opensourcey/mkspecs/common/linux.conf
--- qtbase-opensource/mkspecs/common/linux.conf	2015-10-13 07:35:32.000000000 +0300
+++ mkspecs/common/linux.conf	2015-10-18 00:33:07.000000000 +0300
@@ -49,7 +49,7 @@ QMAKE_OBJCOPY           = objcopy
 QMAKE_NM                = nm -P
 QMAKE_RANLIB            =

-QMAKE_STRIP             = strip
+QMAKE_STRIP             =
 QMAKE_STRIPFLAGS_LIB   += --strip-unneeded

 include(unix.conf)


code:
From 4758555f3e44af3425f0b691dc38fb40f3c9413d Mon Sep 17 00:00:00 2001
From: Palo Kisa <palo.kisa@gmail.com>
Date: Wed, 24 Aug 2016 02:29:59 +0200
Subject: QSettings: Add proper support for XDG_CONFIG_DIRS

Update fallback mechanism for Q_XDG_PLATFORM based systems to follow the
Xdg specification.

[ChangeLog][QtCore][QSettings] Added proper support for system-wide
configuration file lookup based on Xdg spec (XDG_CONFIG_DIRS) on Unix
based systems

Task-number: QTBUG-34919
Change-Id: Ieddee1c0b3b1506bf19aa865bdab87fc81d58cfd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
---
 src/corelib/io/qsettings.cpp                      | 94 +++++++++++++++++------
 tests/auto/corelib/io/qsettings/tst_qsettings.cpp | 73 ++++++++++++++++++
 2 files changed, 145 insertions(+), 22 deletions(-)

diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp
index c3b2176..b67afe0 100644
--- a/src/corelib/io/qsettings.cpp
+++ b/src/corelib/io/qsettings.cpp
@@ -136,7 +136,18 @@ Q_DECLARE_TYPEINFO(QConfFileCustomFormat, Q_MOVABLE_TYPE);

 typedef QHash<QString, QConfFile *> ConfFileHash;
 typedef QCache<QString, QConfFile> ConfFileCache;
-typedef QHash<int, QString> PathHash;
+namespace {
+    struct Path
+    {
+        // Note: Defining constructors explicitly because of buggy C++11
+        // implementation in MSVC (uniform initialization).
+        Path() {}
+        Path(const QString & p, bool ud) : path(p), userDefined(ud) {}
+        QString path;
+        bool userDefined; //!< true - user defined, overridden by setPath
+    };
+}
+typedef QHash<int, Path> PathHash;
 typedef QVector<QConfFileCustomFormat> CustomFormatVector;

 Q_GLOBAL_STATIC(ConfFileHash, usedHashFunc)
@@ -1065,22 +1076,22 @@ static void initDefaultPaths(QMutexLocker *locker)
        */
 #ifdef Q_OS_WIN
         pathHash->insert(pathHashKey(QSettings::IniFormat, QSettings::UserScope),
-                         windowsConfigPath(CSIDL_APPDATA) + QDir::separator());
+                         Path(windowsConfigPath(CSIDL_APPDATA) + QDir::separator(), false));
         pathHash->insert(pathHashKey(QSettings::IniFormat, QSettings::SystemScope),
-                         windowsConfigPath(CSIDL_COMMON_APPDATA) + QDir::separator());
+                         Path(windowsConfigPath(CSIDL_COMMON_APPDATA) + QDir::separator(), false));
 #else
         const QString userPath = make_user_path();
-        pathHash->insert(pathHashKey(QSettings::IniFormat, QSettings::UserScope), userPath);
-        pathHash->insert(pathHashKey(QSettings::IniFormat, QSettings::SystemScope), systemPath);
+        pathHash->insert(pathHashKey(QSettings::IniFormat, QSettings::UserScope), Path(userPath, false));
+        pathHash->insert(pathHashKey(QSettings::IniFormat, QSettings::SystemScope), Path(systemPath, false));
 #ifndef Q_OS_MAC
-        pathHash->insert(pathHashKey(QSettings::NativeFormat, QSettings::UserScope), userPath);
-        pathHash->insert(pathHashKey(QSettings::NativeFormat, QSettings::SystemScope), systemPath);
+        pathHash->insert(pathHashKey(QSettings::NativeFormat, QSettings::UserScope), Path(userPath, false));
+        pathHash->insert(pathHashKey(QSettings::NativeFormat, QSettings::SystemScope), Path(systemPath, false));
 #endif
 #endif // Q_OS_WIN
     }
 }

-static QString getPath(QSettings::Format format, QSettings::Scope scope)
+static Path getPath(QSettings::Format format, QSettings::Scope scope)
 {
     Q_ASSERT((int)QSettings::NativeFormat == 0);
     Q_ASSERT((int)QSettings::IniFormat == 1);
@@ -1090,14 +1101,23 @@ static QString getPath(QSettings::Format format, QSettings::Scope scope)
     if (pathHash->isEmpty())
         initDefaultPaths(&locker);

-    QString result = pathHash->value(pathHashKey(format, scope));
-    if (!result.isEmpty())
+    Path result = pathHash->value(pathHashKey(format, scope));
+    if (!result.path.isEmpty())
         return result;

     // fall back on INI path
     return pathHash->value(pathHashKey(QSettings::IniFormat, scope));
 }

+#if defined(QT_BUILD_INTERNAL) && defined(Q_XDG_PLATFORM) && !defined(QT_NO_STANDARDPATHS)
+// Note: Suitable only for autotests.
+void Q_AUTOTEST_EXPORT clearDefaultPaths()
+{
+    QMutexLocker locker(&settingsGlobalMutex);
+    pathHashFunc()->clear();
+}
+#endif // QT_BUILD_INTERNAL && Q_XDG_PLATFORM && !QT_NO_STANDARDPATHS
+
 QConfFileSettingsPrivate::QConfFileSettingsPrivate(QSettings::Format format,
                                                    QSettings::Scope scope,
                                                    const QString &organization,
@@ -1117,16 +1137,44 @@ QConfFileSettingsPrivate::QConfFileSettingsPrivate(QSettings::Format format,
     QString orgFile = org + extension;

     if (scope == QSettings::UserScope) {
-        QString userPath = getPath(format, QSettings::UserScope);
+        Path userPath = getPath(format, QSettings::UserScope);
         if (!application.isEmpty())
-            confFiles.append(QConfFile::fromName(userPath + appFile, true));
-        confFiles.append(QConfFile::fromName(userPath + orgFile, true));
+            confFiles.append(QConfFile::fromName(userPath.path + appFile, true));
+        confFiles.append(QConfFile::fromName(userPath.path + orgFile, true));
     }

-    QString systemPath = getPath(format, QSettings::SystemScope);
-    if (!application.isEmpty())
-        confFiles.append(QConfFile::fromName(systemPath + appFile, false));
-    confFiles.append(QConfFile::fromName(systemPath + orgFile, false));
+    Path systemPath = getPath(format, QSettings::SystemScope);
+#if defined(Q_XDG_PLATFORM) && !defined(QT_NO_STANDARDPATHS)
+    // check if the systemPath wasn't overridden by QSettings::setPath()
+    if (!systemPath.userDefined) {
+        // Note: We can't use QStandardPaths::locateAll() as we need all the
+        // possible files (not just the existing ones) and there is no way
+        // to exclude user specific (XDG_CONFIG_HOME) directory from the search.
+        QStringList dirs = QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation);
+        // remove the QStandardLocation::writableLocation() (XDG_CONFIG_HOME)
+        if (!dirs.isEmpty())
+            dirs.takeFirst();
+        QStringList paths;
+        if (!application.isEmpty()) {
+            paths.reserve(dirs.size() * 2);
+            for (const auto &dir : qAsConst(dirs))
+                paths.append(dir + QLatin1Char('/') + appFile);
+        } else {
+            paths.reserve(dirs.size());
+        }
+        for (const auto &dir : qAsConst(dirs))
+            paths.append(dir + QLatin1Char('/') + orgFile);
+
+        // Note: No check for existence of files is done intentionaly.
+        for (const auto &path : qAsConst(paths))
+            confFiles.append(QConfFile::fromName(path, false));
+    } else
+#endif // Q_XDG_PLATFORM && !QT_NO_STANDARDPATHS
+    {
+        if (!application.isEmpty())
+            confFiles.append(QConfFile::fromName(systemPath.path + appFile, false));
+        confFiles.append(QConfFile::fromName(systemPath.path + orgFile, false));
+    }

     initAccess();
 }
@@ -2169,9 +2217,10 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
     \list 1
     \li \c{$HOME/.config/MySoft/Star Runner.conf} (Qt for Embedded Linux: \c{$HOME/Settings/MySoft/Star Runner.conf})
     \li \c{$HOME/.config/MySoft.conf} (Qt for Embedded Linux: \c{$HOME/Settings/MySoft.conf})
-    \li \c{/etc/xdg/MySoft/Star Runner.conf}
-    \li \c{/etc/xdg/MySoft.conf}
+    \li for each directory <dir> in $XDG_CONFIG_DIRS: \c{<dir>/MySoft/Star Runner.conf}
+    \li for each directory <dir> in $XDG_CONFIG_DIRS: \c{<dir>/MySoft.conf}
     \endlist
+    \note If XDG_CONFIG_DIRS is unset, the default value of \c{/etc/xdg} is used.

     On \macos versions 10.2 and 10.3, these files are used by
     default:
@@ -2206,9 +2255,10 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
     \list 1
     \li \c{$HOME/.config/MySoft/Star Runner.ini} (Qt for Embedded Linux: \c{$HOME/Settings/MySoft/Star Runner.ini})
     \li \c{$HOME/.config/MySoft.ini} (Qt for Embedded Linux: \c{$HOME/Settings/MySoft.ini})
-    \li \c{/etc/xdg/MySoft/Star Runner.ini}
-    \li \c{/etc/xdg/MySoft.ini}
+    \li for each directory <dir> in $XDG_CONFIG_DIRS: \c{<dir>/MySoft/Star Runner.ini}
+    \li for each directory <dir> in $XDG_CONFIG_DIRS: \c{<dir>/MySoft.ini}
     \endlist
+    \note If XDG_CONFIG_DIRS is unset, the default value of \c{/etc/xdg} is used.

     On Windows, the following files are used:

@@ -3360,7 +3410,7 @@ void QSettings::setPath(Format format, Scope scope, const QString &path)
     PathHash *pathHash = pathHashFunc();
     if (pathHash->isEmpty())
         initDefaultPaths(&locker);
-    pathHash->insert(pathHashKey(format, scope), path + QDir::separator());
+    pathHash->insert(pathHashKey(format, scope), Path(path + QDir::separator(), true));
 }

 /*!
diff --git a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
index 2f039cb..0e8a784 100644
--- a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
+++ b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
@@ -159,6 +159,7 @@ private slots:
     void iniCodec();
     void bom();

+    void testXdg();
 private:
     void cleanupTestFiles();

@@ -3397,5 +3398,77 @@ void tst_QSettings::consistentRegistryStorage()
 }
 #endif

+#if defined(QT_BUILD_INTERNAL) && defined(Q_OS_UNIX) && !defined(Q_OS_DARWIN) && !defined(Q_OS_ANDROID) && !defined(QT_NO_STANDARDPATHS)
+QT_BEGIN_NAMESPACE
+extern void clearDefaultPaths();
+QT_END_NAMESPACE
+#endif
+void tst_QSettings::testXdg()
+{
+#if defined(QT_BUILD_INTERNAL) && defined(Q_OS_UNIX) && !defined(Q_OS_DARWIN) && !defined(Q_OS_ANDROID) && !defined(QT_NO_STANDARDPATHS)
+    // Note: The XDG_CONFIG_DIRS test must be done before overriding the system path
+    // by QSettings::setPath/setSystemIniPath (used in cleanupTestFiles()).
+    clearDefaultPaths();
+
+    // Initialize the env. variable & populate testing files.
+    const QStringList config_dirs = { settingsPath("xdg_1st"), settingsPath("xdg_2nd"), settingsPath("xdg_3rd") };
+    qputenv("XDG_CONFIG_DIRS", config_dirs.join(':').toUtf8());
+    QList<QSettings *> xdg_orgs, xdg_apps;
+    for (const auto & dir : config_dirs) {
+        xdg_orgs << new QSettings{dir + "/software.org.conf", QSettings::NativeFormat};
+        xdg_apps << new QSettings{dir + "/software.org/KillerAPP.conf", QSettings::NativeFormat};
+    }
+    Q_ASSERT(config_dirs.size() == 3 && xdg_orgs.size() == 3 && xdg_apps.size() == 3);
+    for (int i = 0; i < 3; ++i) {
+        xdg_orgs[i]->setValue("all", QString{"all_org%1"}.arg(i));
+        xdg_apps[i]->setValue("all", QString{"all_app%1"}.arg(i));
+        xdg_orgs[i]->setValue("all_only_org", QString{"all_only_org%1"}.arg(i));
+        xdg_apps[i]->setValue("all_only_app", QString{"all_only_app%1"}.arg(i));
+
+        if (i > 0) {
+            xdg_orgs[i]->setValue("from2nd", QString{"from2nd_org%1"}.arg(i));
+            xdg_apps[i]->setValue("from2nd", QString{"from2nd_app%1"}.arg(i));
+            xdg_orgs[i]->setValue("from2nd_only_org", QString{"from2nd_only_org%1"}.arg(i));
+            xdg_apps[i]->setValue("from2nd_only_app", QString{"from2nd_only_app%1"}.arg(i));
+        }
+
+        if (i > 1) {
+            xdg_orgs[i]->setValue("from3rd", QString{"from3rd_org%1"}.arg(i));
+            xdg_apps[i]->setValue("from3rd", QString{"from3rd_app%1"}.arg(i));
+            xdg_orgs[i]->setValue("from3rd_only_org", QString{"from3rd_only_org%1"}.arg(i));
+            xdg_apps[i]->setValue("from3rd_only_app", QString{"from3rd_only_app%1"}.arg(i));
+        }
+    }
+    qDeleteAll(xdg_apps);
+    qDeleteAll(xdg_orgs);
+
+    // Do the test.
+    QSettings app{QSettings::SystemScope, "software.org", "KillerAPP"}, org{QSettings::SystemScope, "software.org"};
+
+    QVERIFY(app.value("all").toString() == "all_app0");
+    QVERIFY(org.value("all").toString() == "all_org0");
+    QVERIFY(app.value("all_only_org").toString() == "all_only_org0");
+    QVERIFY(org.value("all_only_org").toString() == "all_only_org0");
+    QVERIFY(app.value("all_only_app").toString() == "all_only_app0");
+    QVERIFY(org.value("all_only_app").toString() == QString{});
+
+    QVERIFY(app.value("from2nd").toString() == "from2nd_app1");
+    QVERIFY(org.value("from2nd").toString() == "from2nd_org1");
+    QVERIFY(app.value("from2nd_only_org").toString() == "from2nd_only_org1");
+    QVERIFY(org.value("from2nd_only_org").toString() == "from2nd_only_org1");
+    QVERIFY(app.value("from2nd_only_app").toString() == "from2nd_only_app1");
+    QVERIFY(org.value("from2nd_only_app").toString() == QString{});
+
+    QVERIFY(app.value("from3rd").toString() == "from3rd_app2");
+    QVERIFY(org.value("from3rd").toString() == "from3rd_org2");
+    QVERIFY(app.value("from3rd_only_org").toString() == "from3rd_only_org2");
+    QVERIFY(org.value("from3rd_only_org").toString() == "from3rd_only_org2");
+    QVERIFY(app.value("from3rd_only_app").toString() == "from3rd_only_app2");
+    QVERIFY(org.value("from3rd_only_app").toString() == QString{});
+#else
+    QSKIP("This test is performed in QT_BUILD_INTERNAL on Q_XDG_PLATFORM with use of standard paths only.");
+#endif
+}
+
 QTEST_MAIN(tst_QSettings)
 #include "tst_qsettings.moc"
--
cgit v1.0-4-g1e03


code:
diff -up qtbase-opensource-src-5.7.1/config.tests/unix/ibase/ibase.cpp.than qtbase-opensource-src-5.7.1/config.tests/unix/ibase/ibase.cpp
--- qtbase-opensource-src-5.7.1/config.tests/unix/ibase/ibase.cpp.than	2016-11-28 11:53:02.621749003 -0500
+++ qtbase-opensource-src-5.7.1/config.tests/unix/ibase/ibase.cpp	2016-11-28 11:53:17.072001489 -0500
@@ -37,7 +37,7 @@
 **
 ****************************************************************************/

-#include <ibase.h>
+#include <firebird/ibase.h>

 int main(int, char **)
 {
diff -up qtbase-opensource-src-5.7.1/config.tests/unix/ibase/ibase.pro.than qtbase-opensource-src-5.7.1/config.tests/unix/ibase/ibase.pro
--- qtbase-opensource-src-5.7.1/config.tests/unix/ibase/ibase.pro.than	2016-11-29 08:00:35.270039482 -0500
+++ qtbase-opensource-src-5.7.1/config.tests/unix/ibase/ibase.pro	2016-11-29 08:00:41.280142713 -0500
@@ -1,3 +1,3 @@
 SOURCES = ibase.cpp
 CONFIG -= qt dylib
-LIBS += -lgds
+LIBS += -lfbclient
diff -up qtbase-opensource-src-5.7.1/src/plugins/sqldrivers/ibase/ibase.pro.than qtbase-opensource-src-5.7.1/src/plugins/sqldrivers/ibase/ibase.pro
diff -up qtbase-opensource-src-5.7.1/src/sql/drivers/ibase/qsql_ibase.pri.than qtbase-opensource-src-5.7.1/src/sql/drivers/ibase/qsql_ibase.pri
--- qtbase-opensource-src-5.7.1/src/sql/drivers/ibase/qsql_ibase.pri.than	2016-11-29 08:04:26.344004252 -0500
+++ qtbase-opensource-src-5.7.1/src/sql/drivers/ibase/qsql_ibase.pri	2016-11-29 08:04:56.684523066 -0500
@@ -2,7 +2,7 @@ HEADERS += $$PWD/qsql_ibase_p.h
 SOURCES += $$PWD/qsql_ibase.cpp

 unix {
-    !contains(LIBS, .*gds.*):!contains(LIBS, .*libfb.*):LIBS += -lgds
+    !contains(LIBS, .*gds.*):!contains(LIBS, .*libfb.*):LIBS += -lfbclient
 } else {
     !contains(LIBS, .*gds.*):!contains(LIBS, .*fbclient.*) {
         LIBS += -lgds32_ms
diff -up qtbase-opensource-src-5.7.1/src/sql/drivers/ibase/qsql_ibase_p.h.than qtbase-opensource-src-5.7.1/src/sql/drivers/ibase/qsql_ibase_p.h
--- qtbase-opensource-src-5.7.1/src/sql/drivers/ibase/qsql_ibase_p.h.than	2016-11-29 08:27:25.917767879 -0500
+++ qtbase-opensource-src-5.7.1/src/sql/drivers/ibase/qsql_ibase_p.h	2016-11-29 08:27:53.338244987 -0500
@@ -52,7 +52,7 @@
 //

 #include <QtSql/qsqldriver.h>
-#include <ibase.h>
+#include <firebird/ibase.h>

 #ifdef QT_PLUGIN
 #define Q_EXPORT_SQLDRIVER_IBASE


code:
 --- qtbase-opensource-src-5.7.1/src/plugins/platforms/xcb/qxcbscreen.cpp.orig	2017-01-11 11:42:59.544860428 +0100
+++ qtbase-opensource-src-5.7.1/src/plugins/platforms/xcb/qxcbscreen.cpp	2017-01-11 11:43:51.142956762 +0100
@@ -633,7 +633,7 @@ void QXcbScreen::updateGeometry(const QR
         m_sizeMillimeters = sizeInMillimeters(xGeometry.size(), virtualDpi());

     qreal dpi = xGeometry.width() / physicalSize().width() * qreal(25.4);
-    m_pixelDensity = qRound(dpi/96);
+    m_pixelDensity = (int) (dpi/96); // instead of rounding at 1.5, round at 2.0 (same as GNOME)
     m_geometry = QRect(xGeometry.topLeft(), xGeometry.size());
     m_availableGeometry = xGeometry & m_virtualDesktop->workArea();
     QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), m_geometry, m_availableGeometry);


code:
--- qtbase-opensource-src-5.7.1/src/src.pro.orig	2016-10-05 19:33:26.000000000 +0200
+++ qtbase-opensource-src-5.7.1/src/src.pro	2016-11-09 12:31:35.781935319 +0100
@@ -135,8 +135,10 @@
 contains(QT_CONFIG, zlib)|cross_compile {
     SUBDIRS += src_qtzlib
     contains(QT_CONFIG, zlib) {
-        src_3rdparty_libpng.depends += src_corelib
-        src_3rdparty_freetype.depends += src_corelib
+        !contains(QT_CONFIG, system-png) {
+            src_3rdparty_libpng.depends += src_corelib
+            src_3rdparty_freetype.depends += src_corelib
+        }
     }
 }
 SUBDIRS += src_tools_bootstrap src_tools_moc src_tools_rcc
@@ -167,10 +169,13 @@
         SUBDIRS += src_angle
         src_gui.depends += src_angle
     }
-    contains(QT_CONFIG, png) {
-        SUBDIRS += src_3rdparty_libpng
-        src_3rdparty_freetype.depends += src_3rdparty_libpng
-        src_gui.depends += src_3rdparty_libpng
+
+    !contains(QT_CONFIG, system-png) {
+        contains(QT_CONFIG, png) {
+            SUBDIRS += src_3rdparty_libpng
+            src_3rdparty_freetype.depends += src_3rdparty_libpng
+            src_gui.depends += src_3rdparty_libpng
+        }
     }
     contains(QT_CONFIG, freetype) {
         SUBDIRS += src_3rdparty_freetype


code:
diff --git a/src/plugins/sqldrivers/configure.json b/src/plugins/sqldrivers/configure.json
index 234f880..7b13671 100644
--- a/src/plugins/sqldrivers/configure.json
+++ b/src/plugins/sqldrivers/configure.json
@@ -50,11 +50,12 @@
         "ibase": {
             "label": "InterBase",
             "test": {
-                "include": "ibase.h"
+                "include": "firebird/ibase.h"
             },
             "sources": [
                 { "libs": "-lgds32_ms", "condition": "config.win32" },
-                { "libs": "-lgds", "condition": "!config.win32" }
+                { "libs": "-lgds", "condition": "!config.win32" },
+                { "libs": "-lfbclient", "condition": "!config.win32" }
             ]
         },
         "mysql": {
diff --git a/src/plugins/sqldrivers/ibase/qsql_ibase_p.h b/src/plugins/sqldrivers/ibase/qsql_ibase_p.h
index c7cee41..6a9c56c 100644
--- a/src/plugins/sqldrivers/ibase/qsql_ibase_p.h
+++ b/src/plugins/sqldrivers/ibase/qsql_ibase_p.h
@@ -52,7 +52,7 @@
 //

 #include <QtSql/qsqldriver.h>
-#include <ibase.h>
+#include <firebird/ibase.h>

 #ifdef QT_PLUGIN
 #define Q_EXPORT_SQLDRIVER_IBASE


code:
diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp
index ec0f9ba..6d0d7a6 100644
--- a/src/plugins/platforms/xcb/qxcbscreen.cpp
+++ src/plugins/platforms/xcb/qxcbscreen.cpp
@@ -747,7 +747,7 @@ void QXcbScreen::updateGeometry(const QRect &geometry, uint8_t rotation)
         m_sizeMillimeters = sizeInMillimeters(geometry.size(), virtualDpi());

     qreal dpi = geometry.width() / physicalSize().width() * qreal(25.4);
-    m_pixelDensity = qMax(1, qRound(dpi/96));
+    m_pixelDensity = qMax(1, (int) (dpi/96)); // instead of rounding at 1.5, round at 2.0 (same as GNOME)
     m_geometry = geometry;
     m_availableGeometry = geometry & m_virtualDesktop->workArea();
     QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), m_geometry, m_availableGeometry);


code:
diff -up qtbase-opensource-src-5.9.2/src/plugins/sqldrivers/mysql/qsql_mysql.cpp.rex qtbase-opensource-src-5.9.2/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
--- qtbase-opensource-src-5.9.2/src/plugins/sqldrivers/mysql/qsql_mysql.cpp.rex	2017-10-02 03:43:38.000000000 -0500
+++ src/plugins/sqldrivers/mysql/qsql_mysql.cpp	2017-10-19 14:56:16.752878279 -0500
@@ -1159,14 +1159,15 @@ static void qLibraryInit()
 # endif // MYSQL_VERSION_ID
 #endif // Q_NO_MYSQL_EMBEDDED

-#ifdef MARIADB_BASE_VERSION
+#if defined(MARIADB_BASE_VERSION) || defined(MARIADB_VERSION_ID)
     qAddPostRoutine(mysql_server_end);
 #endif
 }

 static void qLibraryEnd()
 {
-#if !defined(MARIADB_BASE_VERSION)
+#if !defined(MARIADB_BASE_VERSION) && !defined(MARIADB_VERSION_ID)
+//#error should not get here on f27+ says rex
 # if !defined(Q_NO_MYSQL_EMBEDDED)
 #  if MYSQL_VERSION_ID > 40000
 #   if (MYSQL_VERSION_ID >= 40110 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50003


code:
--- qtbase-opensource-src-5.8.0/src/corelib/global/qglobal.h.orig	2017-01-26 10:45:40.905010896 +0100
+++ src/corelib/global/qglobal.h	2017-01-26 10:46:50.299858887 +0100
@@ -55,7 +55,7 @@
 /*
    can be used like #if (QT_VERSION >= QT_VERSION_CHECK(4, 4, 0))
 */
-#define QT_VERSION_CHECK(major, minor, patch) ((major<<16)|(minor<<8)|(patch))
+#define QT_VERSION_CHECK(qt_version_check_major, qt_version_check_minor, qt_version_check_patch) ((qt_version_check_major<<16)|(qt_version_check_minor<<8)|(qt_version_check_patch))

 #ifdef QT_BOOTSTRAPPED
 #include <QtCore/qconfig-bootstrapped.h>


code:
diff -up qtbase-opensource-src-5.9.0/src/plugins/sqldrivers/mysql/qsql_mysql.cpp.than qtbase-opensource-src-5.9.0/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
diff -up qtbase-opensource-src-5.9.0/src/plugins/sqldrivers/mysql/qsql_mysql_p.h.than qtbase-opensource-src-5.9.0/src/plugins/sqldrivers/mysql/qsql_mysql_p.h
--- qtbase-opensource-src-5.9.0/src/plugins/sqldrivers/mysql/qsql_mysql_p.h.than	2017-07-14 13:43:50.831203768 +0200
+++ src/plugins/sqldrivers/mysql/qsql_mysql_p.h	2017-07-14 13:44:24.364948006 +0200
@@ -58,6 +58,7 @@
 #endif

 #include <mysql.h>
+#include <mysql_version.h>

 #ifdef QT_PLUGIN
 #define Q_EXPORT_SQLDRIVER_MYSQL


code:
diff -up qtbase-opensource-src-5.9.3/src/network/kernel/qdnslookup_unix.cpp.orig qtbase-opensource-src-5.9.3/src/network/kernel/qdnslookup_unix.cpp
--- qtbase-opensource-src-5.9.3/src/network/kernel/qdnslookup_unix.cpp.orig	2017-11-16 06:15:28.000000000 +0100
+++ src/network/kernel/qdnslookup_unix.cpp	2017-11-30 09:22:47.525741040 +0100
@@ -42,6 +42,7 @@
 #if QT_CONFIG(library)
 #include <qlibrary.h>
 #endif
+#include <qvarlengtharray.h>
 #include <qscopedpointer.h>
 #include <qurl.h>
 #include <private/qnativesocketengine_p.h>
@@ -58,6 +59,8 @@
 #  include <gnu/lib-names.h>
 #endif

+#include <cstring>
+
 QT_BEGIN_NAMESPACE

 #if QT_CONFIG(library)
@@ -189,11 +192,25 @@ void QDnsLookupRunnable::query(const int
     QScopedPointer<struct __res_state, QDnsLookupStateDeleter> state_ptr(&state);

     // Perform DNS query.
-    unsigned char response[PACKETSZ];
-    memset(response, 0, sizeof(response));
-    const int responseLength = local_res_nquery(&state, requestName, C_IN, requestType, response, sizeof(response));
+    QVarLengthArray<unsigned char, PACKETSZ> buffer(PACKETSZ);
+    memset(buffer.data(), 0, buffer.size());
+    int responseLength = local_res_nquery(&state, requestName, C_IN, requestType, buffer.data(), buffer.size());
+    if (Q_UNLIKELY(responseLength > PACKETSZ)) {
+        buffer.resize(responseLength);
+        memset(buffer.data(), 0, buffer.size());
+        responseLength = local_res_nquery(&state, requestName, C_IN, requestType, buffer.data(), buffer.size());
+        if (Q_UNLIKELY(responseLength > buffer.size())) {
+            // Ok, we give up.
+            reply->error = QDnsLookup::ResolverError;
+            reply->errorString.clear(); // We cannot be more specific, alas.
+            return;
+        }
+    }

-    // Check the response header.
+    unsigned char *response = buffer.data();
+    // Check the response header. Though res_nquery returns -1 as a
+    // responseLength in case of error, we still can extract the
+    // exact error code from the response.
     HEADER *header = (HEADER*)response;
     const int answerCount = ntohs(header->ancount);
     switch (header->rcode) {


code:
From 911762e077c8b2f9795171c1e628942a0a979801 Mon Sep 17 00:00:00 2001
From: Jan Grulich <jgrulich@redhat.com>
Date: Fri, 15 Dec 2017 11:56:12 +0100
Subject: foo

diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp
index 536c709..c6eb1b1 100644
--- a/src/plugins/platforms/xcb/qxcbconnection.cpp
+++ src/plugins/platforms/xcb/qxcbconnection.cpp
@@ -111,6 +111,8 @@ Q_LOGGING_CATEGORY(lcQpaXInputEvents, "qt.qpa.input.events")
 Q_LOGGING_CATEGORY(lcQpaScreen, "qt.qpa.screen")
 Q_LOGGING_CATEGORY(lcQpaEvents, "qt.qpa.events")
 Q_LOGGING_CATEGORY(lcQpaXcb, "qt.qpa.xcb") // for general (uncategorized) XCB logging
+Q_LOGGING_CATEGORY(lcQpaXcbError, "qt.qpa.xcb.xcberror")
+// TODO: How to categorize by xcberror type? (e.g. only BadWindow)
 Q_LOGGING_CATEGORY(lcQpaPeeker, "qt.qpa.peeker")

 // this event type was added in libxcb 1.10,
@@ -964,7 +966,8 @@ void QXcbConnection::handleXcbError(xcb_generic_error_t *error)
     uint clamped_error_code = qMin<uint>(error->error_code, (sizeof(xcb_errors) / sizeof(xcb_errors[0])) - 1);
     uint clamped_major_code = qMin<uint>(error->major_code, (sizeof(xcb_protocol_request_codes) / sizeof(xcb_protocol_request_codes[0])) - 1);

-    qWarning("QXcbConnection: XCB error: %d (%s), sequence: %d, resource id: %d, major code: %d (%s), minor code: %d",
+    qCWarning(lcQpaXcbError,
+           "QXcbConnection: XCB error: %d (%s), sequence: %d, resource id: %d, major code: %d (%s), minor code: %d",
            int(error->error_code), xcb_errors[clamped_error_code],
            int(error->sequence), int(error->resource_id),
            int(error->major_code), xcb_protocol_request_codes[clamped_major_code],
diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h
index 999dc06..554611c 100644
--- a/src/plugins/platforms/xcb/qxcbconnection.h
+++ src/plugins/platforms/xcb/qxcbconnection.h
@@ -91,6 +91,7 @@ Q_DECLARE_LOGGING_CATEGORY(lcQpaXInputEvents)
 Q_DECLARE_LOGGING_CATEGORY(lcQpaScreen)
 Q_DECLARE_LOGGING_CATEGORY(lcQpaEvents)
 Q_DECLARE_LOGGING_CATEGORY(lcQpaXcb)
+Q_DECLARE_LOGGING_CATEGORY(lcQpaXcbError)
 Q_DECLARE_LOGGING_CATEGORY(lcQpaPeeker)

 class QXcbVirtualDesktop;


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>qt5-base</Name>
        <Homepage>http://qt.digia.com/</Homepage>
        <Packager>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Packager>
        Cross platform application and UI framework
        <Description>Cross platform application and UI development framework</Description>
        <License>'GPL3' 'LGPL3' 'FDL' 'custom'</License>
        <Archive sha1sum="ccf98c742699e0d39798748777fd438128c15fe4" type="tarxz">http://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtbase-opensource-src-5.9.3.tar.xz</Archive>
        <BuildDependencies>
            <Dependency>at-spi2-core-devel</Dependency>
            <Dependency versionFrom="2.2.2">cups-devel</Dependency>
            <Dependency versionFrom="1.11.8">dbus-devel</Dependency>
            <Dependency>zlib-devel</Dependency>
            <Dependency versionFrom="2.50.2">glib2-devel</Dependency>
            <Dependency>libpcre-devel</Dependency>
            <Dependency>desktop-file-utils</Dependency>
            <Dependency>fontconfig-devel</Dependency>
            <Dependency>gperf</Dependency>
            <Dependency versionFrom="2.24.31">gtk2-devel</Dependency>
            <Dependency versionFrom="1.4.2">harfbuzz-devel</Dependency>
            <Dependency>icon-theme-hicolor</Dependency>
            <Dependency versionFrom="1.18">leveldb-devel</Dependency>
            <Dependency versionFrom="2.5.6.27020">firebird-superserver</Dependency>
            <Dependency>libjpeg-turbo-devel</Dependency>
            <Dependency versionFrom="10.1.21">mariadb-lib</Dependency>
            <Dependency>libxcb-devel</Dependency>
            <Dependency>libXcomposite-devel</Dependency>
            <Dependency>libxkbcommon-devel</Dependency>
            <Dependency>libxslt</Dependency>
            <Dependency versionFrom="13.0.4">mesa-devel</Dependency>
            <Dependency>libmtdev-devel</Dependency>
            <Dependency>nss-devel</Dependency>
            <Dependency>pciutils-devel</Dependency>
            <Dependency>postgresql-server</Dependency>
            <Dependency versionFrom="2.7.13">python-devel</Dependency>
            <Dependency>DirectFB-devel</Dependency>
            <Dependency>libinput-devel</Dependency>
            <Dependency versionFrom="3.16.2">sqlite-devel</Dependency>
            <Dependency>xcb-proto</Dependency>
            <Dependency>xcb-util-devel</Dependency>
            <Dependency>xcb-util-image-devel</Dependency>
            <Dependency>xcb-util-keysyms-devel</Dependency>
            <Dependency>xcb-util-wm-devel</Dependency>
            <Dependency>tiff-devel</Dependency>
            <Dependency>libdrm-devel</Dependency>
            <Dependency>libpng-devel</Dependency>
            <Dependency versionFrom="3.2.1">eudev-devel</Dependency>
            <Dependency>libSM-devel</Dependency>
            <Dependency>libICE-devel</Dependency>
            <Dependency>libX11-devel</Dependency>
            <Dependency>libXext-devel</Dependency>
            <Dependency versionFrom="2.5.6.27020">firebird-devel</Dependency>
            <Dependency>unixODBC-devel</Dependency>
            <Dependency>libXrandr-devel</Dependency>
            <Dependency>libXrender-devel</Dependency>
            <Dependency>libXi-devel</Dependency>
            <Dependency>xcb-util-renderutil-devel</Dependency>
            <Dependency>openssl-devel</Dependency>
            <Dependency versionFrom="2.7.1">freetype-devel</Dependency>
            <Dependency>pulseaudio-libs-devel</Dependency>
            <Dependency>alsa-lib-devel</Dependency>
            <Dependency>libproxy-devel</Dependency>
            <Dependency versionFrom="1.10.3">gst-plugins-base-next-devel</Dependency>
            <Dependency versionFrom="1.12.0">wayland-devel</Dependency>
            <Dependency>libXcursor-devel</Dependency>
        </BuildDependencies>
        <Patches>

            <Patch>mkspecs.patch</Patch>
            <Patch>qt5-qtbase-5.9.1-firebird.patch</Patch>
            <Patch>qtbase-opensource-src-5.9.0-mysql.patch</Patch>
            <Patch>qtbase-opensource-src-5.8.0-QT_VERSION_CHECK.patch</Patch>
            <Patch>qtbase-mariadb.patch</Patch>
            <Patch>qtbase-opensource-src-5.9.3-QTBUG-64742-out-of-bounds-in-qdnslookup_unix.patch</Patch>
        </Patches>
    </Source>

    <Package>
        <Name>qt5-base</Name>
        <RuntimeDependencies>
            <Dependency>gtk2</Dependency>
            <Dependency>pango</Dependency>
            <Dependency>libpcre</Dependency>
            <Dependency>libgcc</Dependency>
            <Dependency>cups</Dependency>
            <Dependency>dbus</Dependency>
            <Dependency>mesa</Dependency>
            <Dependency>zlib</Dependency>
            <Dependency>glib2</Dependency>
            <Dependency>icu4c</Dependency>
            <Dependency>libSM</Dependency>
            <Dependency versionFrom="2.5.6.27020">firebird-client</Dependency>
            <Dependency>libproxy</Dependency>
            <Dependency>libXi</Dependency>
            <Dependency>libICE</Dependency>
            <Dependency>libX11</Dependency>
            <Dependency>libdrm</Dependency>
            <Dependency>libpng</Dependency>
            <Dependency>libxcb</Dependency>
            <Dependency>eudev</Dependency>
            <Dependency>DirectFB</Dependency>
            <Dependency>openssl</Dependency>
            <Dependency>freetype</Dependency>
            <Dependency>harfbuzz</Dependency>
            <Dependency>libinput</Dependency>
            <Dependency>libmtdev</Dependency>
            <Dependency>fontconfig</Dependency>
            <Dependency>libXrender</Dependency>
            <Dependency>xcb-util-wm</Dependency>
            <Dependency>libxkbcommon</Dependency>
            <Dependency>libjpeg-turbo</Dependency>
            <Dependency>xcb-util-image</Dependency>
            <Dependency>xcb-util-keysyms</Dependency>
            <Dependency>xcb-util-renderutil</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="library">/usr/lib/qt5/imports</Path>
            <Path fileType="library">/usr/lib/qt5/qml</Path>
            <Path fileType="library">/usr/lib/qt5/plugins</Path>
            <Path fileType="localdata">/usr/share/qt5/translations</Path>
            <Path fileType="executable">/usr/lib/qt5/bin</Path>
            <Path fileType="executable">/usr/bin</Path>
            <Path fileType="doc">/usr/share/doc</Path>
            <Path fileType="data">/usr/lib/qt5/mkspecs</Path>
        </Files>
    </Package>

    <Package>
        <Name>qt5-base-devel</Name>
        Development files for Qt 5
        <Description>Development files for Qt 5</Description>
        <Files>
            <Path fileType="header">/usr/include</Path>
            <Path fileType="data">/usr/lib/pkgconfig</Path>
            <Path fileType="data">/usr/lib/cmake</Path>
            <Path fileType="data">/usr/lib/*.prl</Path>
        </Files>
        <RuntimeDependencies>
            <Dependency release="current">qt5-base</Dependency>
            <Dependency>mesa-devel</Dependency>
        </RuntimeDependencies>
    </Package>

    <Package>
        <Name>qt5-sql-mysql</Name>
        <RuntimeDependencies>
            <Dependency version="current">qt5-base</Dependency>
            <Dependency>libgcc</Dependency>
            <Dependency>mariadb-lib</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib/qt5/plugins/sqldrivers/libqsqlmysql.so</Path>
        </Files>
    </Package>

    <Package>
        <Name>qt5-sql-postgresql</Name>
        <RuntimeDependencies>
            <Dependency version="current">qt5-base</Dependency>
            <Dependency>libgcc</Dependency>
            <Dependency>postgresql-lib</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib/qt5/plugins/sqldrivers/libqsqlpsql.so</Path>
        </Files>
    </Package>

    <Package>
        <Name>qt5-sql-sqlite</Name>
        <RuntimeDependencies>
            <Dependency version="current">qt5-base</Dependency>
            <Dependency>libgcc</Dependency>
            <Dependency>sqlite</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib/qt5/plugins/sqldrivers/libqsqlite.so</Path>
        </Files>
    </Package>

    <Package>
        <Name>qt5-sql-odbc</Name>
        <RuntimeDependencies>
            <Dependency version="current">qt5-base</Dependency>
            <Dependency>libgcc</Dependency>
            <Dependency>unixODBC</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib/qt5/plugins/sqldrivers/libqsqlodbc.so</Path>
        </Files>
    </Package>

    <History>
        <Update release="7">
            <Date>2018-01-18</Date>
            <Version>5.9.3</Version>
            <Comment>Version bump</Comment>
            <Name>ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
        <Update release="6">
            <Date>2017-03-19</Date>
            <Version>5.7.1</Version>
            <Comment>Version bump.</Comment>
            <Name>Stefan Gronewold(groni)</Name>
            <Email>groni@pisilinux.org</Email>
        </Update>
        <Update release="5">
            <Date>2016-10-21</Date>
            <Version>5.6.2</Version>
            <Comment>Version Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="4">
            <Date>2016-06-29</Date>
            <Version>5.6.0</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="3">
            <Date>2016-05-15</Date>
            <Version>5.6.0</Version>
            <Comment>Rebuild for new gst</Comment>
            <Name>PisiLinux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="2">
            <Date>2016-05-04</Date>
            <Version>5.6.0</Version>
            <Comment>Rebuild</Comment>
            <Name>PisiLinux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-04-17</Date>
            <Version>5.6.0</Version>
            <Comment>First release</Comment>
            <Name>Ertuğrul Erata</Name>
            <Email>ertugrulerata@gmail.com</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>qt5-base</Name>
        Qt5 araç takımı, sürüm 5
        <Description xml:lang="tr">Qt bir çok platformda çalışabilen ve grafiksel kullanıcı arayüzü (GUI) oluşturmaya yarayan bir araç takımıdır.</Description>
        <Description xml:lang="fr">Qt est une boîte à outils graphique multi-plateforme.</Description>
        <Description xml:lang="es">Qt es un toolkit para GUI multiplataforma.</Description>
    </Source>

    <Package>
        <Name>qt5-base-devel</Name>
        Qt5 için geliştirme dosyaları
    </Package>

    <Package>
        <Name>qt5-docs</Name>
        Qt5 için geliştirme belgeleri ve Qt Assistant aracı
    </Package>

    <Package>
        <Name>qt5-sql-ibase</Name>
        Qt5'in SQL sınıfları için IBase sürücüsü
    </Package>

    <Package>
        <Name>qt5-sql-mysql</Name>
        Qt5'in SQL sınıfları için MySQL sürücüsü
    </Package>

    <Package>
        <Name>qt5-sql-odbc</Name>
        Qt5'in SQL sınıfları için ODBC sürücüsü
    </Package>

    <Package>
        <Name>qt5-sql-postgresql</Name>
        Qt5'in SQL sınıfları için PostgreSQL sürücüsü
    </Package>

    <Package>
        <Name>qt5-sql-sqlite</Name>
        Qt5'in SQL sınıfları için SQLite sürücüsü
    </Package>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/copyleft/gpl.txt

from pisi.actionsapi import qt5
from pisi.actionsapi import pisitools

def setup():
    qt5.configure()

def build():
    qt5.make()

def install():
    qt5.install()

    pisitools.dodoc("LICENSE.GPL3-EXCEPT", "LICENSE.GPLv2", "LICENSE.GPLv3", "LICENSE.LGPLv3", "LICENSE.GPL3", "LICENSE.LGPL3")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>qt5-canvas3d</Name>
        <Homepage>http://qt-project.org/</Homepage>
        <Packager>
            <Name>Stefan Gronewold</Name>
            <Email>groni@pisilinux.org</Email>
        </Packager>
        <License>custom</License>
        <License>FDL</License>
        <License>GPL3</License>
        <License>LGPL3</License>
        <PartOf>desktop</PartOf>
        A JavaScript 3D rendering API for Qt Quick
        <Description>A JavaScript 3D rendering API for Qt Quick</Description>
        <Archive sha1sum="dd0521bf357e05bce2830e31a9bd505a917f3ebf" type="tarxz">http://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtcanvas3d-opensource-src-5.9.3.tar.xz</Archive>
        <BuildDependencies>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative-devel</Dependency>
        </BuildDependencies>
    </Source>
    <Package>
        <Name>qt5-canvas3d</Name>
        A JavaScript 3D rendering API for Qt Quick
        <RuntimeDependencies>
            <Dependency versionFrom="5.9.3">qt5-base</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative</Dependency>
            <Dependency>libgcc</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib/qt5</Path>
            <Path fileType="doc">/usr/share/doc</Path>
        </Files>
    </Package>
    <History>
        <Update release="2">
            <Date>2018-01-18</Date>
            <Version>5.9.3</Version>
            <Comment>Version Bump</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2017-02-21</Date>
            <Version>5.7.1</Version>
            <Comment>First Release</Comment>
            <Name>Stefan Gronewold</Name>
            <Email>groni@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/copyleft/gpl.txt

from pisi.actionsapi import qt5
from pisi.actionsapi import pisitools

def setup():
    qt5.configure()

def build():
    qt5.make()

def install():
    qt5.install()

    pisitools.dodoc("LICENSE.GPL3", "README")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>qt5-charts</Name>
        <Homepage>http://qt-project.org/</Homepage>
        <Packager>
            <Name>Stefan Gronewold</Name>
            <Email>groni@pisilinux.org</Email>
        </Packager>
        <License>GPL3</License>
        Provides a set of easy to use chart components
        <Description>Provides a set of easy to use chart components</Description>
       <Archive sha1sum="58dd9922574adec81747e51b10b40719a6a1a97c" type="tarxz">http://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtcharts-opensource-src-5.9.3.tar.xz</Archive>
        <BuildDependencies>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative-devel</Dependency>
        </BuildDependencies>
    </Source>
    <Package>
        <Name>qt5-charts</Name>
        Provides a set of easy to use chart components
        <RuntimeDependencies>
            <Dependency versionFrom="5.9.3">qt5-base</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative</Dependency>
            <Dependency>libgcc</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib/qt5</Path>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="doc">/usr/share/doc</Path>
        </Files>
    </Package>

    <Package>
        <Name>qt5-charts-devel</Name>
        Development files for qt5-charts
        <RuntimeDependencies>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency release="current">qt5-charts</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="header">/usr/include/qt5</Path>
            <Path fileType="config">/usr/lib/cmake</Path>
            <Path fileType="data">/usr/lib/pkgconfig</Path>
        </Files>
    </Package>

    <History>
        <Update release="2">
            <Date>2018-01-18</Date>
            <Version>5.9.3</Version>
            <Comment>Version Bump</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2017-02-20</Date>
            <Version>5.7.1</Version>
            <Comment>First Release</Comment>
            <Name>Stefan Gronewold</Name>
            <Email>groni@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/copyleft/gpl.txt

from pisi.actionsapi import cmaketools
from pisi.actionsapi import get
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools

def setup():
    shelltools.makedirs("build")
    shelltools.cd("build")
    cmaketools.configure("-DCMAKE_INSTALL_PREFIX=/usr", sourceDir="..")
def build():
    shelltools.cd("build")
    cmaketools.make()

def install():
    shelltools.cd("build")
    cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
    pisitools.domove("/usr/lib64/*", "/usr/lib")
    pisitools.removeDir("/usr/lib64")
    shelltools.cd("..")
    pisitools.dodoc("LICENSE.FDL", "LICENSE.GPL", "LICENSE.LGPL", "README.md")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>qt5-configuration</Name>
        <Homepage>https://github.com/hawaii-desktop/</Homepage>
        <Packager>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Packager>
        <Summary>Settings API with change notifications for Qt</Summary>
        <Description>Settings API with change notifications for Qt</Description>
        <License>LGPLv2.1-linking-exception</License>
        <Archive sha1sum="d3d677273f31032b3bba09efbf28e4c7ff968711" type="targz">https://github.com/hawaii-desktop/qtconfiguration/archive/v0.3.1.tar.gz</Archive>
        <BuildDependencies>
            <Dependency versionFrom="2.50.2">glib2-devel</Dependency>
            <Dependency>dconf-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative-devel</Dependency>
            <Dependency>cmake</Dependency>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
        </BuildDependencies>
    </Source>

    <Package>
        <Name>qt5-configuration</Name>
        <RuntimeDependencies>
            <Dependency>libgcc</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative</Dependency>
            <Dependency versionFrom="2.50.2">glib2</Dependency>
            <Dependency>dconf</Dependency>
            <Dependency versionFrom="5.9.3">qt5-base</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="library">/usr/lib/qt5</Path>
            <Path fileType="library">/usr/share/licenses</Path>
            <Path fileType="doc">/usr/share/doc</Path>
            <Path fileType="executable">/usr/lib/qt5/bin/</Path>
            <Path fileType="executable">/usr/bin</Path>
        </Files>
    </Package>

    <Package>
        <Name>qt5-configuration-devel</Name>
        <Files>
            <Path fileType="library">/usr/lib/pkgconfig</Path>
            <Path fileType="header">/usr/include</Path>
        </Files>
        <RuntimeDependencies>
            <Dependency release="current">qt5-configuration</Dependency>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
        </RuntimeDependencies>
    </Package>

    <History>
        <Update release="7">
            <Date>2018-01-18</Date>
            <Version>0.3.1</Version>
            <Comment>Rebuild for qt5.9.3</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
        <Update release="6">
            <Date>2017-02-20</Date>
            <Version>0.3.1</Version>
            <Comment>Rebuild for new Toolchain</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="5">
            <Date>2016-10-22</Date>
            <Version>0.3.1</Version>
            <Comment>Version Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="4">
            <Date>2016-06-09</Date>
            <Version>0.3.1</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="3">
            <Date>2016-05-16</Date>
            <Version>0.3.1</Version>
            <Comment>Release Bump</Comment>
            <Name>PisiLinux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="2">
            <Date>2016-05-01</Date>
            <Version>0.3.1</Version>
            <Comment>Release Bump</Comment>
            <Name>PisiLinux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-04-17</Date>
            <Version>0.3.1</Version>
            <Comment>First release</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>qt5-configuration</Name>
        <Summary xml:lang="tr">Settings API with change notifications for Qt</Summary>
        <Description xml:lang="tr">Settings API with change notifications for Qt</Description>
    </Source>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import shelltools
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import qt5
from pisi.actionsapi import get

def setup():
    qt5.configure()

def build():
    qt5.make()
    qt5.make("docs")

def install():
    qt5.install("INSTALL_ROOT=%s install_docs" % get.installDIR())

    #I hope qtchooser will manage this issue
    for bin in shelltools.ls("%s/usr/lib/qt5/bin" % get.installDIR()):
        pisitools.dosym("/usr/lib/qt5/bin/%s" % bin, "/usr/bin/%s-qt5" % bin)

    pisitools.insinto("/usr/share/licenses/qt5-connectivity/", "LICENSE*")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>qt5-connectivity</Name>
        <Homepage>http://qt.digia.com/</Homepage>
        <Packager>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Packager>
        <Summary>Provides access to Bluetooth hardware</Summary>
        <Description>Provides access to Bluetooth hardware</Description>
        <License>LGPLv2.1-linking-exception</License>
        <Archive sha1sum="865cdde3a39d0cc4f0c36a35cce68685c8391e81" type="tarxz">http://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtconnectivity-opensource-src-5.9.3.tar.xz</Archive>
        <BuildDependencies>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-assistant-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-sql-sqlite</Dependency>
            <Dependency>bluez-libs-devel</Dependency>
        </BuildDependencies>
    </Source>

    <Package>
        <Name>qt5-connectivity</Name>
        <RuntimeDependencies>
            <Dependency versionFrom="5.9.3">qt5-base</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative</Dependency>
            <Dependency>bluez-libs</Dependency>
            <Dependency>libgcc</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/bin</Path>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="data">/usr/share/licenses</Path>
            <Path fileType="library">/usr/lib/qt5</Path>
            <Path fileType="executable">/usr/lib/qt5/bin/</Path>
        </Files>
    </Package>

    <Package>
        <Name>qt5-connectivity-devel</Name>
        <Files>
            <Path fileType="library">/usr/lib/pkgconfig</Path>
            <Path fileType="header">/usr/include/qt5</Path>
        </Files>
        <RuntimeDependencies>
            <Dependency release="current">qt5-connectivity</Dependency>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
        </RuntimeDependencies>
    </Package>

     <Package>
        <Name>qt5-connectivity-docs</Name>
        <RuntimeDependencies>
            <Dependency>qt5-base</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="doc">/usr/share/doc/qt5</Path>
        </Files>
    </Package>

    <History>
        <Update release="7">
            <Date>2018-01-18</Date>
            <Version>5.9.3</Version>
            <Comment>Version bump.</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
        <Update release="6">
            <Date>2017-02-20</Date>
            <Version>5.7.1</Version>
            <Comment>Release bump.</Comment>
            <Name>Stefan Gronewold</Name>
            <Email>groni@pisilinux.org</Email>
        </Update>
        <Update release="5">
            <Date>2016-10-22</Date>
            <Version>5.6.2</Version>
            <Comment>Version Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="4">
            <Date>2016-06-09</Date>
            <Version>5.6.0</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="3">
            <Date>2016-05-16</Date>
            <Version>5.6.0</Version>
            <Comment>Release Bump</Comment>
            <Name>PisiLinux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="2">
            <Date>2016-05-01</Date>
            <Version>5.6.0</Version>
            <Comment>Release Bump</Comment>
            <Name>PisiLinux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-04-17</Date>
            <Version>5.6.0</Version>
            <Comment>First release</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>qt5-connectivity</Name>
        Bluetooth donanımlarına bağlantı sağlar
        <Description xml:lang="tr">Bluetooth donanımlarına bağlantı sağlar</Description>
    </Source>

    <Package>
        <Name>qt5-connectivity-devel</Name>
        qt5-connectivity için geliştirme dosyaları
    </Package>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/copyleft/gpl.txt

from pisi.actionsapi import qt5
from pisi.actionsapi import pisitools

def setup():
    qt5.configure()

def build():
    qt5.make()

def install():
    qt5.install()

    pisitools.dodoc("LICENSE*")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>qt5-datavis3d</Name>
        <Homepage>http://qt-project.org/</Homepage>
        <Packager>
            <Name>Stefan Gronewold</Name>
            <Email>groni@pisilinux.org</Email>
        </Packager>
        <License>GPL3</License>
        <PartOf>desktop</PartOf>
        Provides a set of easy to use chart components
        <Description>Qt Data Visualization module</Description>
        <Archive sha1sum="acaf28c9efea43ee58b4b9ba72a3eada895756e9" type="tarxz">http://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtdatavis3d-opensource-src-5.9.3.tar.xz</Archive>
        <BuildDependencies>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative-devel</Dependency>
        </BuildDependencies>
    </Source>
    <Package>
        <Name>qt5-datavis3d</Name>
        Qt Data Visualization module
        <RuntimeDependencies>
            <Dependency versionFrom="5.9.3">qt5-base</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative</Dependency>
            <Dependency>libgcc</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="library">/usr/lib/qt5</Path>
            <Path fileType="doc">/usr/share/doc</Path>
        </Files>
    </Package>

    <Package>
        <Name>qt5-datavis3d-devel</Name>
        Development files for qt5-datavis3d
        <RuntimeDependencies>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-declarative-devel</Dependency>
            <Dependency release="current">qt5-datavis3d</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="header">/usr/include/qt5</Path>
            <Path fileType="config">/usr/lib/cmake</Path>
            <Path fileType="data">/usr/lib/pkgconfig</Path>
        </Files>
    </Package>

    <History>
        <Update release="2">
            <Date>2018-01-18</Date>
            <Version>5.9.3</Version>
            <Comment>Version Bump</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhyanyalcinsoy@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2017-02-20</Date>
            <Version>5.7.1</Version>
            <Comment>First Release</Comment>
            <Name>Stefan Gronewold</Name>
            <Email>groni@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

NoStrip = "/"

from pisi.actionsapi import shelltools
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import qt5
from pisi.actionsapi import get

def setup():
    shelltools.export("CFLAGS", "CXXFLAGS")
    qt5.configure()

def build():
    qt5.make()
    qt5.make("docs")

def install():
    #pisitools.insinto("/usr/lib/qt5/qml", "qml/QtQml")
    #pisitools.insinto("/usr/lib/qt5/qml", "qml/Qt")
    #pisitools.insinto("/usr/lib/qt5/qml", "qml/QtQuick")
    #pisitools.insinto("/usr/lib/qt5/qml", "qml/QtQuick.2")
    #pisitools.insinto("/usr/lib/qt5/qml", "qml/QtTest")
    qt5.install("INSTALL_ROOT=%s install_docs" % get.installDIR())

    #I hope qtchooser will manage this issue
    for bin in shelltools.ls("%s/usr/lib/qt5/bin" % get.installDIR()):
        pisitools.dosym("/usr/lib/qt5/bin/%s" % bin, "/usr/bin/%s-qt5" % bin)

    pisitools.insinto("/usr/share/licenses/qt5-declarative/", "LICENSE*")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>qt5-declarative</Name>
        <Homepage>http://qt.digia.com/</Homepage>
        <Packager>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Packager>
        <Summary>Classes for QML and JavaScript languages</Summary>
        <Description>Classes for QML and JavaScript languages</Description>
        <License>LGPLv2.1-linking-exception</License>
        <Archive sha1sum="c748a8acc5ce0aa8cefbf6558cbde7b457265a07" type="tarxz">http://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtdeclarative-opensource-src-5.9.3.tar.xz</Archive>
        <BuildDependencies>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency>libxkbcommon-devel</Dependency>
            <Dependency versionFrom="13.0.4">mesa-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-xmlpatterns-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-assistant-devel</Dependency>
            <Dependency versionFrom="5.9.3">qt5-sql-sqlite</Dependency>
        </BuildDependencies>
    </Source>

    <Package>
        <Name>qt5-declarative</Name>
        <RuntimeDependencies>
            <Dependency>libgcc</Dependency>
            <Dependency versionFrom="5.9.3">qt5-base</Dependency>
            <Dependency versionFrom="13.0.4">mesa</Dependency>
            <Dependency versionFrom="5.9.3">qt5-xmlpatterns</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="library">/usr/lib/qt5</Path>
            <Path fileType="data">/usr/lib/cmake</Path>
            <Path fileType="data">/usr/share/licenses</Path>
            <Path fileType="executable">/usr/lib/qt5/bin</Path>
            <Path fileType="executable">/usr/bin/</Path>
        </Files>

    </Package>

    <Package>
        <Name>qt5-declarative-devel</Name>
        <Files>
            <Path fileType="library">/usr/lib/pkgconfig</Path>
            <Path fileType="header">/usr/include/qt5</Path>
        </Files>
        <RuntimeDependencies>
            <Dependency versionFrom="5.9.3">qt5-base-devel</Dependency>
            <Dependency release="current">qt5-declarative</Dependency>
        </RuntimeDependencies>
    </Package>

    <Package>
        <Name>qt5-declarative-docs</Name>
        <RuntimeDependencies>
            <Dependency versionFrom="5.9.3">qt5-base</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="doc">/usr/share/doc/qt5</Path>
        </Files>
    </Package>

    <History>
        <Update release="7">
            <Date>2018-01-18</Date>
            <Version>5.9.3</Version>
            <Comment>Version bump.</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
        <Update release="6">
            <Date>2017-02-20</Date>
            <Version>5.7.1</Version>
            <Comment>Release bump.</Comment>
            <Name>Stefan Gronewold</Name>
            <Email>groni@pisilinux.org</Email>
        </Update>
        <Update release="5">
            <Date>2016-10-22</Date>
            <Version>5.6.2</Version>
            <Comment>Version Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="4">
            <Date>2016-06-09</Date>
            <Version>5.6.0</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="3">
            <Date>2016-05-16</Date>
            <Version>5.6.2</Version>
            <Comment>Release Bump</Comment>
            <Name>PisiLinux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="2">
            <Date>2016-05-01</Date>
            <Version>5.6.2</Version>
            <Comment>Release Bump</Comment>
            <Name>PisiLinux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-04-17</Date>
            <Version>5.6.2</Version>
            <Comment>First release</Comment>
            <Name>Ayhan Yalçınsoy</Name>
            <Email>ayhanyalcinsoy@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>qt5-declarative</Name>
        QML ve JavaScript dilleri için sınıflar
        <Description xml:lang="tr">QML ve JavaScript dilleri için sınıflar</Description>
    </Source>

    <Package>
        <Name>qt5-declarative-devel</Name>
        qt5-declarative için geliştirme dosyaları
    </Package>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import shelltools
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import qt5
from pisi.actionsapi import get

def setup():
    qt5.configure()

def build():
    qt5.make()
    qt5.make("docs")

def install():
    qt5.install("INSTALL_ROOT=%s install_docs"  % get.installDIR())