Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=6
CMAKE_MAKEFILE_GENERATOR="ninja"
PYTHON_COMPAT=( python2_7 )
USE_RUBY="ruby20 ruby21 ruby22 ruby23 ruby24"
inherit check-reqs cmake-utils eutils flag-o-matic python-any-r1 ruby-single toolchain-funcs versionator
MY_P="qtwebkit-5.212.0-alpha2" # FIXME: ${PV}
DESCRIPTION="Open source web browser engine"
SRC_URI="https://github.com/annulen/webkit/releases/download/${MY_P}/${MY_P}.tar.xz"
QV="5.2" # Minimum Qt version
SLOT=5
LICENSE="LGPL-2+ BSD"
KEYWORDS="~amd64 ~x86"
IUSE="+geolocation +gstreamer +jit +hyphen multimedia nsplugin orientation opengl +printsupport qml +webp X"
REQUIRED_USE="
nsplugin? ( X )
qml? ( opengl )
?? ( gstreamer multimedia )
"
# Dependencies found at Source/cmake/OptionsQt.cmake
RDEPEND="
dev-db/sqlite:3=
>=dev-libs/icu-3.8.1-r1:=
>=dev-libs/libxml2-2.8:2
>=dev-libs/libxslt-1.1.7
>=media-libs/libpng-1.4:0=
media-libs/libwebp:=
virtual/jpeg:0=
>=dev-qt/qtcore-${QV}
>=dev-qt/qtgui-${QV}
>=dev-qt/qtnetwork-${QV}
>=dev-qt/qtwidgets-${QV}
geolocation? ( >=dev-qt/qtpositioning-${QV} )
gstreamer? (
>=dev-libs/glib-2.36:2
>=media-libs/gstreamer-1.2:1.0
>=media-libs/gst-plugins-base-1.2:1.0
>=media-libs/gst-plugins-bad-1.6.0:1.0 )
hyphen? ( dev-libs/hyphen )
multimedia? ( >=dev-qt/qtmultimedia-${QV}[widgets] )
opengl? ( >=dev-qt/qtopengl-${QV} )
orientation? ( >=dev-qt/qtsensors-${QV} )
printsupport? ( >=dev-qt/qtprintsupport-${QV} )
qml? (
>=dev-qt/qtdeclarative-${QV}
>=dev-qt/qtwebchannel-${QV}[qml] )
X? (
x11-libs/libX11
x11-libs/libXcomposite
x11-libs/libXrender )
"
# Need real bison, not yacc
DEPEND="${RDEPEND}
${PYTHON_DEPS}
${RUBY_DEPS}
>=dev-lang/perl-5.10
>=dev-util/gperf-3.0.1
>=sys-devel/bison-2.4.3
>=sys-devel/flex-2.5.34
|| ( >=sys-devel/gcc-4.9 >=sys-devel/clang-3.3 )
virtual/pkgconfig
"
S="${WORKDIR}/${MY_P}"
CHECKREQS_DISK_BUILD="1G" # Debug build requires much more see bug #417307
pkg_pretend() {
if [[ ${MERGE_TYPE} != "binary" ]] ; then
if is-flagq "-g*" && ! is-flagq "-g*0" ; then
einfo "Checking for sufficient disk space to build ${PN} with debugging CFLAGS"
check-reqs_pkg_pretend
fi
if ! test-flag-CXX -std=c++11 ; then
die "You need at least GCC 4.9.x or Clang >= 3.3 for C++11-specific compiler flags"
fi
if [[ $(tc-getCXX) == *g++* && $(gcc-version) < 4.9 ]] ; then
die 'The active compiler needs to be gcc 4.9 (or newer)'
fi
fi
}
pkg_setup() {
if [[ ${MERGE_TYPE} != "binary" ]] && is-flagq "-g*" && ! is-flagq "-g*0" ; then
check-reqs_pkg_setup
fi
python-any-r1_pkg_setup
}
src_configure() {
# Respect CC, otherwise fails on prefix #395875
tc-export CC
# older glibc needs this for INTPTR_MAX, bug #533976
if has_version "<sys-libs/glibc-2.18" ; then
append-cppflags "-D__STDC_LIMIT_MACROS"
fi
# Multiple rendering bugs on youtube, github, etc without this, bug #547224
append-flags $(test-flags -fno-strict-aliasing)
local ruby_interpreter=""
if has_version "virtual/rubygems[ruby_targets_ruby23]"; then
ruby_interpreter="-DRUBY_EXECUTABLE=$(type -P ruby23)"
elif has_version "virtual/rubygems[ruby_targets_ruby22]"; then
ruby_interpreter="-DRUBY_EXECUTABLE=$(type -P ruby22)"
elif has_version "virtual/rubygems[ruby_targets_ruby21]"; then
ruby_interpreter="-DRUBY_EXECUTABLE=$(type -P ruby21)"
else
ruby_interpreter="-DRUBY_EXECUTABLE=$(type -P ruby20)"
fi
local mycmakeargs=(
-DENABLE_API_TESTS=OFF
-DENABLE_DEVICE_ORIENTATION=$(usex orientation)
-DENABLE_GEOLOCATION=$(usex geolocation)
-DENABLE_JIT=$(usex jit)
-DENABLE_NETSCAPE_PLUGIN_API=$(usex nsplugin)
-DENABLE_OPENGL=$(usex opengl)
-DENABLE_WEBKIT2=$(usex qml)
-DUSE_GSTREAMER=$(usex gstreamer)
-DUSE_QT_MULTIMEDIA=$(usex multimedia)
-DENABLE_X11_TARGET=$(usex X)
-DCMAKE_BUILD_TYPE=Release
-DPORT=Qt
${ruby_interpreter}
)
cmake-utils_src_configure
}
src_compile() {
cmake-utils_src_compile
}
src_install() {
cmake-utils_src_install
}
@mschilli87

This comment has been minimized.

Show comment Hide comment
@mschilli87

mschilli87 Jun 14, 2017

ebuild qtwebkit-5.212.0_alpha.ebuild manifest

returns

Error(s) in metadata for 'dev-qt/qtwebkit-5.212.0_alpha':
  DEPEND: no matching '(' for ')', token 48
  RDEPEND: no matching '(' for ')', token 48
ebuild qtwebkit-5.212.0_alpha.ebuild manifest

returns

Error(s) in metadata for 'dev-qt/qtwebkit-5.212.0_alpha':
  DEPEND: no matching '(' for ')', token 48
  RDEPEND: no matching '(' for ')', token 48
@annulen

This comment has been minimized.

Show comment Hide comment
@annulen

annulen Jun 17, 2017

@mschilli87 it should work now

Owner

annulen commented Jun 17, 2017

@mschilli87 it should work now

@ernsteiswuerfel

This comment has been minimized.

Show comment Hide comment
@ernsteiswuerfel

ernsteiswuerfel Oct 20, 2017

ebuild qtwebkit-5.212.0_alpha2.ebuild digest
ebuild: /root/build/qtwebkit-5.212.0_alpha2.ebuild: does not seem to have a valid PORTDIR structure

ebuild qtwebkit-5.212.0_alpha2.ebuild digest
ebuild: /root/build/qtwebkit-5.212.0_alpha2.ebuild: does not seem to have a valid PORTDIR structure

@annulen

This comment has been minimized.

Show comment Hide comment
@annulen

annulen Oct 20, 2017

You need to have a proper structure in your overlay, e.g. /root/mylocaloverlay/dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild. Refer to Gentoo documentation for more info.

Owner

annulen commented Oct 20, 2017

You need to have a proper structure in your overlay, e.g. /root/mylocaloverlay/dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild. Refer to Gentoo documentation for more info.

@annulen

This comment has been minimized.

Show comment Hide comment
@annulen

annulen Oct 20, 2017

I've applied some changes made by Gentoo developer, please check

Owner

annulen commented Oct 20, 2017

I've applied some changes made by Gentoo developer, please check

@annulen

This comment has been minimized.

Show comment Hide comment
@annulen

annulen Oct 20, 2017

@annulen

This comment has been minimized.

Show comment Hide comment
@annulen

annulen Oct 20, 2017

@ernsteiswuerfel

This comment has been minimized.

Show comment Hide comment
@ernsteiswuerfel

ernsteiswuerfel Oct 21, 2017

Thanks for your help! Managed to create the local overlay, now I got repoman complaints at digesting the ebuild:

RepoMan scours the neighborhood...

Creating Manifest for /usr/local/portage/dev-qt/qtwebkit
IUSE.invalid [fatal] 6
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: gles2
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: hyphen
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: multimedia
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: orientation
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: printsupport
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: qml
dependency.syntax [fatal] 4
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: DEPEND: no matching '(' for ')', token 22
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: RDEPEND: no matching '(' for ')', token 22
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: DEPEND: no matching '(' for ')', token 22
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: RDEPEND: no matching '(' for ')', token 22
metadata.missing [fatal] 1
dev-qt/qtwebkit/metadata.xml
Please fix these important QA issues first.
RepoMan sez: "Make your QA payment on time and you'll never see the likes of me."

Thanks for your help! Managed to create the local overlay, now I got repoman complaints at digesting the ebuild:

RepoMan scours the neighborhood...

Creating Manifest for /usr/local/portage/dev-qt/qtwebkit
IUSE.invalid [fatal] 6
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: gles2
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: hyphen
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: multimedia
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: orientation
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: printsupport
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: qml
dependency.syntax [fatal] 4
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: DEPEND: no matching '(' for ')', token 22
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: RDEPEND: no matching '(' for ')', token 22
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: DEPEND: no matching '(' for ')', token 22
dev-qt/qtwebkit/qtwebkit-5.212.0_alpha2.ebuild: RDEPEND: no matching '(' for ')', token 22
metadata.missing [fatal] 1
dev-qt/qtwebkit/metadata.xml
Please fix these important QA issues first.
RepoMan sez: "Make your QA payment on time and you'll never see the likes of me."

@annulen

This comment has been minimized.

Show comment Hide comment
@annulen

annulen Oct 26, 2017

@ernsteiswuerfel I've restored old version, please try it

Owner

annulen commented Oct 26, 2017

@ernsteiswuerfel I've restored old version, please try it

@ernsteiswuerfel

This comment has been minimized.

Show comment Hide comment
@ernsteiswuerfel

ernsteiswuerfel Oct 30, 2017

Thanks annulen! This version works, the ebuild can be digested and starts building. Unfortunately building fails... :(

Another minor thing was that I had to manually add "debug" to IUSE="..."

Thanks annulen! This version works, the ebuild can be digested and starts building. Unfortunately building fails... :(

Another minor thing was that I had to manually add "debug" to IUSE="..."

@ernsteiswuerfel

This comment has been minimized.

Show comment Hide comment
@ernsteiswuerfel

ernsteiswuerfel Nov 1, 2017

Turned out that the build error was caused by insufficient space in /var/tmp/
A debug build needs more than 14 GiB on my G5!

Turned out that the build error was caused by insufficient space in /var/tmp/
A debug build needs more than 14 GiB on my G5!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment