# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=graphviz
pkgver=2.40.1
pkgrel=1
pkgdesc="Graph Visualization Tools"
url="http://www.graphviz.org/"
arch="all"
license="EPL-1.0"
_luaver=5.3
depends_dev="zlib-dev libpng-dev libjpeg-turbo-dev expat-dev
	fontconfig-dev libsm-dev libxext-dev cairo-dev pango-dev
	librsvg-dev gmp-dev freetype-dev"
makedepends="$depends_dev flex swig python2-dev m4 libtool
	bison gtk+2.0-dev lua$_luaver-dev libltdl tcl autoconf automake"
install="$pkgname.pre-deinstall"
triggers="$pkgname.trigger=/usr/lib/graphviz"
subpackages="$pkgname-dev $pkgname-doc py2-gv:py lua$_luaver-$pkgname:_lua
	$pkgname-gtk $pkgname-graphs::noarch"
source="$pkgname-$pkgver.tar.bz2::https://gitlab.com/graphviz/$pkgname/repository/stable_release_$pkgver/archive.tar.bz2
	$pkgname.trigger
	0001-clone-nameclash.patch
	ungit-autogen.patch
	"
builddir="$srcdir/$pkgname-$pkgver"

prepare() {
	# Rename unpacked directory with hash in the name to something sane...
	mv "$srcdir"/$pkgname-stable_release_$pkgver-* "$builddir"

	default_prepare

	cd "$builddir"
	./autogen.sh NOCONFIG
}

build() {
	cd "$builddir"

	LIBPOSTFIX=/ \
	LUA=lua$_luaver \
	lua_suffix=$_luaver \
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		\
		--disable-silent-rules \
		--disable-static \
		--disable-dependency-tracking \
		--disable-ltdl-install \
		--enable-ltdl \
		--enable-sharp=no \
		--enable-go=no \
		--enable-guile=no \
		--enable-java=no \
		--enable-lua=yes \
		--enable-ocaml=no \
		--enable-perl=no \
		--enable-php=no \
		--enable-python=yes \
		--enable-r=no \
		--enable-ruby=no \
		--enable-tcl=no \
		\
		--without-included-ltdl \
		--with-x \
		--with-rsvg=yes \
		--with-pangocairo=yes \
		--with-gdk-pixbuf=yes \
		--with-libgd=no \
		--with-ipsepcola=yes

	if [ "$CARCH" = "x86_64" ]; then
		# the configure script thinks we have sincos. we dont.
		sed -i -e '/HAVE_SINCOS/d' config.h
	fi

	make
}

package() {
	cd "$builddir"

	make DESTDIR="$pkgdir" \
		pkgconfigdir=/usr/lib/pkgconfig \
		install

	mkdir -p "$pkgdir"/usr/share/doc
	mv "$pkgdir"/usr/share/graphviz/doc \
		"$pkgdir"/usr/share/doc/graphviz
}

py() {
	pkgdesc="Python2 extension for graphviz"
	depends="python2"
	provides="py-$pkgname=$pkgver-r$pkgrel"  # for backward compatibility
	replaces="py-$pkgname"  # for backward compatibility

	mkdir -p "$subpkgdir"/usr/lib/graphviz \
		"$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/graphviz/python* \
		"$subpkgdir"/usr/lib/graphviz
	mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
}

_lua() {
	pkgdesc="Lua$_luaver extension for graphviz"
	provides="lua-$pkgname=$pkgver-r$pkgrel"  # for backward compatibility
	replaces="lua-$pkgname"  # for backward compatibility

	mkdir -p "$subpkgdir"/usr/lib/graphviz \
		"$subpkgdir"/usr/lib/lua
	mv "$pkgdir"/usr/lib/graphviz/lua \
		"$subpkgdir"/usr/lib/graphviz/
	mv "$pkgdir"/usr/lib/lua "$subpkgdir"/usr/lib/lua/$_luaver
}

gtk() {
	pkgdesc="Gtk extension for graphviz"

	mkdir -p "$subpkgdir"/usr/lib/graphviz
	mv "$pkgdir"/usr/lib/graphviz/libgvplugin_g?k* \
		"$pkgdir"/usr/lib/graphviz/libgvplugin_rsvg* \
		"$subpkgdir"/usr/lib/graphviz
}

graphs() {
	pkgdesc="Demo graphs for graphviz"

	mkdir -p "$subpkgdir"/usr/share/graphviz
	mv "$pkgdir"/usr/share/graphviz/graphs \
		"$subpkgdir"/usr/share/graphviz/
}

sha512sums="4e819b3906f3b8e31245a021acd6fae4a1bc55df0a4df6b57a3578a62017e9db0b474a38f3f54682b9e9136d332f2374feee308af489e2848f8bc303ffab58ac  graphviz-2.40.1.tar.bz2
50947e6a11929f724759266f7716d52d10923eba6d59704ab39e4bdf18f8471d548c2b11ab051dd4b67cb82742aaf54d6358890d049d5b5982f3383b65f7ae8c  graphviz.trigger
aa4cbc341906a949a6bf78cadd96c437d6bcc90369941fe03519aa4447731ecbf6063a0dd0366d3e7aaadf22b69e4bcab3f8632a7da7a01f8e08a3be05c2bc5d  0001-clone-nameclash.patch
fef7cd142c7a50b91d57b717142d3c0655450a68e00f4932fca944c684007b2e34f1ce4ddc454559cbbdba7415321b37ff4eeab8dc3c9923f469b0e7bfa3b120  ungit-autogen.patch"
