Package Details: android-aarch64-qt5 5.15.2-2

Git Clone URL: https://aur.archlinux.org/android-aarch64-qt5.git (read-only, click to copy)
Package Base: android-aarch64-qt5
Description: Qt 5 for Android
Upstream URL: https://www.qt.io
Licenses: GPL3, LGPL
Groups: android-qt5
Submitter: hipersayan_x
Maintainer: None
Last Packager: hipersayan_x
Votes: 14
Popularity: 0.000000
First Submitted: 2018-11-22 19:14 (UTC)
Last Updated: 2021-03-14 20:01 (UTC)

Dependencies (26)

Sources (4)

Pinned Comments

hipersayan_x commented on 2021-07-07 15:05 (UTC) (edited on 2021-07-07 15:09 (UTC) by hipersayan_x)

I'll drop this package, I been thinking and there are a lot of strong reasons not to waste any time maintaining it.
KDE doesn't provide an easy way to download the entire Qt source code in a single package, like in the official Qt releases.
Also, KDE doesn't provides tagged versions, I've to keep tracking manually the latest commits, or converting it to a git package.
It will require to split this package into 47x4 packages, 47 Qt modules and 4 architectures to maintain, that's 188 packages to maintain, absurd!
Cloning a git repository is slower than just downloading a source package file, making the build even much slower and painful.
Is a lot of work for something that will be dead in 1 year or 2 at most.
Good luck to the one that will step up to take care of this monstrosity, to the rest of developers, don't be lazy and consider switching to Qt6.

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 Next › Last »

Martchus commented on 2019-12-15 21:09 (UTC)

Yet another error:

make[4]: Entering directory '/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/buildtools'
make[4]: Nothing to be done for 'first'.
make[4]: Leaving directory '/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/buildtools'
make[3]: Leaving directory '/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/buildtools'
cd core/ && ( test -e Makefile || /build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtbase/bin/qmake -o Makefile /build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core/core.pro ) && make -f Makefile
make[3]: Entering directory '/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core'
( test -e Makefile.core_headers || /build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtbase/bin/qmake -o Makefile.core_headers /build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core/core_headers.pro ) && make -f Makefile.core_headers
make[4]: Entering directory '/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core'
make[4]: Nothing to be done for 'first'.
make[4]: Leaving directory '/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core'
( test -e Makefile.core_generator || /build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtbase/bin/qmake -o Makefile.core_generator /build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core/core_generator.pro ) && make -f Makefile.core_generator
make[4]: Entering directory '/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core'
make[4]: Nothing to be done for 'first'.
make[4]: Leaving directory '/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core'
( test -e Makefile.gn_run || /build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtbase/bin/qmake -o Makefile.gn_run /build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core/gn_run.pro ) && make -f Makefile.gn_run
Project MESSAGE: Running: /build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/3rdparty/gn/out/Release/gn gen /build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core/release --script-executable=/usr/bin/python2 --args='use_qt=true closure_compile=false is_component_build=false is_shared=true enable_message_center=false enable_nacl=false enable_remoting=false enable_reporting=false enable_resource_whitelist_generation=false enable_swiftshader=false enable_web_auth=false enable_web_speech=false enable_widevine=true has_native_accessibility=false enable_debugallocation=false use_allocator_shim=false use_allocator="none" use_custom_libcxx=false v8_use_external_startup_data=false toolkit_views=false treat_warnings_as_errors=false safe_browsing_mode=0 optimize_webui=false forbid_non_component_debug_builds=false use_jumbo_build=true jumbo_file_merge_limit=8 jumbo_build_excluded=["browser"] enable_basic_printing=false enable_print_preview=false enable_pdf=false enable_plugins=false enable_spellcheck=true enable_webrtc=false audio_processing_in_audio_service_supported=false enable_extensions=false enable_precompiled_headers=true is_official_build=true is_debug=false symbol_level=0 blink_symbol_level=0 remove_v8base_debug_symbols=true v8_use_snapshot=true use_kerberos=false use_cups=false use_gio=false use_gnome_keyring=false linux_use_bundled_binutils=false use_udev=true use_bundled_fontconfig=false use_sysroot=false enable_session_service=false is_cfi=false strip_absolute_paths_from_debug_symbols=false toolkit_views=false use_ozone=true ozone_auto_platforms=false ozone_platform_headless=false ozone_platform_external=true ozone_platform="qt" ozone_extra_path="/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core/ozone/ozone_extra.gni" is_desktop_linux=false use_gold=false use_lld=false is_clang=true clang_use_chrome_plugins=false clang_use_default_sample_profile=false clang_base_path="/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64" custom_toolchain="/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/toolchain:target" host_toolchain="/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/toolchain:host" v8_snapshot_toolchain="/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/toolchain:v8_snapshot" target_cpu="unknown" pkg_config="android-aarch64-pkg-config" host_pkg_config="/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core/pkg-config-host_wrapper.sh" use_system_libpng=true use_system_libjpeg=true use_system_freetype=false use_system_harfbuzz=false use_glib=false use_pulseaudio=false use_alsa=false use_libpci=false use_system_libwebp=true use_system_opus=true qtwebengine_target="/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core/release:QtWebEngineCore"' --root=/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/3rdparty/chromium
ERROR at //third_party/angle/gni/angle.gni:36:5: Assertion failed.
    assert(false, "Unknown current CPU: $current_cpu")
    ^-----
Unknown current CPU: unknown
See //third_party/angle/src/tests/BUILD.gn:7:1: whence it was imported.
import("../../gni/angle.gni")
^---------------------------
See //BUILD.gn:181:7: which caused the file to be included.
      "//third_party/angle/src/tests:angle_end2end_tests",
      ^--------------------------------------------------
Project ERROR: GN run error!
make[3]: *** [Makefile:82: sub-gn_run-pro-make_first] Error 3
make[3]: Leaving directory '/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src/core'
make[2]: *** [Makefile:77: sub-core-make_first] Error 2
make[2]: Leaving directory '/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine/src'
make[1]: *** [Makefile:49: sub-src-make_first] Error 2
make[1]: Leaving directory '/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtwebengine'
make: *** [Makefile:1060: module-qtwebengine-make_first] Error 2

Maybe I'll just skip Qt WebEngine as I don't need it anyways.

Emeric commented on 2019-12-15 17:49 (UTC)

@Martchus I'll let you know what is the status of Qt 5.14 and QImage with jpeg and webp files!

Martchus commented on 2019-12-15 17:29 (UTC)

The image format plugin for webp is actually using libwebp from Qt and not the system library. I made this small patch to use the system library from android-aarch64-libwebp (similar to the patch for libjpeg-turbo): https://github.com/Martchus/qtimageformats/commit/2a2b4224e0b7998cb8b0f4008f3235212d99d87d

It seems to keep the build going. Let's see what breaks next and what caveats using the system libraries has on runtime. I'm mentioning this because @Emeric reported problems with JPEG support but I haven't had the time to look into it.

hipersayan_x commented on 2019-12-14 21:44 (UTC)

Those libraries seems to be defined in libwebpdecoder.a or libwebp.a, maybe adding the libraries to the .pro file will solve the problem? anyway I will check next week.

Martchus commented on 2019-12-14 16:33 (UTC)

There's actually also another block for Android. The following patch brings me already further: https://github.com/Martchus/qtbase/commit/576c1681f59dbb473f4a3d394bf57997cf817378

Now it fails with:

.obj/aarch64/alpha_processing.o: In function `WebPInitAlphaProcessing':
alpha_processing.c:(.text+0x3e8): undefined reference to `WebPInitAlphaProcessingNEON'
.obj/aarch64/dec.o: In function `VP8DspInit':
dec.c:(.text+0xac): undefined reference to `VP8DspInitNEON'
.obj/aarch64/enc.o: In function `VP8EncDspInit':
enc.c:(.text+0x28c): undefined reference to `VP8EncDspInitNEON'
.obj/aarch64/filters.o: In function `VP8FiltersInit':
filters.c:(.text+0x4c): undefined reference to `VP8FiltersInitNEON'
.obj/aarch64/lossless.o: In function `VP8LDspInit':
lossless.c:(.text+0x1090): undefined reference to `VP8LDspInitNEON'
.obj/aarch64/lossless_enc.o: In function `VP8LEncDspInit':
lossless_enc.c:(.text+0xc10): undefined reference to `VP8LEncDspInitNEON'
.obj/aarch64/rescaler.o: In function `WebPRescalerDspInit':
rescaler.c:(.text+0xd58): undefined reference to `WebPRescalerDspInitNEON'
.obj/aarch64/upsampling.o: In function `WebPInitUpsamplers':
upsampling.c:(.text+0x64): undefined reference to `WebPInitUpsamplersNEON'
.obj/aarch64/yuv.o: In function `WebPInitConvertARGBToYUV':
yuv.c:(.text+0x5fc): undefined reference to `WebPInitConvertARGBToYUVNEON'
yuv.c:(.text+0x600): undefined reference to `WebPInitSharpYUVNEON'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[5]: *** [Makefile:398: ../../../../plugins/imageformats/libplugins_imageformats_qwebp_arm64-v8a.so] Error 1
make[5]: Leaving directory '/build/android-aarch64-qt5/src/qt-everywhere-src-5.14.0/qtimageformats/src/plugins/imageformats/webp'

That just seems to be another place where neon specific source files are not added to the build correctly. I'll try to update my patch tomorrow. If you have any ideas/suggestions let me know.

Martchus commented on 2019-12-14 15:35 (UTC) (edited on 2019-12-14 15:36 (UTC) by Martchus)

I've just tried Qt 5.14.0 and ran into the following error: https://paste.opensuse.org/14116450
The file which would provide the symbols the linker can't find is explicitly not added when compiling for Android:

!android {
    SSE2_SOURCES += painting/qdrawhelper_sse2.cpp
    SSSE3_SOURCES += painting/qdrawhelper_ssse3.cpp
    SSE4_1_SOURCES += painting/qdrawhelper_sse4.cpp \
                      painting/qimagescale_sse4.cpp
    ARCH_HASWELL_SOURCES += painting/qdrawhelper_avx2.cpp

    NEON_SOURCES += painting/qdrawhelper_neon.cpp painting/qimagescale_neon.cpp
    NEON_HEADERS += painting/qdrawhelper_neon_p.h
}

So something seems to be broken/inconsistent in their configure system now. I'm playing around with it a little bit, maybe I can find a workaround.

By the way, so far I restricted my builds to one arch at a time (and I only tried aarch64 so far): https://github.com/Martchus/PKGBUILDs/blob/update/mingw-w64-qt5/qt5/android-aarch64/PKGBUILD#L126

This Git branch also contains rebased patches (seems like 0001-Fix-clang-libc-build-under-Android.patch can be dropped).

Emeric commented on 2019-10-24 10:38 (UTC) (edited on 2019-10-24 10:38 (UTC) by Emeric)

Martchus, I didn't find anything weird in the logs no. Rebuilding Qt with the internal libjpeg works for me though, so I'm gonna stick with that.

hipersayan_x, openssl as dependency make the Qt Location maps works too, thanks.

hipersayan_x commented on 2019-10-08 21:52 (UTC)

I have added openssl as dependency, also thanks Martchus.

Martchus commented on 2019-10-05 11:00 (UTC)

Strange - anything interesting to find in the Android log? I don't think ldd works generally with Android binaries because it internally tries to invoke the standard dynamic linker. You can use readelf and objdump instead. E.g. use readelf -d to check whether the soname does not include a version number. Having a version number is a common problem preventing Android to load libraries.

If nothing helps, disable use of system libjpeg again. When I have time I can try to reproduce the issue myself.