Select (and use) builroot provided freetype in case qt5base gui is
selected (gui without freetype/font support makes not much sense
and gives compile errors).
Qt 5.6 needs some support to find the include headers, 5.8 is
clever enough inherently.
Fixes [1] (by avoiding the build-in freetype library which depends
on activated libpng support):
Project ERROR: Library 'libpng' is not defined.
make[3]: *** [sub-3rdparty-freetype-make_first] Error 3
[1] http://autobuild.buildroot.net/results/219162ba616289f799a5053c4dcc6b8574284283
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Move the two comment lines to where they apply.
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
qtbase carries nor more fonts since c5ceabb9a1caf6b9b7615a28c3097f221772f645
So for Qt Version 5.8.0 this reverts commit
cdfa21b060 and part of
186ef9f6f4.
Signed-off-by: Andreas Naumann <anaumann@ultratronik.de>
Signed-off-by: Julien Corjon <corjon.j@ecagroup.com>
Signed-off-by: Zoltan Gyarmati <mr.zoltan.gyarmati@gmail.com>
[Thomas: adjust commit log.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
For 5.8.0
- add hashes
- qt5 need C++11 compliant compiler since 5.7 ([1])
- use different licenses: since version 5.7 Qt removed the LGPL v2.1 option in favor
of v3 with a different exception
- qt5base: renamed library to EglFSDeviceIntegration ([2])
- qt5base: remove ras-pi patch, commit c0cc5052097c723d0331a7619d686af9eb93d33c fix it ([3])
- qt5base: remove 0007-eglfs-fix-eglfs_mali-compile-for-odroid-mali.patch (upstream committed [3b])
- qt5base: remove obsolete config-option -large ([4])
- qt5base: gstreamer support fully moved to qt5multimedia, so gstreamer
related options are no longer passed ([5])
- add patch for python-pyqt5 to fix the build with Qt 5.8
- add tweak in libv4l to fix the build with Qt 5.8, originally provided
by Peter Seiderer
- add patch from Peter Seiderer fixing a build issue with freetype
For 5.6.2
- moved patches to subdir, and renumber patches
[1] http://blog.qt.io/blog/2016/06/16/qt-5-7-released/
[2] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ec4eb4db61094179bc6a9ec26ec68fb710177053
[3] https://codereview.qt-project.org/#/c/167172/
[3b] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=f1b4bd4790860e1ff5afcec111a359bc3a91cfda
[4] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=84d3a21c9efe7efb2cce6d3bd14af1f9580b1108
[5] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=7d4da559afb62a779b3d90a65fb679cb5433f203
Signed-off-by: Andreas Naumann <anaumann@ultratronik.de>
Signed-off-by: Julien Corjon <corjon.j@ecagroup.com>
Signed-off-by: Zoltan Gyarmati <mr.zoltan.gyarmati@gmail.com>
[Thomas:
- tweak commit log about GStreamer related changes, suggested by Arnout
- move the gcc 4.8 dependency from the main qt5 option to just the
qt5.8 selection, so that qt5.6 can still be built if gcc < 4.8 is
used. Noticed by Arnout.
- rename the options of the version selection to not include the
version number itself so that we don't have to keep legacy
symbols. Noticed by Arnout.
- introduce changes to qt5quickcontrols2.mk needed to handle qt5.6
vs. qt5.8, borrowed from a later patch in the series.
- add patch for python-pyqt5 to fix the build with Qt 5.8.
- add fix to libv4l.mk from Peter Seiderer to fix the build with Qt
5.8.
- renumber patches for 5.6.2, suggested by Arnout.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To reduce the qt5base binary size, we can disable unnecessary features.
Instead of trying to map every qt5base option to buildroot, create a
single config that we can pass any option too. Then append those to the
ones generated by buildroot.
Signed-off-by: Brandon Maier <brandon.maier@rockwellcollins.com>
Signed-off-by: Bryce Ferguson <bryce.ferguson@rockwellcollins.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
[Thomas:
- move condition to a different place in the .mk file, with other
similar conditions.
- add an 'else' clause to pass -no-libinput in order to explicitly
disable libinput support when the libinput package is not available.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Avoid duplicated struct fbdev_window definition (introduced by [1]) by
renaming struct fbdev_window to shadow_fbdev_window.
Fixes [2]:
qeglfsmaliintegration.cpp:45:8: error: redefinition of 'struct fbdev_window'
struct fbdev_window {
^
In file included from /accts/mlweber1/rc-buildroot-test/scripts/instance-0/output/host/usr/aarch64-buildroot-linux-gnu/sysroot/usr/include/EGL/eglplatform.h:28:0,
from /accts/mlweber1/rc-buildroot-test/scripts/instance-0/output/host/usr/aarch64-buildroot-linux-gnu/sysroot/usr/include/EGL/egl.h:36,
from ../../../eglfs/qeglfsglobal.h:45,
from ../../../eglfs/qeglfsdeviceintegration.h:48,
from qeglfsmaliintegration.h:37,
from qeglfsmaliintegration.cpp:34:
[1] https://code.qt.io/cgit/qt/qtbase.git/commit/?h=dev&id=58bed4cda98e8e25db8adc61c7db73b6853077dc
[2] http://autobuild.buildroot.net/results/48c/48c458c035162169e8ca7c34ae65e9064822f25a
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Some Qt5 sub-projects as well as 3rd-party apps written on Qt
are failing to compile with gcc 6.x like that:
---------------------------->8-------------------------
In file included from XXX/output/host/usr/arc-buildroot-linux-uclibc/include/c++/6.2.1/bits/stl_algo.h:59:0,
from XXX/output/host/usr/arc-buildroot-linux-uclibc/include/c++/6.2.1/algorithm:62,
from XXX/output/host/usr/arc-buildroot-linux-uclibc/sysroot/usr/include/qt5/QtCore/qglobal.h:88,
from XXX/output/host/usr/arc-buildroot-linux-uclibc/sysroot/usr/include/qt5/QtCore/qpair.h:37,
from qmediametadata.h:37,
from qmediametadata.cpp:28:
XXX/output/host/usr/arc-buildroot-linux-uclibc/include/c++/6.2.1/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
#include_next <stdlib.h>
^
compilation terminated.
---------------------------->8-------------------------
That happens because qmake trying to play smart passes some
include paths in Makefile with "-isystem" prefix.
Which in some cases lead to build failure well described in [1].
A little bit more details below on what really happens:
1. In "configure" script Qt determines default include paths of the
toolchain and stores them in DEFAULT_INCDIRS variable, see [2].
2. On qmake execution when it creates Makefile out of .pro-file
it parses headers in INCLUDEPATH variable and if a path matches
one in DEFAULT_INCDIRS then in CXXFLAGS that path is written
with $QMAKE_CFLAGS_ISYSTEM prefix, otherwise non-matching include
path ends up in CXXFLAGS with normal "-I" prefix.
3. By default for gcc "QMAKE_CFLAGS_ISYSTEM = -isystem", see [3].
4. gcc fails to find stdlib.h, again refer to Jörg's explanation in [1].
What we do here we force set QMAKE_CFLAGS_ISYSTEM to "" and so qmake
won't use "-isystem" any longer instead expected "-I" will be used for
all headers, see [4].
That fixes building of Qt5Webkit on ARM with gcc 6.x and a number of
autobuilder failures for ARC (the an arch that uses gcc 6 by default) like:
http://autobuild.buildroot.net/results/56a/56a6700774af692e7f5a99b452b15e4e8592310fhttp://autobuild.buildroot.net/results/697/697412b29bf031bf8f246cc3af97ebcbf6bf6d1b
[1] https://git.buildroot.net/buildroot/commit/?id=e79272fa7ff3d66c18de3514b912cd9d68d121a4
[2] http://code.qt.io/cgit/qt/qtbase.git/tree/configure?h=5.6.1#n3660
[3] http://code.qt.io/cgit/qt/qtbase.git/tree/mkspecs/common/gcc-base.conf?h=5.6.1#n47
[4] http://code.qt.io/cgit/qt/qtbase.git/tree/qmake/generators/unix/unixmake2.cpp?&h=5.6.1#n193
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Seiderer <ps.report@gmx.net>
Cc: Julien Corjon <corjon.j@ecagroup.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Qt5 can optionally enable udev support, especially to enumerate input
devices dynamically. Without udev, devices are not properly enumerated,
and any device that is not present at launch time is never seen (there
is no support for hotplug, that is).
Currently, Qt5base has no explicit dependency on udev, so it will all
depend on the build order. Sometimes, a package that requires udev will
be built before qt5base and Qt5 will have support for udev, sometime no
such package is built before qt5base and Qt5 will not have support for
udev.
Add an explicit dependency on udev, but only if it is enabled.
Note: this only really requires libudev, but we do not yet have a
separate libudev; we still only have a udev provider (be it eudev or
systemd).
Signed-off-by: "Yann E. MORIN" <yann.morin@orange.com>
Cc: Cedric Chedaleux <cedric.chedaleux@orange.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[Thomas: drop comment, as suggested by Arnout.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit adds an upstream qtbase commit that fixes the detection of
ALSA versions >= 1.1.x, as we have in Buildroot.
Signed-off-by: Jiri Novotny <jiri.novotny@logicelements.cz>
[Thomas: change to use the upstream commit directly, using <pkg>_PATCH.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
All Qt5 packages gained the GPLv3 license option and all the documentation
is now under GFDLv1.3 license (except qt5websocket and qt53d)
Signed-off-by: Julien Corjon <corjon.j@ecagroup.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The BR2_ARCH_HAS_ATOMICS was added because on ARC, atomic instructions
may not be provided by the architecture and therefore the compiler
does not provide the __sync_*() built-ins.
However, since then, icu was changed and is now able to use C++11
atomics, or even no atomic operations at all. In fact, icu will:
* If possible, it will use C++11 atomics, which internally rely on
the __atomic built-ins. These are available since gcc 4.7, and all
architectures provide it. On some architectures, you *must* link
with libatomic, on some other architectures, they are available
built-in, but in all cases, linking against libatomic does not
harm. Thanks to this, even ARC with no atomic support (which was
the original reason for adding the BR2_ARCH_HAS_ATOMICS) dependency
builds fine, provided -latomic is added to LIBS.
* If C++11 atomics are not available, then it falls back to
__sync_*() built-ins, which allows compilers older than 4.7 to be
supported.
* If really no atomic mechanism is available, then it falls back to a
basic implementation based on a mutex.
Conclusion:
- The BR2_ARCH_HAS_ATOMICS dependency is no longer needed.
- We need to link with -latomic when gcc >= 4.7 is used.
Note that reverse dependencies of icu are also changed accordingly.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
With OVERRIDE_SRCDIR we don't apply any of the qt5base patches, but the
custom specs files are needed to be able to build - So install these in the
configure step instead of having them as a patch.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
This is the only package where we select directfb. Change it to use depends
on to match what we do for the X11 backend.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Currently Qt 5.5 only detects and build the eglfs_mali device
integration if the commercial Mali driver package from ARM is used.
This patch makes sure the Qt configure script also test for the
sunxi-mali driver package. It also removes the dependency of
the proprietary fbdev_window.h.
This issue is set to be fixed in upcoming Qt 5.6:
https://codereview.qt-project.org/#/c/125837/
[Thomas: renumber patch from 0010 to 0009.]
Signed-off-by: Daniel Nyström <daniel.nystrom@timeterminal.se>
Tested-by: Ariel D'Alessandro <ariel@vanguardiasur.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Thomas: build tested before the patch, verified that indeed the
eglfs-mali plugin doesn't get built, and that after the patch it gets
built as expected.]
Update the already existing fix for EGL/X11 header issue to fix
an additional problem encountered on my system where I had
compile errors in qeglplatformscreen.cpp. The problem was related
to the wrong order of includes. The X11 headers must always be
included last, as indicated in
http://lists.qt-project.org/pipermail/development/2013-March/010511.html
The fix is done in the existing 0003-xcb-egl-fixes.patch patch, since
it is an additional fix for the same problem.
[Thomas: tweak commit log, and adjust SoB details as suggested by
Arnout.]
Signed-off-by: Marc Andre <marc.andre@netline.ch>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The new DirectFB version does not build with gcc 4.3 from the Blackfin
toolchain. One of the reason is that va_copy has some issues, which
were fixed in gcc 4.4.0
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36799). There are also
some other issues, which were fixed by a patch proposed by Peter
Seiderer at
http://lists.busybox.net/pipermail/buildroot/2015-February/120281.html.
However, it probably doesn't make a lot of sense to carry patches that
are not upstream for such old compilers. Instead, this commit takes
the action of making DirectFB available only on toolchains using gcc
>= 4.5, which was tested with the Arago toolchain. gcc 4.4 could
potentially work, but wasn't tested (it is no longer supported by the
internal toolchain backend, and we don't have any toolchain based on
gcc 4.4), so we take the safe decision of requiring at least gcc 4.5.
[Peter: add comment explaining toolchain dependenc as suggested by Vincente]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Building with ccache failed with:
Running configuration tests...
Failed to process makespec for platform 'devices/linux-buildroot-g++'
Project ERROR: Compiler <path_to_output_dir>/host/usr/bin/ccache <path_to_output_dir>/host/usr/bin/<cross_compile>-g++ not found. Check the value of CROSS_COMPILE -device-option
Could not read qmake configuration file <path_to_output_dir>/build/qt5base-5.5.0/mkspecs/devices/linux-buildroot-g++/qmake.conf.
Error processing project file: /dev/null
This was caused by Buildroot setting this in
qt5base-5.5.0/mkspecs/devices/linux-buildroot-g++/qmake.conf:
QMAKE_CXX = $${BR_CCACHE} $${CROSS_COMPILE}g++
But qt5base-5.5.0/mkspecs/features/device_config.prf expects QMAKE_CXX
to be a single valid (absolute or QMAKE_PATH_ENV-relative) path to an
existing file, which is not possible if using ccache as above.
Add a patch fixing this by testing only the first value in QMAKE_CXX.
Signed-off-by: Benoît Thébaudeau <benoit@wsystem.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Even though we have some specific code to support building Qt5 for
static-only configurations, it doesn't work. The first problem is that
our custom qmake.conf always passes -ldl, which makes a number of Qt5
config.tests fail at configure time. Once this problem is fixed by
removing -ldl from QMAKE_LIBS and adding it to QMAKE_LIBS_DYNLOAD
instead, the next problem is that the plugin infrastructure of Qt5
assumes that Linux has dynamic library support: the qlibrary_unix.cpp
file includes <dlfcn.h>, and the only condition for this file to not
be included is:
Until recently, building Qt5 statically was working because our C
library was not built static-only: it provided <dlfcn.h> and
libdl.so. But now that we have a really static only toolchain, Qt5 no
longer builds.
The easiest solution is to simply make Qt5 depend on dynamic library
support.
Fixes:
http://autobuild.buildroot.net/results/538/538e0325adba9fabbe4ec8e550fbb6a7219f5e7a/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
When the XCB backend is selected, the libqxcb.so plugin is installed,
and is linked against libQt5XcbQpa.so. However, until, Buildroot was
not installing this library. This commit fixes this.
[Thomas: tweak commit log.]
Signed-off-by: Matthew Shyu <matthew.shyu@amlogic.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The workaround implemented in 0001-Force_egl_visual_ID_33.patch has to
be enabled as soon as gpu_vivante/xorg is used. This does not depends
on eglfs option.
[Thomas: minor commit log tweaks.]
Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
QT5BASE_EGLFS_PLATFORM_HOOKS_SOURCES is no longer useful since eglfs does not
depend on the device makespecs anymore. Instead, backends are autodetected by
configure [1]. We still need specifics include path for rpi eglfs support.
0008-forkd-disable-eventfd-for-uclibc.patch disable missing eventfd in new Qt
3rd party forkd for uClibc toolchains.
Remove patches commited in Qt mainline and update pending one
[1] https://codereview.qt-project.org/#/c/107548/
Passed test :
- Full compilation on ARM/uClibc
- Partialy compiled and tested on i.MX6/linaro with OpenGL backend
- Partialy compiled but not executed for Raspberry Pi (rpi-userland)
Signed-off-by: Julien Corjon <corjon.j@ecagroup.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Add in support for a custom qconfig file in the same way it is
already present for the Qt4 package
Signed-off-by: Will Wagner <will_wagner@carallon.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
In order to be in line with new Freescale naming convention:
https://github.com/Freescale/meta-fsl-arm/commit/74c86aa9
"Graphics recipe is renamed from gpu-viv-bin-mx6q to imx-gpu-viv"
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since 1b54fbc925 (qt5base: fix postgresql plugin compile, 2015-02-19)
QT5BASE_CONFIGURE_ENV is never set. Remove it.
Cc: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
postgresql currently does not build in BR2_STATIC_LIBS=y
configurations, and since there is little interest in using such a big
piece of software in statically linked configuration, this commit
makes postgresql depends on !BR2_STATIC_LIBS.
Fixes:
http://autobuild.buildroot.net/results/f9ed96d22e91cdba9ad92c4d4ea52e422bf1f1c9/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The newly added patch makes sure that gold linker functionality is not
used when doing host builds, since qt5 only tests the availability of
this feature with the target compiler.
Fixes:
http://autobuild.buildroot.net/results/f403a76ac0abbf8488373c0dffb4487f5d98c55d/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
There are currently two patches with the 0002 sequence number, which
isn't great. Rename one of them to use the 0003 sequence number.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Fix "Unable to find an X11 visual" bug that produce at runtime with Vivante
drivers. Add a conditionnal patch and add variable QT5BASE_EXTRA_CFLAGS in
order to enable workaround.
This patch is actually an improvement over the fix available in Yocto:
https://github.com/Freescale/meta-fsl-arm/blob/dizzy/qt5-layer/recipes-qt/qt5/qtbase/Force_egl_visual_ID_33.patch
[Thomas:
- Add SoB from Jérôme Pouiller inside the patch imported from Yocto.
- Add a space between $(TARGET_CFLAGS) and $(QT5BASE_EXTRA_CFLAGS),
and ditto for CXXFLAGS.
- Merge the QT5BASE_EXTRA_CFLAGS into an existing
BR2_PACKAGE_GPU_VIV_BIN_MX6Q conditional.]
Tested-by: Gary Bisson <gary.bisson@boundarydevices.com>
Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>