Fix a few mistakes in mingw-w64-qt5-* packages

- Some modules contain executables to run on the host
  and hence mustn't have the architecture 'any'.
- Host tools in modules are stripped now
- Missing mfence in Atomic.h (header of WTF) is fixed
  in a more appropriate way
This commit is contained in:
Martchus 2016-06-19 15:18:37 +02:00
parent 8763c6d6b2
commit f7924a9daa
11 changed files with 72 additions and 32 deletions

3
.gitignore vendored
View File

@ -41,3 +41,6 @@ Makefile*
# Backups
*.bak
# VIM swap
*.swp

View File

@ -8,7 +8,7 @@ _qt_module=qt3d
pkgname="mingw-w64-qt5-3d"
pkgver=5.7.0
pkgrel=1
arch=('any')
arch=('i686' 'x86_64')
pkgdesc="C++ and QML APIs for easy inclusion of 3D graphics (mingw-w64)"
depends=('mingw-w64-qt5-declarative')
makedepends=('mingw-w64-gcc')
@ -34,11 +34,11 @@ build() {
for _arch in ${_architectures}; do
mkdir -p build-${_arch} && pushd build-${_arch}
# out Qt 5 build uses the system zlib for host builds
# seems like we need to remember Qt about that here again
${_arch}-qmake-qt5 ../${_qt_module}.pro
make
make qmake_all
find ./tools -type f -iname 'Makefile' -exec sed -i "s|-lQt5Bootstrap|-L/usr/$_arch/lib -lQt5Bootstrap|g" {} \;
make
popd
done
}
@ -55,9 +55,9 @@ package() {
# One copy of the .dll's is sufficient
rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll
strip --strip-all "${pkgdir}/usr/${_arch}/lib/qt/bin/"*
find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \;
find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g
strip --strip-all "${pkgdir}/usr/${_arch}/lib/qt/bin/"*
popd
done

View File

@ -15,7 +15,7 @@ isOpenGL() {
[ $pkgname = "mingw-w64-qt5-base-opengl" ]
}
pkgname=mingw-w64-qt5-static
pkgname=mingw-w64-qt5-base-static
pkgver=5.7.0
pkgrel=1
pkgdesc="A cross-platform application and UI framework (mingw-w64)"

View File

@ -9,7 +9,7 @@ _qt_module=qtdeclarative
pkgname=mingw-w64-qt5-declarative
pkgver=5.7.0
pkgrel=1
arch=('any')
arch=('i686' 'x86_64')
pkgdesc="Classes for QML and JavaScript languages (mingw-w64)"
depends=(mingw-w64-qt5-base)
makedepends=(mingw-w64-gcc python)
@ -18,23 +18,31 @@ groups=(mingw-w64-qt mingw-w64-qt5)
license=("custom, FDL, GPL3, LGPL")
url="https://www.qt.io/"
_pkgfqn="${_qt_module}-opensource-src-${pkgver}"
source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz")
md5sums=('0d9e461aa54dba4793253fa2eb501f9b')
source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz"
"qt5-build-qmldevtools-as-shared-library.patch")
md5sums=('0d9e461aa54dba4793253fa2eb501f9b'
'8f90ec8c2379b85de0b04847865b230c')
_architectures="i686-w64-mingw32 x86_64-w64-mingw32"
prepare() {
cd "${srcdir}/${_pkgfqn}"
patch -p1 -i "${srcdir}"/qt5-build-qmldevtools-as-shared-library.patch
}
build() {
cd "${srcdir}/${_pkgfqn}"
for _arch in ${_architectures}; do
mkdir -p build-${_arch} && pushd build-${_arch}
${_arch}-qmake-qt5 ../${_qt_module}.pro
# Something is messed up with Qt5Bootstrap
# search paths for host standard library (/usr/lib) and for Qt5Bootstrap (/usr/$_arch/lib) are not set correctly by qmake
# hence we need insert those paths manually
make qmake_all
find ./src -type f -exec sed -i "s|-L/usr/${_arch}/lib -lQt5Bootstrap|/usr/lib/libstdc++.so.6 /usr/lib/libm.so -L/usr/${_arch}/lib -lQt5Bootstrap|g" {} \;
find . -type f -exec sed -i "s|-L/usr/${_arch}/lib -lQt5Bootstrap|/usr/lib/libstdc++.so.6 /usr/lib/libm.so -L/usr/${_arch}/lib -lQt5Bootstrap|g" {} \;
find ./src -type f -exec sed -i "s|-L/usr/${_arch}/lib -lQt5QmlDevTools|/usr/lib/libstdc++.so.6 -L/usr/${_arch}/lib -lQt5QmlDevTools|g" {} \;
find ./tools -type f -exec sed -i "s|-L/usr/${_arch}/lib -lQt5Bootstrap|/usr/lib/libstdc++.so.6 /usr/lib/libm.so -L/usr/${_arch}/lib -lQt5Bootstrap|g" {} \;
find ./src/qmldevtools -type f -iname 'Makefile' -exec sed -i "s|-lQt5Bootstrap|-L/usr/lib -L/usr/$_arch/lib -lQt5Bootstrap|g" {} \;
find . -type f -iname 'Makefile' -exec sed -i "s|-L$PWD/lib -lQt5Bootstrap|-L/usr/lib -L$PWD/lib -L/usr/$_arch/lib -lQt5Bootstrap|g" {} \;
find . -type f -iname 'Makefile' -exec sed -i "s|-L$PWD/lib -lQt5QmlDevTools -lQt5Bootstrap|-L/usr/lib -L$PWD/lib -L/usr/$_arch/lib -lQt5QmlDevTools -lQt5Bootstrap|g" {} \;
make
popd
done
@ -51,6 +59,8 @@ package() {
find "${pkgdir}/usr/${_arch}" -name "*.exe" -o -name "*.bat" -o -name "*.def" -o -name "*.exp" -o -name '*.prl' | xargs -rtl1 rm
find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \;
find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g
strip --strip-all "${pkgdir}/usr/${_arch}/lib/qt/bin/"*
strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/"*.so.$pkgver
popd
done
}

View File

@ -0,0 +1,11 @@
--- qtdeclarative-opensource-src-5.1.0/src/qmldevtools/qmldevtools.pro.orig 2013-08-02 01:25:48.928675488 +0200
+++ qtdeclarative-opensource-src-5.1.0/src/qmldevtools/qmldevtools.pro 2013-08-02 01:25:58.679832023 +0200
@@ -1,7 +1,7 @@
option(host_build)
TARGET = QtQmlDevTools
QT = core-private
-CONFIG += static internal_module qmldevtools_build
+CONFIG += internal_module qmldevtools_build
# Don't use pch because the auto-generated header refers to QtBootstrap,
# which doesn't exist

View File

@ -7,7 +7,7 @@
_qt_module=qtscript
pkgname="mingw-w64-qt5-script"
pkgver=5.6.1
pkgver=5.7.0
pkgrel=1
arch=('any')
pkgdesc="Classes for making Qt applications scriptable. Provided for Qt 4.x compatibility (mingw-w64)"

View File

@ -9,7 +9,7 @@ _qt_module=qtscxml
pkgname="mingw-w64-qt5-scxml"
pkgver=5.7.0
pkgrel=1
arch=('any')
arch=('i686' 'x86_64')
pkgdesc="Static and runtime integration of SCXML models into Qt code (mingw-w64)"
depends=('mingw-w64-qt5-declarative')
makedepends=('mingw-w64-gcc')
@ -30,8 +30,10 @@ build()
mkdir -p build-${_arch} && pushd build-${_arch}
${_arch}-qmake-qt5 ../${_qt_module}.pro
make
make qmake_all
find ./tools -type f -iname 'Makefile' -exec sed -i "s|-lQt5Bootstrap|-L/usr/lib -L/usr/$_arch/lib -lQt5Bootstrap|g" {} \;
make
popd
done
}
@ -48,8 +50,9 @@ package() {
# One copy of the .dll's is sufficient
rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll
${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/bin/"*.dll
${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/"*.dll.a
find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \;
find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g
strip --strip-all "${pkgdir}/usr/${_arch}/lib/qt/bin/"*
popd
done

View File

@ -9,7 +9,7 @@ _qt_module=qttools
pkgname="mingw-w64-qt5-tools"
pkgver=5.7.0
pkgrel=1
arch=('any')
arch=('i686' 'x86_64')
pkgdesc="A cross-platform application and UI framework (Development Tools, QtHelp; mingw-w64)"
depends=('mingw-w64-qt5-declarative')
makedepends=('mingw-w64-gcc')
@ -31,13 +31,13 @@ build()
${_arch}-qmake-qt5 ../${_qt_module}.pro
# Something is messed up with Qt5Bootstrap
# search paths for host standard library (/usr/lib) and for Qt5Bootstrap (/usr/$_arch/lib) are not set correctly by qmake
# hence we need insert those paths manually
make qmake_all
find ./src -type f -exec sed -i "s|-L/usr/${_arch}/lib -lQt5Bootstrap|/usr/lib/libstdc++.so.6 -L/usr/${_arch}/lib -lQt5Bootstrap|g" {} \;
find ./src -type f -exec sed -i "s|-L/usr/${_arch}/lib -lQt5QmlDevTools|/usr/lib/libstdc++.so.6 -L/usr/${_arch}/lib -lQt5QmlDevTools|g" {} \;
find . -type f -iname 'Makefile' -exec sed -i "s|-lQt5QmlDevTools -lQt5Bootstrap|-L/usr/lib -L/usr/$_arch/lib -lQt5QmlDevTools -lQt5Bootstrap|g" {} \;
find . -type f -iname 'Makefile' -exec sed -i "s|-lQt5Bootstrap|-L/usr/lib -L/usr/$_arch/lib -lQt5Bootstrap|g" {} \;
make
popd
done
}
@ -69,6 +69,7 @@ package() {
${_arch}-strip --strip-all "${pkgdir}/usr/${_arch}/bin/"*.exe
${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/bin/"*.dll
${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/"*.dll.a
strip --strip-all "${pkgdir}/usr/${_arch}/lib/qt/bin/"*
popd
done

View File

@ -11,8 +11,8 @@ pkgver=5.7.0
pkgrel=1
arch=('any')
pkgdesc="Virtual keyboard framework (translations, mingw-w64)"
depends=('mingw-w64-qt5-base')
makedepends=('mingw-w64-gcc' 'mingw-w64-qt5-tools')
depends=('mingw-w64-qt5-declarative' 'mingw-w64-qt5-svg')
makedepends=('mingw-w64-gcc')
options=('!strip' '!buildflags' 'staticlibs')
license=('GPL3' 'LGPL')
url="https://www.qt.io/"

View File

@ -45,7 +45,8 @@ source=("https://download.qt.io/community_releases/${pkgver:0:3}/${pkgver}/${_pk
qtwebkit-dont-use-bundled-angle-libraries.patch
qtwebkit-opensource-src-5.0.1-debuginfo.patch
revert-qt4-unicode-removal.patch
webkit-commit-151422.patch)
webkit-commit-151422.patch
qt5-qtwebkit-mfence-mingw.patch)
md5sums=('9379b8829639645c184fa63532035098'
'37dd6b694e1e178aa8b1815f7fe3537d'
'ac574de962545d6a9e975b4db63c3e09'
@ -55,7 +56,8 @@ md5sums=('9379b8829639645c184fa63532035098'
'f452210683386f9c28f04d7dea0ecfc7'
'6aba6468efafb64943887079e258b799'
'4e374836f26853b4d82be0e87aa584a5'
'c36fe581e0f3b61cef19415782b257ca')
'c36fe581e0f3b61cef19415782b257ca'
'81901e7f7653dd4e71206bc107cc7eb9')
_architectures="i686-w64-mingw32 x86_64-w64-mingw32"
@ -108,6 +110,9 @@ prepare() {
# Fix compatibility issue when using the latest ANGLE
patch -p1 -b -i ../qt5-qtwebkit-fix-compatibility-with-latest-angle.patch
# intrin.h needs to be included otherwise declaration of _mm_mfence is missing
patch -p0 -b -i ../qt5-qtwebkit-mfence-mingw.patch
# Make sure the bundled copy of the ANGLE libraries isn't used
rm -rf Source/ThirdParty/ANGLE
}
@ -125,12 +130,8 @@ build() {
# SH_GLSL_OUTPUT has been renamed to SH_GLSL_COMPATIBILITY_OUTPUT
# in the latest ANGLE version so I just add a definition for backward compatibility
# intrin.h needs to be included otherwise declaration of _mm_mfence is missing
${_arch}-qmake-qt5 \
"QMAKE_CXXFLAGS+=-Wno-c++0x-compat" \
"QMAKE_CXXFLAGS+='-include /usr/i686-w64-mingw32/include/intrin.h'" \
"DEFINES+=SH_GLSL_OUTPUT=SH_GLSL_COMPATIBILITY_OUTPUT" \
../WebKit.pro
make

View File

@ -0,0 +1,11 @@
--- Source/WTF/wtf/Atomics.h.orig 2016-06-19 14:44:16.829726076 +0200
+++ Source/WTF/wtf/Atomics.h 2016-06-19 14:49:05.596958910 +0200
@@ -68,6 +68,8 @@
#elif !COMPILER(GCC)
extern "C" void _ReadWriteBarrier(void);
#pragma intrinsic(_ReadWriteBarrier)
+#else
+#include <intrin.h>
#endif
#include <windows.h>
#elif OS(QNX)