qt5: update to 5.15.0 (LTS release)
authorMirko Vogt <mirko-openwrt@nanl.de>
Sun, 7 Jun 2020 14:13:22 +0000 (14:13 +0000)
committerMirko Vogt <mirko-openwrt@nanl.de>
Sun, 7 Jun 2020 23:09:24 +0000 (23:09 +0000)
This also purges already back then (v5.9) legacy projects, such as Qt
Quick 1 / QML 1.

We also focus on software rendering only for now, postponing dealing
with messy vendor specific GL(ES) APIs, quirks and proprietary / binary
blobs. Implies certain features and packages being unavailable for the
moment.

16 files changed:
frameworks/qt5base/Makefile
frameworks/qt5base/files/qmake.mk
frameworks/qt5base/patches/000-fix-gnuiconv-test.patch [new file with mode: 0644]
frameworks/qt5base/patches/001-fix-pkgconfig-xcompile-detection.patch [deleted file]
frameworks/qt5base/patches/005-fix-segv-if-no-cursor.patch [deleted file]
frameworks/qt5base/patches/010-iconv-cast.patch [deleted file]
frameworks/qt5graphicaleffects/Makefile
frameworks/qt5quick1/Makefile [deleted file]
frameworks/qt5quick2-2d-sw-renderer-GLstubs/Makefile
frameworks/qt5quick2-controls2/Makefile
frameworks/qt5quick2/Makefile
frameworks/qt5script/Makefile
frameworks/qt5tools/Makefile
frameworks/qt5tools/patches/000-enable-kmap2qmap.patch
frameworks/qt5tools/patches/001-add-further-keys.patch
frameworks/qt5translations/Makefile [new file with mode: 0644]

index e3d8c7007c9860e0a65e81fe1cfa16ebc3f134bb..05112889110fa0bf58c7d9b8303024c63b644965 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2016 OpenWrt.org
+# Copyright (C) 2020 OpenWrt.org
 # Author: Mirko Vogt <mirko-openwrt@nanl.de>
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=qt5base
-PKG_VERSION:=5.9.1
+PKG_VERSION:=5.15.0
 PKG_RELEASE:=1
 PKG_HASH:=bc9a21e9f6fff9629019fdf9f989f064751d5073c3a28dc596def92f4d4275c6
 
-PKG_SYS_NAME:=qtbase-opensource-src-$(PKG_VERSION)
+PKG_SYS_NAME:=qtbase-everywhere-src-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=http://download.qt-project.org/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
 
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
 HOST_BUILD_DIR=$(BUILD_DIR)/host/$(PKG_SYS_NAME)
 PKG_BUILD_PARALLEL:=1
 HOST_BUILD_PARALLEL:=1
-PKG_BUILD_DEPENDS:=librpc
 PKG_INSTALL:=1
 PKG_USE_MIPS16:=0
 # Yes, the host build depends on the target build. This is not a mistake!
@@ -45,7 +44,6 @@ include ./files/qmake.mk
 
 PKG_CONFIG_DEPENDS:= \
        CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg \
-       CONFIG_PACKAGE_qt5base-plugin-imageformats-png \
        CONFIG_PACKAGE_qt5base-network \
        CONFIG_PACKAGE_qt5base-gui \
        CONFIG_PACKAGE_qt5base-gl \
@@ -54,6 +52,7 @@ PKG_CONFIG_DEPENDS:= \
        CONFIG_PACKAGE_qt5base-plugin-platforms-minimal \
        CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb \
        CONFIG_PACKAGE_qt5base-plugin-input-libinput \
+#      CONFIG_PACKAGE_qt5base-plugin-imageformats-png \
 #      CONFIG_PACKAGE_qt5base-plugin-platforms-eglfs \
 #      CONFIG_PACKAGE_qt5base-plugin-platforms-minimalegl \
 
@@ -79,7 +78,7 @@ define Package/qt5base/Default
   SUBMENU:=Frameworks and Toolkits
   TITLE:=Qt5base
   URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
+  MAINTAINER:=Mirko Vogt <mirko-openwrt@nanl.de>
 endef
 
 # define Package/qt5base
@@ -97,19 +96,19 @@ endef
 define Package/qt5base-gl
   $(call Package/qt5base/Default)
   TITLE+=gl
-  DEPENDS+=+qt5base-core +qt5base-gui +qt5base-widgets
+  DEPENDS+=+qt5base-core +qt5base-gui +qt5base-widgets @BROKEN
 endef
 
 define Package/qt5base-core
   $(call Package/qt5base/Default)
   TITLE+=core
-  DEPENDS+=+libpthread +zlib +libpcre2-16 +libstdcpp +librt +libdouble-conversion $(ICONV_DEPENDS) #+icu
+  DEPENDS+=+libpthread +zlib +libzstd +libpcre2-16 +libstdcpp +librt +libdouble-conversion $(ICONV_DEPENDS) +PACKAGE_icu:icu #FIXME: do not include ICONV_DEPENDS if ICU is selected (though, that's only an issue when using GNU iconv)
 endef
 
 define Package/qt5base-gui
   $(call Package/qt5base/Default)
   TITLE+=gui
-  DEPENDS+=+qt5base-core +qt5quick2-2d-sw-renderer-GLstubs +libpng +fontconfig +libfreetype
+  DEPENDS+=+qt5base-core +libpng +fontconfig +libfreetype
 endef
 
 define Package/qt5base-network
@@ -216,6 +215,12 @@ define Package/qt5base-plugin-imageformats-jpeg
   DEPENDS+=+qt5base-core +qt5base-gui +libjpeg
 endef
 
+#define Package/qt5base-plugin-imageformats-png
+#  $(call Package/qt5base/Default)
+#  TITLE+=imageformat png (plugin)
+#  DEPENDS+=+qt5base-core +qt5base-gui +libpng
+#endef
+
 ####### platforms
 
 #define Package/qt5base-plugin-platforms-eglfs
@@ -294,121 +299,112 @@ define Build/Configure
        # CROSS/TARGET_* need to be passed to configure, in order to use cross-compiling tools to check for requirements.
        # Usually used variables such as CC/CXX/CFLAGS/CXXFLAGS/LDFLAGS would be used for compilation of host tools (qmake, moc, etc.),
        # hence we use the TARGET_* nomenclature.
+       # 
+       # NOTES:
+       #  - icu support currently depends on selection of icu package which is not ideal, since unpredictable.
+       #  - icu support overrides iconv support
        ( cd $(PKG_BUILD_DIR) ; \
                TARGET_CROSS="$(TARGET_CROSS)" \
                TARGET_CFLAGS="$(TARGET_CFLAGS)" \
                TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(TARGET_CXXFLAGS)" \
                TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
+               PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
                ./configure \
-                       -prefix $(QT_INSTALL_PREFIX) \
-                       -extprefix $(QT_EXTPREFIX) \
-                       -hostprefix $(QT_HOST_PREFIX) \
-                       -hostdatadir $(QT_HOST_PREFIX)/share \
-                       -no-gcc-sysroot \
-                       -bindir $(QT_INSTALL_BINS) \
-                       -headerdir $(QT_INSTALL_HEADERS) \
-                       -libdir $(QT_INSTALL_LIBS) \
-                       -archdatadir $(QT_INSTALL_ARCHDATA) \
-                       -plugindir $(QT_INSTALL_PLUGINS) \
-                       -libexecdir $(QT_INSTALL_LIBEXECS) \
-                       -importdir $(QT_INSTALL_IMPORTS) \
-                       -qmldir $(QT_INSTALL_QML) \
-                       -datadir $(QT_INSTALL_DATA) \
-                       -docdir $(QT_INSTALL_DOCS) \
-                       -translationdir $(QT_INSTALL_TRANSLATIONS) \
-                       -sysconfdir $(QT_INSTALL_CONFIGURATION) \
-                       -examplesdir $(QT_INSTALL_EXAMPLES) \
-                       -testsdir $(QT_INSTALL_TESTS) \
-                       -hostbindir $(QT_HOST_BINS) \
-                       -hostlibdir $(QT_HOST_LIBS) \
-                       -hostdatadir $(QT_HOST_DATA) \
-                       -verbose \
-                       -opensource \
-                       -confirm-license \
-                       -release \
-                       -no-optimized-tools \
-                       -no-strip \
-                       -shared \
-                       -no-framework \
-                       -xplatform linux-openwrt-g++ \
-                       -no-sse3 \
-                       -no-ssse3 \
-                       -no-sse4.1 \
-                       -no-sse4.2 \
-                       -no-avx \
-                       -no-avx2 \
-                       -no-avx512 \
-                       $(if $(findstring -mdsp,$(TARGET_CFLAGS)),,-no-mips_dsp) \
-                       $(if $(findstring -mdspr2,$(TARGET_CFLAGS)),,-no-mips_dspr2) \
-                       -no-reduce-exports \
-                       -no-reduce-relocations \
-                       -no-pch \
-                       -no-use-gold-linker \
-                       -no-warnings-are-errors \
-                       -pkg-config \
-                       -no-optimized-qmake \
-                       -nomake tools \
-                       -make examples \
-                       $(if $(CONFIG_PACKAGE_qt5base-examples),-compile-examples,-no-compile-examples) \
-                       $(if $(CONFIG_PACKAGE_qt5base-examples),-make examples,-nomake examples) \
-                       $(if $(CONFIG_PACKAGE_qt5base-gui),-gui,-no-gui) \
-                       $(if $(CONFIG_PACKAGE_qt5base-widgets),-widgets,-no-widgets) \
-                       -no-dbus \
-                       -accessibility \
-                       -no-qml-debug \
-                       -system-doubleconversion \
-                       -no-glib \
-                       -eventfd \
-                       -no-inotify \
-                       $(if $(CONFIG_BUILD_NLS),-iconv,-no-iconv) \
-                       -no-icu \
-                       -system-pcre \
-                       -system-zlib \
-                       -no-journald \
-                       -no-syslog \
-                       -ssl \
-                       $(if $(CONFIG_PACKAGE_qt5base-network),-openssl-linked,-no-openssl) \
-                       -system-proxies \
-                       -no-cups \
-                       -fontconfig \
-                       -system-freetype \
-                       -no-harfbuzz \
-                       -no-gtk \
-                       -opengl \
-                       -no-xcb-xlib \
-                       $(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-minimal),,-qpa minimal) \
-                       $(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),,-qpa linuxfb) \
-                       -system-xcb \
-                       -no-directfb \
-                       -no-eglfs \
-                       -no-gbm \
-                       -no-kms \
-                       $(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),-linuxfb,-no-linuxfb) \
-                       -no-mirclient \
-                       -no-xcb \
-                       -libudev \
-                       -evdev \
-                       $(if $(CONFIG_PACKAGE_qt5base-plugin-input-libinput),-libinput,-no-libinput) \
-                       -no-mtdev \
-                       -no-tslib \
-                       -no-xinput2 \
-                       -no-xkbcommon-x11 \
-                       -no-xkbcommon-evdev \
-                       -no-gif \
-                       $(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-ico),-ico,-no-ico) \
-                       $(if $(CONFIG_PACKAGE_qt5base-gui),-system-libpng,-no-libpng) \
-                       $(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg),-system-libjpeg,-no-libjpeg) \
-                       -no-sql-db2 \
-                       -no-sql-ibase \
-                       -no-sql-mysql \
-                       -no-sql-oci \
-                       -no-sql-odbc \
-                       -no-sql-psql \
-                       -no-sql-sqlite \
-                       -no-sql-sqlite2 \
-                       -no-sql-tds \
-                       -no-libproxy \
-                       -system-xkbcommon \
+                       --prefix=$(QT_INSTALL_PREFIX) \
+                       --extprefix=$(QT_EXTPREFIX) \
+                       --hostprefix=$(QT_HOST_PREFIX) \
+                       --gcc-sysroot=no \
+                       --bindir=$(QT_INSTALL_BINS) \
+                       --headerdir=$(QT_INSTALL_HEADERS) \
+                       --libdir=$(QT_INSTALL_LIBS) \
+                       --archdatadir=$(QT_INSTALL_ARCHDATA) \
+                       --plugindir=$(QT_INSTALL_PLUGINS) \
+                       --libexecdir=$(QT_INSTALL_LIBEXECS) \
+                       --importdir=$(QT_INSTALL_IMPORTS) \
+                       --qmldir=$(QT_INSTALL_QML) \
+                       --datadir=$(QT_INSTALL_DATA) \
+                       --docdir=$(QT_INSTALL_DOCS) \
+                       --translationdir=$(QT_INSTALL_TRANSLATIONS) \
+                       --sysconfdir=$(QT_INSTALL_CONFIGURATION) \
+                       --examplesdir=$(QT_INSTALL_EXAMPLES) \
+                       --testsdir=$(QT_INSTALL_TESTS) \
+                       --hostbindir=$(QT_HOST_BINS) \
+                       --hostlibdir=$(QT_HOST_LIBS) \
+                       --hostdatadir=$(QT_HOST_DATA) \
+                       --verbose=yes \
+                       --opensource \
+                       --confirm-license \
+                       --release=yes \
+                       --optimized-tools=no \
+                       --optimize-size=no \
+                       --strip=no \
+                       --shared=yes \
+                       --framework=no \
+                       --xplatform=linux-openwrt-g++ \
+                       --reduce-exports=no \
+                       --reduce-relocations=no \
+                       --pch=no \
+                       --ltcg=no \
+                       --use-gold-linker=no \
+                       --warnings-are-errors=no \
+                       --pkg-config=yes \
+                       --compile-examples=$(if $(CONFIG_PACKAGE_qt5base-examples),yes,no) \
+                       $(if $(CONFIG_PACKAGE_qt5base-examples),,--nomake=examples) \
+                       --gui=$(if $(CONFIG_PACKAGE_qt5base-gui),yes,no) \
+                       --widgets=$(if $(CONFIG_PACKAGE_qt5base-widgets),yes,no) \
+                       --dbus=no \
+                       --accessibility=yes \
+                       --doubleconversion=system \
+                       --glib=no \
+                       --eventfd=no \
+                       --inotify=no \
+                       --iconv=$(if $(CONFIG_BUILD_NLS),$(if $(CONFIG_LIBC_USE_GLIBC)$(CONFIG_LIBC_USE_MUSL),posix)$(if $(CONFIG_LIBC_USE_UCLIBC),gnu),no) \
+                       --icu=$(if $(CONFIG_PACKAGE_icu),yes,no) \
+                       --pcre=system \
+                       --zlib=system \
+                       --journald=no \
+                       --syslog=no \
+                       --ssl=$(if $(CONFIG_PACKAGE_qt5base-network),yes,no) \
+                       --openssl-linked$(if $(CONFIG_PACKAGE_qt5base-network),,=no) \
+                       --libproxy=no \
+                       --system-proxies=yes \
+                       --cups=no \
+                       --fontconfig=yes \
+                       --freetype=system \
+                       --harfbuzz=no \
+                       --gtk=no \
+                       --opengl=no \
+                       --opengles3=no \
+                       --egl=no \
+                       --xcb-xlib=no \
+                       --qpa=$(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),linuxfb,) \
+                       --directfb=no \
+                       --eglfs=no \
+                       --gbm=no \
+                       --linuxfb=$(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),yes,no) \
+                       --xcb=no \
+                       \
+                       --libudev=yes \
+                       --evdev=yes \
+                       --libinput=$(if $(CONFIG_PACKAGE_qt5base-plugin-input-libinput),yes,no) \
+                       --mtdev=no \
+                       --tslib=no \
+                       --bundled-xcb-xinput=no \
+                       --xkbcommon=no \
+                       --gif=$(if $(CONFIG_PACKAGE_qt5base-gui),yes,no) \
+                       --ico=$(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-ico),yes,no) \
+                       --libjpeg=$(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg),system,no) \
+                       --libpng=system \
+                       --sql-db2=no \
+                       --sql-ibase=no \
+                       --sql-mysql=no \
+                       --sql-oci=no \
+                       --sql-odbc=no \
+                       --sql-psql=no \
+                       --sql-sqlite=no \
+                       --sql-sqlite2=no \
+                       --sql-tds=no \
+                       --sqlite=no \
        )
 endef
 
@@ -422,76 +418,85 @@ define Host/Configure
                TARGET_CXXFLAGS="$(HOST_CFLAGS) $(HOST_CXXFLAGS)" \
                TARGET_LDFLAGS="$(HOST_LDFLAGS)" \
                ./configure \
-                       -prefix $(STAGING_DIR_HOST) \
-                       -hostprefix $(STAGING_DIR_HOST) \
-                       -hostdatadir $(STAGING_DIR_HOST)/share \
-                       -datadir $(STAGING_DIR_HOST)/share \
-                       -archdatadir $(STAGING_DIR_HOST)/lib \
-                       -no-gcc-sysroot \
-                       -verbose \
-                       -opensource \
-                       -confirm-license \
-                       -release \
-                       -no-optimized-tools \
-                       -no-strip \
-                       -shared \
-                       -no-framework \
-                       -nomake tools \
-                       -nomake examples \
-                       -no-compile-examples \
-                       -gui \
-                       -no-widgets \
-                       -no-dbus \
-                       -no-accessibility \
-                       -no-qml-debug \
-                       -qt-doubleconversion \
-                       -no-glib \
-                       -no-eventfd \
-                       -no-inotify \
-                       -no-icu \
-                       -qt-pcre \
-                       -qt-zlib \
-                       -no-journald \
-                       -no-syslog \
-                       -no-ssl \
-                       -no-openssl \
-                       -no-cups \
-                       -no-fontconfig \
-                       -qt-freetype \
-                       -no-harfbuzz \
-                       -no-gtk \
-                       -no-opengl \
-                       -no-xcb-xlib \
-                       -no-xcb \
-                       -no-directfb \
-                       -no-eglfs \
-                       -no-gbm \
-                       -no-kms \
-                       -no-linuxfb \
-                       -no-mirclient \
-                       -no-xcb \
-                       -evdev \
-                       -no-libinput \
-                       -no-mtdev \
-                       -no-tslib \
-                       -no-xinput2 \
-                       -no-xkbcommon-x11 \
-                       -no-xkbcommon-evdev \
-                       -no-gif \
-                       -no-ico \
-                       -qt-libpng \
-                       -no-libjpeg \
-                       -no-sql-db2 \
-                       -no-sql-ibase \
-                       -no-sql-mysql \
-                       -no-sql-oci \
-                       -no-sql-odbc \
-                       -no-sql-psql \
-                       -no-sql-sqlite \
-                       -no-sql-sqlite2 \
-                       -no-sql-tds \
-                       -no-libproxy \
-                       -no-xkbcommon \
+                       --prefix=$(STAGING_DIR_HOST) \
+                       --hostprefix=$(STAGING_DIR_HOST) \
+                       --hostdatadir=$(STAGING_DIR_HOST)/share \
+                       --datadir=$(STAGING_DIR_HOST)/share \
+                       --archdatadir=$(STAGING_DIR_HOST)/lib \
+                       --gcc-sysroot=no \
+                       --verbose=yes \
+                       --opensource \
+                       --confirm-license \
+                       --release=yes \
+                       --optimized-tools=no \
+                       --optimize-size=no \
+                       --strip=no \
+                       --shared=yes \
+                       --framework=no \
+                       --reduce-exports=no \
+                       --reduce-relocations=no \
+                       --pch=no \
+                       --ltcg=no \
+                       --use-gold-linker=no \
+                       --warnings-are-errors=no \
+                       --pkg-config=yes \
+                       --compile-examples=no \
+                       --make=libs \
+                       --nomake=tools \
+                       --nomake=examples \
+                       --gui=yes \
+                       --widgets=no \
+                       --dbus=no \
+                       --accessibility=no \
+                       --doubleconversion=qt \
+                       --glib=no \
+                       --eventfd=no \
+                       --inotify=no \
+                       --iconv=no \
+                       --icu=no \
+                       --pcre=qt \
+                       --zlib=qt \
+                       --journald=no \
+                       --syslog=no \
+                       --ssl=no \
+                       --libproxy=no \
+                       --system-proxies=no \
+                       --cups=no \
+                       --fontconfig=no \
+                       --freetype=qt \
+                       --harfbuzz=no \
+                       --gtk=no \
+                       --opengl=no \
+                       --opengles3=no \
+                       --egl=no \
+                       --xcb-xlib=no \
+                       --directfb=no \
+                       --eglfs=no \
+                       --gbm=no \
+                       --linuxfb=no \
+                       --xcb=no \
+                       \
+                       --libudev=no \
+                       --evdev=no \
+                       --libinput=no \
+                       --mtdev=no \
+                       --tslib=no \
+                       --bundled-xcb-xinput=no \
+                       --xkbcommon=yes \
+                       --gif=no \
+                       --ico=no \
+                       --libjpeg=no \
+                       --libpng=no \
+                       --sql-db2=no \
+                       --sql-ibase=no \
+                       --sql-mysql=no \
+                       --sql-oci=no \
+                       --sql-odbc=no \
+                       --sql-psql=no \
+                       --sql-sqlite=no \
+                       --sql-sqlite2=no \
+                       --sql-tds=no \
+                       --sqlite=no \
        )
 endef
 
@@ -610,6 +615,10 @@ define Package/qt5base-plugin-imageformats-jpeg/install
        $(call Build/Install/Plugins,$(1),imageformats,libqjpeg)
 endef
 
+#define Package/qt5base-plugin-imageformats-png/install
+#      $(call Build/Install/Plugins,$(1),imageformats,libqpng)
+#endef
+
 define Package/qt5base-plugin-platforms-linuxfb/install
        $(call Build/Install/Plugins,$(1),platforms,libqlinuxfb)
 endef
@@ -662,6 +671,7 @@ $(eval $(call BuildPackage,qt5base-plugin-input-evdevtouch))
 #$(eval $(call BuildPackage,qt5base-plugin-imageformats-gif))
 $(eval $(call BuildPackage,qt5base-plugin-imageformats-ico))
 $(eval $(call BuildPackage,qt5base-plugin-imageformats-jpeg))
+#$(eval $(call BuildPackage,qt5base-plugin-imageformats-png))
 $(eval $(call BuildPackage,qt5base-plugin-platforms-linuxfb))
 #$(eval $(call BuildPackage,qt5base-plugin-platforms-eglfs))
 #$(eval $(call BuildPackage,qt5base-plugin-platforms-minimalegl))
index 0128a16be563b73efe31463341e04cea9b017587..34903b7b1ef2249e399dfcd9dcff1040dcc73d69 100644 (file)
@@ -1,6 +1,6 @@
 #
-# Copyright (C) 2015 OpenWrt.org
-# Author: Mirko Vogt <mirko@openwrt.org>
+# Copyright (C) 2020 OpenWrt.org
+# Author: Mirko Vogt <mirko-openwrt@nanl.de>
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
@@ -163,6 +163,15 @@ define Build/Install/Libs
                $(1)/$(QT_INSTALL_LIBS)/
 endef
 
+define Build/Install/Translations
+       $(INSTALL_DIR) \
+               $(1)/$(QT_INSTALL_TRANSLATIONS)
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/$(QT_INSTALL_TRANSLATIONS)/$(2).qm \
+               $(1)/$(QT_INSTALL_TRANSLATIONS)/
+endef
+
 define Build/Install/Plugins
        $(INSTALL_DIR) \
                $(1)/$(QT_INSTALL_PLUGINS)/$(2)
diff --git a/frameworks/qt5base/patches/000-fix-gnuiconv-test.patch b/frameworks/qt5base/patches/000-fix-gnuiconv-test.patch
new file mode 100644 (file)
index 0000000..2ec7794
--- /dev/null
@@ -0,0 +1,81 @@
+From e9097ab24832e42df6e16093e5c3b775dbcf2367 Mon Sep 17 00:00:00 2001
+From: Mirko Vogt <mirko-openwrt@nanl.de>
+Date: Fri, 5 Jun 2020 12:46:36 +0000
+Subject: [PATCH] GNU iconv() - at least in OpenWrt - behaves like POSIX
+ iconv()
+
+GNU iconv() had the terrible idea of introducing a build variant for its
+iconv() function, where the second argument can either be a `char **` or
+a `const char **` depending on a macro set under whatever certain
+circumstances at build time, resulting in different function signatures.
+
+Despite those two possible variants, the project only mentions the
+non-const one in their manual page.
+
+Since this didn't seem to be enough trouble for its users, they seem to
+have changed the default variant from `const char **` to `char **` at
+some point, while leaving the manual page as it is, now stating the
+non-default, hence in most cases probably wrong, signature.
+
+Qt assumes GNU iconv() has the nowadays non-default function signature
+(`const char **`), and distiguishes that way from the POSIX one.
+Another issue with Qt and GNU iconv(): While we can easily make the test
+work for GNU iconv with its default iconv()-signature, Qt assumes that if
+the GNU-iconv succeeds, the present version of iconv is POSIX- 
+incompatible - which however isn't true in our case.
+
+However we also can't just use the POSIX iconv test, as the Qt test for
+POSIX iconv fails on GNU iconv for another reason: GNU iconv requires
+explicit linker flags (`-liconv`), which the Qt test for POSIX iconv
+however implicitly drops when the target system is linux.
+
+This was extensively discussed in a Qt bug report:
+https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-84708
+
+The only good thing seems to be that Qt's configure script is also buggy 
+and counter-intuitive, resulting in 'gnu' not being accepted as iconv
+variant when using the default single-dash format for specifying
+configure options:
+https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-84687
+So most likely there's nobody using Qt with GNU iconv anyway.
+
+This patch is what I came up with being the smallest changeset.
+May it work.
+---
+ src/corelib/codecs/qiconvcodec.cpp | 5 -----
+ src/corelib/configure.json         | 2 +-
+ 2 files changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/src/corelib/codecs/qiconvcodec.cpp b/src/corelib/codecs/qiconvcodec.cpp
+index 9c397279..8d43e6c8 100644
+--- a/src/corelib/codecs/qiconvcodec.cpp
++++ b/src/corelib/codecs/qiconvcodec.cpp
+@@ -180,12 +180,7 @@ QString QIconvCodec::convertToUnicode(const char* chars, int len, ConverterState
+     IconvState *state = *pstate;
+     size_t inBytesLeft = len;
+     // best case assumption, each byte is converted into one UTF-16 character, plus 2 bytes for the BOM
+-#if !QT_CONFIG(posix_libiconv)
+-    // GNU doesn't disagree with POSIX :/
+-    const char *inBytes = chars;
+-#else
+     char *inBytes = const_cast<char *>(chars);
+-#endif
+     QByteArray in;
+     if (remainingCount) {
+diff --git a/src/corelib/configure.json b/src/corelib/configure.json
+index c5e04232..32237bc4 100644
+--- a/src/corelib/configure.json
++++ b/src/corelib/configure.json
+@@ -72,7 +72,7 @@
+             "test": {
+                 "main": [
+                     "iconv_t x = iconv_open(\"\", \"\");",
+-                    "const char *inp;",
++                    "char *inp;",
+                     "char *outp;",
+                     "size_t inbytes, outbytes;",
+                     "iconv(x, &inp, &inbytes, &outp, &outbytes);",
+-- 
+2.20.1
+
diff --git a/frameworks/qt5base/patches/001-fix-pkgconfig-xcompile-detection.patch b/frameworks/qt5base/patches/001-fix-pkgconfig-xcompile-detection.patch
deleted file mode 100644 (file)
index 075ab3f..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- qtbase-opensource-src-5.8.0-beta/configure.pri.orig        2016-11-20 20:06:38.811897204 +0100
-+++ qtbase-opensource-src-5.8.0-beta/configure.pri     2016-11-20 20:06:54.279928752 +0100
-@@ -174,7 +174,7 @@
-                     "Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set." \
-                     "Set this variable to your sysroot for pkg-config to function correctly when" \
-                     "cross-compiling or use -pkg-config to override this test.")
--                return(false)
-+#                return(false)
-             }
-             pkgConfigSysrootDir = $$sysroot
---- qtbase-opensource-src-5.8.0-rc/mkspecs/features/qt_functions.prf.orig      2017-01-19 17:52:11.741970700 +0100
-+++ qtbase-opensource-src-5.8.0-rc/mkspecs/features/qt_functions.prf   2017-01-19 17:52:06.641997235 +0100
-@@ -272,7 +272,7 @@
-                         warning("Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set.")
-                         warning("Set this variable to your sysroot for pkg-config to function")
-                         warning("correctly when cross-compiling.")
--                        return()
-+#                        return()
-                     }
-                     pkgConfigSysrootDir = $$sysroot
diff --git a/frameworks/qt5base/patches/005-fix-segv-if-no-cursor.patch b/frameworks/qt5base/patches/005-fix-segv-if-no-cursor.patch
deleted file mode 100644 (file)
index cf34e4d..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From a51a71ba6b08fcd761d5b0547bcd5d65f341d837 Mon Sep 17 00:00:00 2001
-From: Mirko Vogt <mirko-qt@nanl.de>
-Date: Mon, 27 Nov 2017 20:25:38 +0100
-Subject: [PATCH 1/2] QFbCursor::pointerEvent(): Fix SEGV if
- QT_QPA_FB_HIDECURSOR is set
-
-getCurrentRect() accesses mCursorImage.image() which is NULL in case of
-QT_QPA_FB_HIDECURSOR=1.
-Avoid respective calls in pointerEvent() by returning early in such
-case.
-
-Signed-off-by: Mirko Vogt <mirko-qt@nanl.de>
----
- src/platformsupport/fbconvenience/qfbcursor.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/platformsupport/fbconvenience/qfbcursor.cpp b/src/platformsupport/fbconvenience/qfbcursor.cpp
-index 7daf3f4d0c..c7b1a71c04 100644
---- a/src/platformsupport/fbconvenience/qfbcursor.cpp
-+++ b/src/platformsupport/fbconvenience/qfbcursor.cpp
---- a/src/platformsupport/fbconvenience/qfbcursor.cpp
-+++ b/src/platformsupport/fbconvenience/qfbcursor.cpp
-@@ -112,6 +112,8 @@ void QFbCursor::pointerEvent(const QMouseEvent &e)
-     if (e.type() != QEvent::MouseMove)
-         return;
-     m_pos = e.screenPos().toPoint();
-+    if (!mVisible)
-+        return;
-     mCurrentRect = getCurrentRect();
-     if (mOnScreen || mScreen->geometry().intersects(mCurrentRect.translated(mScreen->geometry().topLeft())))
-         setDirty();
-@@ -165,6 +167,9 @@ void QFbCursor::setCursor(const uchar *data, const uchar *mask, int width, int h
- #ifndef QT_NO_CURSOR
- void QFbCursor::changeCursor(QCursor * widgetCursor, QWindow *window)
- {
-+    if (!mVisible)
-+        return;
-+
-     Q_UNUSED(window);
-     const Qt::CursorShape shape = widgetCursor ? widgetCursor->shape() : Qt::ArrowCursor;
-
diff --git a/frameworks/qt5base/patches/010-iconv-cast.patch b/frameworks/qt5base/patches/010-iconv-cast.patch
deleted file mode 100644 (file)
index c44daf1..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
---- a/src/corelib/codecs/qiconvcodec.cpp
-+++ b/src/corelib/codecs/qiconvcodec.cpp
-@@ -137,7 +137,7 @@ QIconvCodec::IconvState::IconvState(icon
- QIconvCodec::IconvState::~IconvState()
- {
--    if (cd != reinterpret_cast<iconv_t>(-1))
-+    if (cd != (iconv_t)-1)
-         iconv_close(cd);
-     if (buffer != array)
-         delete[] buffer;
-@@ -200,7 +200,7 @@ QString QIconvCodec::convertToUnicode(co
-     if (!*pstate) {
-         // first time, create the state
-         iconv_t cd = createIconv_t(UTF16, 0);
--        if (cd == reinterpret_cast<iconv_t>(-1)) {
-+        if (cd == (iconv_t)-1) {
-             static int reported = 0;
-             if (!reported++) {
-                 fprintf(stderr,
-@@ -345,19 +345,19 @@ QByteArray QIconvCodec::convertFromUnico
-     IconvState *&state = ts ? ts->localData() : temporaryState;
-     if (!state) {
-         iconv_t cd = createIconv_t(0, UTF16);
--        if (cd != reinterpret_cast<iconv_t>(-1)) {
-+        if (cd != (iconv_t)-1) {
-             if (!setByteOrder(cd)) {
-                 perror("QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv failed for BOM");
-                 iconv_close(cd);
--                cd = reinterpret_cast<iconv_t>(-1);
-+                cd = (iconv_t)-1;
-                 return QString(uc, len).toLatin1();
-             }
-         }
-         state = new IconvState(cd);
-     }
--    if (state->cd == reinterpret_cast<iconv_t>(-1)) {
-+    if (state->cd == (iconv_t)-1) {
-         static int reported = 0;
-         if (!reported++) {
-             fprintf(stderr,
index d1dedef9664edeb720e663eaf3c6fb96429b9aea..cf04a29b4db8ca1197a594e04377a6e27735f15e 100644 (file)
@@ -1,6 +1,6 @@
 #
-# Copyright (C) 2016 OpenWrt
-# Author: Mirko Vogt <mirko@openwrt.org>
+# Copyright (C) 2020 OpenWrt
+# Author: Mirko Vogt <mirko-openwrt@nanl.de>
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
@@ -8,16 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=qt5graphicaleffects
-PKG_VERSION:=5.9.1
+PKG_VERSION:=5.15.0
 PKG_RELEASE:=1
-PKG_HASH:=5f86c38e36d9553049cfbe56d4869e73cf8ab920905402cbcafb56dd8a1a59ff
+PKG_HASH:=0d2ea4bc73b9df13a4b739dcbc1e3c7b298c7e682f7f9252b232e3bde7b63eda
 
-PKG_SYS_NAME:=qtgraphicaleffects-opensource-src-$(PKG_VERSION)
+PKG_SYS_NAME:=qtgraphicaleffects-everywhere-src-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=http://download.qt-project.org/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
 
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
 PKG_BUILD_PARALLEL:=1
+PKG_BUILD_DEPENDS:=qt5base
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
@@ -30,8 +31,8 @@ define Package/qt5graphicaleffects
   SUBMENU:=Frameworks and Toolkits
   TITLE:=qt5graphicaleffects
   URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
-  DEPENDS:=+qt5quick2-quick
+  MAINTAINER:=Mirko Vogt <mirko-openwrt@nanl.de>
+  DEPENDS:=+qt5quick2-quick @BROKEN # depends on GL support, but currently we only support software rendering
 endef
 
 define Build/InstallDev
diff --git a/frameworks/qt5quick1/Makefile b/frameworks/qt5quick1/Makefile
deleted file mode 100644 (file)
index 35ac7be..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-#
-# Copyright (C) 2015 OpenWrt
-# Author: Mirko Vogt <mirko@openwrt.org>
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=qt5quick1
-PKG_VERSION:=5.4.2
-PKG_RELEASE:=1
-PKG_MD5SUM:=8275c3ca1f962905baf1f19310e1b6e4
-
-PKG_SYS_NAME:=qtquick1-opensource-src-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=http://download.qt-project.org/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
-
-PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
-PKG_BUILD_PARALLEL:=1
-PKG_BUILD_DEPENDS:=qt5base
-PKG_INSTALL:=1
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/nls.mk
--include $(STAGING_DIR)/host/mk/qmake.mk
-
-define Package/qt5quick1/Default
-  SECTION:=video-frameworks
-  CATEGORY:=Video
-  SUBMENU:=Frameworks and Toolkits
-  TITLE:=Qt5quick1
-  DEPENDS:=qt5quick1 +qt5base-core +qt5base-gui +qt5base-network +qt5base-sql +qt5base-widgets +qt5script-script
-  URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
-endef
-
-# define Package/qt5quick1
-#   $(call Package/qt5quick1/Default)
-#   DEPENDS:=+qt5base +qt5script
-#   MENU:=1
-# endef
-
-define Package/qt5quick1-declarative
-  $(call Package/qt5quick1/Default)
-  TITLE+=declarative
-endef
-
-#TODO: fine grane
-define Package/qt5quick1-imports
-  $(call Package/qt5quick1/Default)
-  TITLE+=imports
-  DEPENDS+=+qt5quick1-declarative
-endef
-
-define Package/qt5quick1-examples
-  $(call Package/qt5quick1/Default)
-  TITLE+=examples
-  DEPENDS+=+qt5quick1-declarative
-endef
-
-define Build/InstallDev
-       $(call Build/Install/HostFiles,$(1))
-       $(call Build/Install/Headers,$(1))
-       $(call Build/Install/Libs,$(1),*)
-endef
-
-define Package/qt5quick1-declarative/install
-       $(call Build/Install/Libs,$(1),*)
-endef
-
-define Package/qt5quick1-imports/install
-       $(INSTALL_DIR) \
-               $(1)/usr/lib/qt5
-
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/qt5/* \
-               $(1)/usr/lib/qt5/
-endef
-
-define Package/qt5quick1-examples/install
-       $(call Build/Install/Examples,$(1))
-endef
-
-# $(eval $(call BuildPackage,qt5quick1))
-$(eval $(call BuildPackage,qt5quick1-declarative))
-$(eval $(call BuildPackage,qt5quick1-imports))
-$(eval $(call BuildPackage,qt5quick1-examples))
index 1495fdaf2952b68192758c841c365574fe96288e..e0fea171f2e7fd7b74b0fb19eb3f80064677a47d 100644 (file)
@@ -1,6 +1,6 @@
 #
-# Copyright (C) 2015 OpenWrt.org
-# Author: Mirko Vogt <mirko@openwrt.org>
+# Copyright (C) 2020 OpenWrt.org
+# Author: Mirko Vogt <mirko-openwrt@nanl.de>
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
@@ -20,11 +20,11 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=qt5quick2-2d-sw-renderer-GLstubs
 PKG_VERSION:=5.7.0
 PKG_RELEASE:=1
-MD5SUM:=41bfcb5ab6d7a820687c4208beeb7057
+PKG_MD5SUM:=41bfcb5ab6d7a820687c4208beeb7057
 
 PKG_SYS_NAME:=qtdeclarative-render2d-opensource-src-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=http://download.qt-project.org/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+PKG_SOURCE_URL:=https://download.qt.io/archive/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
 
 PKG_BUILD_DIR=$(BUILD_DIR)/qtdeclarative-render2d-opensource-src-$(PKG_VERSION)-GLstubs/$(PKG_SYS_NAME)
 PKG_BUILD_PARALLEL:=1
@@ -37,7 +37,7 @@ define Package/qt5quick2-2d-sw-renderer-GLstubs
   SUBMENU:=Frameworks and Toolkits
   TITLE:=Dummy GL stubs
   URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
+  MAINTAINER:=Mirko Vogt <mirko-openwrt@nanl.de>
 endef
 
 TARGET_CFLAGS += \
index ce36e87f0136d567eb8d2c420b225c07885005a2..8fcdcd18455121ec493b64eb409d38feba67c7f8 100644 (file)
@@ -1,6 +1,6 @@
 #
-# Copyright (C) 2015 OpenWrt
-# Author: Mirko Vogt <mirko@openwrt.org>
+# Copyright (C) 2020 OpenWrt
+# Author: Mirko Vogt <mirko-openwrt@nanl.de>
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=qt5quick2-controls2
-PKG_VERSION:=5.9.1
+PKG_VERSION:=5.15.0
 PKG_RELEASE:=1
-PKG_HASH:=203be0321112d1513b722fce463f9e30d7d00befb33349901d9517f4f13408ff
+PKG_HASH:=839abda9b58cd8656b2e5f46afbb484e63df466481ace43318c4c2022684648f
 
-PKG_SYS_NAME:=qtquickcontrols2-opensource-src-$(PKG_VERSION)
+PKG_SYS_NAME:=qtquickcontrols2-everywhere-src-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=http://download.qt-project.org/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
 
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
 PKG_BUILD_PARALLEL:=1
@@ -30,7 +30,7 @@ define Package/qt5quick2-controls2
   SUBMENU:=Frameworks and Toolkits
   TITLE:=qt5quick2-controls2
   URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
+  MAINTAINER:=Mirko Vogt <mirko-openwrt@nanl.de>
   DEPENDS:=+qt5quick2-quick
 endef
 
index 4f63d085d766ed4799a2c2f5ffb3b3ccb1b97238..4d0cd28decf2dedd155904c97becfb918be261a2 100644 (file)
@@ -1,6 +1,6 @@
 #
-# Copyright (C) 2015 OpenWrt
-# Author: Mirko Vogt <mirko@openwrt.org>
+# Copyright (C) 2020 OpenWrt
+# Author: Mirko Vogt <mirko-openwrt@nanl.de>
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=qt5quick2
-PKG_VERSION:=5.9.1
+PKG_VERSION:=5.15.0
 PKG_RELEASE:=1
-PKG_HASH:=d2fe6c9c1a9f19af6e96553c6d75366ab8f397bc232acd67d31476955fee94ff
+PKG_HASH:=9c3c93fb7d340b2f7d738d12408c047318c78973cb45bfc5ff6b3a57e1fef699
 
-PKG_SYS_NAME:=qtdeclarative-opensource-src-$(PKG_VERSION)
+PKG_SYS_NAME:=qtdeclarative-everywhere-src-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=http://download.qt-project.org/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
 
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
 PKG_BUILD_PARALLEL:=1
@@ -29,10 +29,10 @@ define Package/qt5quick2/Default
   SECTION:=video-frameworks
   CATEGORY:=Video
   SUBMENU:=Frameworks and Toolkits
-  TITLE:=Qt5quick2
+  TITLE:=Qt5Quick2
 #  DEPENDS+=qt5quick2
   URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
+  MAINTAINER:=Mirko Vogt <mirko-openwrt@nanl.de>
 endef
 
 # define Package/qt5quick2
@@ -43,96 +43,153 @@ endef
 
 define Package/qt5quick2-qml
   $(call Package/qt5quick2/Default)
-  TITLE+=qml
+  TITLE+=Qml
   DEPENDS+=+qt5base-network
 endef
 
+define Package/qt5quick2-qml-models
+  $(call Package/qt5quick2/Default)
+  TITLE+=QmlModels
+  DEPENDS+=+qt5quick2-qml
+endef
+
+define Package/qt5quick2-qml-worker-script
+  $(call Package/qt5quick2/Default)
+  TITLE+=QmlWorkerScript
+  DEPENDS+=+qt5quick2-qml
+endef
+
 define Package/qt5quick2-quick
   $(call Package/qt5quick2/Default)
-  TITLE+=quick
-  DEPENDS+=+qt5quick2-qml +qt5base-gui
+  TITLE+=Quick
+  DEPENDS+=+qt5base-gui +qt5quick2-qml-models
 endef
 
-define Package/qt5quick2-test
+define Package/qt5quick2-quick-test
   $(call Package/qt5quick2/Default)
-  TITLE+=test
-  DEPENDS+=+qt5quick2-quick +qt5base-gui +qt5base-widgets +qt5base-test
+  TITLE+=QuickTest
+  DEPENDS+=+qt5quick2-quick +qt5base-widgets +qt5base-test
 endef
 
-define Package/qt5quick2-particles
+#define Package/qt5quick2-particles
+#  $(call Package/qt5quick2/Default)
+#  TITLE+=particles
+#  DEPENDS+=+qt5quick2-quick
+#endef
+
+define Package/qt5quick2-quick-widgets
   $(call Package/qt5quick2/Default)
-  TITLE+=particles
-  DEPENDS+=+qt5quick2-quick
+  TITLE+=QuickWidgets
+  DEPENDS+=+qt5quick2-quick +qt5base-widgets
 endef
 
-define Package/qt5quick2-widgets
+define Package/qt5quick2-quick-shapes
   $(call Package/qt5quick2/Default)
-  TITLE+=widgets
-  DEPENDS+=+qt5quick2-quick +qt5base-gui +qt5base-widgets
+  TITLE+=QuickShapes
+  DEPENDS+=+qt5quick2-quick
 endef
 
 ###
 
-define Package/qt5quick2-qml-statemachine
+define Package/qt5quick2-qml-module-qtqml-models2
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtQml models
+  DEPENDS+=+qt5quick2-qml-models
+endef
+
+define Package/qt5quick2-qml-module-qtqml-statemachine
   $(call Package/qt5quick2/Default)
-  TITLE+=QML statemachine
+  TITLE+=QML StateMachine
   DEPENDS:=+qt5quick2-qml
 endef
 
-define Package/qt5quick2-qml-models
+define Package/qt5quick2-qml-module-qtqml-workerscript2
   $(call Package/qt5quick2/Default)
-  TITLE+=QML models
-  DEPENDS+=+qt5quick2-qml
+  TITLE+=QML WorkerScript
+  DEPENDS:=+qt5quick2-qml-worker-script
 endef
 
-define Package/qt5quick2-qml-folderlistmodel
+###
+
+define Package/qt5quick2-qml-module-qtlabs-animation
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtLabs animation
+  DEPENDS:=+qt5quick2-qml +qt5quick2-quick
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-folderlistmodel
   $(call Package/qt5quick2/Default)
-  TITLE+=QML folderlistmodel
+  TITLE+=QML QtLabs folderlistmodel
   DEPENDS:=+qt5quick2-qml
 endef
 
-define Package/qt5quick2-qml-settings
+define Package/qt5quick2-qml-module-qtlabs-models
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtLabs qmlmodels
+  DEPENDS+=+qt5quick2-qml-models
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-settings
   $(call Package/qt5quick2/Default)
-  TITLE+=QML settings
+  TITLE+=QML QtLabs settings
   DEPENDS:=+qt5quick2-qml
 endef
 
-define Package/qt5quick2-qml-test
+define Package/qt5quick2-qml-module-qtlabs-sharedimage
   $(call Package/qt5quick2/Default)
-  TITLE+=QML folderlistmodel
-  DEPENDS+=+qt5quick2-quick +qt5base-gui +qt5quick2-test
+  TITLE+=QML QtLabs sharedimage
+  DEPENDS:=+qt5quick2-quick
 endef
 
-define Package/qt5quick2-qml-layouts
+define Package/qt5quick2-qml-module-qtlabs-wavefrontmesh
   $(call Package/qt5quick2/Default)
-  TITLE+=QML layouts
-  DEPENDS+=+qt5quick2-quick
+  TITLE+=QML QtLabs wavefrontmesh
+  DEPENDS:=+qt5quick2-quick
 endef
 
-define Package/qt5quick2-qml-particles
+
+define Package/qt5quick2-qml-module-qttest
   $(call Package/qt5quick2/Default)
-  TITLE+=QML particles
-  DEPENDS+=+qt5quick2-particles
+  TITLE+=QML QtTest
+  DEPENDS+=+qt5quick2-quick +qt5quick2-quick-test
 endef
 
-define Package/qt5quick2-qml-window
+define Package/qt5quick2-qml-module-qtquick-layouts
   $(call Package/qt5quick2/Default)
-  TITLE+=QML window
+  TITLE+=QML QtQuick Layouts
   DEPENDS+=+qt5quick2-quick
 endef
 
-define Package/qt5quick2-qml-localstorage
+#define Package/qt5quick2-qml-module-qtquick-particles2
+#  $(call Package/qt5quick2/Default)
+#  TITLE+=QML particles
+#  DEPENDS+=+qt5quick2-particles
+#endef
+
+define Package/qt5quick2-qml-module-qtquick-localstorage
   $(call Package/qt5quick2/Default)
-  TITLE+=QML localstorage
+  TITLE+=QML QtQuick LocalStorage
   DEPENDS+=+qt5quick2-qml +qt5base-sql
 endef
 
-define Package/qt5quick2-qml-quick
+define Package/qt5quick2-qml-module-qtquick-shapes
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtQuick Shapes
+  DEPENDS+=+qt5quick2-quick-shapes
+endef
+
+define Package/qt5quick2-qml-module-qtquick-window2
   $(call Package/qt5quick2/Default)
-  TITLE+=QML quick2
+  TITLE+=QML QtQuick Window.2
   DEPENDS+=+qt5quick2-quick
 endef
 
+define Package/qt5quick2-qml-module-qtquick2
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtQuick.2
+  DEPENDS+=+qt5quick2-quick +qt5quick2-qml-worker-script
+endef
+
 ####
 
 define Build/InstallDev
@@ -155,81 +212,132 @@ endef
 
 define Package/qt5quick2-qml/install
        $(call Build/Install/Libs,$(1),libQt5Qml)
+
+       $(INSTALL_DIR) \
+         $(1)/$(QT_INSTALL_QML)
+
+       $(CP) \
+         $(PKG_INSTALL_DIR)/$(QT_INSTALL_QML)/builtins.qmltypes \
+         $(1)/$(QT_INSTALL_QML)/
+endef
+
+define Package/qt5quick2-qml-models/install
+       $(call Build/Install/Libs,$(1),libQt5QmlModels)
+endef
+
+define Package/qt5quick2-qml-worker-script/install
+       $(call Build/Install/Libs,$(1),libQt5QmlWorkerScript)
 endef
 
 define Package/qt5quick2-quick/install
        $(call Build/Install/Libs,$(1),libQt5Quick)
 endef
 
-define Package/qt5quick2-test/install
+define Package/qt5quick2-quick-test/install
        $(call Build/Install/Libs,$(1),libQt5QuickTest)
 endef
 
-define Package/qt5quick2-particles/install
-       $(call Build/Install/Libs,$(1),libQt5QuickParticles)
-endef
+#define Package/qt5quick2-particles/install
+#      $(call Build/Install/Libs,$(1),libQt5QuickParticles)
+#endef
 
-define Package/qt5quick2-widgets/install
+define Package/qt5quick2-quick-widgets/install
        $(call Build/Install/Libs,$(1),libQt5QuickWidgets)
 endef
 
-
-define Package/qt5quick2-qml-statemachine/install
-       $(call Build/Install/QMLplugin,$(1),/QtQml/StateMachine,*)
+define Package/qt5quick2-quick-shapes/install
+       $(call Build/Install/Libs,$(1),libQt5QuickShapes)
 endef
 
-define Package/qt5quick2-qml-models/install
+define Package/qt5quick2-qml-module-qtqml-models2/install
        $(call Build/Install/QMLplugin,$(1),QtQml/Models.2,*)
 endef
 
-define Package/qt5quick2-qml-folderlistmodel/install
+define Package/qt5quick2-qml-module-qtqml-statemachine/install
+       $(call Build/Install/QMLplugin,$(1),QtQml/StateMachine,*)
+endef
+
+define Package/qt5quick2-qml-module-qtqml-workerscript2/install
+       $(call Build/Install/QMLplugin,$(1),QtQml/WorkerScript.2,*)
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-animation/install
+       $(call Build/Install/QMLplugin,$(1),Qt/labs/animation/,*)
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-folderlistmodel/install
        $(call Build/Install/QMLplugin,$(1),Qt/labs/folderlistmodel,*)
 endef
 
-define Package/qt5quick2-qml-settings/install
+define Package/qt5quick2-qml-module-qtlabs-models/install
+       $(call Build/Install/QMLplugin,$(1),Qt/labs/qmlmodels,*)
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-settings/install
        $(call Build/Install/QMLplugin,$(1),Qt/labs/settings/,*)
 endef
 
-define Package/qt5quick2-qml-test/install
+define Package/qt5quick2-qml-module-qtlabs-sharedimage/install
+       $(call Build/Install/QMLplugin,$(1),Qt/labs/sharedimage/,*)
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-wavefrontmesh/install
+       $(call Build/Install/QMLplugin,$(1),Qt/labs/wavefrontmesh/,*)
+endef
+
+define Package/qt5quick2-qml-module-qttest/install
        $(call Build/Install/QMLplugin,$(1),QtTest,*)
        $(INSTALL_DIR) $(1)/usr/bin
        $(CP) $(PKG_INSTALL_DIR)/usr/bin/qmltestrunner $(1)/usr/bin/
 endef
 
-define Package/qt5quick2-qml-layouts/install
+define Package/qt5quick2-qml-module-qtquick-layouts/install
        $(call Build/Install/QMLplugin,$(1),QtQuick/Layouts,*)
 endef
 
-define Package/qt5quick2-qml-particles/install
-       $(call Build/Install/QMLplugin,$(1),QtQuick/Particles.2,*)
+#define Package/qt5quick2-qml-module-qtquick-particles2/install
+#      $(call Build/Install/QMLplugin,$(1),QtQuick/Particles.2,*)
+#endef
+
+define Package/qt5quick2-qml-module-qtquick-localstorage/install
+       $(call Build/Install/QMLplugin,$(1),QtQuick/LocalStorage,*)
 endef
 
-define Package/qt5quick2-qml-window/install
-       $(call Build/Install/QMLplugin,$(1),QtQuick/Window.2,*)
+define Package/qt5quick2-qml-module-qtquick-shapes/install
+       $(call Build/Install/QMLplugin,$(1),QtQuick/Shapes,*)
 endef
 
-define Package/qt5quick2-qml-localstorage/install
-       $(call Build/Install/QMLplugin,$(1),QtQuick/LocalStorage,*)
+define Package/qt5quick2-qml-module-qtquick-window2/install
+       $(call Build/Install/QMLplugin,$(1),QtQuick/Window.2,*)
 endef
 
-define Package/qt5quick2-qml-quick/install
+define Package/qt5quick2-qml-module-qtquick2/install
        $(call Build/Install/QMLplugin,$(1),QtQuick.2,*)
 endef
 
 
 #$(eval $(call BuildPackage,qt5quick2))
 $(eval $(call BuildPackage,qt5quick2-qml))
-$(eval $(call BuildPackage,qt5quick2-quick))
-$(eval $(call BuildPackage,qt5quick2-test))
-$(eval $(call BuildPackage,qt5quick2-particles))
-$(eval $(call BuildPackage,qt5quick2-widgets))
-$(eval $(call BuildPackage,qt5quick2-qml-statemachine))
 $(eval $(call BuildPackage,qt5quick2-qml-models))
-$(eval $(call BuildPackage,qt5quick2-qml-folderlistmodel))
-$(eval $(call BuildPackage,qt5quick2-qml-settings))
-$(eval $(call BuildPackage,qt5quick2-qml-test))
-$(eval $(call BuildPackage,qt5quick2-qml-layouts))
-$(eval $(call BuildPackage,qt5quick2-qml-particles))
-$(eval $(call BuildPackage,qt5quick2-qml-window))
-$(eval $(call BuildPackage,qt5quick2-qml-localstorage))
-$(eval $(call BuildPackage,qt5quick2-qml-quick))
+$(eval $(call BuildPackage,qt5quick2-qml-worker-script))
+$(eval $(call BuildPackage,qt5quick2-quick))
+$(eval $(call BuildPackage,qt5quick2-quick-test))
+#$(eval $(call BuildPackage,qt5quick2-particles))
+$(eval $(call BuildPackage,qt5quick2-quick-widgets))
+$(eval $(call BuildPackage,qt5quick2-quick-shapes))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtqml-models2))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtqml-statemachine))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtqml-workerscript2))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-models))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-folderlistmodel))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-settings))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-animation))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-sharedimage))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-wavefrontmesh))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick2))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-layouts))
+#$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-particles2))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-localstorage))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-shapes))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-window2))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qttest))
index 3464cbf3e1de30b4f90500f7acd54a432c290fd4..cbad2c364bc58a02f4aec121187e81b91028862a 100644 (file)
@@ -1,6 +1,6 @@
 #
-# Copyright (C) 2015 OpenWrt
-# Author: Mirko Vogt <mirko@openwrt.org>
+# Copyright (C) 2020 OpenWrt
+# Author: Mirko Vogt <mirko-openwrt@nanl.de>
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=qt5script
-PKG_VERSION:=5.9.1
+PKG_VERSION:=5.15.0
 PKG_RELEASE:=1
-PKG_HASH:=176a08865d5f66437b0f279fc5d7f381f359f20bafbffcebdcac61e86415188f
+PKG_HASH:=02dc21b309621876a89671be27cea86a58e74a96aa28da65fe1b37a3aad29373
 
-PKG_SYS_NAME:=qtscript-opensource-src-$(PKG_VERSION)
+PKG_SYS_NAME:=qtscript-everywhere-src-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=http://download.qt-project.org/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
 
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
 PKG_BUILD_PARALLEL:=1
@@ -33,7 +33,7 @@ define Package/qt5script/Default
 #  DEPENDS:=qt5script +qt5base-core
   DEPENDS:=+qt5base-core
   URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
+  MAINTAINER:=Mirko Vogt <mirko-openwrt@nanl.de>
 endef
 
 # define Package/qt5script
index 073fd34ce31791ca308530844c0d3b0fa2170c3e..5b8cce8e41535a1c1382830e1e4d1ff8d43a604f 100644 (file)
@@ -1,6 +1,6 @@
 #
-# Copyright (C) 2016 OpenWrt
-# Author: Mirko Vogt <mirko@openwrt.org>
+# Copyright (C) 2020 OpenWrt
+# Author: Mirko Vogt <mirko-openwrt@nanl.de>
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=qt5tools
-PKG_VERSION:=5.9.1
+PKG_VERSION:=5.15.0
 PKG_RELEASE:=1
-PKG_HASH:=c4eb56cf24a75661b8317b566be37396c90357b4f6730ef12b8c97a7079ca0e8,
+PKG_HASH:=ddbcb49aab3a2e3672582c6e2e7bec0058feff790f67472343c79e2895e0e437
 
-PKG_SYS_NAME:=qttools-opensource-src-$(PKG_VERSION)
+PKG_SYS_NAME:=qttools-everywhere-src-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=http://download.qt-project.org/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
 
 PKG_HOST_ONLY:=1
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
@@ -35,8 +35,8 @@ define Package/qt5tools
   SUBMENU:=Frameworks and Toolkits
   TITLE:=qt5tools
   URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
-  DEPENDS:=+qt5base
+  MAINTAINER:=Mirko Vogt <mirko-openwrt@nanl.de>
+  DEPENDS:=+qt5base-core
   BUILDONLY:=1
 endef
 
@@ -54,6 +54,12 @@ define Host/Install
        $(CP) \
          $(HOST_INSTALL_DIR)/bin/* \
          $(STAGING_DIR_HOST)/bin/
+
+       ln -sf $(STAGING_DIR_HOST)/bin/lrelease \
+         $(STAGING_DIR)/host/bin/
+       ln -sf $(STAGING_DIR_HOST)/bin/lupdate \
+         $(STAGING_DIR)/host/bin/
+
 endef
 
 $(eval $(call BuildPackage,qt5tools))
index 2fdc383856afc652068c6217fd603efa6b6c3df3..51819853430501f6e701b0621b1bfb51df92f4ee 100644 (file)
@@ -1,12 +1,14 @@
---- qttools-opensource-src-5.8.0.orig/src/src.pro      2017-01-02 07:50:13.000000000 +0100
-+++ qttools-opensource-src-5.8.0/src/src.pro   2017-02-21 02:58:04.974231681 +0100
-@@ -14,7 +14,8 @@
+diff --git a/src/src.pro b/src/src.pro
+index 5c256ea..3c4012a 100644
+--- a/src/src.pro
++++ b/src/src.pro
+@@ -17,7 +17,8 @@ qtHaveModule(widgets) {
+ }
  
  SUBDIRS += linguist \
-     qdoc \
 -    qtattributionsscanner
 +    qtattributionsscanner \
 +    kmap2qmap
  
- !android|android_app: SUBDIRS += qtplugininfo
+ qtConfig(library) {
+     !android|android_app: SUBDIRS += qtplugininfo
index cc607e53049af178278d577419c49fe5c0c7d3ce..64446fb0684a34d369f9e14101a0267240c28587 100644 (file)
@@ -23,14 +23,3 @@ diff -ruN qttools-opensource-src-5.8.0.orig/src/kmap2qmap/main.cpp qttools-opens
  
      { "KP_0",        Qt::Key_0 | Qt::KeypadModifier },
      { "KP_1",        Qt::Key_1 | Qt::KeypadModifier },
-@@ -696,8 +704,8 @@
-             if (kcpos >= 0 && kcpos < (tokens.count()-3) && tokens[kcpos+2] == "=") {
-                 quint16 keycode = tokens[kcpos+1].toInt();
--                if (keycode <= 0 || keycode > 0x1ff /* KEY_MAX */) {
--                    parseWarning("keycode out of range [0..0x1ff]");
-+                if (keycode <= 0 || keycode > 0x2ff /* KEY_MAX */) {
-+                    parseWarning("keycode out of range [0..0x2ff]");
-                     break;
-                 }
diff --git a/frameworks/qt5translations/Makefile b/frameworks/qt5translations/Makefile
new file mode 100644 (file)
index 0000000..c0e9eba
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# Copyright (C) 2020 OpenWrt
+# Author: Mirko Vogt <mirko-openwrt@nanl.de>
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=qt5translations
+PKG_VERSION:=5.15.0
+PKG_RELEASE:=1
+PKG_HASH:=45c43268d9df50784d4d8ca345fce9288a1055fd074ac0ef508097f7aeba22fe
+
+PKG_SYS_NAME:=qttranslations-everywhere-src-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+PKG_BUILD_DEPENDS:=qt5tools/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+-include $(STAGING_DIR)/host/mk/qmake.mk
+
+define Package/qt5translations
+  SECTION:=video-frameworks
+  CATEGORY:=Video
+  SUBMENU:=Frameworks and Toolkits
+  TITLE:=qt5translations
+  URL:=http://qt.io
+  MAINTAINER:=Mirko Vogt <mirko-openwrt@nanl.de>
+endef
+
+define Package/qt5translations/install
+       $(call Build/Install/Translations,$(1),*)
+endef
+
+$(eval $(call BuildPackage,qt5translations))