diff options
author | Patrick McLean <chutzpah@gentoo.org> | 2016-06-29 13:28:47 -0700 |
---|---|---|
committer | Patrick McLean <chutzpah@gentoo.org> | 2016-06-29 13:29:18 -0700 |
commit | 533bd6dac8e8c9fcec94bfad564ea6fb893b7db8 (patch) | |
tree | 4e8ce113d189e5cc9f2e196e115d5b01f206ecf3 /media-gfx/inkscape | |
parent | www-client/chromium: require USE=gnome for GN build; for bug #587366 by floppym (diff) | |
download | gentoo-533bd6dac8e8c9fcec94bfad564ea6fb893b7db8.tar.gz gentoo-533bd6dac8e8c9fcec94bfad564ea6fb893b7db8.tar.bz2 gentoo-533bd6dac8e8c9fcec94bfad564ea6fb893b7db8.zip |
media-gfx/inkscape: Revision bump, port to EAPI=6, add patch to fix compilation with glibmm-2.48 (bug #587098)
Package-Manager: portage-2.3.0
Diffstat (limited to 'media-gfx/inkscape')
-rw-r--r-- | media-gfx/inkscape/files/inkscape-0.91-fix-gtkmm-2.48.patch | 63 | ||||
-rw-r--r-- | media-gfx/inkscape/inkscape-0.91-r3.ebuild | 177 |
2 files changed, 240 insertions, 0 deletions
diff --git a/media-gfx/inkscape/files/inkscape-0.91-fix-gtkmm-2.48.patch b/media-gfx/inkscape/files/inkscape-0.91-fix-gtkmm-2.48.patch new file mode 100644 index 000000000000..f9c06601e837 --- /dev/null +++ b/media-gfx/inkscape/files/inkscape-0.91-fix-gtkmm-2.48.patch @@ -0,0 +1,63 @@ +--- a/src/ui/clipboard.cpp 2016-04-02 15:15:43 +0000 ++++ b/src/ui/clipboard.cpp 2016-04-07 16:30:32 +0000 +@@ -146,8 +146,6 @@ + void _setClipboardColor(guint32); + void _userWarn(SPDesktop *, char const *); + +- void _inkscape_wait_for_targets(std::list<Glib::ustring> &); +- + // private properites + SPDocument *_clipboardSPDoc; ///< Document that stores the clipboard until someone requests it + Inkscape::XML::Node *_defs; ///< Reference to the clipboard document's defs node +@@ -1302,9 +1300,7 @@ + */ + Glib::ustring ClipboardManagerImpl::_getBestTarget() + { +- // GTKmm's wait_for_targets() is broken, see the comment in _inkscape_wait_for_targets() +- std::list<Glib::ustring> targets; // = _clipboard->wait_for_targets(); +- _inkscape_wait_for_targets(targets); ++ std::list<Glib::ustring> targets = _clipboard->wait_for_targets(); + + // clipboard target debugging snippet + /* +@@ -1456,39 +1452,6 @@ + desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, msg); + } + +- +-// GTKMM's clipboard::wait_for_targets is buggy and might return bogus, see +-// +-// https://bugs.launchpad.net/inkscape/+bug/296778 +-// http://mail.gnome.org/archives/gtk-devel-list/2009-June/msg00062.html +-// +-// for details. Until this has been fixed upstream we will use our own implementation +-// of this method, as copied from /gtkmm-2.16.0/gtk/gtkmm/clipboard.cc. +-void ClipboardManagerImpl::_inkscape_wait_for_targets(std::list<Glib::ustring> &listTargets) +-{ +- //Get a newly-allocated array of atoms: +- GdkAtom* targets = NULL; +- gint n_targets = 0; +- gboolean test = gtk_clipboard_wait_for_targets( gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), &targets, &n_targets ); +- if (!test || (targets == NULL)) { +- return; +- } +- +- //Add the targets to the C++ container: +- for (int i = 0; i < n_targets; i++) +- { +- //Convert the atom to a string: +- gchar* const atom_name = gdk_atom_name(targets[i]); +- +- Glib::ustring target; +- if (atom_name) { +- target = Glib::ScopedPtr<char>(atom_name).get(); //This frees the gchar*. +- } +- +- listTargets.push_back(target); +- } +-} +- + /* ####################################### + ClipboardManager class + ####################################### */ + diff --git a/media-gfx/inkscape/inkscape-0.91-r3.ebuild b/media-gfx/inkscape/inkscape-0.91-r3.ebuild new file mode 100644 index 000000000000..e66b5ee0d9c3 --- /dev/null +++ b/media-gfx/inkscape/inkscape-0.91-r3.ebuild @@ -0,0 +1,177 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="xml" + +inherit autotools eutils flag-o-matic gnome2-utils fdo-mime toolchain-funcs python-single-r1 + +MY_P=${P/_/} + +DESCRIPTION="A SVG based generic vector-drawing program" +HOMEPAGE="http://www.inkscape.org/" +SRC_URI="https://inkscape.global.ssl.fastly.net/media/resources/file/${P}.tar.bz2" + +LICENSE="GPL-2 LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris" +IUSE="cdr dia dbus exif gnome imagemagick openmp postscript inkjar jpeg latex" +IUSE+=" lcms nls spell static-libs visio wpg" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +WPG_DEPS=" + || ( + ( app-text/libwpg:0.3 dev-libs/librevenge ) + ( app-text/libwpd:0.9 app-text/libwpg:0.2 ) + ) +" +COMMON_DEPEND=" + ${PYTHON_DEPS} + >=app-text/poppler-0.26.0:=[cairo] + >=dev-cpp/glibmm-2.48 + >=dev-cpp/gtkmm-2.18.0:2.4 + >=dev-cpp/cairomm-1.9.8 + >=dev-libs/boehm-gc-6.4 + >=dev-libs/glib-2.28 + >=dev-libs/libsigc++-2.0.12 + >=dev-libs/libxml2-2.6.20 + >=dev-libs/libxslt-1.0.15 + dev-libs/popt + dev-python/lxml[${PYTHON_USEDEP}] + media-libs/fontconfig + media-libs/freetype:2 + media-libs/libpng:0 + sci-libs/gsl:= + x11-libs/libX11 + >=x11-libs/gtk+-2.10.7:2 + >=x11-libs/pango-1.24 + cdr? ( + media-libs/libcdr + ${WPG_DEPS} + ) + dbus? ( dev-libs/dbus-glib ) + exif? ( media-libs/libexif ) + gnome? ( >=gnome-base/gnome-vfs-2.0 ) + imagemagick? ( media-gfx/imagemagick:=[cxx] ) + jpeg? ( virtual/jpeg:0 ) + lcms? ( media-libs/lcms:2 ) + spell? ( + app-text/aspell + app-text/gtkspell:2 + ) + visio? ( + media-libs/libvisio + ${WPG_DEPS} + ) + wpg? ( ${WPG_DEPS} ) +" + +# These only use executables provided by these packages +# See share/extensions for more details. inkscape can tell you to +# install these so we could of course just not depend on those and rely +# on that. +RDEPEND="${COMMON_DEPEND} + dev-python/numpy[${PYTHON_USEDEP}] + media-gfx/uniconvertor + dia? ( app-office/dia ) + latex? ( + media-gfx/pstoedit[plotutils] + app-text/dvipsk + app-text/texlive + ) + postscript? ( app-text/ghostscript-gpl ) +" + +DEPEND="${COMMON_DEPEND} + >=dev-libs/boost-1.36 + >=dev-util/intltool-0.40 + >=sys-devel/gettext-0.17 + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/${PN}-0.91_pre3-automagic.patch" + "${FILESDIR}/${PN}-0.91_pre3-cppflags.patch" + "${FILESDIR}/${PN}-0.91_pre3-desktop.patch" + "${FILESDIR}/${PN}-0.91_pre3-exif.patch" + "${FILESDIR}/${PN}-0.91_pre3-sk-man.patch" + "${FILESDIR}/${PN}-0.48.4-epython.patch" + "${FILESDIR}/${PN}-0.91-fix-gtkmm-2.48.patch" +) + +S=${WORKDIR}/${MY_P} + +RESTRICT="test" + +pkg_pretend() { + if use openmp; then + tc-has-openmp || die "Please switch to an openmp compatible compiler" + fi +} + +src_prepare() { + default + + sed -i "s#@EPYTHON@#${EPYTHON}#" \ + src/extension/implementation/script.cpp || die + + eautoreconf + + # bug 421111 + python_fix_shebang share/extensions +} + +src_configure() { + # aliasing unsafe wrt #310393 + append-flags -fno-strict-aliasing + # enable c++11 as needed for sigc++-2.6, #566318 + # remove it when upstream solves the issue + # https://bugs.launchpad.net/inkscape/+bug/1488079 + append-cxxflags -std=c++11 + + econf \ + $(use_enable static-libs static) \ + $(use_enable nls) \ + $(use_enable openmp) \ + $(use_enable exif) \ + $(use_enable jpeg) \ + $(use_enable lcms) \ + --enable-poppler-cairo \ + $(use_enable wpg) \ + $(use_enable visio) \ + $(use_enable cdr) \ + $(use_enable dbus dbusapi) \ + $(use_enable imagemagick magick) \ + $(use_with gnome gnome-vfs) \ + $(use_with inkjar) \ + $(use_with spell gtkspell) \ + $(use_with spell aspell) +} + +src_compile() { + emake AR="$(tc-getAR)" +} + +src_install() { + default + + prune_libtool_files + python_optimize "${ED}"/usr/share/${PN}/extensions +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + gnome2_icon_cache_update + fdo-mime_desktop_database_update +} + +pkg_postrm() { + gnome2_icon_cache_update + fdo-mime_desktop_database_update +} |