# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
setvar pkgname = 'webkitgtk'
setvar pkgver = '2.4.11'
setvar pkgrel = '3'
setvar pkgdesc = ""portable web rendering engine WebKit for GTK+""
setvar url = ""http://webkitgtk.org/""
setvar arch = ""all !ppc64le !s390x""
setvar license = ""LGPL2+ BSD""
setvar depends = """"
setvar depends_dev = ""gtk+2.0-dev gtk+3.0-dev libsoup-dev gstreamer1-dev
	gst-plugins-base1-dev""
setvar makedepends = ""$depends_dev
	autoconf automake libtool
	bison
	enchant-dev
	expat-dev
	flex
	gnutls-dev
	gobject-introspection-dev
	gperf
	gtk-doc
	icu-dev
	libgcrypt-dev
	libgpg-error-dev
	libjpeg-turbo-dev
	libpng-dev
	libsecret-dev
	libsoup-dev
	libwebp-dev
	libxcomposite-dev
	libxcursor-dev
	libxdamage-dev
	libxi-dev
	libxml2-dev
	libxrandr-dev
	libxslt-dev
	libxt-dev
	mesa-dev
	pango-dev
	perl-switch
	ruby
	sqlite-dev
	zlib-dev
	""
setvar install = ''
setvar replaces = ""webkit""
setvar subpackages = ""$pkgname-dev $pkgname-lang webkitgtk2""
setvar source = ""http://webkitgtk.org/releases/webkitgtk-$pkgver.tar.xz
	webkit-gtk-1.7.90-parallel-make-hack.patch
	webkitgtk-1.10-textrels.patch
	harfbuzz.patch
	fix-execinfo.patch
	disallow-ctype.patch
	webkitgtk-2.4.9-abs.patch
	""

setvar _builddir = ""$srcdir"/$pkgname-$pkgver"
proc prepare {
	cd $_builddir
	update_config_sub || return 1
	for i in $source {
		case (i) {
		*.patch {
			msg "Applying $i"
			patch -p1 -i "$srcdir"/$i || return 1
			}
		}
	}
	libtoolize --force && aclocal -I Source/autotools \
		&& autoconf && automake --force --add-missing || return 1
}

proc _build {
	local _ver=$1

	# disable jit on aarch64 and ppc64le
	if test $CARCH = "aarch64" || test "CARCH" = "ppc64le" {
		local _conf="--disable-jit"
		export CXXFLAGS="$CXXFLAGS -DENABLE_YARR_JIT=0"
	}

	# Workaround crashes with gcc 6.1
	export CXXFLAGS="$CXXFLAGS -fno-delete-null-pointer-checks"

	shift
	../configure $[join(ARGV)]\
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--libexecdir=/usr/lib/webkitgtk-$_ver \
		--disable-geolocation \
		--enable-introspection \
		--with-gtk=$_ver \
		--disable-webkit2 \
		$_conf \
		|| return 1

	# fight overlinking
	# https://bugzilla.gnome.org/show_bug.cgi?id=655517
	sed -i 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool || return 1

	# hack to work around parallel make problems,
	# see https://bugs.webkit.org/show_bug.cgi?id=79498
	make -j1 all-built-sources-local \
		&& make all-ltlibraries-local \
		&& make all-programs-local \
		&& make || return 1
}

proc build {
	cd $_builddir
	mkdir -p build-2.0
	msg "building for gtk2"
	shell {cd build-2.0 && _build 2.0} || return 1

	msg "building for gtk3"
	mkdir -p build-3.0
	shell {cd build-3.0 && _build 3.0} || return 1
}


proc package {
	cd $_builddir
	for i in 2.0 3.0 {
		cd build-$i
		make DESTDIR="$pkgdir" install || return 1
		# verify so we dont have textrels
		if scanelf -qRt $pkgdir | grep TEXTREL {
			error "found textrels"
			return 1
		}
		cd ..
	}
}

proc webkitgtk2 {
	setvar pkgdesc = ""portable web rendering engine WebKit for GTK+2""
	local dir
	mkdir -p "$subpkgdir"/usr/share \
		"$subpkgdir"/usr/lib \
		"$subpkgdir"/usr/lib/girepository-1.0 \
		"$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/share/webkitgtk-1.0 "$subpkgdir"/usr/share/ \
		|| return 1
	mv "$pkgdir"/usr/lib/girepository-1.0/*-1.0* \
		"$subpkgdir"/usr/lib/girepository-1.0/ || return 1
	mv "$pkgdir"/usr/lib/lib*-1.0* \
		"$subpkgdir"/usr/lib/ || return 1
	mv "$pkgdir"/usr/bin/jsc-1 \
		"$subpkgdir"/usr/bin/ || return 1
}

setvar md5sums = ""24a25ccc30a7914ae50922aedf24b7bc  webkitgtk-2.4.11.tar.xz
de77a3e7e61753e7f1cce3f4bd00a3f6  webkit-gtk-1.7.90-parallel-make-hack.patch
9ace721086b25f0f32d7f76b29789f67  webkitgtk-1.10-textrels.patch
b1f455b3ea4db1598b60f5aa59f27fd5  harfbuzz.patch
c114751c30cdcaede5a7ed5568b2b0d4  fix-execinfo.patch
f5b41e756d2dfdc2bbee034d4f2d2e66  disallow-ctype.patch
f5f1f913a4abd3bb9cff2055305ead16  webkitgtk-2.4.9-abs.patch""
setvar sha256sums = ""588aea051bfbacced27fdfe0335a957dca839ebe36aa548df39c7bbafdb65bf7  webkitgtk-2.4.11.tar.xz
e20d7d45e6230308f7d4a7aac1095cb1fe8d9c7eb0f3e65b061acf8bc4bbaf73  webkit-gtk-1.7.90-parallel-make-hack.patch
754bbf13c7a6c9bd745f642367ff884156020dd2ea7611c3d20a509c6685c836  webkitgtk-1.10-textrels.patch
0b7c1ce7e0e8548507eed8911c73d4a06434e5ca3b84275e785013f8b04433a2  harfbuzz.patch
b2bc9e03fd5d968d6df4531a7d102496139120e666e6fed397a19ae4026751c6  fix-execinfo.patch
6e972b5cb3f1101be646d1a018ff61c0e6614310a971eb392c4fd0fee5623455  disallow-ctype.patch
ec294bbb5588a1802a68e3615c6718486b22f922645c5fef686d3d103014bf70  webkitgtk-2.4.9-abs.patch""
setvar sha512sums = ""2e2cf01a52b8593765a0a3c2d7f0ad306121660019eb402226bd2826c7d4666dab4e91ca6ccbd29abe0ad3993549f256ed1ab88de22e9c8516d5f40a4edd6bfb  webkitgtk-2.4.11.tar.xz
907356faab08ebf65da8760ad11ee8ecd4e97274b1c00c1e207fd52e479d64a0545ba66859b1a79bd150a95da4a9e8724b3c461a24f803fb341b8242566b5cc0  webkit-gtk-1.7.90-parallel-make-hack.patch
c3502a11ce4777abc164209c0087ec7cb6c28b376056bee52651b4e4bd2d49f2d6e4a74422f21d9bce848479a4a1b02052935b3c9397f1d43a59b3de22ef2758  webkitgtk-1.10-textrels.patch
8eb77ed1a1c60aac44fb00cfa6ddd46a23c4701fd6a24eac901d07eb49e0191080f7410fa3801115da5448b514e5d2095a4c4072a8c1e9f8c668eebb78afe6a1  harfbuzz.patch
602630468ee80b9f9bb53ee7808f4b2f2c86d1d4db14ac9c244b3e2e79a245510a289eb321cb7dbefd3b7a2dde13cf444b8ecf7cd46f23eaa5c0f04670914e42  fix-execinfo.patch
40a213548d4f76152d2cae57c15c6fb079b64a681a2b033b0c8265c5dbe2653818c898d1ac76ae59298cbf568dc4b811f86c3913e9d2c3d3f33e5cb8c1bd217e  disallow-ctype.patch
64ec41fc02d6bfc4e6cdc13cc2560aaefcf2b5c9c6ac62a6e3d3b85221487b44bf8b7edbf972635d1628f1d3919f96f4dd417774b8d39691b3b0d7925e499f82  webkitgtk-2.4.9-abs.patch""