All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2] qt5webkit: restore package
Date: Sun, 10 Apr 2016 23:55:26 +0200	[thread overview]
Message-ID: <570ACBCE.3090506@mind.be> (raw)
In-Reply-To: <1459525200-12624-1-git-send-email-gary.bisson@boundarydevices.com>

On 04/01/16 17:40, Gary Bisson wrote:
> Although this package has been removed from the official release
> packages since Qt5.6.0, it is still available for users to build
> it from source. This is useful for platforms without GPU since its
> successor (QtWebEngine) requires OpenGL support.
>
> The package now matches the community-based meta-qt5 Yocto layer,
> using the exact same revision of the qtwebkit source from github:
> https://github.com/meta-qt5/meta-qt5/commit/e434995a
>
> Here is the project source tree:
> https://github.com/qtproject/qtwebkit
>
> All the patches have been pulled from Yocto as well.
>
> Since we are now using the source from the git repository, we need
> to create an empty .git/ folder to force the headers re-generation.
> https://github.com/meta-qt5/meta-qt5/blob/jethro/recipes-qt/qt5/qt5.inc#L33
>
> Note that GPLv3 license option has been added with this release.
>
> Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
> ---
> Hi all,
>
> Changelog v1->v2:
> - Add comment to explain GitHub choice, suggested by Arnout.
> - Add comment to explain .git folder creation, suggested by Julien.
> - Remove || true for .git folder creation, suggested by Julien.
> - Add SOB to patches, suggested by Julien and Arnout.
> - Remove x/y number in patches titles, suggested by Arnout.
>
> I know the .git folder will still make people wonder, I unfortunately haven't
> found the exact Makefile where this folder makes a difference. My comment
> points to the meta-qt5 inc file which does it with the following explanation:
> # Regenerate header files when they are included in source tarball
> # Otherwise cmake files don't set PRIVATE_HEADERS correctly
> do_configure_prepend() {
>      rm -rf ${S}/include
>      mkdir -p ${S}/.git || true
> }

  I've found out, I'll comment on it below.

>
> Tested on i.MX6Q Nitrogen6x platform.
>
> Regards,
> Gary
> ---
>   Config.in.legacy                                   |  7 --
>   package/qt5/Config.in                              |  1 +
>   .../0001-qtwebkit-fix-QA-issue-bad-RPATH.patch     | 31 +++++++++
>   .../qt5webkit/0002-Remove-TEXTREL-tag-in-x86.patch | 80 ++++++++++++++++++++++
>   ...ude-backtrace-API-for-non-glibc-libraries.patch | 39 +++++++++++
>   .../0004-Fix-linking-with-libpthread.patch         | 34 +++++++++
>   package/qt5/qt5webkit/Config.in                    | 24 +++++++
>   package/qt5/qt5webkit/qt5webkit.hash               |  2 +
>   package/qt5/qt5webkit/qt5webkit.mk                 | 62 +++++++++++++++++
>   9 files changed, 273 insertions(+), 7 deletions(-)
>   create mode 100644 package/qt5/qt5webkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch
>   create mode 100644 package/qt5/qt5webkit/0002-Remove-TEXTREL-tag-in-x86.patch
>   create mode 100644 package/qt5/qt5webkit/0003-Exclude-backtrace-API-for-non-glibc-libraries.patch
>   create mode 100644 package/qt5/qt5webkit/0004-Fix-linking-with-libpthread.patch
>   create mode 100644 package/qt5/qt5webkit/Config.in
>   create mode 100644 package/qt5/qt5webkit/qt5webkit.hash
>   create mode 100644 package/qt5/qt5webkit/qt5webkit.mk
[snip]
> diff --git a/package/qt5/qt5webkit/qt5webkit.mk b/package/qt5/qt5webkit/qt5webkit.mk
> new file mode 100644
> index 0000000..1ac4c25
> --- /dev/null
> +++ b/package/qt5/qt5webkit/qt5webkit.mk
> @@ -0,0 +1,62 @@
> +################################################################################
> +#
> +# qt5webkit
> +#
> +################################################################################
> +
> +QT5WEBKIT_VERSION = d2ff5a085572b1ee24dcb42ae107063f3142d14e
> +# Using GitHub since it supports downloading tarballs from random commits.
> +# The http://code.qt.io/cgit/qt/qtwebkit.git/ repo doesn't allow to do so.
> +QT5WEBKIT_SITE = $(call github,qtproject,qtwebkit,$(QT5WEBKIT_VERSION))
> +QT5WEBKIT_DEPENDENCIES = qt5base sqlite host-ruby host-gperf host-bison host-flex
> +QT5WEBKIT_INSTALL_STAGING = YES
> +
> +QT5WEBKIT_LICENSE_FILES = Source/WebCore/LICENSE-LGPL-2 Source/WebCore/LICENSE-LGPL-2.1
> +
> +ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y)
> +QT5WEBKIT_LICENSE = LGPLv2+ (WebCore), LGPLv2.1 with exception or LGPLv3 or GPLv2 or GPLv3

  Actually, as far as I can see with the help of fossology, it's all LGPLv2+ 
except a few files which specify additional possibilities. So I'd say that it's 
LGPLv2+.

  There is also quite a lot of BSD-2c and BSD-3c, so I'd add those, even if 
there's no corresponding license file.

  There are also a few build tools that are GPLv2+ but we don't consider those.

> +# Source files contain references to LGPL_EXCEPTION.txt but it is not included
> +# in the archive.
> +QT5WEBKIT_LICENSE_FILES += LICENSE.LGPLv21 LICENSE.LGPLv3 LICENSE.GPLv2 LICENSE.GPLv3

  This is a funny situation... Four license files are provided, but none of them 
actually corresponds to the license of the code... Anyway, I'd keep just the 
LGPLv21 file.

> +else
> +QT5WEBKIT_LICENSE = LGPLv2+ (WebCore), Commercial license
> +QT5WEBKIT_REDISTRIBUTE = NO
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y)
> +QT5WEBKIT_DEPENDENCIES += xlib_libXext xlib_libXrender
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y)
> +QT5WEBKIT_DEPENDENCIES += qt5declarative
> +endif
> +
> +# Create an empty .git/ folder to force headers re-generation.
> +# See http://github.com/meta-qt5/meta-qt5/blob/master/recipes-qt/qt5/qt5.inc

  Here's my analysis of the situation; I'll write it as comments directly for 
easy cut and paste.

# Since we get the source from git, generated header files are not included.
# qmake detects that header file generation (using the syncqt tool) must be
# done based on the existence of a .git directory (cfr. the git_build config
# option which is set in qt_build_paths.prf).
# So, to make sure that qmake detects that header files must be generated,
# create an empty .git directory.


  Regards,
  Arnout

> +define QT5WEBKIT_CONFIGURE_CMDS
> +	mkdir -p $(@D)/.git
> +	(cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake)
> +endef
> +
> +define QT5WEBKIT_BUILD_CMDS
> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
> +endef
> +
> +define QT5WEBKIT_INSTALL_STAGING_CMDS
> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
> +	$(QT5_LA_PRL_FILES_FIXUP)
> +endef
> +
> +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK),y)
> +define QT5WEBKIT_INSTALL_TARGET_QMLS
> +	cp -dpfr $(STAGING_DIR)/usr/qml/QtWebKit $(TARGET_DIR)/usr/qml/
> +endef
> +endif
> +
> +define QT5WEBKIT_INSTALL_TARGET_CMDS
> +	cp -dpf $(STAGING_DIR)/usr/lib/libQt5WebKit*.so.* $(TARGET_DIR)/usr/lib
> +	cp -dpf $(@D)/bin/* $(TARGET_DIR)/usr/bin/
> +	$(QT5WEBKIT_INSTALL_TARGET_QMLS)
> +endef
> +
> +$(eval $(generic-package))
>


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

  parent reply	other threads:[~2016-04-10 21:55 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-01 15:40 [Buildroot] [PATCH v2] qt5webkit: restore package Gary Bisson
2016-04-04 14:54 ` Julien CORJON
2016-04-10 21:55 ` Arnout Vandecappelle [this message]
2016-04-11 21:13   ` Gary Bisson
2016-04-11 21:57     ` Arnout Vandecappelle

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=570ACBCE.3090506@mind.be \
    --to=arnout@mind.be \
    --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.