All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.