From 9c78d6a6f71782162cc3e4af48a8b1d851648e86 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Sat, 6 Jul 2013 19:22:08 +0000
Subject: [PATCH] extra/qt5 to 5.1.0-1

---
 extra/qt5/PKGBUILD            | 153 ++++++++++++++++++++--------------
 extra/qt5/assistant.desktop   |   2 +-
 extra/qt5/designer.desktop    |   2 +-
 extra/qt5/gcc48.patch         |  63 --------------
 extra/qt5/linguist.desktop    |   2 +-
 extra/qt5/qdbusviewer.desktop |   9 ++
 extra/qt5/qt5-base.install    |  11 ---
 extra/qt5/use-python2.patch   |  11 +++
 8 files changed, 112 insertions(+), 141 deletions(-)
 delete mode 100644 extra/qt5/gcc48.patch
 create mode 100644 extra/qt5/qdbusviewer.desktop
 delete mode 100644 extra/qt5/qt5-base.install

diff --git a/extra/qt5/PKGBUILD b/extra/qt5/PKGBUILD
index 4e0c90e15..22517a972 100644
--- a/extra/qt5/PKGBUILD
+++ b/extra/qt5/PKGBUILD
@@ -7,28 +7,29 @@
 #  - disabled distcc, restricted makeflags to -j3
 #  - enabled opengl es2, mesa makedepend for headers
 #  - added Raspberry Pi patches for armv6h
-#  - disable docs
 
 highmem=1
-noautobuild=1
 
 pkgbase=qt5
 pkgname=('qt5-base'
          'qt5-declarative'
-#         'qt5-doc'
          'qt5-graphicaleffects'
          'qt5-imageformats'
          'qt5-jsbackend'
          'qt5-multimedia'
          'qt5-quick1'
+         'qt5-quickcontrols'
          'qt5-script'
+         'qt5-sensors'
+         'qt5-serialport'
          'qt5-svg'
          'qt5-tools'
          'qt5-translations'
          'qt5-webkit'
+         'qt5-x11extras'
          'qt5-xmlpatterns')
-pkgver=5.0.2
-pkgrel=2.1
+pkgver=5.1,0
+pkgrel=1
 arch=('i686' 'x86_64')
 url='http://qt-project.org/'
 license=('GPL3' 'LGPL')
@@ -37,31 +38,29 @@ makedepends=('libxcb' 'xcb-proto' 'xcb-util' 'xcb-util-image' 'xcb-util-wm' 'xcb
             'libjpeg-turbo' 'cups' 'libpulse' 'hicolor-icon-theme' 'desktop-file-utils'
             'postgresql-libs' 'libmariadbclient' 'sqlite' 'unixodbc'
             'python2' 'ruby' 'gperf' 'libxslt' 'libxcomposite' 'fontconfig'
-            'libmng' 'openal' 'gtk2' 'mesa')
+            'libmng' 'openal' 'gtk2' 'mesa' 'libxkbcommon')
 groups=('qt' 'qt5')
 options=('!libtool' '!distcc')
 _pkgfqn="qt-everywhere-opensource-src-${pkgver}"
-source=("http://releases.qt-project.org/${pkgbase}/${pkgver}/single/${_pkgfqn}.tar.xz"
-        'assistant.desktop' 'designer.desktop' 'linguist.desktop'
-        'use-python2.patch' 'gcc48.patch' 
+source=("http://download.qt-project.org/official_releases/qt/5.1/${pkgver}/single/${_pkgfqn}.tar.xz"
+        'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qdbusviewer.desktop'
+        'use-python2.patch'
         'deppath_gnu.patch' 'rpi.patch' 'undef_B0.patch')
 md5sums=('2cab3518d86fe8f0638c7faea8b46397'
-         'f1837a03fd0ebbd2da58975845f278e3'
-         '480fea1ed076992b688373c8db274be0'
-         '5595c24d5bb942c21e3a4d299e6d0bf1'
-         'd6ab43fb371be494e3bfd9b210c40bf1'
-         '7927028e2374321c78a76df858e723d6'
+         'b2897dd6a2967bccf8f10e397aafee55'
+         '9638a78e502719ef8fe5f8d10d0361a9'
+         '188da8f4c87316e730ebf1c6217bf5a0'
+         '322b419b16c75d4de0ee7ad0a246caa1'
+         '92831f79144d5cb8121915423ba47575'
          '27f2a06c6d363338ffe5e5dba96821d9'
          '54ce1583d83f5e7e4b64bf89ea7cab99'
          '3740dc700c9c43379b0da6c10d2f6c6e')
 
-build() {
+prepare() {
   cd ${_pkgfqn}
 
   MAKEFLAGS="-j3"
 
-  export QTDIR="${srcdir}"/${_pkgfqn}
-  export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH}
   if [ "$CARCH" == 'armv6h' ]; then
     export CXXFLAGS=${CXXFLAGS}" -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
   fi
@@ -76,20 +75,24 @@ build() {
     -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
     $(find . -name '*.py')
 
-  # GCC 4.8 fixes
-  cd qtbase
-  patch -p1 -i "${srcdir}"/gcc48.patch
-
   # Raspberry Pi
   if [ "$CARCH" == 'armv6h' ]; then
+  cd qtbase
     patch -p1 -i "${srcdir}"/deppath_gnu.patch
     patch -p1 -i "${srcdir}"/rpi.patch
     patch -p1 -i "${srcdir}"/undef_B0.patch
     rbp_config="-device linux-rasp-pi-g++ -eglfs"
-  fi
   cd ../
+  fi
+}
 
-  ./configure -confirm-license -opensource \
+build() {
+  cd ${_pkgfqn}
+
+  export QTDIR="${srcdir}"/${_pkgfqn}
+  export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH}
+
+  PYTHON=/usr/bin/python2 ./configure -confirm-license -opensource \
     -prefix /usr \
     -bindir /usr/lib/qt/bin \
     -docdir /usr/share/doc/qt \
@@ -120,29 +123,16 @@ build() {
     $rbp_config
 
   make
-
-  # build docs
-  #make docs
-
-  # build examples
-  for m in qtbase qtdeclarative qtmultimedia qtquick1 qtscript qtsvg qttools \
-    qtwebkit-examples-and-demos qtxmlpatterns; do
-    cd ${m}/examples
-    ${QTDIR}/qtbase/bin/qmake
-    make
-    cd ../../
-  done
 }
 
 package_qt5-base() {
   pkgdesc='A cross-platform application and UI framework'
   depends=('libjpeg-turbo' 'xcb-util-keysyms' 'libgl' 'dbus' 'fontconfig' 'systemd'
            'xcb-util-wm' 'libxrender' 'libxi' 'sqlite' 'libpng' 'xcb-util-image'
-           'hicolor-icon-theme' 'xdg-utils' 'icu' 'qtchooser')
+           'icu' 'qtchooser' 'libxkbcommon')
   optdepends=('postgresql-libs: PostgreSQL driver'
               'libmariadbclient: MariaDB driver'
               'unixodbc: ODBC driver')
-  install='qt5-base.install'
   conflicts=('qt')
 
   cd ${_pkgfqn}/qtbase
@@ -186,26 +176,6 @@ package_qt5-declarative() {
   done
 }
 
-#package_qt5-doc() {
-#  pkgdesc='A cross-platform application and UI framework (Documentation and Examples)'
-#  depends=('qt5-base')
-#  conflicts=('qt-doc')
-#  replaces=('qt-doc')
-#  provides=('qt-doc')
-#  options=('docs')
-#  groups=()
-#
-#  cd ${_pkgfqn}
-#  make INSTALL_ROOT="${pkgdir}" install_docs
-#
-#  for m in qtbase qtdeclarative qtmultimedia qtquick1 qtscript qtsvg qttools \
-#    qtwebkit-examples-and-demos qtxmlpatterns; do
-#    cd ${m}/examples
-#    make INSTALL_ROOT="${pkgdir}" install
-#    cd ../../
-#  done
-#}
-
 package_qt5-jsbackend() {
   pkgdesc='A cross-platform application and UI framework (QtV8)'
   depends=('qt5-base')
@@ -287,6 +257,20 @@ package_qt5-quick1() {
   # Fix wrong path in prl files
   find "${pkgdir}/usr/lib" -type f -name '*.prl' \
     -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
+
+  # Useful symlinks
+  install -d "${pkgdir}"/usr/bin
+  for b in "${pkgdir}"/usr/lib/qt/bin/*; do
+    ln -s /usr/lib/qt/bin/$(basename $b) "${pkgdir}"/usr/bin/$(basename $b)-qt5
+  done
+}
+
+package_qt5-quickcontrols() {
+  pkgdesc='A cross-platform application and UI framework (QtQuick)'
+  depends=('qt5-declarative')
+
+  cd ${_pkgfqn}/qtquickcontrols
+  make INSTALL_ROOT="${pkgdir}" install
 }
 
 package_qt5-script() {
@@ -302,6 +286,30 @@ package_qt5-script() {
     -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
 }
 
+package_qt5-sensors() {
+  pkgdesc='A cross-platform application and UI framework (QtSensors)'
+  depends=('qt5-declarative')
+
+  cd ${_pkgfqn}/qtsensors
+  make INSTALL_ROOT="${pkgdir}" install
+  
+  # Fix wrong path in prl files
+  find "${pkgdir}/usr/lib" -type f -name '*.prl' \
+    -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
+}
+
+package_qt5-serialport() {
+  pkgdesc='A cross-platform application and UI framework (QtSerialPort)'
+  depends=('qt5-base')
+  
+  cd ${_pkgfqn}/qtserialport
+  make INSTALL_ROOT="${pkgdir}" install
+  
+  # Fix wrong path in prl files
+  find "${pkgdir}/usr/lib" -type f -name '*.prl' \
+    -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
+}
+
 package_qt5-svg() {
   pkgdesc='A cross-platform application and UI framework (QtSvg)'
   depends=('qt5-base')
@@ -317,8 +325,9 @@ package_qt5-svg() {
   
 package_qt5-tools() {
   pkgdesc='A cross-platform application and UI framework (Development Tools, QtHelp)'
-  depends=('qt5-webkit' 'desktop-file-utils' 'qt5-translations')
-#  optdepends=('qt5-doc: documentation')
+  depends=('qt5-webkit' 'desktop-file-utils' 'qt5-translations' 'hicolor-icon-theme'
+           'xdg-utils')
+  optdepends=('qt5-doc: documentation')
   install='qt5-tools.install'
   conflicts=('qt')
 
@@ -332,14 +341,18 @@ package_qt5-tools() {
       "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/linguist.png"
   done
 
-  install -p -D -m644 src/assistant/assistant/images/assistant.png \
+  install -D -m644 src/assistant/assistant/images/assistant.png \
     "${pkgdir}/usr/share/icons/hicolor/32x32/apps/assistant.png"
-  install -p -D -m644 src/assistant/assistant/images/assistant-128.png \
+  install -D -m644 src/assistant/assistant/images/assistant-128.png \
     "${pkgdir}/usr/share/icons/hicolor/128x128/apps/assistant.png"
-  install -p -D -m644 src/designer/src/designer/images/designer.png \
+  install -D -m644 src/designer/src/designer/images/designer.png \
     "${pkgdir}/usr/share/icons/hicolor/128x128/apps/designer.png"
+  install -D -m644 src/qdbus/qdbusviewer/images/qdbusviewer.png \
+    "${pkgdir}/usr/share/icons/hicolor/32x32/apps/qdbusviewer.png"
+  install -D -m644 src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
+    "${pkgdir}/usr/share/icons/hicolor/128x128/apps/qdbusviewer.png"
   install -d "${pkgdir}/usr/share/applications"
-  install -m644 "${srcdir}"/{linguist,designer,assistant}.desktop \
+  install -m644 "${srcdir}"/{linguist,designer,assistant,qdbusviewer}.desktop \
     "${pkgdir}/usr/share/applications/"
 
   # Fix wrong path in prl files
@@ -355,7 +368,7 @@ package_qt5-tools() {
 
 package_qt5-webkit() {
   pkgdesc='A cross-platform application and UI framework (QtWebKit)'
-  depends=('qt5-declarative' 'gstreamer0.10-base' 'libxslt' 'libxcomposite')
+  depends=('qt5-declarative' 'gstreamer0.10-base' 'libxslt' 'libxcomposite' 'qt5-sensors')
 
   cd ${_pkgfqn}/qtwebkit
   make INSTALL_ROOT="${pkgdir}" install
@@ -367,3 +380,15 @@ package_qt5-webkit() {
   # Fix wrong path in pc file
   perl -pi -e "s, -L${srcdir}/?\S+,,g" "${pkgdir}"/usr/lib/pkgconfig/Qt5WebKit.pc
 }
+
+package_qt5-x11extras() {
+  pkgdesc='A cross-platform application and UI framework (QtX11Extras)'
+  depends=('qt5-base')
+  
+  cd ${_pkgfqn}/qtx11extras
+  make INSTALL_ROOT="${pkgdir}" install
+  
+  # Fix wrong path in prl files
+  find "${pkgdir}/usr/lib" -type f -name '*.prl' \
+    -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
+}
diff --git a/extra/qt5/assistant.desktop b/extra/qt5/assistant.desktop
index 37ff84b44..9d6100438 100644
--- a/extra/qt5/assistant.desktop
+++ b/extra/qt5/assistant.desktop
@@ -1,7 +1,7 @@
 [Desktop Entry]
 Name=Qt Assistant
 Comment=Shows Qt documentation and examples
-Exec=/usr/bin/assistant
+Exec=/usr/lib/qt/bin/assistant
 Icon=assistant
 Terminal=false
 Type=Application
diff --git a/extra/qt5/designer.desktop b/extra/qt5/designer.desktop
index f0b381d02..86aefe020 100644
--- a/extra/qt5/designer.desktop
+++ b/extra/qt5/designer.desktop
@@ -2,7 +2,7 @@
 Name=Qt Designer
 GenericName=Interface Designer
 Comment=Design GUIs for Qt applications
-Exec=/usr/bin/designer
+Exec=/usr/lib/qt/bin/designer
 Icon=designer
 MimeType=application/x-designer;
 Terminal=false
diff --git a/extra/qt5/gcc48.patch b/extra/qt5/gcc48.patch
deleted file mode 100644
index 03b205b68..000000000
--- a/extra/qt5/gcc48.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-# Author:     David E. Narváez <david.narvaez@computer.org>
-# AuthorDate: 2013-02-23 23:14:50 -0500
-# Commit:     David E. Narváez <david.narvaez@computer.org>
-# CommitDate: 2013-02-23 23:14:50 -0500
-#
-# Rename qAbs Function for timeval
-#
-# This decouples it from qAbs which is declared as a constexpr under
-# certain compilation flags and enables for qtbase to be compiled with
-# GCC 4.8
-#
-# Change-Id: I78e02256ffc8b460ca74ae5241e77dfac4e09ba9
-diff --git a/src/corelib/kernel/qtimerinfo_unix.cpp b/src/corelib/kernel/qtimerinfo_unix.cpp
-index 0eee425..7a29247 100644
---- a/src/corelib/kernel/qtimerinfo_unix.cpp
-+++ b/src/corelib/kernel/qtimerinfo_unix.cpp
-@@ -87,22 +87,21 @@
-     firstTimerInfo = 0;
- }
- 
- timeval QTimerInfoList::updateCurrentTime()
- {
-     return (currentTime = qt_gettime());
- }
- 
- #if ((_POSIX_MONOTONIC_CLOCK-0 <= 0) && !defined(Q_OS_MAC) && !defined(Q_OS_INTEGRITY)) || defined(QT_BOOTSTRAPPED)
- 
--template <>
--timeval qAbs(const timeval &t)
-+timeval qAbsTimeval(const timeval &t)
- {
-     timeval tmp = t;
-     if (tmp.tv_sec < 0) {
-         tmp.tv_sec = -tmp.tv_sec - 1;
-         tmp.tv_usec -= 1000000;
-     }
-     if (tmp.tv_sec == 0 && tmp.tv_usec < 0) {
-         tmp.tv_usec = -tmp.tv_usec;
-     }
-     return normalizedTimeval(tmp);
-@@ -137,21 +136,21 @@
-     *delta = elapsedTime - elapsedTimeTicks;
- 
-     previousTicks = currentTicks;
-     previousTime = currentTime;
- 
-     // If tick drift is more than 10% off compared to realtime, we assume that the clock has
-     // been set. Of course, we have to allow for the tick granularity as well.
-     timeval tickGranularity;
-     tickGranularity.tv_sec = 0;
-     tickGranularity.tv_usec = msPerTick * 1000;
--    return elapsedTimeTicks < ((qAbs(*delta) - tickGranularity) * 10);
-+    return elapsedTimeTicks < ((qAbsTimeval(*delta) - tickGranularity) * 10);
- }
- 
- /*
-   repair broken timer
- */
- void QTimerInfoList::timerRepair(const timeval &diff)
- {
-     // repair all timers
-     for (int i = 0; i < size(); ++i) {
-         register QTimerInfo *t = at(i);
diff --git a/extra/qt5/linguist.desktop b/extra/qt5/linguist.desktop
index 3b203e0bd..c6d1aa4ba 100644
--- a/extra/qt5/linguist.desktop
+++ b/extra/qt5/linguist.desktop
@@ -1,7 +1,7 @@
 [Desktop Entry]
 Name=Qt Linguist
 Comment=Add translations to Qt applications
-Exec=/usr/bin/linguist
+Exec=/usr/lib/qt/bin/linguist
 Icon=linguist
 MimeType=text/vnd.trolltech.linguist;application/x-linguist;
 Terminal=false
diff --git a/extra/qt5/qdbusviewer.desktop b/extra/qt5/qdbusviewer.desktop
new file mode 100644
index 000000000..9165b6feb
--- /dev/null
+++ b/extra/qt5/qdbusviewer.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Qt QDbusViewer 
+GenericName=D-Bus Debugger
+Comment=Debug D-Bus applications
+Exec=/usr/lib/qt/bin/qdbusviewer
+Icon=qdbusviewer
+Terminal=false
+Type=Application
+Categories=Qt;Development;Debugger;
diff --git a/extra/qt5/qt5-base.install b/extra/qt5/qt5-base.install
deleted file mode 100644
index c0797237a..000000000
--- a/extra/qt5/qt5-base.install
+++ /dev/null
@@ -1,11 +0,0 @@
-post_install() {
-    xdg-icon-resource forceupdate --theme hicolor &> /dev/null
-}
-
-post_upgrade() {
-    post_install
-}
-
-post_remove() {
-    post_install
-}
diff --git a/extra/qt5/use-python2.patch b/extra/qt5/use-python2.patch
index eb53b10f6..57487b996 100644
--- a/extra/qt5/use-python2.patch
+++ b/extra/qt5/use-python2.patch
@@ -105,3 +105,14 @@
      for(program, requiredPrograms): \
          !programExistsInPath($$program): \
              addReasonForSkippingBuild("Missing $$program from PATH")
+--- qt-everywhere-opensource-src-5.1.0/qtjsbackend/src/3rdparty/v8/src/d8.gyp.old      2013-07-03 19:22:34.536705691 +0000
++++ qt-everywhere-opensource-src-5.1.0/qtjsbackend/src/3rdparty/v8/src/d8.gyp  2013-07-03 19:22:25.606770334 +0000
+@@ -99,7 +99,7 @@
+             '<(SHARED_INTERMEDIATE_DIR)/d8-js.cc',
+           ],
+           'action': [
+-            'python',
++            'python2',
+             '../tools/js2c.py',
+             '<@(_outputs)',
+             'D8',