Skip to content

Commit

Permalink
Revert "media-gfx/graphviz: Remove old", see bug 609772
Browse files Browse the repository at this point in the history
This reverts commit 80232c7.
  • Loading branch information
akhuettel committed Mar 17, 2017
1 parent d477b1a commit c6e75d6
Show file tree
Hide file tree
Showing 5 changed files with 338 additions and 0 deletions.
1 change: 1 addition & 0 deletions media-gfx/graphviz/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
DIST graphviz-2.26.3.tar.gz 17092429 SHA256 f410996e69b1095237c2128deae5fc7b6ce99055b095271abb14447bc2f37fa1 SHA512 6225141752318af0b50714d70d31dd1ef1bc414d134d22f066f159843991194215bb9bc4e8df38a194e1de67ebbf137d371e875948fa6a6eebfca9df1a414a6d WHIRLPOOL ca35d0ed9cb3751ae968e1c6d425efe42e8b681685eb66f975c0ff1b73e245fc3db6418ec69300331c94275fe3bfcdcd168b931b880c280f3dd63f1f03c4d4db
DIST graphviz-2.38.0.tar.gz 25848858 SHA256 81aa238d9d4a010afa73a9d2a704fc3221c731e1e06577c2ab3496bdef67859e SHA512 0e51a97dae595f4e80bc9e4a12ba3c48485fab19941a28d522f5a0624b6a767e0ba720e9e55bff8efe8308dd1cd3793e2c99cb5fdfceb2d5cafb0cbee907e531 WHIRLPOOL b59bb517c4aa690ffd23e1b4d448d5dbaae5594eb1059d574e0cb3bf2091beb9ed867bd4fa7e8ca0259863f24849c96d4d1da056091922bf33ace7da43c8b5d4
35 changes: 35 additions & 0 deletions media-gfx/graphviz/files/graphviz-2.26.3-automake-1.11.2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
Install dir ( buiding with media-libs/ming ):
/usr/$(get_libdir)/graphviz/Bitstream_Vera_Serif.fdb
/usr/$(get_libdir)/graphviz/Bitstream_Vera_Sans.fdb
/usr/include/graphviz/gv.cpp
/usr/include/graphviz/gv.i

Due to the following change, {pkglib,pkginclude}_DATA is invalid:
http://git.savannah.gnu.org/cgit/automake.git/commit/?id=9ca632642b006ac6b0fc4ce0ae5b34023faa8cbf

---
diff --git a/plugin/ming/Makefile.am b/plugin/ming/Makefile.am
--- a/plugin/ming/Makefile.am
+++ b/plugin/ming/Makefile.am
@@ -17,7 +17,8 @@ lib_LTLIBRARIES = libgvplugin_ming.la
else
pkglib_LTLIBRARIES = libgvplugin_ming.la
endif
-pkglib_DATA = Bitstream_Vera_Sans.fdb Bitstream_Vera_Serif.fdb
+fdblibdir = $(libdir)/@PACKAGE@
+fdblib_DATA = Bitstream_Vera_Sans.fdb Bitstream_Vera_Serif.fdb
endif

libgvplugin_ming_C_la_SOURCES = \
diff --git a/tclpkg/gv/Makefile.am b/tclpkg/gv/Makefile.am
--- a/tclpkg/gv/Makefile.am
+++ b/tclpkg/gv/Makefile.am
@@ -258,7 +258,7 @@ libgv_tcl_la_CPPFLAGS = $(BASECPPFLAGS)
gv_tcl.cpp: gv.i
$(SWIG) -c++ -tcl -namespace -o gv_tcl.cpp $(srcdir)/gv.i

-pkginclude_DATA = gv.i gv.cpp
+pkginclude_HEADERS = gv.i gv.cpp
pkglib_LTLIBRARIES =
man_MANS =
pdf_DATA =
52 changes: 52 additions & 0 deletions media-gfx/graphviz/files/graphviz-2.26.3-libtool-configure.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
backport newer libtool logic

https://bugs.gentoo.org/539032

--- a/configure.ac
+++ b/configure.ac
@@ -464,28 +464,15 @@
dnl -----------------------------------
dnl libtool ltdl on-demand plugin loading

-m4_ifdef([LT_INIT],
- [ #code that is for Libtool 2.x
-AM_PROG_LIBTOOL
- ],
- [ #code that is for 1.5.x
- ])
+LT_INIT([dlopen])
+LT_CONFIG_LTDL_DIR([libltdl])
+LTDL_INIT
+
AC_ARG_ENABLE(ltdl,
[AS_HELP_STRING([--enable-ltdl],[support on-demand plugin loading])])
if test "x$enable_ltdl" != "xno"; then
AC_DEFINE(ENABLE_LTDL,1,[Define if you want on-demand plugin loading])
- AC_LIBTOOL_DLOPEN
-m4_ifdef([LT_INIT],
- [ #code that is for Libtool 2.x
- LT_CONFIG_LTDL_DIR([libltdl])
- LTDL_INIT
- ],
- [ #code that is for 1.5.x
- AC_CONFIG_SUBDIRS([libltdl])
- ])
use_ltdl="Yes"
-
- AC_LIBLTDL_CONVENIENCE
if test "x$DARWIN9" = "xyes"; then
LIBLTDL_LDFLAGS="-Wl,-unexported_symbol,_lt_*"
fi
@@ -494,12 +483,6 @@
AC_SUBST(INCLTDL)
AC_SUBST(LIBLTDL)
AC_SUBST(LIBLTDL_LDFLAGS)
-m4_ifdef([LT_INIT],
- [ #code that is for Libtool 2.x
- ],
- [ #code that is for 1.5.x
-AM_PROG_LIBTOOL
- ])

# Checks for libraries.
#AC_CHECK_LIB([ICE], [main])
27 changes: 27 additions & 0 deletions media-gfx/graphviz/files/graphviz-2.26.3-libtool.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
http://bugs.gentoo.org/339298

--- lib/gvc/gvcext.h
+++ lib/gvc/gvcext.h
@@ -80,9 +80,11 @@
#if defined(GVDLL)
__declspec(dllexport) lt_symlist_t lt_preloaded_symbols[];
#else
+#if !defined(LTDL_H)
extern lt_symlist_t lt_preloaded_symbols[];
#endif
#endif
+#endif


#ifdef __cplusplus
--- lib/gvc/Makefile.am
+++ lib/gvc/Makefile.am
@@ -18,7 +18,7 @@
-I$(top_srcdir)/lib/pathplan \
-I$(top_srcdir)/lib/$(GRAPH) \
-I$(top_srcdir)/lib/cdt \
- $(INCLTDL) -I$(top_srcdir)/libltdl \
+ $(INCLTDL) \
-DGVLIBDIR=\"$(pkglibdir)\"

if WITH_WIN32
223 changes: 223 additions & 0 deletions media-gfx/graphviz/graphviz-2.26.3-r4.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=3
PYTHON_DEPEND="python? 2"

inherit eutils autotools multilib python flag-o-matic

DESCRIPTION="Open Source Graph Visualization Software"
HOMEPAGE="http://www.graphviz.org/"
SRC_URI="http://www.graphviz.org/pub/graphviz/ARCHIVE/${P}.tar.gz"

LICENSE="CPL-1.0"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
IUSE="cairo doc examples gtk java lasi nls perl python ruby static-libs tcl elibc_FreeBSD"

# Requires ksh
RESTRICT="test"

RDEPEND="
>=dev-libs/expat-2.0.0
>=dev-libs/glib-2.11.1
>=media-libs/fontconfig-2.3.95
>=media-libs/freetype-2.1.10
>=media-libs/gd-2.0.28[fontconfig,jpeg,png,truetype,zlib]
>=media-libs/libpng-1.4
virtual/jpeg:0
virtual/libiconv
cairo? (
x11-libs/libXaw
>=x11-libs/pango-1.12
>=x11-libs/cairo-1.1.10[svg]
)
gtk? (
x11-libs/gtk+:2
x11-libs/libXaw
>=x11-libs/pango-1.12
>=x11-libs/cairo-1.1.10
)
lasi? ( media-libs/lasi )
perl? ( dev-lang/perl )
ruby? ( dev-lang/ruby )
tcl? ( >=dev-lang/tcl-8.3:0 )"
DEPEND="${RDEPEND}
virtual/pkgconfig
sys-devel/flex
java? ( dev-lang/swig )
nls? ( >=sys-devel/gettext-0.14.5 )
perl? ( dev-lang/swig )
python? ( dev-lang/swig )
ruby? ( dev-lang/swig )
tcl? ( dev-lang/swig )"

# Dependency description / Maintainer-Info:

# Rendering is done via the following plugins (/plugins):
# - core, dot_layout, neato_layout, gd , dot
# the ones which are always compiled in, depend on zlib, gd
# - gtk
# Directly depends on gtk-2.
# gtk-2 depends on pango, cairo and libX11 directly.
# - gdk-pixbuf
# Disabled, GTK-1 junk.
# - ming
# flash plugin via -Tswf requires media-libs/ming-0.4. Disabled as it's
# incomplete.
# - cairo:
# Needs pango for text layout, uses cairo methods to draw stuff
# - xlib :
# needs cairo+pango,
# can make use of gnomeui and inotify support,
# needs libXaw for UI

# There can be swig-generated bindings for the following languages (/tclpkg/gv):
# - c-sharp (disabled)
# - scheme (enabled via guile) ... broken on ~x86
# - io (disabled)
# - java (enabled via java) *2
# - lua (enabled via lua)
# - ocaml (enabled via ocaml)
# - perl (enabled via perl) *1
# - php (enabled via php) *2
# - python (enabled via python) *1
# - ruby (enabled via ruby) *1
# - tcl (enabled via tcl)
# *1 = The ${P}-bindings.patch takes care that those bindings are installed to the right location
# *2 = Those bindings don't build because the paths for the headers/libs aren't
# detected correctly and/or the options passed to swig are wrong (-php instead of -php4/5)

# There are several other tools in /tclpkg:
# gdtclft, tcldot, tclhandle, tclpathplan, tclstubs ; enabled with: --with-tcl
# tkspline, tkstubs ; enabled with: --with-tk

# And the commands (/cmd):
# - dot, dotty, gvpr, lefty, lneato, tools/* :)
# Lefty needs Xaw and X to build

pkg_setup() {
if use python; then
python_set_active_version 2
python_pkg_setup
fi
}

src_prepare() {
epatch \
"${FILESDIR}"/${P}-libtool.patch \
"${FILESDIR}"/${P}-libtool-configure.patch \
"${FILESDIR}"/${P}-automake-1.11.2.patch

# ToDo: Do the same thing for examples and/or
# write a patch for a configuration-option
# and send it to upstream
if ! use doc ; then
find . -iname Makefile.am \
| xargs sed -i -e '/html_DATA/d' -e '/pdf_DATA/d' || die
fi

# This is an old version of libtool
# use the ./configure option to exclude its use, and
# delete the dir since we don't need to eautoreconf it
rm -rf libltdl

# no nls, no gettext, no iconv macro, so disable it
use nls || { sed -i -e '/^AM_ICONV/d' configure.ac || die; }

# Nuke the dead symlinks for the bindings
sed -i -e '/$(pkgluadir)/d' tclpkg/gv/Makefile.am || die

# replace the whitespace with tabs
sed -i -e 's: :\t:g' doc/info/Makefile.am || die

# workaround for http://www.graphviz.org/mantisbt/view.php?id=1895
use elibc_FreeBSD && append-flags $(test-flags -fno-builtin-sincos)

eautoreconf
}

src_configure() {
# libtool file collision, bug 276609
local myconf="--without-included-ltdl --disable-ltdl-install"

# Core functionality:
# All of X, cairo-output, gtk need the pango+cairo functionality
if use gtk || use cairo; then
myconf="${myconf} --with-x"
else
myconf="${myconf} --without-x"
fi
myconf="${myconf}
$(use_with cairo pangocairo)
$(use_with gtk)
$(use_with lasi)
--with-digcola
--with-fontconfig
--with-freetype2
--with-ipsepcola
--with-libgd
--with-sfdp
--without-gdk-pixbuf
--without-ming"

# new/experimental features, to be tested, disable for now
myconf="${myconf}
--without-cgraph
--without-devil
--without-digcola
--without-ipsepcola
--without-rsvg
--without-smyrna"

# Bindings:
myconf="${myconf}
--disable-guile
--disable-io
$(use_enable java)
--disable-lua
--disable-ocaml
$(use_enable perl)
--disable-php
$(use_enable python)
--disable-r
$(use_enable ruby)
--disable-sharp
$(use_enable tcl)"

econf \
--enable-ltdl \
$(use_enable static-libs static) \
${myconf}
}

src_install() {
sed -i -e "s:htmldir:htmlinfodir:g" doc/info/Makefile || die

emake DESTDIR="${D}" \
txtdir="${EPREFIX}"/usr/share/doc/${PF} \
htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
htmlinfodir="${EPREFIX}"/usr/share/doc/${PF}/html/info \
pdfdir="${EPREFIX}"/usr/share/doc/${PF}/pdf \
pkgconfigdir="${EPREFIX}"/usr/$(get_libdir)/pkgconfig \
install || die "emake install failed"

use examples || rm -rf "${D}/usr/share/graphviz/demo"

if ! use static-libs; then
find "${ED}"/usr/$(get_libdir)/ -name '*.la' -delete || die
fi

dodoc AUTHORS ChangeLog NEWS README
}

pkg_postinst() {
# This actually works if --enable-ltdl is passed
# to configure
dot -c
use python && python_mod_optimize gv.py
}

pkg_postrm() {
use python && python_mod_cleanup gv.py
}

0 comments on commit c6e75d6

Please sign in to comment.