[Buildroot] [PATCH v2 2/2] package/qt5/qt5webengine: fix build dependencies for autodetected packages

Peter Seiderer ps.report at gmx.net
Fri Feb 28 19:24:31 UTC 2020


Hello Nate,

On Fri, 28 Feb 2020 12:37:22 -0500, Nathan Ford <nford at westpond.com> wrote:

> I ran into a linker error when I tried to enable minizip, so I omitted it.

That is sad...., but is not solved by omitting the dependency (but maybe
hidden due to build order....on the cost of reproducibility)..., but
there is no option to disable minizip support (only detected by pkg-config
and the minizip.pc file provided by minizip-2.9.1, but the version
seems to be not compatible)...

> 
> Did you re-compile qt5base after selecting png / jpeg / harfbuzz?
> qt5webengine enables them via the qt build system.

Yes, full re-build ;-)

But see no direct enabling through qt5webengine options/select, maybe
indirect?

The jpeg test failes with:

> main.cpp:12:5: error: ‘jpeg_crop_scanline’ was not declared in this scope; did you mean ‘jpeg_read_scanlines’?
>    12 |     jpeg_crop_scanline(nullptr, &dummy, &dummy);
>       |     ^~~~~~~~~~~~~~~~~~
>       |     jpeg_read_scanlines
> main.cpp:13:5: error: ‘jpeg_skip_scanlines’ was not declared in this scope; did you mean ‘jpeg_read_scanlines’?
>    13 |     jpeg_skip_scanlines(nullptr, dummy);
>       |     ^~~~~~~~~~~~~~~~~~~
>       |     jpeg_read_scanlines

Maybe incompatible version?

> 
> icu needs to be enabled explicitly similar to ffmpeg. Don't remember
> why I omitted it. I'm compiling now to see if there was an issue.

Did take a look at build/qt5webengine-5.12.7/config_help.txt:

WebEngine options:

  -webengine-alsa ................ Enable ALSA support [auto] (Linux only)
  -webengine-pulseaudio .......... Enable PulseAudio support [auto]
                                   (Linux only)
  -webengine-embedded-build ...... Enable Linux embedded build [auto]
                                   (Linux only)
  -webengine-icu ................. Use system ICU libraries [system/qt]
                                   (Linux only)
  -webengine-ffmpeg .............. Use system FFmpeg libraries [system/qt]
                                   (Linux only)
  -webengine-opus ................ Use system Opus libraries [system/qt]
                                   (Linux only)
  -webengine-webp ................ Use system WebP libraries [system/qt]
                                   (Linux only)
  -webengine-pepper-plugins ...... Enable use of Pepper Flash and Widevine
                                   plugins [auto]
  -webengine-printing-and-pdf .... Enable use of printing and output to PDF
                                   [auto]
  -webengine-proprietary-codecs .. Enable support for proprietary codecs [no]
  -webengine-spellchecker ........ Enable support for spellchecker [yes]
  -webengine-native-spellchecker . Enable support for native spellchecker [no]
                                   (macOS only)
  -webengine-webrtc .............. Enable support for WebRTC [auto]

There are more 'auto' options, e.g. '-webengine-pulseaudio' which should
be properly supported including the dependencies by the qt5webengine
package (or explicitly disabled)...
 
> 
> If libxml2/libxslt is checked, qt5webengine will skip them because
> libxml2 is not built with ICU support. libxml2 needs a configure
> switch to explicitly enable it. I have a patch that does this if ICU
> is enabled, but I don't know if implicitly enabling it would have
> ramifications, otherwise why is it not auto detected?

The libxml2/libxslt test simply fails with:

> xml2.cpp:31:2: error: #error "libxml icu not enabled"
>    31 | #error "libxml icu not enabled"
>       |  ^~~~~

Regards,
Peter

> 
> --Nate
> 
> 
> 
> On Fri, Feb 28, 2020 at 10:59 AM Peter Seiderer <ps.report at gmx.net> wrote:
> >
> > Re-add CC: Nathan Ford <nford at westpond.com>
> >
> > On Fri, 28 Feb 2020 16:56:45 +0100, Peter Seiderer <ps.report at gmx.net> wrote:
> >  
> > > Hello Nathan,
> > >
> > > On Fri, 28 Feb 2020 09:39:15 -0500, Nathan Ford <nford at westpond.com> wrote:
> > >  
> > > > Signed-off-by: Nathan Ford <nford at westpond.com>
> > > > ---
> > > >  package/qt5/qt5webengine/qt5webengine.mk | 28 ++++++++++++++++++++++++++++
> > > >  1 file changed, 28 insertions(+)
> > > >
> > > > diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
> > > > index 3824738..e5f8421 100644
> > > > --- a/package/qt5/qt5webengine/qt5webengine.mk
> > > > +++ b/package/qt5/qt5webengine/qt5webengine.mk
> > > > @@ -60,6 +60,34 @@ QT5WEBENGINE_QMAKEFLAGS += QT_CONFIG-=alsa
> > > >  endif
> > > >  endif
> > > >
> > > > +ifeq ($(BR2_PACKAGE_JSONCPP),y)
> > > > +QT5WEBENGINE_DEPENDENCIES += jsoncpp
> > > > +endif
> > > > +
> > > > +ifeq ($(BR2_PACKAGE_LCMS2),y)
> > > > +QT5WEBENGINE_DEPENDENCIES += lcms2
> > > > +endif
> > > > +
> > > > +ifeq ($(BR2_PACKAGE_LIBEVENT),y)
> > > > +QT5WEBENGINE_DEPENDENCIES += libevent
> > > > +endif
> > > > +
> > > > +ifeq ($(BR2_PACKAGE_LIBXML2),y)
> > > > +QT5WEBENGINE_DEPENDENCIES += libxml2
> > > > +endif
> > > > +
> > > > +ifeq ($(BR2_PACKAGE_LIBXSLT),y)
> > > > +QT5WEBENGINE_DEPENDENCIES += libxslt
> > > > +endif
> > > > +
> > > > +ifeq ($(BR2_PACKAGE_PROTOBUF),y)
> > > > +QT5WEBENGINE_DEPENDENCIES += protobuf
> > > > +endif
> > > > +
> > > > +ifeq ($(BR2_PACKAGE_SNAPPY),y)
> > > > +QT5WEBENGINE_DEPENDENCIES += snappy
> > > > +endif
> > > > +  
> > >
> > > According to build/qt5webengine-5.12.7/config.summary:
> > >
> > >   Optional system libraries used:
> > >     re2 .................................. no   ---> not in buildroot
> > >     icu .................................. no   ---> handled by select BR2_PACKAGE_QT5BASE_ICU but not found (version mismatch)?
> > >     libwebp, libwebpmux and libwebpdemux . yes  ---> already handled and fixed by your previous patch
> > >     opus ................................. yes  ---> already handled
> > >     ffmpeg ............................... yes  ---> already handled
> > >     libvpx ............................... yes  ---> already handled
> > >     snappy ............................... yes  ---> handled by our patch
> > >     glib ................................. yes  ---> already handled
> > >     zlib ................................. yes  ---> handled by qt5base
> > >     minizip .............................. no
> > >     libevent ............................. no   ---> handled by our patch
> > >     jsoncpp .............................. no   ---> handled by our patch
> > >     protobuf ............................. no   ---> handled by our patch
> > >     libxml2 and libxslt .................. no   ---> handled by our patch
> > >     lcms2 ................................ no   ---> handled by our patch
> > >     png .................................. yes  ---> handled by qt5base (only in case BR2_PACKAGE_QT5BASE_PNG is set)?
> > >     JPEG ................................. no   ---> handled by qt5base (only in case BR2_PACKAGE_QT5BASE_JPEG is set)? In my config
> > >                                                      BR2_PACKAGE_QT5BASE_JPEG is set but not found?
> > >     harfbuzz ............................. yes  ---> handled by qt5base (only in case BR2_PACKAGE_QT5BASE_HARFBUZZ and BR2_TOOLCHAIN_HAS_SYNC_4 is set)?
> > >     freetype ............................. yes  ---> handled by qt5base
> > >
> > > So your patch is definitely an improvement and you can add my
> > >
> > > Reviewed-by: Peter Seiderer <ps.report at gmx.net>
> > >
> > > Care to take a look if the buildroot package minizip is sufficient for qt5webengine?
> > >
> > > Leaving icu, png, jpeg and harfbuzz for more research....
> > >
> > > Regards,
> > > Peter
> > >  
> > > >  # QtWebengine's build system uses python, but only supports python2. We work
> > > >  # around this by forcing python2 early in the PATH, via a python->python2
> > > >  # symlink.  
> > >  
> >  
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot



More information about the buildroot mailing list