Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] Add Qt5 packages
Date: Fri, 1 Mar 2013 10:08:44 +0100	[thread overview]
Message-ID: <20130301100844.2f7b014a@skate> (raw)
In-Reply-To: <513011C9.8030301@je-eigen-domein.nl>

Dear Floris Bos,

On Fri, 01 Mar 2013 03:26:17 +0100, Floris Bos wrote:

> Nice job.
> Gave it a try, and it seems to work, except some minor issues:

Wah, thank you very much for taking the time to test all this. This is
really appreciated, thanks!

> - declarative and webkit depend on gui

Ok.

> - build error when using an ARM buildroot/uClibc toolchain:
> 
> ../3rdparty/v8/src/platform-linux.cc: In function 'void 
> v8::internal::ProfilerSignalHandler(int, siginfo_t*, void*)':
> ../3rdparty/v8/src/platform-linux.cc:1034:51: error: 'mcontext_t' has no 
> member named 'gregs'
> ../3rdparty/v8/src/platform-linux.cc:1035:51: error: 'mcontext_t' has no 
> member named 'gregs'
> ../3rdparty/v8/src/platform-linux.cc:1036:51: error: 'mcontext_t' has no 
> member named 'gregs'
> make[3]: *** [.obj/release-shared/platform-linux.o] Error 1
> 
> ==
> #if (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3))
>    sample->pc = reinterpret_cast<Address>(mcontext.gregs[R15]);
>    sample->sp = reinterpret_cast<Address>(mcontext.gregs[R13]);
>    sample->fp = reinterpret_cast<Address>(mcontext.gregs[R11]);
> #else
>    sample->pc = reinterpret_cast<Address>(mcontext.arm_pc);
>    sample->sp = reinterpret_cast<Address>(mcontext.arm_sp);
>    sample->fp = reinterpret_cast<Address>(mcontext.arm_fp);
> #endif  // (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3))
> ==
> 
> For testing purposes I changed it to #if (0) to let it use 
> mcontext.arm_pc and that compiles fine.

Ok, that's easy enough to fix.

> - At runtime:
> 
> QFontDatabase: Cannot find font directory /usr/lib/fonts - is Qt 
> installed correctly?
> 
> Seems no fonts installed with Qt.
> Selected "liberation" package, but that installs the fonts to 
> /usr/share/fonts
> Worked around by making a symlink from /usr/lib/fonts to there.

I suspect this comes from:

$ cat mkspecs/features/qpa/genericunixfontdatabase.prf 
CONFIG += qpa/basicunixfontdatabase
contains(QT_CONFIG, fontconfig) {
    DEFINES += Q_FONTCONFIGDATABASE
    LIBS += -lfontconfig
} else {
    fonts.path = $$[QT_INSTALL_LIBS]/fonts
    fonts.files = $$QT_SOURCE_TREE/lib/fonts/*
    INSTALLS += fonts
}

So I suspect you didn't had fontconfig support enabled. Is this correct?

If so, then I can include a path that makes fonts.path be
$$[QT_INSTALL_PREFIX]/share/fonts/.

But Qt has some fonts in lib/fonts/, so maybe we should research how to
install them, at least optionally, because they have some fonts in the
special Qt format, which may be useful if you don't have a TTF font
renderer available.

> - When building for a Raspberry Pi (eglfs plugin), applications fails to 
> start at runtime:
> 
> assertion 
> failure:/hdd/max/dev/qtbuildroot/buildroot/output/build/rpi-userland-5e9a740a88a889dfc8a18bb1b00c17e5dd9d0108/interface/vmcs_host/vc_vchi_dispmanx.c:84:lock_obtain():dispmanx_client.initialised
> Aborted
> 
> Library does not seem to get initialised properly.
> Looks like there is rPi specific glue code that is supposed to call 
> bcm_host_init() in 
> qt5base-5.0.0/mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp
> 
> But it did not compile that file.
> 
> buildroot/output/build/qt5base-5.0.0$ find . |grep eglfshooks |grep \\.o
> ./src/plugins/platforms/eglfs/.obj/release-shared/qeglfshooks_stub.o

Aah, yes, the platform glue code. That's not easy to handle because the
way I pass the cross-compiler path and al. is by using a custom
"-device buildroot", which works by providing our own
mkspecs/devices/linux-buildroot-g++/qmake.conf and
mkspecs/devices/linux-buildroot-g++/qplatformdefs.h files. But a few
platforms have some custom code in mkspecs/devices/linux-<something>/.
But their qmake.conf often is horrible. For example, the RasberryPi one
hardcodes path to /opt/vc/ for the OpenGL libraries, but Buildroot
installs them in /usr/.

Not sure how to handle this problem... The Qt5 way of doing things
seems really strange to me: it mixes "configuration" (defining where
the libraries are, what are the compiler flags and so on), with the
real code (in this case, the glue code for a particular platform).

Ideas?

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

  parent reply	other threads:[~2013-03-01  9:08 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-27 23:25 [Buildroot] [PATCH] Add Qt5 packages Thomas Petazzoni
2013-02-27 23:25 ` [Buildroot] [PATCH 01/30] pcre: add support for 16 bits and 32 bits variants Thomas Petazzoni
2013-02-28  0:00   ` Gustavo Zacarias
2013-02-28  8:28     ` Thomas Petazzoni
2013-02-27 23:25 ` [Buildroot] [PATCH 02/30] x11r7/xcb-util: bump to 0.3.9 Thomas Petazzoni
2013-02-27 23:25 ` [Buildroot] [PATCH 03/30] x11r7/xcb-util-wm: new package Thomas Petazzoni
2013-02-27 23:25 ` [Buildroot] [PATCH 04/30] x11r7/xcb-util-image: " Thomas Petazzoni
2013-02-27 23:25 ` [Buildroot] [PATCH 05/30] package: create virtual package for libGLES, libOpenVG and libEGL Thomas Petazzoni
2013-02-27 23:25 ` [Buildroot] [PATCH 06/30] rpi-userland: provides OpenGL ES, EGL and OpenVG Thomas Petazzoni
2013-02-27 23:25 ` [Buildroot] [PATCH 07/30] rpi-userland: add .pc files for OpenGLESv2 and EGL libs Thomas Petazzoni
2013-02-27 23:25 ` [Buildroot] [PATCH 08/30] jpeg: convert to a real package Thomas Petazzoni
2013-02-28 22:13   ` Samuel Martin
2013-02-28 23:13     ` Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 09/30] qt5: base infrastructure Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 10/30] qt5: add macro to fixup Qt5 .la and .prl files Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 11/30] qt5base: new package Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 12/30] qt5base: add GUI support Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 13/30] qt5base: support debug or release modes Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 14/30] qt5base: add OpenSSL support Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 15/30] qt5base: add eglfs graphics backend Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 16/30] qt5base: add support for fontconfig, png, jpeg, gif Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 17/30] qt5base: add D-Bus support Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 18/30] qt5base: add glib support Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 19/30] qt5base: add support to build against ICU Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 20/30] qt5: factor Qt5 version Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 21/30] qt5/qt5svg: new package Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 22/30] qt5/qt5script: " Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 23/30] qt5/qt5imageformats: " Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 24/30] qt5/qt5xmlpatterns: " Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 25/30] qt5/qt5jsbackend: " Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 26/30] qt5/qt5declarative: " Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 27/30] qt5/qt5graphicaleffects: " Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 28/30] qt5/qt5multimedia: " Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 29/30] qt5/qt5quick1: " Thomas Petazzoni
2013-02-27 23:26 ` [Buildroot] [PATCH 30/30] qt5/qt5webkit: " Thomas Petazzoni
2013-03-01  2:26 ` [Buildroot] [PATCH] Add Qt5 packages Floris Bos
2013-03-01  4:25   ` Daniel Price
2013-03-01  9:19     ` Thomas Petazzoni
2013-03-01  9:08   ` Thomas Petazzoni [this message]
2013-03-01 16:39     ` Floris Bos
2013-03-01 16:54       ` Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130301100844.2f7b014a@skate \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox