public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2016-06-29 20:29 Patrick McLean
  0 siblings, 0 replies; 25+ messages in thread
From: Patrick McLean @ 2016-06-29 20:29 UTC (permalink / raw
  To: gentoo-commits

commit:     533bd6dac8e8c9fcec94bfad564ea6fb893b7db8
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 29 20:28:47 2016 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Jun 29 20:29:18 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=533bd6da

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

 .../files/inkscape-0.91-fix-gtkmm-2.48.patch       |  63 ++++++++
 media-gfx/inkscape/inkscape-0.91-r3.ebuild         | 177 +++++++++++++++++++++
 2 files changed, 240 insertions(+)

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 0000000..f9c0660
--- /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 0000000..e66b5ee
--- /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
+}


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2017-05-12 19:41 Andreas Hüttel
  0 siblings, 0 replies; 25+ messages in thread
From: Andreas Hüttel @ 2017-05-12 19:41 UTC (permalink / raw
  To: gentoo-commits

commit:     3096fcc8a7341c99991fcf99366aa0bf2db1bf4a
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Fri May 12 19:40:46 2017 +0000
Commit:     Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Fri May 12 19:40:46 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3096fcc8

media-gfx/inkscape: Version bump

Package-Manager: Portage-2.3.5, Repoman-2.3.2

 media-gfx/inkscape/Manifest                        |   1 +
 .../inkscape/files/inkscape-0.92.1-automagic.patch | 154 +++++++++++++++++++
 .../inkscape/files/inkscape-0.92.1-desktop.patch   |  12 ++
 media-gfx/inkscape/inkscape-0.92.1.ebuild          | 171 +++++++++++++++++++++
 4 files changed, 338 insertions(+)

diff --git a/media-gfx/inkscape/Manifest b/media-gfx/inkscape/Manifest
index a2881475517..48745de6172 100644
--- a/media-gfx/inkscape/Manifest
+++ b/media-gfx/inkscape/Manifest
@@ -1 +1,2 @@
 DIST inkscape-0.91.tar.bz2 25858909 SHA256 4d901f8a9e1924404e797ad23b8b0c495a9d155448816d95a55974314e1f141b SHA512 3778ef7d4a1c759a7afc093e55eefb69a78dcb60332655cc8ab8c481f54a3e6550df6070178390eb08588245531906b8bef33301f0765a4d28d6c7506fcf3bc7 WHIRLPOOL ff538bd47dbea3bc461f24b09f2d26e3b6141053e8289bac1ac973b65b6957257c5aede30e782201c2813919643bf23989c7ce6a8492fa259b3d506e427e4126
+DIST inkscape-0.92.1.tar.bz2 31222684 SHA256 257405bf802de125f17d123638093a37db02ebe334d243cf9b0d8903f7c89005 SHA512 f8f3bfb812a214216c3ffac7064a4619f847cf9810417c782481dba12e6c6a44123c8b8a9289fbf5287f2e6b6df39a641d94a000d842faee5ff808eec86187a0 WHIRLPOOL f8134aed9ddb174fda88e13c201cf9099604e9591228ec306feeabaeee859f657961370ba4d1420f51e5e520f3543d7d129577144d9221e52f638a9f0bf81493

diff --git a/media-gfx/inkscape/files/inkscape-0.92.1-automagic.patch b/media-gfx/inkscape/files/inkscape-0.92.1-automagic.patch
new file mode 100644
index 00000000000..141878b2bcd
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-0.92.1-automagic.patch
@@ -0,0 +1,154 @@
+diff -ruN inkscape-0.92.1.orig/configure.ac inkscape-0.92.1/configure.ac
+--- inkscape-0.92.1.orig/configure.ac	2017-02-14 00:46:57.000000000 +0100
++++ inkscape-0.92.1/configure.ac	2017-05-12 21:20:45.880842301 +0200
+@@ -201,11 +201,14 @@
+ dnl Check for OpenMP 
+ dnl ******************************
+ AC_OPENMP
+-if test "x$ac_cv_prog_cxx_openmp" != "xunsupported"; then
+-	openmp_ok=yes
+-	dnl We have it, now set up the flags
+-	CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
+-	AC_DEFINE(HAVE_OPENMP, 1, [Use OpenMP])
++openmp_ok="no"
++if test "x$enable_openmp" = "xyes"; then
++	if test "x$ac_cv_prog_cxx_openmp" != "xunsupported"; then
++		openmp_ok=yes
++		dnl We have it, now set up the flags
++		CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
++		AC_DEFINE(HAVE_OPENMP, 1, [Use OpenMP])
++	fi
+ fi
+ 
+ dnl ********************
+@@ -222,9 +225,15 @@
+ dnl ******************************
+ dnl Check for libexif
+ dnl ******************************
+-PKG_CHECK_MODULES(EXIF, libexif, exif_ok=yes, exif_ok=no)
+-if test "x$exif_ok" = "xyes"; then
+-   AC_DEFINE(HAVE_EXIF, 1, [Use libexif])
++AC_ARG_ENABLE(exif,
++	AS_HELP_STRING([--enable-exif], [compile with EXIF support]),
++	enable_exif=$enableval,enable_exif=no)
++
++if test "x$enable_exif" = "xyes"; then
++	PKG_CHECK_MODULES(EXIF, libexif, exif_ok=yes, exif_ok=no)
++	if test "x$exif_ok" = "xyes"; then
++		AC_DEFINE(HAVE_EXIF, 1, [Use libexif])
++	fi
+ fi
+ AC_SUBST(EXIF_LIBS)
+ AC_SUBST(EXIF_CFLAGS)
+@@ -232,10 +241,16 @@
+ dnl ******************************
+ dnl Check for libjpeg
+ dnl ******************************
+-AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [AC_CHECK_HEADER(jpeglib.h, jpeg_ok=yes, jpeg_ok=no)], jpeg_ok=no)
+-if test "x$jpeg_ok" = "xyes"; then
+-   LIBS="-ljpeg $LIBS"
+-   AC_DEFINE(HAVE_JPEG, 1, [Use libjpeg])
++AC_ARG_ENABLE(jpeg,
++	AS_HELP_STRING([--enable-jpeg], [compile with JPEG support]),
++	enable_jpeg=$enableval,enable_jpeg=no)
++
++if test "x$enable_jpeg" = "xyes"; then
++	AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [AC_CHECK_HEADER(jpeglib.h, jpeg_ok=yes, jpeg_ok=no)], jpeg_ok=no)
++	if test "x$jpeg_ok" = "xyes"; then
++		LIBS="-ljpeg $LIBS"
++		AC_DEFINE(HAVE_JPEG, 1, [Use libjpeg])
++	fi
+ fi
+ 
+ dnl This check is to get a FIONREAD definition on Solaris 8
+@@ -614,9 +629,16 @@
+ dnl Check for ImageMagick Magick++ 
+ dnl ******************************
+ 
+-PKG_CHECK_MODULES(IMAGEMAGICK, ImageMagick++, magick_ok=yes, magick_ok=no)
+-if test "x$magick_ok" = "xyes"; then
+-      AC_DEFINE(WITH_IMAGE_MAGICK,1,[Image Magick++ support for bitmap effects])
++AC_ARG_ENABLE(magick,
++       AS_HELP_STRING([--enable-magick], [compile with Image Magick++ support for bitmap effects]),
++       enable_magick=$enableval,enable_magick=no)
++
++magick_ok="no"
++if test "x$enable_magick" = "xyes"; then
++	PKG_CHECK_MODULES(IMAGEMAGICK, ImageMagick++, magick_ok=yes, magick_ok=no)
++	if test "x$magick_ok" = "xyes"; then
++		AC_DEFINE(WITH_IMAGE_MAGICK,1,[Image Magick++ support for bitmap effects])
++	fi
+ fi
+ AM_CONDITIONAL(USE_IMAGE_MAGICK, test "x$magick_ok" = "xyes")
+ 
+@@ -712,6 +734,10 @@
+ 
+ AC_CHECK_HEADER([boost/unordered_set.hpp], [AC_DEFINE(HAVE_BOOST_UNORDERED_SET, 1, [Boost unordered_set (Boost >= 1.36)])], [])
+ 
++
++AC_ARG_WITH([gtkspell],
++	AS_HELP_STRING([--without-gtkspell], [disable gtk spelling widget]),[with_gtkspell=$withval], [with_gtkspell=yes])
++
+ dnl *********************************
+ dnl   Allow experimental GTK+3 build
+ dnl *********************************
+@@ -723,11 +749,13 @@
+ if test "x$enable_gtk3" = "xyes"; then
+ 
+ 	ink_spell_pkg=
+-	if pkg-config --exists gtkspell-3.0; then
+-		ink_spell_pkg=gtkspell-3.0
+-		AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget])
++	if test "x$with_gtkspell" = "xyes"; then
++		if pkg-config --exists gtkspell-3.0; then
++			ink_spell_pkg=gtkspell-3.0
++			AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget])
++		fi
+ 	fi
+-
++	
+ 	PKG_CHECK_MODULES(GTK,
+ 			  gtk+-3.0  >= 3.8
+ 			  gdk-3.0   >= 3.8
+@@ -804,11 +832,13 @@
+ else
+ 
+ 	ink_spell_pkg=
+-	if pkg-config --exists gtkspell-2.0; then
+-		ink_spell_pkg=gtkspell-2.0
+-		AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget])
++	if test "x$with_gtkspell" = "xyes"; then
++		if pkg-config --exists gtkspell-2.0; then
++			ink_spell_pkg=gtkspell-2.0
++			AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget])
++		fi
+ 	fi
+-
++	
+ 	PKG_CHECK_MODULES(GTK,
+ 			  gtk+-2.0  >= 2.24
+ 			  $ink_spell_pkg)
+@@ -931,12 +961,17 @@
+ dnl **************************
+ dnl Check for aspell 
+ dnl ******************************
+-AC_CHECK_LIB(aspell, new_aspell_config, [AC_CHECK_HEADER(aspell.h, aspell_ok=yes, aspell_ok=no)], aspell_ok=no, -lz -lm)
+-if test "x$aspell_ok" = "xyes"; then
+-	AC_DEFINE(HAVE_ASPELL, 1, [Use aspell for built-in spellchecker])
+-  INKSCAPE_LIBS="$INKSCAPE_LIBS -laspell"
+-else
+-	AC_MSG_CHECKING([Aspell not found, spell checker will be disabled])
++AC_ARG_WITH([aspell],
++	AS_HELP_STRING([--without-aspell], [disable aspell spell checker]),[with_aspell=$withval], [with_aspell=yes])
++
++if test "x$with_aspell" = "xyes"; then
++	AC_CHECK_LIB(aspell, new_aspell_config, [AC_CHECK_HEADER(aspell.h, aspell_ok=yes, aspell_ok=no)], aspell_ok=no, -lz -lm)
++	if test "x$aspell_ok" = "xyes"; then
++		AC_DEFINE(HAVE_ASPELL, 1, [Use aspell for built-in spellchecker])
++		INKSCAPE_LIBS="$INKSCAPE_LIBS -laspell"
++	else
++		AC_MSG_CHECKING([Aspell not found, spell checker will be disabled])
++	fi
+ fi
+ 
+ dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.

diff --git a/media-gfx/inkscape/files/inkscape-0.92.1-desktop.patch b/media-gfx/inkscape/files/inkscape-0.92.1-desktop.patch
new file mode 100644
index 00000000000..be49ea505d3
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-0.92.1-desktop.patch
@@ -0,0 +1,12 @@
+diff -ruN inkscape-0.92.1.orig/inkscape.desktop.in inkscape-0.92.1/inkscape.desktop.in
+--- inkscape-0.92.1.orig/inkscape.desktop.in	2017-02-14 00:46:57.000000000 +0100
++++ inkscape-0.92.1/inkscape.desktop.in	2017-05-12 21:25:01.628853033 +0200
+@@ -6,7 +6,7 @@
+ _Comment=Create and edit Scalable Vector Graphics images
+ _Keywords=image;editor;vector;drawing;
+ Type=Application
+-Categories=Graphics;VectorGraphics;GTK;
++Categories=Graphics;2DGraphics;VectorGraphics;GTK;
+ MimeType=image/svg+xml;image/svg+xml-compressed;application/vnd.corel-draw;application/pdf;application/postscript;image/x-eps;application/illustrator;image/cgm;image/x-wmf;application/x-xccx;application/x-xcgm;application/x-xcdt;application/x-xsk1;application/x-xcmx;image/x-xcdr;application/visio;application/x-visio;application/vnd.visio;application/visio.drawing;application/vsd;application/x-vsd;image/x-vsd;
+ Exec=inkscape %F
+ TryExec=inkscape

diff --git a/media-gfx/inkscape/inkscape-0.92.1.ebuild b/media-gfx/inkscape/inkscape-0.92.1.ebuild
new file mode 100644
index 00000000000..059f979c9c8
--- /dev/null
+++ b/media-gfx/inkscape/inkscape-0.92.1.ebuild
@@ -0,0 +1,171 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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 ~arm ~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.92.1-automagic.patch"
+	"${FILESDIR}/${PN}-0.91_pre3-cppflags.patch"
+	"${FILESDIR}/${PN}-0.92.1-desktop.patch"
+	"${FILESDIR}/${PN}-0.91_pre3-exif.patch"
+	"${FILESDIR}/${PN}-0.91_pre3-sk-man.patch"
+	"${FILESDIR}/${PN}-0.48.4-epython.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
+
+	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
+}


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2018-05-07 12:59 Lars Wendler
  0 siblings, 0 replies; 25+ messages in thread
From: Lars Wendler @ 2018-05-07 12:59 UTC (permalink / raw
  To: gentoo-commits

commit:     e4a3c2ef0e7dad033886a82881e495c4ef67453a
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Mon May  7 12:58:23 2018 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Mon May  7 12:59:02 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e4a3c2ef

media-gfx/inkscape: Use pkg-config to find freetype

Bug: https://bugs.gentoo.org/655130
Package-Manager: Portage-2.3.36, Repoman-2.3.9

 .../files/inkscape-0.92.3-freetype_pkgconfig.patch | 18 +++++++++
 media-gfx/inkscape/inkscape-0.92.3.ebuild          | 43 ++++++++++++----------
 2 files changed, 41 insertions(+), 20 deletions(-)

diff --git a/media-gfx/inkscape/files/inkscape-0.92.3-freetype_pkgconfig.patch b/media-gfx/inkscape/files/inkscape-0.92.3-freetype_pkgconfig.patch
new file mode 100644
index 00000000000..0f577bd0e9a
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-0.92.3-freetype_pkgconfig.patch
@@ -0,0 +1,18 @@
+--- inkscape-0.92.3/configure.ac
++++ inkscape-0.92.3/configure.ac
+@@ -252,12 +252,9 @@
+ 			 [#include <malloc.h>])
+ ])
+ 
+-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
+-if test "x$FREETYPE_CONFIG" = "xno"; then
+-	AC_MSG_ERROR([Cannot find freetype-config])
+-fi
+-FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
+-FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
++PKG_CHECK_MODULES(FREETYPE, freetype2,,
++	AC_MSG_ERROR([Cannot find freetype])
++)
+ AC_SUBST(FREETYPE_CFLAGS)
+ AC_SUBST(FREETYPE_LIBS)
+ 

diff --git a/media-gfx/inkscape/inkscape-0.92.3.ebuild b/media-gfx/inkscape/inkscape-0.92.3.ebuild
index 69b0c27405f..cc1ee8f61d9 100644
--- a/media-gfx/inkscape/inkscape-0.92.3.ebuild
+++ b/media-gfx/inkscape/inkscape-0.92.3.ebuild
@@ -7,7 +7,7 @@ PYTHON_REQ_USE="xml"
 
 inherit autotools flag-o-matic gnome2-utils xdg toolchain-funcs python-single-r1
 
-MY_P=${P/_/}
+MY_P="${P/_/}"
 
 DESCRIPTION="A SVG based generic vector-drawing program"
 HOMEPAGE="https://inkscape.org/"
@@ -100,9 +100,10 @@ PATCHES=(
 	"${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.92.3-freetype_pkgconfig.patch"
 )
 
-S=${WORKDIR}/${MY_P}
+S="${WORKDIR}/${MY_P}"
 
 RESTRICT="test"
 
@@ -128,23 +129,25 @@ src_configure() {
 	# aliasing unsafe wrt #310393
 	append-flags -fno-strict-aliasing
 
-	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) \
+	local myeconfargs=(
+		$(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)
+	)
+	econf "${myeconfargs[@]}"
 }
 
 src_compile() {
@@ -154,8 +157,8 @@ src_compile() {
 src_install() {
 	default
 
-	prune_libtool_files
-	python_optimize "${ED}"/usr/share/${PN}/extensions
+	find "${ED}" -name "*.la" -delete || die
+	python_optimize "${ED%/}"/usr/share/${PN}/extensions
 }
 
 pkg_preinst() {


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2018-05-18  6:31 Lars Wendler
  0 siblings, 0 replies; 25+ messages in thread
From: Lars Wendler @ 2018-05-18  6:31 UTC (permalink / raw
  To: gentoo-commits

commit:     5351c2aa12e68f39ceb76f0d062081fe1ee3556e
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Fri May 18 06:31:34 2018 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Fri May 18 06:31:51 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5351c2aa

media-gfx/inkscape: Fixed compilation against poppler-0.64.0

Closes: https://bugs.gentoo.org/653466
Package-Manager: Portage-2.3.37, Repoman-2.3.9

 .../files/inkscape-0.92.3-poppler-0.64.patch       | 121 +++++++++++++++++++++
 media-gfx/inkscape/inkscape-0.92.3.ebuild          |   4 +-
 2 files changed, 123 insertions(+), 2 deletions(-)

diff --git a/media-gfx/inkscape/files/inkscape-0.92.3-poppler-0.64.patch b/media-gfx/inkscape/files/inkscape-0.92.3-poppler-0.64.patch
new file mode 100644
index 00000000000..b31786add1b
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-0.92.3-poppler-0.64.patch
@@ -0,0 +1,121 @@
+From f0697de012598ea84edafea9a326e5e101eccd2a Mon Sep 17 00:00:00 2001
+From: Eduard Braun <eduard.braun2@gmx.de>
+Date: Tue, 24 Apr 2018 19:18:26 +0200
+Subject: [PATCH] Fix compilation with poppler 0.64
+
+(cherry picked from commit a600c6438fef2f4c06f9a4a7d933d99fb054a973)
+---
+ src/extension/internal/pdfinput/pdf-parser.cpp  | 10 +++++-----
+ src/extension/internal/pdfinput/pdf-parser.h    |  2 +-
+ src/extension/internal/pdfinput/svg-builder.cpp |  4 ++--
+ src/extension/internal/pdfinput/svg-builder.h   |  3 +--
+ 4 files changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
+index 604b7f8079..721524e10a 100644
+--- a/src/extension/internal/pdfinput/pdf-parser.cpp
++++ b/src/extension/internal/pdfinput/pdf-parser.cpp
+@@ -2582,7 +2582,7 @@ void PdfParser::opShowSpaceText(Object args[], int /*numArgs*/)
+   }
+ }
+ 
+-void PdfParser::doShowText(GooString *s) {
++void PdfParser::doShowText(const GooString *s) {
+   GfxFont *font;
+   int wMode;
+   double riseX, riseY;
+@@ -2601,7 +2601,7 @@ void PdfParser::doShowText(GooString *s) {
+   font = state->getFont();
+   wMode = font->getWMode();
+ 
+-  builder->beginString(state, s);
++  builder->beginString(state);
+ 
+   // handle a Type 3 char
+   if (font->getType() == fontType3 && 0) {//out->interpretType3Chars()) {
+@@ -2631,7 +2631,7 @@ void PdfParser::doShowText(GooString *s) {
+     double lineX = state->getLineX();
+     double lineY = state->getLineY();
+     oldParser = parser;
+-    p = s->getCString();
++    p = g_strdup(s->getCString());
+     len = s->getLength();
+     while (len > 0) {
+       n = font->getNextChar(p, len, &code,
+@@ -2686,7 +2686,7 @@ void PdfParser::doShowText(GooString *s) {
+ 
+   } else {
+     state->textTransformDelta(0, state->getRise(), &riseX, &riseY);
+-    p = s->getCString();
++    p = g_strdup(s->getCString());
+     len = s->getLength();
+     while (len > 0) {
+       n = font->getNextChar(p, len, &code,
+@@ -2732,7 +2732,7 @@ void PdfParser::opXObject(Object args[], int /*numArgs*/)
+ {
+   Object obj1, obj2, obj3, refObj;
+ 
+-  char *name = args[0].getName();
++  char *name = g_strdup(args[0].getName());
+ #if defined(POPPLER_NEW_OBJECT_API)
+   if ((obj1 = res->lookupXObject(name)).isNull()) {
+ #else
+diff --git a/src/extension/internal/pdfinput/pdf-parser.h b/src/extension/internal/pdfinput/pdf-parser.h
+index e28fecc2e1..f985b15cad 100644
+--- a/src/extension/internal/pdfinput/pdf-parser.h
++++ b/src/extension/internal/pdfinput/pdf-parser.h
+@@ -287,7 +287,7 @@ private:
+   void opMoveShowText(Object args[], int numArgs);
+   void opMoveSetShowText(Object args[], int numArgs);
+   void opShowSpaceText(Object args[], int numArgs);
+-  void doShowText(GooString *s);
++  void doShowText(const GooString *s);
+ 
+   // XObject operators
+   void opXObject(Object args[], int numArgs);
+diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp
+index a448be6397..617861928d 100644
+--- a/src/extension/internal/pdfinput/svg-builder.cpp
++++ b/src/extension/internal/pdfinput/svg-builder.cpp
+@@ -1020,7 +1020,7 @@ void SvgBuilder::updateFont(GfxState *state) {
+     GfxFont *font = state->getFont();
+     // Store original name
+     if (font->getName()) {
+-        _font_specification = font->getName()->getCString();
++        _font_specification = g_strdup(font->getName()->getCString());
+     } else {
+         _font_specification = (char*) "Arial";
+     }
+@@ -1361,7 +1361,7 @@ void SvgBuilder::_flushText() {
+     _glyphs.clear();
+ }
+ 
+-void SvgBuilder::beginString(GfxState *state, GooString * /*s*/) {
++void SvgBuilder::beginString(GfxState *state) {
+     if (_need_font_update) {
+         updateFont(state);
+     }
+diff --git a/src/extension/internal/pdfinput/svg-builder.h b/src/extension/internal/pdfinput/svg-builder.h
+index ad15c9c06f..ed2a4d48e0 100644
+--- a/src/extension/internal/pdfinput/svg-builder.h
++++ b/src/extension/internal/pdfinput/svg-builder.h
+@@ -29,7 +29,6 @@ namespace Inkscape {
+ #include <glibmm/ustring.h>
+ 
+ #include "CharTypes.h"
+-class GooString;
+ class Function;
+ class GfxState;
+ struct GfxColor;
+@@ -136,7 +135,7 @@ public:
+     void clearSoftMask(GfxState *state);
+ 
+     // Text handling
+-    void beginString(GfxState *state, GooString *s);
++    void beginString(GfxState *state);
+     void endString(GfxState *state);
+     void addChar(GfxState *state, double x, double y,
+                  double dx, double dy,
+-- 
+2.17.0
+

diff --git a/media-gfx/inkscape/inkscape-0.92.3.ebuild b/media-gfx/inkscape/inkscape-0.92.3.ebuild
index cc1ee8f61d9..97020416d36 100644
--- a/media-gfx/inkscape/inkscape-0.92.3.ebuild
+++ b/media-gfx/inkscape/inkscape-0.92.3.ebuild
@@ -11,8 +11,7 @@ MY_P="${P/_/}"
 
 DESCRIPTION="A SVG based generic vector-drawing program"
 HOMEPAGE="https://inkscape.org/"
-SRC_URI="https://inkscape.global.ssl.fastly.net/media/resources/file/${P}.tar.bz2
-https://dev.gentoo.org/~jstein/dist/inkscape-0.92.1-poppler.patch"
+SRC_URI="https://inkscape.global.ssl.fastly.net/media/resources/file/${P}.tar.bz2"
 
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0"
@@ -101,6 +100,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-0.91_pre3-sk-man.patch"
 	"${FILESDIR}/${PN}-0.48.4-epython.patch"
 	"${FILESDIR}/${PN}-0.92.3-freetype_pkgconfig.patch"
+	"${FILESDIR}/${PN}-0.92.3-poppler-0.64.patch"
 )
 
 S="${WORKDIR}/${MY_P}"


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2018-09-15 21:46 Andreas Hüttel
  0 siblings, 0 replies; 25+ messages in thread
From: Andreas Hüttel @ 2018-09-15 21:46 UTC (permalink / raw
  To: gentoo-commits

commit:     2e0a12d57f1c5d198ab89b3a7b9b0a1c1e8a784c
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 15 21:46:01 2018 +0000
Commit:     Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Sep 15 21:46:30 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2e0a12d5

media-gfx/inkscape: Fix ugly bug with PDF import and Type3 fonts

All Type 3 text got swallowed due to a faulty poppler-0.64
compatibility patch. Works better with new commit from upstream.

Package-Manager: Portage-2.3.49, Repoman-2.3.10

 .../files/inkscape-0.92.3-poppler-0.64-2.patch     | 160 ++++++++++++++++++
 media-gfx/inkscape/inkscape-0.92.3-r1.ebuild       | 180 +++++++++++++++++++++
 2 files changed, 340 insertions(+)

diff --git a/media-gfx/inkscape/files/inkscape-0.92.3-poppler-0.64-2.patch b/media-gfx/inkscape/files/inkscape-0.92.3-poppler-0.64-2.patch
new file mode 100644
index 00000000000..4608bc79ecd
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-0.92.3-poppler-0.64-2.patch
@@ -0,0 +1,160 @@
+From 66d05776ea2d403f2f48437f70d096a09724dfec Mon Sep 17 00:00:00 2001
+From: Eduard Braun <eduard.braun2@gmx.de>
+Date: Wed, 5 Sep 2018 00:31:06 +0200
+Subject: [PATCH] Modified fix for compatibility with poppler 0.64
+
+This is slightly uglier than f0697de012598ea84edafea9a326e5e101eccd2a
+but avoids duplicating strings (which is unnecessary and leaked memory).
+
+It's also closer to what upstream intended with the changes in 0.64.
+
+(cherry picked from commit 722e121361d0f784083d10e897155b7d4e44e515)
+---
+ .../internal/pdfinput/pdf-parser.cpp          | 19 ++++++++++++++++---
+ src/extension/internal/pdfinput/pdf-parser.h  |  6 ++++++
+ .../internal/pdfinput/svg-builder.cpp         |  6 +++---
+ src/extension/internal/pdfinput/svg-builder.h |  4 ++--
+ 4 files changed, 27 insertions(+), 8 deletions(-)
+
+diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
+index a3aa3213a1..ea9f902e09 100644
+--- a/src/extension/internal/pdfinput/pdf-parser.cpp
++++ b/src/extension/internal/pdfinput/pdf-parser.cpp
+@@ -36,6 +36,7 @@ extern "C" {
+ #include "pdf-parser.h"
+ #include "util/units.h"
+ 
++#include "glib/poppler-features.h"
+ #include "goo/gmem.h"
+ #include "goo/GooString.h"
+ #include "GlobalParams.h"
+@@ -2581,7 +2582,11 @@ void PdfParser::opShowSpaceText(Object args[], int /*numArgs*/)
+   }
+ }
+ 
++#if POPPLER_CHECK_VERSION(0,64,0)
+ void PdfParser::doShowText(const GooString *s) {
++#else
++void PdfParser::doShowText(GooString *s) {
++#endif
+   GfxFont *font;
+   int wMode;
+   double riseX, riseY;
+@@ -2594,7 +2599,11 @@ void PdfParser::doShowText(const GooString *s) {
+   Object charProc;
+   Dict *resDict;
+   Parser *oldParser;
++#if POPPLER_CHECK_VERSION(0,64,0)
++  const char *p;
++#else
+   char *p;
++#endif
+   int len, n, uLen;
+ 
+   font = state->getFont();
+@@ -2630,7 +2639,7 @@ void PdfParser::doShowText(const GooString *s) {
+     double lineX = state->getLineX();
+     double lineY = state->getLineY();
+     oldParser = parser;
+-    p = g_strdup(s->getCString());
++    p = s->getCString();
+     len = s->getLength();
+     while (len > 0) {
+       n = font->getNextChar(p, len, &code,
+@@ -2685,7 +2694,7 @@ void PdfParser::doShowText(const GooString *s) {
+ 
+   } else {
+     state->textTransformDelta(0, state->getRise(), &riseX, &riseY);
+-    p = g_strdup(s->getCString());
++    p = s->getCString();
+     len = s->getLength();
+     while (len > 0) {
+       n = font->getNextChar(p, len, &code,
+@@ -2731,7 +2740,11 @@ void PdfParser::opXObject(Object args[], int /*numArgs*/)
+ {
+   Object obj1, obj2, obj3, refObj;
+ 
+-  char *name = g_strdup(args[0].getName());
++#if POPPLER_CHECK_VERSION(0,64,0)
++  const char *name = args[0].getName();
++#else
++  char *name = args[0].getName();
++#endif
+ #if defined(POPPLER_NEW_OBJECT_API)
+   if ((obj1 = res->lookupXObject(name)).isNull()) {
+ #else
+diff --git a/src/extension/internal/pdfinput/pdf-parser.h b/src/extension/internal/pdfinput/pdf-parser.h
+index f985b15cad..ed28274f42 100644
+--- a/src/extension/internal/pdfinput/pdf-parser.h
++++ b/src/extension/internal/pdfinput/pdf-parser.h
+@@ -25,6 +25,7 @@ namespace Inkscape {
+ // TODO clean up and remove using:
+ using Inkscape::Extension::Internal::SvgBuilder;
+ 
++#include "glib/poppler-features.h"
+ #include "goo/gtypes.h"
+ #include "Object.h"
+ 
+@@ -287,7 +288,12 @@ private:
+   void opMoveShowText(Object args[], int numArgs);
+   void opMoveSetShowText(Object args[], int numArgs);
+   void opShowSpaceText(Object args[], int numArgs);
++#if POPPLER_CHECK_VERSION(0,64,0)
+   void doShowText(const GooString *s);
++#else
++  void doShowText(GooString *s);
++#endif
++  
+ 
+   // XObject operators
+   void opXObject(Object args[], int numArgs);
+diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp
+index 617861928d..767c8af4d4 100644
+--- a/src/extension/internal/pdfinput/svg-builder.cpp
++++ b/src/extension/internal/pdfinput/svg-builder.cpp
+@@ -1020,9 +1020,9 @@ void SvgBuilder::updateFont(GfxState *state) {
+     GfxFont *font = state->getFont();
+     // Store original name
+     if (font->getName()) {
+-        _font_specification = g_strdup(font->getName()->getCString());
++        _font_specification = font->getName()->getCString();
+     } else {
+-        _font_specification = (char*) "Arial";
++        _font_specification = "Arial";
+     }
+ 
+     // Prune the font name to get the correct font family name
+@@ -1030,7 +1030,7 @@ void SvgBuilder::updateFont(GfxState *state) {
+     char *font_family = NULL;
+     char *font_style = NULL;
+     char *font_style_lowercase = NULL;
+-    char *plus_sign = strstr(_font_specification, "+");
++    const char *plus_sign = strstr(_font_specification, "+");
+     if (plus_sign) {
+         font_family = g_strdup(plus_sign + 1);
+         _font_specification = plus_sign + 1;
+diff --git a/src/extension/internal/pdfinput/svg-builder.h b/src/extension/internal/pdfinput/svg-builder.h
+index ed2a4d48e0..55daacee74 100644
+--- a/src/extension/internal/pdfinput/svg-builder.h
++++ b/src/extension/internal/pdfinput/svg-builder.h
+@@ -80,7 +80,7 @@ struct SvgGlyph {
+     bool style_changed;  // Set to true if style has to be reset
+     SPCSSAttr *style;
+     int render_mode;    // Text render mode
+-    char *font_specification;   // Pointer to current font specification
++    const char *font_specification;   // Pointer to current font specification
+ };
+ 
+ /**
+@@ -202,7 +202,7 @@ private:
+ 
+     SPCSSAttr *_font_style;          // Current font style
+     GfxFont *_current_font;
+-    char *_font_specification;
++    const char *_font_specification;
+     double _font_scaling;
+     bool _need_font_update;
+     Geom::Affine _text_matrix;
+-- 
+2.19.0
+

diff --git a/media-gfx/inkscape/inkscape-0.92.3-r1.ebuild b/media-gfx/inkscape/inkscape-0.92.3-r1.ebuild
new file mode 100644
index 00000000000..36a68a10d4e
--- /dev/null
+++ b/media-gfx/inkscape/inkscape-0.92.3-r1.ebuild
@@ -0,0 +1,180 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="xml"
+
+inherit autotools flag-o-matic gnome2-utils xdg toolchain-funcs python-single-r1
+
+MY_P="${P/_/}"
+
+DESCRIPTION="A SVG based generic vector-drawing program"
+HOMEPAGE="https://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 ~arm ~hppa ~ppc ~ppc64 ~x86"
+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}"
+
+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-7.1:=
+	>=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-gfx/potrace
+	media-gfx/scour[${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
+		app-text/libwpg:0.3
+		dev-libs/librevenge
+	)
+	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
+		app-text/libwpg:0.3
+		dev-libs/librevenge
+	)
+	wpg? (
+		app-text/libwpg:0.3
+		dev-libs/librevenge
+	)
+"
+
+# 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-core
+	)
+	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.92.1-automagic.patch"
+	"${FILESDIR}/${PN}-0.91_pre3-cppflags.patch"
+	"${FILESDIR}/${PN}-0.92.1-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.92.3-freetype_pkgconfig.patch"
+	"${FILESDIR}/${PN}-0.92.3-poppler-0.64.patch"
+	"${FILESDIR}/${PN}-0.92.3-poppler-0.65.patch"
+	"${FILESDIR}/${PN}-0.92.3-poppler-0.64-2.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
+
+	local myeconfargs=(
+		$(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)
+	)
+	econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+	emake AR="$(tc-getAR)"
+}
+
+src_install() {
+	default
+
+	find "${ED}" -name "*.la" -delete || die
+	python_optimize "${ED%/}"/usr/share/${PN}/extensions
+}
+
+pkg_preinst() {
+	gnome2_icon_savelist
+}
+
+pkg_postinst() {
+	gnome2_icon_cache_update
+	xdg_mimeinfo_database_update
+	xdg_desktop_database_update
+}
+
+pkg_postrm() {
+	gnome2_icon_cache_update
+	xdg_mimeinfo_database_update
+	xdg_desktop_database_update
+}


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2019-04-24 13:18 Lars Wendler
  0 siblings, 0 replies; 25+ messages in thread
From: Lars Wendler @ 2019-04-24 13:18 UTC (permalink / raw
  To: gentoo-commits

commit:     5a472b33715bba5a1d60a478b5a5c43a5e5dc7d2
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 24 13:18:03 2019 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Wed Apr 24 13:18:19 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a472b33

media-gfx/inkscape: Fixed build with app-text/poppler-0.76.0

Closes: https://bugs.gentoo.org/684246
Package-Manager: Portage-2.3.64, Repoman-2.3.12
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 .../files/inkscape-0.92.4-poppler-0.76.0.patch     | 44 ++++++++++++++++++++++
 media-gfx/inkscape/inkscape-0.92.4.ebuild          |  1 +
 2 files changed, 45 insertions(+)

diff --git a/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.76.0.patch b/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.76.0.patch
new file mode 100644
index 00000000000..11383d9aa33
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.76.0.patch
@@ -0,0 +1,44 @@
+From dc25406853353320078eca22cf817fb052c97082 Mon Sep 17 00:00:00 2001
+From: Marc Jeanmougin <marc@jeanmougin.fr>
+Date: Wed, 24 Apr 2019 14:11:26 +0200
+Subject: [PATCH] Tentative fix for poppler 0.76
+
+---
+ src/extension/internal/pdfinput/pdf-parser.cpp           | 2 +-
+ src/extension/internal/pdfinput/poppler-transition-api.h | 7 +++++++
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
+index 2981d6ee51..ddbff7671f 100644
+--- a/src/extension/internal/pdfinput/pdf-parser.cpp
++++ b/src/extension/internal/pdfinput/pdf-parser.cpp
+@@ -426,7 +426,7 @@ void PdfParser::parse(Object *obj, GBool topLevel) {
+ 	error(errInternal, -1, "Weird page contents");
+     	return;
+   }
+-  parser = new Parser(xref, new Lexer(xref, obj), gFalse);
++  parser = new _POPPLER_NEW_PARSER(xref, obj);
+   go(topLevel);
+   delete parser;
+   parser = NULL;
+diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h
+index 6e4dde7dee..21a60702fa 100644
+--- a/src/extension/internal/pdfinput/poppler-transition-api.h
++++ b/src/extension/internal/pdfinput/poppler-transition-api.h
+@@ -3,6 +3,13 @@
+ 
+ #include <glib/poppler-features.h>
+ 
++#if POPPLER_CHECK_VERSION(0, 76, 0)
++#define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, obj, gFalse)
++#else
++#define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, new Lexer(xref, obj), gFalse)
++#endif
++
++
+ #if POPPLER_CHECK_VERSION(0, 72, 0)
+ #define getCString c_str
+ #endif
+-- 
+2.18.1
+

diff --git a/media-gfx/inkscape/inkscape-0.92.4.ebuild b/media-gfx/inkscape/inkscape-0.92.4.ebuild
index b4bddca2ef6..7d775127ec3 100644
--- a/media-gfx/inkscape/inkscape-0.92.4.ebuild
+++ b/media-gfx/inkscape/inkscape-0.92.4.ebuild
@@ -97,6 +97,7 @@ PATCHES=(
 	"${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.92.4-poppler-0.76.0.patch" #684246
 )
 
 S="${WORKDIR}/${MY_P}"


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2019-07-24 20:57 Andreas Sturmlechner
  0 siblings, 0 replies; 25+ messages in thread
From: Andreas Sturmlechner @ 2019-07-24 20:57 UTC (permalink / raw
  To: gentoo-commits

commit:     d6b3ed4651f817f3870d413e8d4e0021699c8964
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 24 20:57:16 2019 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Jul 24 20:57:46 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d6b3ed46

media-gfx/inkscape: Drop 0.92.3-r1

It is broken with all available poppler versions.

Package-Manager: Portage-2.3.69, Repoman-2.3.16
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 media-gfx/inkscape/Manifest                        |   2 -
 .../files/inkscape-0.92.3-freetype_pkgconfig.patch |  34 ----
 media-gfx/inkscape/inkscape-0.92.3-r1.ebuild       | 178 ---------------------
 3 files changed, 214 deletions(-)

diff --git a/media-gfx/inkscape/Manifest b/media-gfx/inkscape/Manifest
index db8162a0074..3169bf7e90e 100644
--- a/media-gfx/inkscape/Manifest
+++ b/media-gfx/inkscape/Manifest
@@ -1,3 +1 @@
-DIST inkscape-0.92.3-poppler-patches-1.tar.xz 7000 BLAKE2B a7658d592806df7580ab587c677907588678222f53bc8305b9adf399b8237e8ac3e169a22a39e33a50f5e517ea4122d736134dfaf5bd675fb34e5c168eb42e30 SHA512 8254d5cc0651bc6ed389f4610aac5ed9451b8c662e82b5c0f9aa221be748f4cd2075a41234c2516a98159cbd3e23c9ada3d519edbe69f05bab418d2fb1af2ffa
-DIST inkscape-0.92.3.tar.bz2 31606442 BLAKE2B bc90dc160ca059395a2951b7b2daeb8730753c551f78e6af88b51b41322a438256499f754fb6b07946d77b80e1ddfe5514944f9b5cbb19d2bfdecb8625328db0 SHA512 af3c0f672a108e583f3c92cde1451b3f1f5319c1669891005c230e73b3485aa8951af6d7b21c7ccd9e4acbca8eaa5a3bb61ae1d828e81885bc7b61a8ae933687
 DIST inkscape-0.92.4.tar.bz2 31929728 BLAKE2B 892bf4ed913019b27a9b8897e3ae32c44152163ded0eb345d59915ffdc9818d29f210de3294ef1b05601141185b5e3b10779778551b860f31e7df5c659492c77 SHA512 b9034605a79cd8aea808edf42e284819951ae1ea67778f0922f4c10224e94aca6c844acbc2294625773f0a7047d4e32ccdada876238a792a2c17db172c88e120

diff --git a/media-gfx/inkscape/files/inkscape-0.92.3-freetype_pkgconfig.patch b/media-gfx/inkscape/files/inkscape-0.92.3-freetype_pkgconfig.patch
deleted file mode 100644
index d00c23d8add..00000000000
--- a/media-gfx/inkscape/files/inkscape-0.92.3-freetype_pkgconfig.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 62ed18b4d99e690298cc1984b6f2df2363d165fe Mon Sep 17 00:00:00 2001
-From: Lars Wendler <polynomial-c@gentoo.org>
-Date: Fri, 18 May 2018 07:55:38 +0200
-Subject: [PATCH] Use pkg-config to find freetype
-
-As of freetype-2.9.1 the freetype-config file no longer gets installed
-by default.
----
- configure.ac | 9 +++------
- 1 file changed, 3 insertions(+), 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 12a081612b..1b75e23670 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -252,12 +252,9 @@ AC_CHECK_FUNCS([mallinfo], [
- 			 [#include <malloc.h>])
- ])
- 
--AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
--if test "x$FREETYPE_CONFIG" = "xno"; then
--	AC_MSG_ERROR([Cannot find freetype-config])
--fi
--FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
--FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
-+PKG_CHECK_MODULES(FREETYPE, freetype2,,
-+	AC_MSG_ERROR([Cannot find freetype])
-+)
- AC_SUBST(FREETYPE_CFLAGS)
- AC_SUBST(FREETYPE_LIBS)
- 
--- 
-2.17.0
-

diff --git a/media-gfx/inkscape/inkscape-0.92.3-r1.ebuild b/media-gfx/inkscape/inkscape-0.92.3-r1.ebuild
deleted file mode 100644
index 7e552f52df9..00000000000
--- a/media-gfx/inkscape/inkscape-0.92.3-r1.ebuild
+++ /dev/null
@@ -1,178 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="xml"
-inherit autotools flag-o-matic gnome2-utils xdg toolchain-funcs python-single-r1
-
-MY_P="${P/_/}"
-
-DESCRIPTION="SVG based generic vector-drawing program"
-HOMEPAGE="https://inkscape.org/"
-SRC_URI="https://inkscape.global.ssl.fastly.net/media/resources/file/${P}.tar.bz2
-	https://dev.gentoo.org/~asturm/distfiles/${P}-poppler-patches-1.tar.xz"
-
-LICENSE="GPL-2 LGPL-2.1"
-SLOT="0"
-KEYWORDS="amd64 ~arm ~hppa ppc ppc64 x86"
-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}"
-
-COMMON_DEPEND="${PYTHON_DEPS}
-	>=app-text/poppler-0.26.0:=[cairo]
-	>=dev-cpp/glibmm-2.54.1
-	>=dev-cpp/gtkmm-2.18.0:2.4
-	>=dev-cpp/cairomm-1.9.8
-	>=dev-libs/boehm-gc-7.1:=
-	>=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-gfx/potrace
-	media-gfx/scour[${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? (
-		app-text/libwpg:0.3
-		dev-libs/librevenge
-		media-libs/libcdr
-	)
-	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? (
-		app-text/libwpg:0.3
-		dev-libs/librevenge
-		media-libs/libvisio
-	)
-	wpg? (
-		app-text/libwpg:0.3
-		dev-libs/librevenge
-	)
-"
-# 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-core
-	)
-	postscript? ( app-text/ghostscript-gpl )
-"
-DEPEND="${COMMON_DEPEND}
-	>=dev-libs/boost-1.36
-	dev-util/glib-utils
-	>=dev-util/intltool-0.40
-	>=sys-devel/gettext-0.17
-	virtual/pkgconfig
-"
-
-PATCHES=(
-	"${FILESDIR}/${PN}-0.92.1-automagic.patch"
-	"${FILESDIR}/${PN}-0.91_pre3-cppflags.patch"
-	"${FILESDIR}/${PN}-0.92.1-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.92.3-freetype_pkgconfig.patch"
-	"${WORKDIR}/${PN}-0.92.3-poppler-0.64.patch"
-	"${WORKDIR}/${PN}-0.92.3-poppler-0.65.patch"
-	"${WORKDIR}/${PN}-0.92.3-poppler-0.64-2.patch"
-	"${WORKDIR}/${PN}-0.92.3-poppler-0.69.patch"
-	"${WORKDIR}/${PN}-0.92.3-poppler-0.71.patch"
-	"${WORKDIR}/${PN}-0.92.3-poppler-0.72.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
-
-	local myeconfargs=(
-		$(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)
-	)
-	econf "${myeconfargs[@]}"
-}
-
-src_compile() {
-	emake AR="$(tc-getAR)"
-}
-
-src_install() {
-	default
-
-	find "${ED}" -name "*.la" -delete || die
-	python_optimize "${ED%/}"/usr/share/${PN}/extensions
-}
-
-pkg_postinst() {
-	gnome2_icon_cache_update
-	xdg_mimeinfo_database_update
-	xdg_desktop_database_update
-}
-
-pkg_postrm() {
-	gnome2_icon_cache_update
-	xdg_mimeinfo_database_update
-	xdg_desktop_database_update
-}


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2019-11-06 21:07 Miroslav Šulc
  0 siblings, 0 replies; 25+ messages in thread
From: Miroslav Šulc @ 2019-11-06 21:07 UTC (permalink / raw
  To: gentoo-commits

commit:     c54596c57dbf28c6338e16fc9c2273f0600fa47a
Author:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
AuthorDate: Wed Nov  6 21:07:18 2019 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Wed Nov  6 21:07:37 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c54596c5

media-gfx/inkscape-1.0_beta1: bump (bug #696794)

dropped arm due to missing arm on dev-libs/gdl:3

Bug: https://bugs.gentoo.org/696794
Package-Manager: Portage-2.3.78, Repoman-2.3.17
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 media-gfx/inkscape/Manifest                        |   1 +
 .../inkscape-1.0_beta1-detect-imagemagick.patch    |  13 ++
 .../inkscape-1.0_beta1-do-not-compress-man.patch   |  13 ++
 media-gfx/inkscape/inkscape-1.0_beta1.ebuild       | 168 +++++++++++++++++++++
 media-gfx/inkscape/metadata.xml                    |   1 +
 5 files changed, 196 insertions(+)

diff --git a/media-gfx/inkscape/Manifest b/media-gfx/inkscape/Manifest
index 3169bf7e90e..983a7b02312 100644
--- a/media-gfx/inkscape/Manifest
+++ b/media-gfx/inkscape/Manifest
@@ -1 +1,2 @@
 DIST inkscape-0.92.4.tar.bz2 31929728 BLAKE2B 892bf4ed913019b27a9b8897e3ae32c44152163ded0eb345d59915ffdc9818d29f210de3294ef1b05601141185b5e3b10779778551b860f31e7df5c659492c77 SHA512 b9034605a79cd8aea808edf42e284819951ae1ea67778f0922f4c10224e94aca6c844acbc2294625773f0a7047d4e32ccdada876238a792a2c17db172c88e120
+DIST inkscape-1.0beta1.tar.bz2 31096177 BLAKE2B 72769d0e15f20fcc5cdf81987896e7d354c2c71fc31feaa18dfff12df2791d2ed85be4451e76e8191c5f469b2e70fd03f4888270e67628c50978a3fd30c41264 SHA512 35b3ba46d76b55eb268209631ea652b3512d3aaf07f577543081c311acff13b0a667ecf069e9f1c2f47dc16525df952cfb9ca29e9a3078f9096ee7865b917245

diff --git a/media-gfx/inkscape/files/inkscape-1.0_beta1-detect-imagemagick.patch b/media-gfx/inkscape/files/inkscape-1.0_beta1-detect-imagemagick.patch
new file mode 100644
index 00000000000..ee4becfd109
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.0_beta1-detect-imagemagick.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake
+index 91f93e7..95b2af2 100644
+--- a/CMakeScripts/DefineDependsandFlags.cmake
++++ b/CMakeScripts/DefineDependsandFlags.cmake
+@@ -330,7 +330,7 @@ list(APPEND INKSCAPE_LIBS ${ZLIB_LIBRARIES})
+ 
+ if(WITH_IMAGE_MAGICK)
+     # we want "<" but pkg_check_modules only offers "<=" for some reason; let's hope nobody actually has 7.0.0
+-    pkg_check_modules(MAGICK ImageMagick++<=7)
++    pkg_check_modules(MAGICK Magick++<=7)
+     if(MAGICK_FOUND)
+         set(WITH_GRAPHICS_MAGICK OFF)  # prefer ImageMagick for now and disable GraphicsMagick if found
+     else()

diff --git a/media-gfx/inkscape/files/inkscape-1.0_beta1-do-not-compress-man.patch b/media-gfx/inkscape/files/inkscape-1.0_beta1-do-not-compress-man.patch
new file mode 100644
index 00000000000..c9d395e807e
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.0_beta1-do-not-compress-man.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeScripts/Pod2man.cmake b/CMakeScripts/Pod2man.cmake
+index eda6292..b94d5af 100644
+--- a/CMakeScripts/Pod2man.cmake
++++ b/CMakeScripts/Pod2man.cmake
+@@ -14,6 +14,8 @@ if(NOT GZIP)
+     message(STATUS "Could not find gzip - man pages uncompressed")
+ endif()
+ 
++set(GZIP "")
++
+ macro(pod2man PODFILE_FULL RELEASE SECTION CENTER)
+     get_filename_component(PODFILE ${PODFILE_FULL} NAME)
+     string(REPLACE "." ";" PODFILE_LIST ${PODFILE})

diff --git a/media-gfx/inkscape/inkscape-1.0_beta1.ebuild b/media-gfx/inkscape/inkscape-1.0_beta1.ebuild
new file mode 100644
index 00000000000..a22ce6458cc
--- /dev/null
+++ b/media-gfx/inkscape/inkscape-1.0_beta1.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{5,6} )
+PYTHON_REQ_USE="xml"
+
+inherit cmake-utils flag-o-matic xdg-utils xdg toolchain-funcs python-single-r1
+
+MY_P="${P/_/}"
+
+DESCRIPTION="SVG based generic vector-drawing program"
+HOMEPAGE="https://inkscape.org/"
+SRC_URI="https://inkscape.org/gallery/item/14917/${MY_P}.tar.bz2"
+#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"
+IUSE="cdr dia dbus exif gnome graphicsmagick +imagemagick openmp postscript inkjar jpeg svg2 jemalloc"
+IUSE+=" lcms nls spell static-libs visio wpg"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE} ^^ ( imagemagick graphicsmagick )"
+
+COMMON_DEPEND="${PYTHON_DEPS}
+	>=app-text/poppler-0.57.0:=[cairo]
+	>=dev-cpp/glibmm-2.54.1
+	>=dev-cpp/cairomm-1.12
+	>=dev-libs/boehm-gc-7.1:=
+	>=dev-libs/glib-2.41
+	>=dev-libs/libsigc++-2.8
+	>=dev-libs/libxml2-2.7.4
+	>=dev-libs/libxslt-1.1.25
+	dev-libs/popt
+	dev-python/lxml[${PYTHON_USEDEP}]
+	media-gfx/potrace
+	media-gfx/scour[${PYTHON_USEDEP}]
+	media-libs/fontconfig
+	media-libs/freetype:2
+	media-libs/libpng:0=
+	sci-libs/gsl:=
+	x11-libs/libX11
+	>=x11-libs/pango-1.37.2
+	cdr? (
+		app-text/libwpg:0.3
+		dev-libs/librevenge
+		media-libs/libcdr
+	)
+	dbus? ( dev-libs/dbus-glib )
+	exif? ( media-libs/libexif )
+	gnome? ( >=gnome-base/gnome-vfs-2.0 )
+	imagemagick? ( <media-gfx/imagemagick-7:=[cxx] )
+	jpeg? ( virtual/jpeg:0 )
+	lcms? ( media-libs/lcms:2 )
+	spell? (
+		app-text/aspell
+		app-text/gtkspell:3
+	)
+	visio? (
+		app-text/libwpg:0.3
+		dev-libs/librevenge
+		media-libs/libvisio
+	)
+	wpg? (
+		app-text/libwpg:0.3
+		dev-libs/librevenge
+	)
+	x11-libs/gtk+:3
+	dev-libs/gdl:3
+	dev-cpp/gtkmm:3.0
+	>=dev-cpp/pangomm-2.40
+	jemalloc? ( dev-libs/jemalloc )
+	net-libs/libsoup
+	dev-libs/double-conversion
+"
+
+# 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}]
+	dia? ( app-office/dia )
+	postscript? ( app-text/ghostscript-gpl )
+"
+DEPEND="${COMMON_DEPEND}
+	>=dev-libs/boost-1.65
+	dev-util/glib-utils
+	>=dev-util/intltool-0.40
+	>=sys-devel/gettext-0.17
+	virtual/pkgconfig
+"
+
+S="${WORKDIR}/${MY_P}"
+
+RESTRICT="test"
+
+PATCHES=(
+	"${FILESDIR}"/${P}-detect-imagemagick.patch
+	"${FILESDIR}"/${P}-do-not-compress-man.patch
+)
+
+pkg_pretend() {
+	if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
+		tc-has-openmp || die "Please switch to an openmp compatible compiler"
+	fi
+}
+
+src_prepare() {
+	einfo "Fixing doc directory path..."
+	sed -i "s%doc/inkscape%doc/${P}%g" CMakeScripts/ConfigCPack.cmake || die "Failed to fix doc directory path"
+
+	cmake-utils_src_prepare
+}
+
+src_configure() {
+	# aliasing unsafe wrt #310393
+	append-flags -fno-strict-aliasing
+
+mycmakeargs=(
+	-DWITH_DBUS="$(usex dbus ON OFF)"   # Compile with support for DBus interface
+	-DENABLE_LCMS="$(usex lcms ON OFF)"   # Compile with LCMS support
+	-DWITH_SVG2="$(usex svg2 ON OFF)"   # Compile with support for new SVG2 features
+#    -DWITH_LPETOOL   # Compile with LPE Tool and experimental LPEs enabled
+	-DWITH_OPENMP="$(usex openmp ON OFF)"   # Compile with OpenMP support
+#    -DWITH_PROFILING   # Turn on profiling
+	-DBUILD_SHARED_LIBS="$(usex !static-libs ON OFF)"  # Compile libraries as shared and not static
+	-DENABLE_POPPLER=ON   # Compile with support of libpoppler
+	-DENABLE_POPPLER_CAIRO=ON   # Compile with support of libpoppler-cairo for rendering PDF preview (depends on ENABLE_POPPLER)
+	-DWITH_IMAGE_MAGICK="$(usex imagemagick ON OFF)"   # Compile with support of ImageMagick for raster extensions and image import resolution (requires ImageMagick 6; set to OFF if you prefer GraphicsMagick)
+	-DWITH_GRAPHICS_MAGICK="$(usex graphicsmagick ON OFF)"   # Compile with support of GraphicsMagick for raster extensions and image import resolution
+	-DWITH_LIBCDR="$(usex cdr ON OFF)"   # Compile with support of libcdr for CorelDRAW Diagrams
+	-DWITH_LIBVISIO="$(usex visio ON OFF)"   # Compile with support of libvisio for Microsoft Visio Diagrams
+	-DWITH_LIBWPG="$(usex wpg ON OFF)"   # Compile with support of libwpg for WordPerfect Graphics
+	-DWITH_NLS="$(usex nls ON OFF)"   # Compile with Native Language Support (using gettext)
+	-DWITH_JEMALLOC="$(usex jemalloc ON OFF)"   # Compile with JEMALLOC support
+)
+
+	cmake-utils_src_configure
+}
+
+src_install() {
+	default
+
+	find "${ED}" -name "*.la" -delete || die
+
+	# No extensions are present in beta1
+	if [ -n $(find "${ED%/}"/usr/share/${PN}/extensions -mindepth 1) ]; then
+		python_optimize "${ED%/}"/usr/share/${PN}/extensions
+	fi
+
+	cmake-utils_src_install
+}
+
+pkg_preinst() {
+	xdg_icon_savelist
+}
+
+pkg_postinst() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+	xdg_desktop_database_update
+}

diff --git a/media-gfx/inkscape/metadata.xml b/media-gfx/inkscape/metadata.xml
index 80bd107567a..b7fc6b5e478 100644
--- a/media-gfx/inkscape/metadata.xml
+++ b/media-gfx/inkscape/metadata.xml
@@ -10,6 +10,7 @@
     <flag name="dia">pull in <pkg>app-office/dia</pkg> for dia import extension</flag>
     <flag name="inkjar">Enable support for OpenOffice.org SVG jar files</flag>
     <flag name="latex">pull in dependencies for LaTeX formulas</flag>
+    <flag name="svg2">Enable support for new SVG2 features</flag>
     <flag name="visio">Enable support for Microsoft Visio Diagrams</flag>
     <flag name="wpg">Enable support for WordPerfect Graphics</flag>
   </use>


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2019-11-09  8:57 Andreas Sturmlechner
  0 siblings, 0 replies; 25+ messages in thread
From: Andreas Sturmlechner @ 2019-11-09  8:57 UTC (permalink / raw
  To: gentoo-commits

commit:     13b0e241bb2aba237e71c9606820ccc56984d733
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  8 23:21:17 2019 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Nov  9 08:57:43 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=13b0e241

media-gfx/inkscape: Fix build with poppler-0.82.0

Package-Manager: Portage-2.3.78, Repoman-2.3.17
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/inkscape-1.0_beta1-poppler-0.82.patch    | 70 ++++++++++++++++++++++
 media-gfx/inkscape/inkscape-1.0_beta1.ebuild       |  1 +
 2 files changed, 71 insertions(+)

diff --git a/media-gfx/inkscape/files/inkscape-1.0_beta1-poppler-0.82.patch b/media-gfx/inkscape/files/inkscape-1.0_beta1-poppler-0.82.patch
new file mode 100644
index 00000000000..4c5bff4977a
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.0_beta1-poppler-0.82.patch
@@ -0,0 +1,70 @@
+From 324c7903d9fd62e74c042c31477299be3b980fd2 Mon Sep 17 00:00:00 2001
+From: Thomas Holder <thomas@thomas-holder.de>
+Date: Sat, 26 Oct 2019 14:39:31 +0200
+Subject: [PATCH] fix poppler 0.82.0 build
+
+---
+ src/extension/internal/pdfinput/pdf-parser.cpp           | 2 +-
+ src/extension/internal/pdfinput/poppler-transition-api.h | 6 ++++++
+ src/extension/internal/pdfinput/svg-builder.cpp          | 2 +-
+ src/extension/internal/pdfinput/svg-builder.h            | 2 +-
+ 4 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
+index 4f798e35bf..4eae275757 100644
+--- a/src/extension/internal/pdfinput/pdf-parser.cpp
++++ b/src/extension/internal/pdfinput/pdf-parser.cpp
+@@ -2405,7 +2405,7 @@ void PdfParser::doShowText(GooString *s) {
+   int wMode;
+   double riseX, riseY;
+   CharCode code;
+-  Unicode *u = nullptr;
++  Unicode _POPPLER_CONST_82 *u = nullptr;
+   double x, y, dx, dy, tdx, tdy;
+   double originX, originY, tOriginX, tOriginY;
+   double oldCTM[6], newCTM[6];
+diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h
+index 5e8bc4ae90..01834007e8 100644
+--- a/src/extension/internal/pdfinput/poppler-transition-api.h
++++ b/src/extension/internal/pdfinput/poppler-transition-api.h
+@@ -14,6 +14,12 @@
+ 
+ #include <glib/poppler-features.h>
+ 
++#if POPPLER_CHECK_VERSION(0, 82, 0)
++#define _POPPLER_CONST_82 const
++#else
++#define _POPPLER_CONST_82
++#endif
++
+ #if POPPLER_CHECK_VERSION(0, 76, 0)
+ #define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, obj, gFalse)
+ #else
+diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp
+index 14727eba5f..a7134684a0 100644
+--- a/src/extension/internal/pdfinput/svg-builder.cpp
++++ b/src/extension/internal/pdfinput/svg-builder.cpp
+@@ -1395,7 +1395,7 @@ void SvgBuilder::beginString(GfxState *state) {
+ void SvgBuilder::addChar(GfxState *state, double x, double y,
+                          double dx, double dy,
+                          double originX, double originY,
+-                         CharCode /*code*/, int /*nBytes*/, Unicode *u, int uLen) {
++                         CharCode /*code*/, int /*nBytes*/, Unicode const *u, int uLen) {
+ 
+ 
+     bool is_space = ( uLen == 1 && u[0] == 32 );
+diff --git a/src/extension/internal/pdfinput/svg-builder.h b/src/extension/internal/pdfinput/svg-builder.h
+index c42d694dec..050465d4bf 100644
+--- a/src/extension/internal/pdfinput/svg-builder.h
++++ b/src/extension/internal/pdfinput/svg-builder.h
+@@ -142,7 +142,7 @@ public:
+     void addChar(GfxState *state, double x, double y,
+                  double dx, double dy,
+                  double originX, double originY,
+-                 CharCode code, int nBytes, Unicode *u, int uLen);
++                 CharCode code, int nBytes, Unicode const *u, int uLen);
+     void beginTextObject(GfxState *state);
+     void endTextObject(GfxState *state);
+ 
+-- 
+2.22.0

diff --git a/media-gfx/inkscape/inkscape-1.0_beta1.ebuild b/media-gfx/inkscape/inkscape-1.0_beta1.ebuild
index 9ec18d3c5b9..759c5313e03 100644
--- a/media-gfx/inkscape/inkscape-1.0_beta1.ebuild
+++ b/media-gfx/inkscape/inkscape-1.0_beta1.ebuild
@@ -101,6 +101,7 @@ RESTRICT="test"
 PATCHES=(
 	"${FILESDIR}"/${P}-detect-imagemagick.patch
 	"${FILESDIR}"/${P}-do-not-compress-man.patch
+	"${FILESDIR}"/${P}-poppler-0.82.patch
 )
 
 pkg_pretend() {


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2019-11-11  9:41 Miroslav Šulc
  0 siblings, 0 replies; 25+ messages in thread
From: Miroslav Šulc @ 2019-11-11  9:41 UTC (permalink / raw
  To: gentoo-commits

commit:     9a5708b39fd019e2425efea931da5d3b3d2331da
Author:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 11 09:41:00 2019 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Mon Nov 11 09:41:27 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9a5708b3

media-gfx/inkscape-1.0_beta1: fix #699618

avoid reordering of CMAKE_CXX_FLAGS

Closes: https://bugs.gentoo.org/699618
Package-Manager: Portage-2.3.79, Repoman-2.3.18
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 ....0_beta1-avoid-reordering-cmake-cxx-flags.patch | 130 +++++++++++++++++++++
 media-gfx/inkscape/inkscape-1.0_beta1.ebuild       |   1 +
 2 files changed, 131 insertions(+)

diff --git a/media-gfx/inkscape/files/inkscape-1.0_beta1-avoid-reordering-cmake-cxx-flags.patch b/media-gfx/inkscape/files/inkscape-1.0_beta1-avoid-reordering-cmake-cxx-flags.patch
new file mode 100644
index 00000000000..bd78bc58232
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.0_beta1-avoid-reordering-cmake-cxx-flags.patch
@@ -0,0 +1,130 @@
+From 09319f688e10d47f9fc9be2b6feb831fb132660a Mon Sep 17 00:00:00 2001
+From: Patrick Storz <eduard.braun2@gmx.de>
+Date: Sat, 12 Oct 2019 15:56:14 +0200
+Subject: [PATCH] CMake: Avoid reordering CMAKE_CXX_FLAGS
+
+Order matters; the reordering caused the _FORTIFY_SOURCE flag to be
+always undefined (as we flipped a "-U" and "-D")
+
+Also skip removing duplicates to avoid similar pitfalls (we kept
+only the first occurrence but should've kept the last)
+It did not work properly anyway (we still had duplicates in the end)
+and was only required as we wrote the final CMAKE_CXX_FLAGS back to
+cache and consequently appended new flags with every run of CMAKE.
+---
+ CMakeLists.txt                           | 13 -----------
+ CMakeScripts/CanonicalizeFlagsVar.cmake  | 11 ----------
+ CMakeScripts/DefineDependsandFlags.cmake | 28 ++++++++++++++----------
+ 3 files changed, 17 insertions(+), 35 deletions(-)
+ delete mode 100644 CMakeScripts/CanonicalizeFlagsVar.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b30f013f38..aa14e13e01 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -207,19 +207,6 @@ if(GMOCK_PRESENT)
+     endif()
+ endif()
+ 
+-# -----------------------------------------------------------------------------
+-# Canonicalize the flags to speed up recompilation using ccache/etc.
+-# This should be the last thing we do:
+-# -----------------------------------------------------------------------------
+-include(CMakeScripts/CanonicalizeFlagsVar.cmake)
+-canonicalize_flags_var("${CMAKE_CXX_FLAGS}" _new_cxx)
+-set(CMAKE_CXX_FLAGS "${_new_cxx}" CACHE STRING "" FORCE)
+-canonicalize_flags_var("${CMAKE_CXX_FLAGS_DEBUG}" _new_cxx)
+-set(CMAKE_CXX_FLAGS_DEBUG "${_new_cxx}" CACHE STRING "" FORCE)
+-# message(FATAL_ERROR "CMAKE_CXX_FLAGS = <${CMAKE_CXX_FLAGS}>")
+-
+-
+-
+ 
+ # -----------------------------------------------------------------------------
+ # Clean Targets
+diff --git a/CMakeScripts/CanonicalizeFlagsVar.cmake b/CMakeScripts/CanonicalizeFlagsVar.cmake
+deleted file mode 100644
+index ddc5b7b5d3..0000000000
+--- a/CMakeScripts/CanonicalizeFlagsVar.cmake
++++ /dev/null
+@@ -1,11 +0,0 @@
+-# This file is copyright by Shlomi Fish, 2016.
+-#
+-# This file is licensed under the MIT/X11 license:
+-# https://opensource.org/licenses/mit-license.php
+-
+-macro (canonicalize_flags_var in_val out_var)
+-    string(REPLACE " " ";" _c "${in_val}")
+-    list(REMOVE_DUPLICATES _c)
+-    list(SORT _c)
+-    string(REPLACE ";" " " "${out_var}" "${_c}")
+-endmacro()
+diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake
+index 996100b4d7..9dd7f7785f 100644
+--- a/CMakeScripts/DefineDependsandFlags.cmake
++++ b/CMakeScripts/DefineDependsandFlags.cmake
+@@ -2,6 +2,7 @@ set(INKSCAPE_LIBS "")
+ set(INKSCAPE_INCS "")
+ set(INKSCAPE_INCS_SYS "")
+ set(INKSCAPE_CXX_FLAGS "")
++set(INKSCAPE_CXX_FLAGS_DEBUG "")
+ 
+ list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR}
+     ${PROJECT_SOURCE_DIR}/src
+@@ -98,7 +99,7 @@ list(APPEND INKSCAPE_INCS_SYS ${INKSCAPE_DEP_INCLUDE_DIRS})
+ add_definitions(${INKSCAPE_DEP_CFLAGS_OTHER})
+ 
+ find_package(DoubleConversion REQUIRED)  # lib2geom dependency
+-        
++
+ if(WITH_JEMALLOC)
+     find_package(JeMalloc)
+     if (JEMALLOC_FOUND)
+@@ -369,14 +370,6 @@ sanitize_ldflags_for_libs(SIGC++_LDFLAGS)
+ list(APPEND INKSCAPE_LIBS ${SIGC++_LDFLAGS})
+ list(APPEND INKSCAPE_CXX_FLAGS ${SIGC++_CFLAGS_OTHER})
+ 
+-list(REMOVE_DUPLICATES INKSCAPE_CXX_FLAGS)
+-foreach(flag ${INKSCAPE_CXX_FLAGS})
+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" CACHE STRING "" FORCE)
+-endforeach()
+-foreach(flag ${INKSCAPE_CXX_FLAGS_DEBUG})
+-  set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${flag}" CACHE STRING "" FORCE)
+-endforeach()
+-
+ # Some linkers, like gold, don't find symbols recursively. So we have to link against X11 explicitly
+ find_package(X11)
+ if(X11_FOUND)
+@@ -386,14 +379,27 @@ endif(X11_FOUND)
+ 
+ # end Dependencies
+ 
++
++
++# Set include directories and CXX flags
++# (INKSCAPE_LIBS are set as target_link_libraries for inkscape_base in src/CMakeLists.txt)
++
++foreach(flag ${INKSCAPE_CXX_FLAGS})
++    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
++endforeach()
++foreach(flag ${INKSCAPE_CXX_FLAGS_DEBUG})
++    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${flag}")
++endforeach()
++
+ list(REMOVE_DUPLICATES INKSCAPE_LIBS)
+ list(REMOVE_DUPLICATES INKSCAPE_INCS_SYS)
+ 
+-# C/C++ Flags
+ include_directories(${INKSCAPE_INCS})
+ include_directories(SYSTEM ${INKSCAPE_INCS_SYS})
+ 
+-include(${CMAKE_CURRENT_LIST_DIR}/ConfigChecks.cmake)
++include(${CMAKE_CURRENT_LIST_DIR}/ConfigChecks.cmake) # TODO: Check if this needs to be "hidden" here
+ 
+ unset(INKSCAPE_INCS)
+ unset(INKSCAPE_INCS_SYS)
++unset(INKSCAPE_CXX_FLAGS)
++unset(INKSCAPE_CXX_FLAGS_DEBUG)
+-- 
+2.22.0
+

diff --git a/media-gfx/inkscape/inkscape-1.0_beta1.ebuild b/media-gfx/inkscape/inkscape-1.0_beta1.ebuild
index 759c5313e03..eb490840c8e 100644
--- a/media-gfx/inkscape/inkscape-1.0_beta1.ebuild
+++ b/media-gfx/inkscape/inkscape-1.0_beta1.ebuild
@@ -102,6 +102,7 @@ PATCHES=(
 	"${FILESDIR}"/${P}-detect-imagemagick.patch
 	"${FILESDIR}"/${P}-do-not-compress-man.patch
 	"${FILESDIR}"/${P}-poppler-0.82.patch
+	"${FILESDIR}"/${P}-avoid-reordering-cmake-cxx-flags.patch
 )
 
 pkg_pretend() {


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2019-11-16 13:25 Andreas K. Hüttel
  0 siblings, 0 replies; 25+ messages in thread
From: Andreas K. Hüttel @ 2019-11-16 13:25 UTC (permalink / raw
  To: gentoo-commits

commit:     3e20f1daf5328ec3f6e512e927c892c247394020
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 16 13:25:31 2019 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Nov 16 13:25:43 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3e20f1da

media-gfx/inkscape: Fix build with poppler-0.82

Closes: https://bugs.gentoo.org/677058
Package-Manager: Portage-2.3.79, Repoman-2.3.18
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 .../files/inkscape-0.92.4-poppler-0.82.0.patch     | 76 ++++++++++++++++++++++
 media-gfx/inkscape/inkscape-0.92.4.ebuild          |  1 +
 2 files changed, 77 insertions(+)

diff --git a/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.82.0.patch b/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.82.0.patch
new file mode 100644
index 00000000000..73cc4f97c37
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.82.0.patch
@@ -0,0 +1,76 @@
+From 9b2f1a99bd8a411926925ac0c91f50289c7db8ee Mon Sep 17 00:00:00 2001
+From: Thomas Holder <thomas@thomas-holder.de>
+Date: Sat, 16 Nov 2019 14:12:24 +0100
+Subject: [PATCH] fix poppler 0.82.0 build
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Backport of 324c7903d9fd62e74c042c31477299be3b980fd2 from master by
+Andreas K. Hüttel <dilfridge@gentoo.org>
+---
+ src/extension/internal/pdfinput/pdf-parser.cpp           | 2 +-
+ src/extension/internal/pdfinput/poppler-transition-api.h | 6 ++++++
+ src/extension/internal/pdfinput/svg-builder.cpp          | 2 +-
+ src/extension/internal/pdfinput/svg-builder.h            | 2 +-
+ 4 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
+index ddbff7671f..e71bb79381 100644
+--- a/src/extension/internal/pdfinput/pdf-parser.cpp
++++ b/src/extension/internal/pdfinput/pdf-parser.cpp
+@@ -2414,7 +2414,7 @@ void PdfParser::doShowText(GooString *s) {
+   int wMode;
+   double riseX, riseY;
+   CharCode code;
+-  Unicode *u = NULL;
++  Unicode _POPPLER_CONST_82 *u = NULL;
+   double x, y, dx, dy, tdx, tdy;
+   double originX, originY, tOriginX, tOriginY;
+   double oldCTM[6], newCTM[6];
+diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h
+index 21a60702fa..93c0f99ba1 100644
+--- a/src/extension/internal/pdfinput/poppler-transition-api.h
++++ b/src/extension/internal/pdfinput/poppler-transition-api.h
+@@ -3,6 +3,12 @@
+ 
+ #include <glib/poppler-features.h>
+ 
++#if POPPLER_CHECK_VERSION(0, 82, 0)
++#define _POPPLER_CONST_82 const
++#else
++#define _POPPLER_CONST_82
++#endif
++
+ #if POPPLER_CHECK_VERSION(0, 76, 0)
+ #define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, obj, gFalse)
+ #else
+diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp
+index 1cefb92abd..ea2940ffe1 100644
+--- a/src/extension/internal/pdfinput/svg-builder.cpp
++++ b/src/extension/internal/pdfinput/svg-builder.cpp
+@@ -1379,7 +1379,7 @@ void SvgBuilder::beginString(GfxState *state) {
+ void SvgBuilder::addChar(GfxState *state, double x, double y,
+                          double dx, double dy,
+                          double originX, double originY,
+-                         CharCode /*code*/, int /*nBytes*/, Unicode *u, int uLen) {
++                         CharCode /*code*/, int /*nBytes*/, Unicode const *u, int uLen) {
+ 
+ 
+     bool is_space = ( uLen == 1 && u[0] == 32 );
+diff --git a/src/extension/internal/pdfinput/svg-builder.h b/src/extension/internal/pdfinput/svg-builder.h
+index 34b42e17b8..78e302081f 100644
+--- a/src/extension/internal/pdfinput/svg-builder.h
++++ b/src/extension/internal/pdfinput/svg-builder.h
+@@ -141,7 +141,7 @@ public:
+     void addChar(GfxState *state, double x, double y,
+                  double dx, double dy,
+                  double originX, double originY,
+-                 CharCode code, int nBytes, Unicode *u, int uLen);
++                 CharCode code, int nBytes, Unicode const *u, int uLen);
+     void beginTextObject(GfxState *state);
+     void endTextObject(GfxState *state);
+ 
+-- 
+2.24.0
+

diff --git a/media-gfx/inkscape/inkscape-0.92.4.ebuild b/media-gfx/inkscape/inkscape-0.92.4.ebuild
index c38fe42d1a6..87203911632 100644
--- a/media-gfx/inkscape/inkscape-0.92.4.ebuild
+++ b/media-gfx/inkscape/inkscape-0.92.4.ebuild
@@ -98,6 +98,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-0.91_pre3-sk-man.patch"
 	"${FILESDIR}/${PN}-0.48.4-epython.patch"
 	"${FILESDIR}/${PN}-0.92.4-poppler-0.76.0.patch" #684246
+	"${FILESDIR}/${PN}-0.92.4-poppler-0.82.0.patch"
 )
 
 S="${WORKDIR}/${MY_P}"


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2020-05-08  7:42 Miroslav Šulc
  0 siblings, 0 replies; 25+ messages in thread
From: Miroslav Šulc @ 2020-05-08  7:42 UTC (permalink / raw
  To: gentoo-commits

commit:     78f08e9a1f04ecc6eecb4bab4a148cb4ce30644a
Author:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
AuthorDate: Fri May  8 07:41:31 2020 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Fri May  8 07:42:04 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=78f08e9a

media-gfx/inkscape: synced 9999 from 1.0

Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 .../files/inkscape-1.0_beta1-detect-imagemagick.patch       | 13 -------------
 .../files/inkscape-1.0_beta1-do-not-compress-man.patch      | 13 -------------
 media-gfx/inkscape/inkscape-9999.ebuild                     | 13 ++++++-------
 3 files changed, 6 insertions(+), 33 deletions(-)

diff --git a/media-gfx/inkscape/files/inkscape-1.0_beta1-detect-imagemagick.patch b/media-gfx/inkscape/files/inkscape-1.0_beta1-detect-imagemagick.patch
deleted file mode 100644
index ee4becfd109..00000000000
--- a/media-gfx/inkscape/files/inkscape-1.0_beta1-detect-imagemagick.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake
-index 91f93e7..95b2af2 100644
---- a/CMakeScripts/DefineDependsandFlags.cmake
-+++ b/CMakeScripts/DefineDependsandFlags.cmake
-@@ -330,7 +330,7 @@ list(APPEND INKSCAPE_LIBS ${ZLIB_LIBRARIES})
- 
- if(WITH_IMAGE_MAGICK)
-     # we want "<" but pkg_check_modules only offers "<=" for some reason; let's hope nobody actually has 7.0.0
--    pkg_check_modules(MAGICK ImageMagick++<=7)
-+    pkg_check_modules(MAGICK Magick++<=7)
-     if(MAGICK_FOUND)
-         set(WITH_GRAPHICS_MAGICK OFF)  # prefer ImageMagick for now and disable GraphicsMagick if found
-     else()

diff --git a/media-gfx/inkscape/files/inkscape-1.0_beta1-do-not-compress-man.patch b/media-gfx/inkscape/files/inkscape-1.0_beta1-do-not-compress-man.patch
deleted file mode 100644
index c9d395e807e..00000000000
--- a/media-gfx/inkscape/files/inkscape-1.0_beta1-do-not-compress-man.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeScripts/Pod2man.cmake b/CMakeScripts/Pod2man.cmake
-index eda6292..b94d5af 100644
---- a/CMakeScripts/Pod2man.cmake
-+++ b/CMakeScripts/Pod2man.cmake
-@@ -14,6 +14,8 @@ if(NOT GZIP)
-     message(STATUS "Could not find gzip - man pages uncompressed")
- endif()
- 
-+set(GZIP "")
-+
- macro(pod2man PODFILE_FULL RELEASE SECTION CENTER)
-     get_filename_component(PODFILE ${PODFILE_FULL} NAME)
-     string(REPLACE "." ";" PODFILE_LIST ${PODFILE})

diff --git a/media-gfx/inkscape/inkscape-9999.ebuild b/media-gfx/inkscape/inkscape-9999.ebuild
index 158a19eeca9..b87ca681947 100644
--- a/media-gfx/inkscape/inkscape-9999.ebuild
+++ b/media-gfx/inkscape/inkscape-9999.ebuild
@@ -61,7 +61,7 @@ COMMON_DEPEND="${PYTHON_DEPS}
 	dbus? ( dev-libs/dbus-glib )
 	exif? ( media-libs/libexif )
 	imagemagick? (
-		!graphicsmagick? ( <media-gfx/imagemagick-7:=[cxx] )
+		!graphicsmagick? ( media-gfx/imagemagick:=[cxx] )
 		graphicsmagick? ( media-gfx/graphicsmagick:=[cxx] )
 	)
 	jemalloc? ( dev-libs/jemalloc )
@@ -96,14 +96,9 @@ DEPEND="${COMMON_DEPEND}
 	>=dev-libs/boost-1.65
 "
 
-S="${WORKDIR}/${MY_P}"
-
 RESTRICT="test"
 
-PATCHES=(
-	"${FILESDIR}"/${PN}-1.0_beta1-detect-imagemagick.patch
-	"${FILESDIR}"/${PN}-1.0_beta1-do-not-compress-man.patch
-)
+S="${WORKDIR}/${MY_P}"
 
 pkg_pretend() {
 	if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
@@ -154,6 +149,10 @@ src_install() {
 
 	find "${ED}" -type f -name "*.la" -delete || die
 
+	find "${ED}"/usr/share/man -type f -maxdepth 3 -name '*.bz2' -exec bzip2 -d {} \; || die
+
+	find "${ED}"/usr/share/man -type f -maxdepth 3 -name '*.gz' -exec gzip -d {} \; || die
+
 	# No extensions are present in beta1
 	local extdir="${ED}"/usr/share/${PN}/extensions
 


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2020-07-02  8:18 Mikle Kolyada
  0 siblings, 0 replies; 25+ messages in thread
From: Mikle Kolyada @ 2020-07-02  8:18 UTC (permalink / raw
  To: gentoo-commits

commit:     c64d6cb6607ce44d0857d0c21a4866fd85ec78c9
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Thu Jul  2 08:17:17 2020 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Thu Jul  2 08:18:08 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c64d6cb6

media-gfx/inkscape: Drop old

Package-Manager: Portage-2.3.99, Repoman-2.3.23
Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 media-gfx/inkscape/Manifest                        |   1 -
 .../inkscape/files/inkscape-0.48.4-epython.patch   |  11 --
 .../files/inkscape-0.91_pre3-cppflags.patch        |  14 --
 .../inkscape/files/inkscape-0.91_pre3-exif.patch   |  12 --
 .../inkscape/files/inkscape-0.91_pre3-sk-man.patch |  15 --
 .../inkscape/files/inkscape-0.92.1-automagic.patch | 154 -------------------
 .../inkscape/files/inkscape-0.92.1-desktop.patch   |  12 --
 .../files/inkscape-0.92.4-glibmm-2.62.patch        |  14 --
 .../files/inkscape-0.92.4-poppler-0.76.0.patch     |  44 ------
 .../files/inkscape-0.92.4-poppler-0.82.0.patch     |  76 ----------
 .../files/inkscape-0.92.4-poppler-0.83.0.patch     |  92 ------------
 media-gfx/inkscape/inkscape-0.92.4-r3.ebuild       | 166 ---------------------
 media-gfx/inkscape/metadata.xml                    |   2 -
 13 files changed, 613 deletions(-)

diff --git a/media-gfx/inkscape/Manifest b/media-gfx/inkscape/Manifest
index 88b7c565b70..7007e82d78c 100644
--- a/media-gfx/inkscape/Manifest
+++ b/media-gfx/inkscape/Manifest
@@ -1,2 +1 @@
-DIST inkscape-0.92.4.tar.bz2 31929728 BLAKE2B 892bf4ed913019b27a9b8897e3ae32c44152163ded0eb345d59915ffdc9818d29f210de3294ef1b05601141185b5e3b10779778551b860f31e7df5c659492c77 SHA512 b9034605a79cd8aea808edf42e284819951ae1ea67778f0922f4c10224e94aca6c844acbc2294625773f0a7047d4e32ccdada876238a792a2c17db172c88e120
 DIST inkscape-1.0.tar.xz 31935616 BLAKE2B 096ef6ccfd519118acffa3b15302a2d92f94976f37cf58c1fdab79abb64a2de14d02e1199364c71265a332f57809603ec1b6f4f34b90e910376e1cbc5c6d1cb8 SHA512 37c18079eb926fd6874deee95e4008bae165c5e52d05cb53bbc8f4a48eedd0e0ab6b3e5dfbb23709169187bfe8eb5aa44d576268667f2566a2cd4dd5426554f0

diff --git a/media-gfx/inkscape/files/inkscape-0.48.4-epython.patch b/media-gfx/inkscape/files/inkscape-0.48.4-epython.patch
deleted file mode 100644
index 2e2483c1b1e..00000000000
--- a/media-gfx/inkscape/files/inkscape-0.48.4-epython.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- inkscape-0.48.4/src/extension/implementation/script.cpp
-+++ inkscape-0.48.4/src/extension/implementation/script.cpp
-@@ -89,7 +89,7 @@
- #ifdef WIN32
-         {"python", "python-interpreter", "pythonw" },
- #else
--        {"python", "python-interpreter", "python" },
-+        {"python", "python-interpreter", "@EPYTHON@" },
- #endif
-         {"ruby",   "ruby-interpreter",   "ruby"   },
-         {"shell",  "shell-interpreter",  "sh"     },

diff --git a/media-gfx/inkscape/files/inkscape-0.91_pre3-cppflags.patch b/media-gfx/inkscape/files/inkscape-0.91_pre3-cppflags.patch
deleted file mode 100644
index 94dbf881de0..00000000000
--- a/media-gfx/inkscape/files/inkscape-0.91_pre3-cppflags.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Gentoo enables _FORTIFY_SOURCE by default so this avoids redefined warnings.
-
---- inkscape-0.91pre3/configure.ac
-+++ inkscape-0.91pre3/configure.ac
-@@ -72,9 +72,6 @@
-   ####
-   # Generic cpp flags...
- 
--  # What is just plain "-W" ?
--  # Fortify source requires -O2 or higher, which is handled with newer autoconf
--  CPPFLAGS="-W -D_FORTIFY_SOURCE=2 $CPPFLAGS"
-   # Enable format and format security warnings
-   CPPFLAGS="-Wformat -Wformat-security $CPPFLAGS"
-   # Enable all default warnings

diff --git a/media-gfx/inkscape/files/inkscape-0.91_pre3-exif.patch b/media-gfx/inkscape/files/inkscape-0.91_pre3-exif.patch
deleted file mode 100644
index 4180fd4d2ef..00000000000
--- a/media-gfx/inkscape/files/inkscape-0.91_pre3-exif.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Actually try to use EXIF support if it's enabled.
-
---- inkscape-0.91pre3/src/extension/internal/image-resolution.cpp
-+++ inkscape-0.91pre3/src/extension/internal/image-resolution.cpp
-@@ -18,6 +18,7 @@
- #include <png.h>
- 
- #ifdef HAVE_EXIF
-+#define IR_TRY_EXIF 1
- #include <math.h>
- #include <libexif/exif-data.h>
- #endif

diff --git a/media-gfx/inkscape/files/inkscape-0.91_pre3-sk-man.patch b/media-gfx/inkscape/files/inkscape-0.91_pre3-sk-man.patch
deleted file mode 100644
index f14e7d152e1..00000000000
--- a/media-gfx/inkscape/files/inkscape-0.91_pre3-sk-man.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Install sk man page to the right directory.
-
-https://bugs.gentoo.org/show_bug.cgi?id=481276
-
---- inkscape-0.91pre3/Makefile.am
-+++ inkscape-0.91pre3/Makefile.am
-@@ -561,7 +561,7 @@
- manja_DATA = inkscape.ja.1
- manjadir = $(mandir)/ja/man1
- 
--mansk_DATA = inkscape.ja.1
-+mansk_DATA = inkscape.sk.1
- manskdir = $(mandir)/sk/man1
- 
- manzhtw_DATA = inkscape.zh_TW.1

diff --git a/media-gfx/inkscape/files/inkscape-0.92.1-automagic.patch b/media-gfx/inkscape/files/inkscape-0.92.1-automagic.patch
deleted file mode 100644
index db069d1e87c..00000000000
--- a/media-gfx/inkscape/files/inkscape-0.92.1-automagic.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-diff -ruN inkscape-0.92.1.orig/configure.ac inkscape-0.92.1/configure.ac
---- inkscape-0.92.1.orig/configure.ac	2017-02-14 00:46:57.000000000 +0100
-+++ inkscape-0.92.1/configure.ac	2017-05-12 21:20:45.880842301 +0200
-@@ -201,11 +201,14 @@
- dnl Check for OpenMP 
- dnl ******************************
- AC_OPENMP
--if test "x$ac_cv_prog_cxx_openmp" != "xunsupported"; then
--	openmp_ok=yes
--	dnl We have it, now set up the flags
--	CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
--	AC_DEFINE(HAVE_OPENMP, 1, [Use OpenMP])
-+openmp_ok="no"
-+if test "x$enable_openmp" = "xyes"; then
-+	if test "x$ac_cv_prog_cxx_openmp" != "xunsupported"; then
-+		openmp_ok=yes
-+		dnl We have it, now set up the flags
-+		CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
-+		AC_DEFINE(HAVE_OPENMP, 1, [Use OpenMP])
-+	fi
- fi
- 
- dnl ********************
-@@ -222,9 +225,15 @@
- dnl ******************************
- dnl Check for libexif
- dnl ******************************
--PKG_CHECK_MODULES(EXIF, libexif, exif_ok=yes, exif_ok=no)
--if test "x$exif_ok" = "xyes"; then
--   AC_DEFINE(HAVE_EXIF, 1, [Use libexif])
-+AC_ARG_ENABLE(exif,
-+	AS_HELP_STRING([--enable-exif], [compile with EXIF support]),
-+	enable_exif=$enableval,enable_exif=no)
-+
-+if test "x$enable_exif" = "xyes"; then
-+	PKG_CHECK_MODULES(EXIF, libexif, exif_ok=yes, exif_ok=no)
-+	if test "x$exif_ok" = "xyes"; then
-+		AC_DEFINE(HAVE_EXIF, 1, [Use libexif])
-+	fi
- fi
- AC_SUBST(EXIF_LIBS)
- AC_SUBST(EXIF_CFLAGS)
-@@ -232,10 +241,16 @@
- dnl ******************************
- dnl Check for libjpeg
- dnl ******************************
--AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [AC_CHECK_HEADER(jpeglib.h, jpeg_ok=yes, jpeg_ok=no)], jpeg_ok=no)
--if test "x$jpeg_ok" = "xyes"; then
--   LIBS="-ljpeg $LIBS"
--   AC_DEFINE(HAVE_JPEG, 1, [Use libjpeg])
-+AC_ARG_ENABLE(jpeg,
-+	AS_HELP_STRING([--enable-jpeg], [compile with JPEG support]),
-+	enable_jpeg=$enableval,enable_jpeg=no)
-+
-+if test "x$enable_jpeg" = "xyes"; then
-+	AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [AC_CHECK_HEADER(jpeglib.h, jpeg_ok=yes, jpeg_ok=no)], jpeg_ok=no)
-+	if test "x$jpeg_ok" = "xyes"; then
-+		LIBS="-ljpeg $LIBS"
-+		AC_DEFINE(HAVE_JPEG, 1, [Use libjpeg])
-+	fi
- fi
- 
- dnl This check is to get a FIONREAD definition on Solaris 8
-@@ -614,9 +629,16 @@
- dnl Check for ImageMagick Magick++ 
- dnl ******************************
- 
--PKG_CHECK_MODULES(IMAGEMAGICK, ImageMagick++, magick_ok=yes, magick_ok=no)
--if test "x$magick_ok" = "xyes"; then
--      AC_DEFINE(WITH_IMAGE_MAGICK,1,[Image Magick++ support for bitmap effects])
-+AC_ARG_ENABLE(magick,
-+       AS_HELP_STRING([--enable-magick], [compile with Image Magick++ support for bitmap effects]),
-+       enable_magick=$enableval,enable_magick=no)
-+
-+magick_ok="no"
-+if test "x$enable_magick" = "xyes"; then
-+	PKG_CHECK_MODULES(IMAGEMAGICK, Magick++, magick_ok=yes, magick_ok=no)
-+	if test "x$magick_ok" = "xyes"; then
-+		AC_DEFINE(WITH_IMAGE_MAGICK,1,[Image Magick++ support for bitmap effects])
-+	fi
- fi
- AM_CONDITIONAL(USE_IMAGE_MAGICK, test "x$magick_ok" = "xyes")
- 
-@@ -712,6 +734,10 @@
- 
- AC_CHECK_HEADER([boost/unordered_set.hpp], [AC_DEFINE(HAVE_BOOST_UNORDERED_SET, 1, [Boost unordered_set (Boost >= 1.36)])], [])
- 
-+
-+AC_ARG_WITH([gtkspell],
-+	AS_HELP_STRING([--without-gtkspell], [disable gtk spelling widget]),[with_gtkspell=$withval], [with_gtkspell=yes])
-+
- dnl *********************************
- dnl   Allow experimental GTK+3 build
- dnl *********************************
-@@ -723,11 +749,13 @@
- if test "x$enable_gtk3" = "xyes"; then
- 
- 	ink_spell_pkg=
--	if pkg-config --exists gtkspell-3.0; then
--		ink_spell_pkg=gtkspell-3.0
--		AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget])
-+	if test "x$with_gtkspell" = "xyes"; then
-+		if pkg-config --exists gtkspell-3.0; then
-+			ink_spell_pkg=gtkspell-3.0
-+			AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget])
-+		fi
- 	fi
--
-+	
- 	PKG_CHECK_MODULES(GTK,
- 			  gtk+-3.0  >= 3.8
- 			  gdk-3.0   >= 3.8
-@@ -804,11 +832,13 @@
- else
- 
- 	ink_spell_pkg=
--	if pkg-config --exists gtkspell-2.0; then
--		ink_spell_pkg=gtkspell-2.0
--		AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget])
-+	if test "x$with_gtkspell" = "xyes"; then
-+		if pkg-config --exists gtkspell-2.0; then
-+			ink_spell_pkg=gtkspell-2.0
-+			AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget])
-+		fi
- 	fi
--
-+	
- 	PKG_CHECK_MODULES(GTK,
- 			  gtk+-2.0  >= 2.24
- 			  $ink_spell_pkg)
-@@ -931,12 +961,17 @@
- dnl **************************
- dnl Check for aspell 
- dnl ******************************
--AC_CHECK_LIB(aspell, new_aspell_config, [AC_CHECK_HEADER(aspell.h, aspell_ok=yes, aspell_ok=no)], aspell_ok=no, -lz -lm)
--if test "x$aspell_ok" = "xyes"; then
--	AC_DEFINE(HAVE_ASPELL, 1, [Use aspell for built-in spellchecker])
--  INKSCAPE_LIBS="$INKSCAPE_LIBS -laspell"
--else
--	AC_MSG_CHECKING([Aspell not found, spell checker will be disabled])
-+AC_ARG_WITH([aspell],
-+	AS_HELP_STRING([--without-aspell], [disable aspell spell checker]),[with_aspell=$withval], [with_aspell=yes])
-+
-+if test "x$with_aspell" = "xyes"; then
-+	AC_CHECK_LIB(aspell, new_aspell_config, [AC_CHECK_HEADER(aspell.h, aspell_ok=yes, aspell_ok=no)], aspell_ok=no, -lz -lm)
-+	if test "x$aspell_ok" = "xyes"; then
-+		AC_DEFINE(HAVE_ASPELL, 1, [Use aspell for built-in spellchecker])
-+		INKSCAPE_LIBS="$INKSCAPE_LIBS -laspell"
-+	else
-+		AC_MSG_CHECKING([Aspell not found, spell checker will be disabled])
-+	fi
- fi
- 
- dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.

diff --git a/media-gfx/inkscape/files/inkscape-0.92.1-desktop.patch b/media-gfx/inkscape/files/inkscape-0.92.1-desktop.patch
deleted file mode 100644
index be49ea505d3..00000000000
--- a/media-gfx/inkscape/files/inkscape-0.92.1-desktop.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ruN inkscape-0.92.1.orig/inkscape.desktop.in inkscape-0.92.1/inkscape.desktop.in
---- inkscape-0.92.1.orig/inkscape.desktop.in	2017-02-14 00:46:57.000000000 +0100
-+++ inkscape-0.92.1/inkscape.desktop.in	2017-05-12 21:25:01.628853033 +0200
-@@ -6,7 +6,7 @@
- _Comment=Create and edit Scalable Vector Graphics images
- _Keywords=image;editor;vector;drawing;
- Type=Application
--Categories=Graphics;VectorGraphics;GTK;
-+Categories=Graphics;2DGraphics;VectorGraphics;GTK;
- MimeType=image/svg+xml;image/svg+xml-compressed;application/vnd.corel-draw;application/pdf;application/postscript;image/x-eps;application/illustrator;image/cgm;image/x-wmf;application/x-xccx;application/x-xcgm;application/x-xcdt;application/x-xsk1;application/x-xcmx;image/x-xcdr;application/visio;application/x-visio;application/vnd.visio;application/visio.drawing;application/vsd;application/x-vsd;image/x-vsd;
- Exec=inkscape %F
- TryExec=inkscape

diff --git a/media-gfx/inkscape/files/inkscape-0.92.4-glibmm-2.62.patch b/media-gfx/inkscape/files/inkscape-0.92.4-glibmm-2.62.patch
deleted file mode 100644
index 7a35d8d55ad..00000000000
--- a/media-gfx/inkscape/files/inkscape-0.92.4-glibmm-2.62.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -Naur a/configure.ac b/configure.ac
---- a/configure.ac	2019-01-15 04:29:27.000000000 +0000
-+++ b/configure.ac	2020-04-03 18:39:26.372870987 +0000
-@@ -879,10 +879,6 @@
- if test "x$enable_strict_build" != "xno"; then
- 	CPPFLAGS="-DGDKMM_DISABLE_DEPRECATED $CPPFLAGS"
- 	
--	# Ensure that no deprecated glibmm symbols are introduced.
--	# lp:inkscape builds cleanly with this option at r10957
--	CPPFLAGS="-DGLIBMM_DISABLE_DEPRECATED $CPPFLAGS"
--	
- 	dnl Pango 1.32.4 uses a deprecated Glib symbol:
- 	dnl   https://bugzilla.gnome.org/show_bug.cgi?id=689843
- 	dnl 

diff --git a/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.76.0.patch b/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.76.0.patch
deleted file mode 100644
index 11383d9aa33..00000000000
--- a/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.76.0.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From dc25406853353320078eca22cf817fb052c97082 Mon Sep 17 00:00:00 2001
-From: Marc Jeanmougin <marc@jeanmougin.fr>
-Date: Wed, 24 Apr 2019 14:11:26 +0200
-Subject: [PATCH] Tentative fix for poppler 0.76
-
----
- src/extension/internal/pdfinput/pdf-parser.cpp           | 2 +-
- src/extension/internal/pdfinput/poppler-transition-api.h | 7 +++++++
- 2 files changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
-index 2981d6ee51..ddbff7671f 100644
---- a/src/extension/internal/pdfinput/pdf-parser.cpp
-+++ b/src/extension/internal/pdfinput/pdf-parser.cpp
-@@ -426,7 +426,7 @@ void PdfParser::parse(Object *obj, GBool topLevel) {
- 	error(errInternal, -1, "Weird page contents");
-     	return;
-   }
--  parser = new Parser(xref, new Lexer(xref, obj), gFalse);
-+  parser = new _POPPLER_NEW_PARSER(xref, obj);
-   go(topLevel);
-   delete parser;
-   parser = NULL;
-diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h
-index 6e4dde7dee..21a60702fa 100644
---- a/src/extension/internal/pdfinput/poppler-transition-api.h
-+++ b/src/extension/internal/pdfinput/poppler-transition-api.h
-@@ -3,6 +3,13 @@
- 
- #include <glib/poppler-features.h>
- 
-+#if POPPLER_CHECK_VERSION(0, 76, 0)
-+#define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, obj, gFalse)
-+#else
-+#define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, new Lexer(xref, obj), gFalse)
-+#endif
-+
-+
- #if POPPLER_CHECK_VERSION(0, 72, 0)
- #define getCString c_str
- #endif
--- 
-2.18.1
-

diff --git a/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.82.0.patch b/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.82.0.patch
deleted file mode 100644
index 73cc4f97c37..00000000000
--- a/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.82.0.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 9b2f1a99bd8a411926925ac0c91f50289c7db8ee Mon Sep 17 00:00:00 2001
-From: Thomas Holder <thomas@thomas-holder.de>
-Date: Sat, 16 Nov 2019 14:12:24 +0100
-Subject: [PATCH] fix poppler 0.82.0 build
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Backport of 324c7903d9fd62e74c042c31477299be3b980fd2 from master by
-Andreas K. Hüttel <dilfridge@gentoo.org>
----
- src/extension/internal/pdfinput/pdf-parser.cpp           | 2 +-
- src/extension/internal/pdfinput/poppler-transition-api.h | 6 ++++++
- src/extension/internal/pdfinput/svg-builder.cpp          | 2 +-
- src/extension/internal/pdfinput/svg-builder.h            | 2 +-
- 4 files changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
-index ddbff7671f..e71bb79381 100644
---- a/src/extension/internal/pdfinput/pdf-parser.cpp
-+++ b/src/extension/internal/pdfinput/pdf-parser.cpp
-@@ -2414,7 +2414,7 @@ void PdfParser::doShowText(GooString *s) {
-   int wMode;
-   double riseX, riseY;
-   CharCode code;
--  Unicode *u = NULL;
-+  Unicode _POPPLER_CONST_82 *u = NULL;
-   double x, y, dx, dy, tdx, tdy;
-   double originX, originY, tOriginX, tOriginY;
-   double oldCTM[6], newCTM[6];
-diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h
-index 21a60702fa..93c0f99ba1 100644
---- a/src/extension/internal/pdfinput/poppler-transition-api.h
-+++ b/src/extension/internal/pdfinput/poppler-transition-api.h
-@@ -3,6 +3,12 @@
- 
- #include <glib/poppler-features.h>
- 
-+#if POPPLER_CHECK_VERSION(0, 82, 0)
-+#define _POPPLER_CONST_82 const
-+#else
-+#define _POPPLER_CONST_82
-+#endif
-+
- #if POPPLER_CHECK_VERSION(0, 76, 0)
- #define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, obj, gFalse)
- #else
-diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp
-index 1cefb92abd..ea2940ffe1 100644
---- a/src/extension/internal/pdfinput/svg-builder.cpp
-+++ b/src/extension/internal/pdfinput/svg-builder.cpp
-@@ -1379,7 +1379,7 @@ void SvgBuilder::beginString(GfxState *state) {
- void SvgBuilder::addChar(GfxState *state, double x, double y,
-                          double dx, double dy,
-                          double originX, double originY,
--                         CharCode /*code*/, int /*nBytes*/, Unicode *u, int uLen) {
-+                         CharCode /*code*/, int /*nBytes*/, Unicode const *u, int uLen) {
- 
- 
-     bool is_space = ( uLen == 1 && u[0] == 32 );
-diff --git a/src/extension/internal/pdfinput/svg-builder.h b/src/extension/internal/pdfinput/svg-builder.h
-index 34b42e17b8..78e302081f 100644
---- a/src/extension/internal/pdfinput/svg-builder.h
-+++ b/src/extension/internal/pdfinput/svg-builder.h
-@@ -141,7 +141,7 @@ public:
-     void addChar(GfxState *state, double x, double y,
-                  double dx, double dy,
-                  double originX, double originY,
--                 CharCode code, int nBytes, Unicode *u, int uLen);
-+                 CharCode code, int nBytes, Unicode const *u, int uLen);
-     void beginTextObject(GfxState *state);
-     void endTextObject(GfxState *state);
- 
--- 
-2.24.0
-

diff --git a/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.83.0.patch b/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.83.0.patch
deleted file mode 100644
index bcfb1cd482e..00000000000
--- a/media-gfx/inkscape/files/inkscape-0.92.4-poppler-0.83.0.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 51351358a62acb6887eab49bc0dc4a7a3d18c17a Mon Sep 17 00:00:00 2001
-From: Jan Tojnar <jtojnar@gmail.com>
-Date: Tue, 3 Dec 2019 00:17:05 +0100
-Subject: [PATCH] Fix build with Poppler 0.83.0
-
-Fixed for gentoo by dilfridge@gentoo.org
-
-diff -ruN inkscape-0.92.4.orig/src/extension/internal/pdfinput/pdf-input.cpp inkscape-0.92.4/src/extension/internal/pdfinput/pdf-input.cpp
---- inkscape-0.92.4.orig/src/extension/internal/pdfinput/pdf-input.cpp	2019-01-15 05:29:27.000000000 +0100
-+++ inkscape-0.92.4/src/extension/internal/pdfinput/pdf-input.cpp	2020-01-06 10:55:05.105063212 +0100
-@@ -689,12 +689,12 @@
-         //
-         gchar const *poppler_datadir = g_getenv("POPPLER_DATADIR");
-         if (poppler_datadir != NULL) {
--            globalParams = new GlobalParams(poppler_datadir);
-+            globalParams = _POPPLER_NEW_GLOBAL_PARAMS(poppler_datadir);
-         } else {
--            globalParams = new GlobalParams();
-+            globalParams = _POPPLER_NEW_GLOBAL_PARAMS();
-         }
- #else
--        globalParams = new GlobalParams();
-+        globalParams = _POPPLER_NEW_GLOBAL_PARAMS();
- #endif // ENABLE_OSX_APP_LOCATIONS
-     }
- 
-diff -ruN inkscape-0.92.4.orig/src/extension/internal/pdfinput/pdf-parser.cpp inkscape-0.92.4/src/extension/internal/pdfinput/pdf-parser.cpp
---- inkscape-0.92.4.orig/src/extension/internal/pdfinput/pdf-parser.cpp	2020-01-06 10:53:44.947229010 +0100
-+++ inkscape-0.92.4/src/extension/internal/pdfinput/pdf-parser.cpp	2020-01-06 10:56:49.611773932 +0100
-@@ -272,7 +272,7 @@
-     ClipHistoryEntry *save();
-     ClipHistoryEntry *restore();
-     GBool hasSaves() { return saved != NULL; }
--    void setClip(GfxPath *newClipPath, GfxClipType newClipType = clipNormal);
-+    void setClip(_POPPLER_CONST_83 GfxPath *newClipPath, GfxClipType newClipType = clipNormal);
-     GfxPath *getClipPath() { return clipPath; }
-     GfxClipType getClipType() { return clipType; }
- 
-@@ -3394,7 +3394,7 @@
-     }
- }
- 
--void ClipHistoryEntry::setClip(GfxPath *clipPathA, GfxClipType clipTypeA) {
-+void ClipHistoryEntry::setClip(_POPPLER_CONST_83 GfxPath *clipPathA, GfxClipType clipTypeA) {
-     // Free previous clip path
-     if (clipPath) {
-         delete clipPath;
-diff -ruN inkscape-0.92.4.orig/src/extension/internal/pdfinput/poppler-transition-api.h inkscape-0.92.4/src/extension/internal/pdfinput/poppler-transition-api.h
---- inkscape-0.92.4.orig/src/extension/internal/pdfinput/poppler-transition-api.h	2020-01-06 10:53:44.947229010 +0100
-+++ inkscape-0.92.4/src/extension/internal/pdfinput/poppler-transition-api.h	2020-01-06 10:55:05.107063491 +0100
-@@ -3,6 +3,12 @@
- 
- #include <glib/poppler-features.h>
- 
-+#if POPPLER_CHECK_VERSION(0, 83, 0)
-+#define _POPPLER_CONST_83 const
-+#else
-+#define _POPPLER_CONST_83
-+#endif
-+
- #if POPPLER_CHECK_VERSION(0, 82, 0)
- #define _POPPLER_CONST_82 const
- #else
-@@ -15,6 +21,12 @@
- #define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, new Lexer(xref, obj), gFalse)
- #endif
- 
-+#if POPPLER_CHECK_VERSION(0, 83, 0)
-+#define _POPPLER_NEW_GLOBAL_PARAMS(args...) std::unique_ptr<GlobalParams>(new GlobalParams(args))
-+#else
-+#define _POPPLER_NEW_GLOBAL_PARAMS(args...) new GlobalParams(args)
-+#endif
-+
- 
- #if POPPLER_CHECK_VERSION(0, 72, 0)
- #define getCString c_str
-diff -ruN inkscape-0.92.4.orig/src/extension/internal/pdfinput/svg-builder.cpp inkscape-0.92.4/src/extension/internal/pdfinput/svg-builder.cpp
---- inkscape-0.92.4.orig/src/extension/internal/pdfinput/svg-builder.cpp	2020-01-06 10:53:44.948229017 +0100
-+++ inkscape-0.92.4/src/extension/internal/pdfinput/svg-builder.cpp	2020-01-06 10:55:05.107063491 +0100
-@@ -264,10 +264,10 @@
- /**
-  * \brief Generates a SVG path string from poppler's data structure
-  */
--static gchar *svgInterpretPath(GfxPath *path) {
-+static gchar *svgInterpretPath(_POPPLER_CONST_83 GfxPath *path) {
-     Inkscape::SVG::PathString pathString;
-     for (int i = 0 ; i < path->getNumSubpaths() ; ++i ) {
--        GfxSubpath *subpath = path->getSubpath(i);
-+        _POPPLER_CONST_83 GfxSubpath *subpath = path->getSubpath(i);
-         if (subpath->getNumPoints() > 0) {
-             pathString.moveTo(subpath->getX(0), subpath->getY(0));
-             int j = 1;

diff --git a/media-gfx/inkscape/inkscape-0.92.4-r3.ebuild b/media-gfx/inkscape/inkscape-0.92.4-r3.ebuild
deleted file mode 100644
index 1b9241b51aa..00000000000
--- a/media-gfx/inkscape/inkscape-0.92.4-r3.ebuild
+++ /dev/null
@@ -1,166 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="xml"
-inherit autotools flag-o-matic gnome2-utils xdg toolchain-funcs python-single-r1
-
-MY_P="${P/_/}"
-
-DESCRIPTION="SVG based generic vector-drawing program"
-HOMEPAGE="https://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 ~arm ~hppa ppc ppc64 x86"
-IUSE="cdr dia dbus exif gnome imagemagick openmp postscript inkjar jpeg latex"
-IUSE+=" lcms nls spell static-libs visio wpg uniconvertor"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-COMMON_DEPEND="${PYTHON_DEPS}
-	>=app-text/poppler-0.26.0:=[cairo]
-	>=dev-cpp/glibmm-2.54.1
-	>=dev-cpp/gtkmm-2.18.0:2.4
-	>=dev-cpp/cairomm-1.9.8
-	>=dev-libs/boehm-gc-7.1:=
-	>=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
-	media-gfx/potrace
-	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? (
-		app-text/libwpg:0.3
-		dev-libs/librevenge
-		media-libs/libcdr
-	)
-	dbus? ( dev-libs/dbus-glib )
-	exif? ( media-libs/libexif )
-	gnome? ( >=gnome-base/gnome-vfs-2.0 )
-	imagemagick? ( <media-gfx/imagemagick-7:=[cxx] )
-	jpeg? ( virtual/jpeg:0 )
-	lcms? ( media-libs/lcms:2 )
-	spell? (
-		app-text/aspell
-		app-text/gtkspell:2
-	)
-	visio? (
-		app-text/libwpg:0.3
-		dev-libs/librevenge
-		media-libs/libvisio
-	)
-	wpg? (
-		app-text/libwpg:0.3
-		dev-libs/librevenge
-	)
-"
-# 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}
-	$(python_gen_cond_dep '
-		|| (
-			dev-python/numpy-python2[${PYTHON_MULTI_USEDEP}]
-			dev-python/numpy[${PYTHON_MULTI_USEDEP}]
-		)
-	')
-	uniconvertor? ( media-gfx/uniconvertor )
-	dia? ( app-office/dia )
-	latex? (
-		media-gfx/pstoedit[plotutils]
-		app-text/dvipsk
-		app-text/texlive-core
-	)
-	postscript? ( app-text/ghostscript-gpl )
-"
-DEPEND="${COMMON_DEPEND}
-	>=dev-libs/boost-1.36
-	dev-util/glib-utils
-	>=dev-util/intltool-0.40
-	>=sys-devel/gettext-0.17
-	virtual/pkgconfig
-"
-
-PATCHES=(
-	"${FILESDIR}/${PN}-0.92.1-automagic.patch"
-	"${FILESDIR}/${PN}-0.91_pre3-cppflags.patch"
-	"${FILESDIR}/${PN}-0.92.1-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.92.4-poppler-0.76.0.patch" #684246
-	"${FILESDIR}/${PN}-0.92.4-poppler-0.82.0.patch"
-	"${FILESDIR}/${PN}-0.92.4-poppler-0.83.0.patch"
-	"${FILESDIR}/${PN}-0.92.4-glibmm-2.62.patch" #715394
-)
-
-S="${WORKDIR}/${MY_P}"
-
-RESTRICT="test"
-
-pkg_pretend() {
-	if [[ ${MERGE_TYPE} != binary ]] && 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
-
-	local myeconfargs=(
-		$(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)
-	)
-	econf "${myeconfargs[@]}"
-}
-
-src_compile() {
-	emake -C src helper/sp-marshal.h #686304
-	emake AR="$(tc-getAR)"
-}
-
-src_install() {
-	default
-
-	find "${ED}" -name "*.la" -delete || die
-	python_optimize "${ED%/}"/usr/share/${PN}/extensions
-}

diff --git a/media-gfx/inkscape/metadata.xml b/media-gfx/inkscape/metadata.xml
index 73af4608f62..67658aa0149 100644
--- a/media-gfx/inkscape/metadata.xml
+++ b/media-gfx/inkscape/metadata.xml
@@ -13,11 +13,9 @@
 		<flag name="cdr">Enable support for CorelDRAW files via <pkg>media-libs/libcdr</pkg></flag>
 		<flag name="dia">Enable DIA flow chart import via <pkg>app-office/dia</pkg></flag>
 		<flag name="inkjar">Enable support for OpenOffice.org SVG jar files</flag>
-		<flag name="latex">Enable rendering of LaTeX formulas</flag>
 		<flag name="svg2">Enable support for new SVG2 features</flag>
 		<flag name="visio">Enable support for Microsoft Visio diagrams via <pkg>media-libs/libvisio</pkg></flag>
 		<flag name="wpg">Enable support for WordPerfect graphics via <pkg>app-text/libwpg</pkg></flag>
-		<flag name="uniconvertor">Enable conversion of vector graphic files via <pkg>media-gfx/uniconvertor</pkg> (needs Python 2)</flag>
 	</use>
 	<upstream>
 		<remote-id type="gitlab">inkscape/inkscape</remote-id>


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2020-08-26  6:49 Mikle Kolyada
  0 siblings, 0 replies; 25+ messages in thread
From: Mikle Kolyada @ 2020-08-26  6:49 UTC (permalink / raw
  To: gentoo-commits

commit:     c36c147924e3eb82b7c120c85fd996f621fec6ea
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 26 06:49:11 2020 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Wed Aug 26 06:49:52 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c36c1479

media-gfx/inkscape: fix missing atomic include

Closes: https://bugs.gentoo.org/737596
Package-Manager: Portage-2.3.103, Repoman-2.3.23
Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 media-gfx/inkscape/files/missing_atomic_include.patch | 10 ++++++++++
 media-gfx/inkscape/inkscape-1.0-r1.ebuild             |  4 ++++
 2 files changed, 14 insertions(+)

diff --git a/media-gfx/inkscape/files/missing_atomic_include.patch b/media-gfx/inkscape/files/missing_atomic_include.patch
new file mode 100644
index 00000000000..b298550c5c8
--- /dev/null
+++ b/media-gfx/inkscape/files/missing_atomic_include.patch
@@ -0,0 +1,10 @@
+--- a/src/ui/tool/node.cpp	2020-05-01 15:18:52.000000000 +0200
++++ b/src/ui/tool/node.cpp	2020-08-18 01:25:05.266412299 +0200
+@@ -7,6 +7,7 @@
+  * Released under GNU GPL v2+, read the file 'COPYING' for more information.
+  */
+ 
++#include <atomic>
+ #include <iostream>
+ #include <stdexcept>
+ #include <boost/utility.hpp>

diff --git a/media-gfx/inkscape/inkscape-1.0-r1.ebuild b/media-gfx/inkscape/inkscape-1.0-r1.ebuild
index b137a124f30..0e5ca71a8f9 100644
--- a/media-gfx/inkscape/inkscape-1.0-r1.ebuild
+++ b/media-gfx/inkscape/inkscape-1.0-r1.ebuild
@@ -20,6 +20,10 @@ openmp postscript spell static-libs svg2 visio wpg"
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
 
+PATCHES=(
+	"${FILESDIR}/missing_atomic_include.patch"
+)
+
 BDEPEND="
 	dev-util/glib-utils
 	>=dev-util/intltool-0.40


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2021-04-14 19:01 Mikle Kolyada
  0 siblings, 0 replies; 25+ messages in thread
From: Mikle Kolyada @ 2021-04-14 19:01 UTC (permalink / raw
  To: gentoo-commits

commit:     027176a5c786f7eb1beaf62c0946aa45fef943e2
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 14 19:00:42 2021 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Wed Apr 14 19:01:18 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=027176a5

media-gfx/inkscape: fix glib-2.60 branch compat

Closes: https://bugs.gentoo.org/777864
Package-Manager: Portage-3.0.17, Repoman-3.0.2
Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 media-gfx/inkscape/files/glib-2.67.3.patch  | 65 +++++++++++++++++++++++++++++
 media-gfx/inkscape/inkscape-1.0.2-r1.ebuild |  4 ++
 2 files changed, 69 insertions(+)

diff --git a/media-gfx/inkscape/files/glib-2.67.3.patch b/media-gfx/inkscape/files/glib-2.67.3.patch
new file mode 100644
index 00000000000..b959bcd76fd
--- /dev/null
+++ b/media-gfx/inkscape/files/glib-2.67.3.patch
@@ -0,0 +1,65 @@
+From eb24388f1730918edd9565d9e5d09340ec0b3b08 Mon Sep 17 00:00:00 2001
+From: Harald van Dijk <harald@gigawatt.nl>
+Date: Wed, 17 Feb 2021 09:13:49 +0000
+Subject: [PATCH] Fix build with glib 2.67.3.
+
+As of glib 2.67.3, <glib.h> can no longer be included in extern "C"
+blocks. It was indirectly included by both "types.h" and "color.h".
+"types.h" already does not need to be wrapped in an extern "C" block,
+"color.h" does but can be modified not to, so with that changed they can
+be moved out.
+---
+ src/3rdparty/autotrace/autotrace.h | 6 +++---
+ src/3rdparty/autotrace/color.h     | 7 +++++++
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/src/3rdparty/autotrace/autotrace.h b/src/3rdparty/autotrace/autotrace.h
+index 2ce6f272a9..e56be9a74c 100644
+--- a/src/3rdparty/autotrace/autotrace.h
++++ b/src/3rdparty/autotrace/autotrace.h
+@@ -23,6 +23,9 @@
+ 
+ #include <stdio.h>
+ 
++#include "types.h"
++#include "color.h"
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif                          /* __cplusplus */
+@@ -35,9 +38,6 @@ extern "C" {
+  * Typedefs
+  * ===================================================================== */
+ 
+-#include "types.h"
+-#include "color.h"
+-
+ /* Third degree is the highest we deal with.  */
+   enum _at_polynomial_degree {
+     AT_LINEARTYPE = 1,
+diff --git a/src/3rdparty/autotrace/color.h b/src/3rdparty/autotrace/color.h
+index e50ab30ae0..88651db9f7 100644
+--- a/src/3rdparty/autotrace/color.h
++++ b/src/3rdparty/autotrace/color.h
+@@ -24,6 +24,10 @@
+ #include <glib.h>
+ #include <glib-object.h>
+ 
++#ifdef __cplusplus
++extern "C" {
++#endif                          /* __cplusplus */
++
+ typedef struct _at_color at_color;
+ struct _at_color {
+   guint8 r;
+@@ -43,4 +47,7 @@ void at_color_free(at_color * color);
+ GType at_color_get_type(void);
+ #define AT_TYPE_COLOR (at_color_get_type ())
+ 
++#ifdef __cplusplus
++}
++#endif                          /* __cplusplus */
+ #endif /* not AT_COLOR_H */
+-- 
+GitLab
+

diff --git a/media-gfx/inkscape/inkscape-1.0.2-r1.ebuild b/media-gfx/inkscape/inkscape-1.0.2-r1.ebuild
index 6e4e248cea3..9ab84bfc5c5 100644
--- a/media-gfx/inkscape/inkscape-1.0.2-r1.ebuild
+++ b/media-gfx/inkscape/inkscape-1.0.2-r1.ebuild
@@ -100,6 +100,10 @@ RESTRICT="test"
 
 S="${WORKDIR}"/${P}_2021-01-15_e86c870879
 
+PATCHES=(
+	"${FILESDIR}"/glib-2.67.3.patch
+)
+
 pkg_pretend() {
 	if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
 		tc-has-openmp || die "Please switch to an openmp compatible compiler"


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2021-09-25 15:59 Andreas K. Hüttel
  0 siblings, 0 replies; 25+ messages in thread
From: Andreas K. Hüttel @ 2021-09-25 15:59 UTC (permalink / raw
  To: gentoo-commits

commit:     a0c757b987c124e1e3b6764488985105432282d4
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 25 15:58:37 2021 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Sep 25 15:58:57 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a0c757b9

media-gfx/inkscape: various minor fixups

Package-Manager: Portage-3.0.23, Repoman-3.0.3
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 media-gfx/inkscape/Manifest                        |   1 +
 .../inkscape/files/inkscape-1.1-sentinels.patch    | 727 ---------------------
 media-gfx/inkscape/inkscape-1.1.ebuild             |  18 +-
 media-gfx/inkscape/inkscape-9999.ebuild            |   6 +-
 4 files changed, 14 insertions(+), 738 deletions(-)

diff --git a/media-gfx/inkscape/Manifest b/media-gfx/inkscape/Manifest
index 1810db36929..6e34122c13f 100644
--- a/media-gfx/inkscape/Manifest
+++ b/media-gfx/inkscape/Manifest
@@ -1,2 +1,3 @@
 DIST inkscape-1.0.2.tar.xz 32421620 BLAKE2B c3f9c37b15343ba0955a6d06810aef5fb9e035a240f99579301b8cd93858a62b5ed1a3ff528a9642ec74b8900305495236cf7f4c672864369a4e33dca3b34bd4 SHA512 f4fbc627c0f07db11194715c505b771a60af29a9a7f8be0232e4f7eb6b1c5814c3f160c2003d64ec62aeb92ef44174320a47aa6b6abc7a67cc27c996cba9522d
+DIST inkscape-1.1-musl.txz 10820 BLAKE2B 3e7d346161d8c58436cae01227ce0eafc122276ba4b0483271cbb2e74447c7a89b2033bf709adb521abe2aebca79fffece183786071478b29aedbf3c742c4616 SHA512 8900863fb2d12cb6aea39b2e2ac8d32b512086aa3a26f3598d3117abd0b44f95b6001ea21ac02ce2368dd66dee0faefdef049c433f62380904770b7680680668
 DIST inkscape-1.1.tar.xz 34203156 BLAKE2B 38896509dcdcf1ef18523c790855035ef16dfae75e27c2d69f782270f52a579557edcb790bef30f3210b9f797a619369d7d16dd23f098debdd8e5b6abf9b30aa SHA512 54b75f8794d748ef59d5b719ea04e3debadc1a5cf3f62f14254502567973bbd634850edd0a3bc082be878dacf041e9bd10982c4846bf154f89aa5319eda4ee80

diff --git a/media-gfx/inkscape/files/inkscape-1.1-sentinels.patch b/media-gfx/inkscape/files/inkscape-1.1-sentinels.patch
deleted file mode 100644
index b4768d44f27..00000000000
--- a/media-gfx/inkscape/files/inkscape-1.1-sentinels.patch
+++ /dev/null
@@ -1,727 +0,0 @@
-From 3abc0aac5ffed8a130086e93b1fdba596f505a1c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@atlas.cz>
-Date: Fri, 2 Jul 2021 12:10:48 +0200
-Subject: [PATCH] Fix sentinel errors for builds against musl libc
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This change fixes failing builds on systems with musl libc, where one
-can experience lots of errors similar to following one:
-
-```
-FAILED: src/libnrtype/CMakeFiles/nrtype_LIB.dir/font-lister.cpp.o
-/usr/bin/c++ ... -c ../src/libnrtype/font-lister.cpp
-../src/libnrtype/font-lister.cpp: In function ‘void font_lister_cell_data_func2(GtkCellLayout*, GtkCellRenderer*, GtkTreeModel*, GtkTreeIter*, gpointer)’:
-../src/libnrtype/font-lister.cpp:1236:64: error: missing sentinel in function call [-Werror=format=]
- 1236 |     g_object_set(G_OBJECT(cell), "markup", markup.c_str(), NULL);
-      |                                                                ^
-```
-
-Those errors are triggered by the compiler, because musl does not use
-GCC's or Clang's __null extension for NULL definition, because it seems
-non-conforming to the standard's requirements [1]. However, it is
-possible to trigger this error with -Wstrict-null-sentinel GCC flag on
-systems with glibc.
-
-[1]: https://git.musl-libc.org/cgit/musl/commit/?id=c8a9c22173f485c8c053709e1dfa0a617cb6be1a
-
----
-
-The patch is taken from upstream 1.1.x branch.
-
-Upstream-issue: https://gitlab.com/inkscape/inkscape/-/issues/1880
-Upstream-MR: https://gitlab.com/inkscape/inkscape/-/merge_requests/3378
-Backported-from: https://gitlab.com/inkscape/inkscape/-/merge_requests/3378/diffs?commit_id=8d8d7adb07649fa64f9879b56187708ab7166149
-
-
-
-diff --git a/src/display/nr-filter-image.cpp b/src/display/nr-filter-image.cpp
-index bfc2b6bb1f..5311d8cbce 100644
---- a/src/display/nr-filter-image.cpp
-+++ b/src/display/nr-filter-image.cpp
-@@ -158,7 +158,7 @@ void FilterImage::render_cairo(FilterSlot &slot)
-         if ( !g_file_test( fullname, G_FILE_TEST_EXISTS ) ) {
-             // Try to load from relative position combined with document base
-             if( document ) {
--                fullname = g_build_filename( document->getDocumentBase(), feImageHref, NULL );
-+                fullname = g_build_filename( document->getDocumentBase(), feImageHref, nullptr );
-             }
-         }
-         if ( !g_file_test( fullname, G_FILE_TEST_EXISTS ) ) {
-diff --git a/src/extension/dbus/document-interface.cpp b/src/extension/dbus/document-interface.cpp
-index 5021734722..f490b5b6d5 100644
---- a/src/extension/dbus/document-interface.cpp
-+++ b/src/extension/dbus/document-interface.cpp
-@@ -474,7 +474,7 @@ document_interface_spiral (DocumentInterface *doc_interface, int cx, int cy,
-     sp_repr_set_int(newNode, "sodipodi:expansion", 1);
-     gchar * retval = finish_create_shape (doc_interface, error, newNode, (gchar *)"create spiral");
-     //Makes sure there is no fill for spirals by default.
--    gchar* newString = g_strconcat(newNode->attribute("style"), ";fill:none", NULL);
-+    gchar* newString = g_strconcat(newNode->attribute("style"), ";fill:none", nullptr);
-     newNode->setAttribute("style", newString);
-     g_free(newString);
-     return retval;
-diff --git a/src/extension/dependency.cpp b/src/extension/dependency.cpp
-index f94634bbc3..09928c64f7 100644
---- a/src/extension/dependency.cpp
-+++ b/src/extension/dependency.cpp
-@@ -186,7 +186,7 @@ bool Dependency::check ()
-                         break;
-                     }
-                     /* Look for deprecated locations next */
--                    auto deprloc = g_build_filename("inkex", "deprecated-simple", location.c_str(), NULL);
-+                    auto deprloc = g_build_filename("inkex", "deprecated-simple", location.c_str(), nullptr);
-                     std::string tempdepr =
-                         Inkscape::IO::Resource::get_filename_string(Inkscape::IO::Resource::EXTENSIONS, deprloc, false, true);
-                     g_free(deprloc);
-diff --git a/src/inkscape.cpp b/src/inkscape.cpp
-index 29b7e08c25..07794fd8b9 100644
---- a/src/inkscape.cpp
-+++ b/src/inkscape.cpp
-@@ -434,15 +434,15 @@ void Application::add_gtk_css(bool only_providers)
-     gboolean gtkApplicationPreferDarkTheme;
-     GtkSettings *settings = gtk_settings_get_default();
-     if (settings && !only_providers) {
--        g_object_get(settings, "gtk-icon-theme-name", &gtkIconThemeName, NULL);
--        g_object_get(settings, "gtk-theme-name", &gtkThemeName, NULL);
--        g_object_get(settings, "gtk-application-prefer-dark-theme", &gtkApplicationPreferDarkTheme, NULL);
-+        g_object_get(settings, "gtk-icon-theme-name", &gtkIconThemeName, nullptr);
-+        g_object_get(settings, "gtk-theme-name", &gtkThemeName, nullptr);
-+        g_object_get(settings, "gtk-application-prefer-dark-theme", &gtkApplicationPreferDarkTheme, nullptr);
-         prefs->setBool("/theme/defaultPreferDarkTheme", gtkApplicationPreferDarkTheme);
-         prefs->setString("/theme/defaultGtkTheme", Glib::ustring(gtkThemeName));
-         prefs->setString("/theme/defaultIconTheme", Glib::ustring(gtkIconThemeName));
-         Glib::ustring gtkthemename = prefs->getString("/theme/gtkTheme");
-         if (gtkthemename != "") {
--            g_object_set(settings, "gtk-theme-name", gtkthemename.c_str(), NULL);
-+            g_object_set(settings, "gtk-theme-name", gtkthemename.c_str(), nullptr);
-         } else {
-             Glib::RefPtr<Gdk::Display> display = Gdk::Display::get_default();
-             Glib::RefPtr<Gdk::Screen>  screen = display->get_default_screen();
-@@ -451,13 +451,13 @@ void Application::add_gtk_css(bool only_providers)
-             prefs->setBool("/theme/symbolicIcons", iconinfo.is_symbolic());
-         }
-         bool preferdarktheme = prefs->getBool("/theme/preferDarkTheme", false);
--        g_object_set(settings, "gtk-application-prefer-dark-theme", preferdarktheme, NULL);
-+        g_object_set(settings, "gtk-application-prefer-dark-theme", preferdarktheme, nullptr);
-         themeiconname = prefs->getString("/theme/iconTheme");
-         // legacy cleanup
-         if (themeiconname == prefs->getString("/theme/defaultIconTheme")) {
-             prefs->setString("/theme/iconTheme", "");
-         } else if (themeiconname != "") {
--            g_object_set(settings, "gtk-icon-theme-name", themeiconname.c_str(), NULL);
-+            g_object_set(settings, "gtk-icon-theme-name", themeiconname.c_str(), nullptr);
-         }
-     }
- 
-@@ -684,7 +684,7 @@ Application::crash_handler (int /*signum*/)
-             FILE *file = nullptr;
-             for(auto & location : locations) {
-                 if (!location) continue; // It seems to be okay, but just in case
--                gchar * filename = g_build_filename(location, c, NULL);
-+                gchar * filename = g_build_filename(location, c, nullptr);
-                 Inkscape::IO::dump_fopen_call(filename, "E");
-                 file = Inkscape::IO::fopen_utf8name(filename, "w");
-                 if (file) {
-diff --git a/src/io/resource.cpp b/src/io/resource.cpp
-index fec933f1a9..c75c4ed6cf 100644
---- a/src/io/resource.cpp
-+++ b/src/io/resource.cpp
-@@ -445,14 +445,14 @@ char const *profile_path()
-             }
- 
-             if (prefdir) {
--                const char *prefdir_profile = g_build_filename(prefdir, INKSCAPE_PROFILE_DIR, NULL);
-+                const char *prefdir_profile = g_build_filename(prefdir, INKSCAPE_PROFILE_DIR, nullptr);
-                 g_free((void *)prefdir);
-                 prefdir = prefdir_profile;
-             }
-         }
- #endif
-         if (!prefdir) {
--            prefdir = g_build_filename(g_get_user_config_dir(), INKSCAPE_PROFILE_DIR, NULL);
-+            prefdir = g_build_filename(g_get_user_config_dir(), INKSCAPE_PROFILE_DIR, nullptr);
-             // In case the XDG user config dir of the moment does not yet exist...
-             int mode = S_IRWXU;
- #ifdef S_IRGRP
-@@ -471,7 +471,7 @@ char const *profile_path()
-                 gchar const *userDirs[] = { "keys", "templates", "icons", "extensions", "ui",
-                                             "symbols", "paint", "themes", "palettes", nullptr };
-                 for (gchar const** name = userDirs; *name; ++name) {
--                    gchar *dir = g_build_filename(prefdir, *name, NULL);
-+                    gchar *dir = g_build_filename(prefdir, *name, nullptr);
-                     g_mkdir_with_parents(dir, mode);
-                     g_free(dir);
-                 }
-@@ -495,7 +495,7 @@ char *homedir_path(const char *filename)
-     static const gchar *homedir = nullptr;
-     homedir = g_get_home_dir();
- 
--    return g_build_filename(homedir, filename, NULL);
-+    return g_build_filename(homedir, filename, nullptr);
- }
- 
- }
-diff --git a/src/libnrtype/font-lister.cpp b/src/libnrtype/font-lister.cpp
-index 6177e7479d..75ff172c05 100644
---- a/src/libnrtype/font-lister.cpp
-+++ b/src/libnrtype/font-lister.cpp
-@@ -1233,7 +1233,7 @@ void font_lister_cell_data_func2(GtkCellLayout * /*cell_layout*/,
-         g_free(sample_escaped);
-     }
- 
--    g_object_set(G_OBJECT(cell), "markup", markup.c_str(), NULL);
-+    g_object_set(G_OBJECT(cell), "markup", markup.c_str(), nullptr);
-     g_free(family);
-     g_free(family_escaped);
- }
-diff --git a/src/object/color-profile.cpp b/src/object/color-profile.cpp
-index da103e90d1..a2464194dc 100644
---- a/src/object/color-profile.cpp
-+++ b/src/object/color-profile.cpp
-@@ -700,7 +700,7 @@ std::set<ColorProfile::FilePlusHome> ColorProfile::getBaseProfileDirs() {
-     std::set<ColorProfile::FilePlusHome> sources;
- 
-     // first try user's local dir
--    gchar* path = g_build_filename(g_get_user_data_dir(), "color", "icc", NULL);
-+    gchar* path = g_build_filename(g_get_user_data_dir(), "color", "icc", nullptr);
-     sources.insert(FilePlusHome(path, true));
-     g_free(path);
- 
-@@ -708,11 +708,11 @@ std::set<ColorProfile::FilePlusHome> ColorProfile::getBaseProfileDirs() {
-     // (see https://github.com/hughsie/colord/blob/fe10f76536bb27614ced04e0ff944dc6fb4625c0/lib/colord/cd-icc-store.c#L590)
- 
-     // user store
--    path = g_build_filename(g_get_user_data_dir(), "icc", NULL);
-+    path = g_build_filename(g_get_user_data_dir(), "icc", nullptr);
-     sources.insert(FilePlusHome(path, true));
-     g_free(path);
- 
--    path = g_build_filename(g_get_home_dir(), ".color", "icc", NULL);
-+    path = g_build_filename(g_get_home_dir(), ".color", "icc", nullptr);
-     sources.insert(FilePlusHome(path, true));
-     g_free(path);
- 
-@@ -722,7 +722,7 @@ std::set<ColorProfile::FilePlusHome> ColorProfile::getBaseProfileDirs() {
- 
-     const gchar* const * dataDirs = g_get_system_data_dirs();
-     for ( int i = 0; dataDirs[i]; i++ ) {
--        gchar* path = g_build_filename(dataDirs[i], "color", "icc", NULL);
-+        gchar* path = g_build_filename(dataDirs[i], "color", "icc", nullptr);
-         sources.insert(FilePlusHome(path, false));
-         g_free(path);
-     }
-@@ -732,7 +732,7 @@ std::set<ColorProfile::FilePlusHome> ColorProfile::getBaseProfileDirs() {
-         sources.insert(FilePlusHome("/System/Library/ColorSync/Profiles", false));
-         sources.insert(FilePlusHome("/Library/ColorSync/Profiles", false));
- 
--        gchar *path = g_build_filename(g_get_home_dir(), "Library", "ColorSync", "Profiles", NULL);
-+        gchar *path = g_build_filename(g_get_home_dir(), "Library", "ColorSync", "Profiles", nullptr);
-         sources.insert(FilePlusHome(path, true));
-         g_free(path);
-     }
-diff --git a/src/object/sp-guide.cpp b/src/object/sp-guide.cpp
-index 01e7596801..678c2b20bc 100644
---- a/src/object/sp-guide.cpp
-+++ b/src/object/sp-guide.cpp
-@@ -538,7 +538,7 @@ char* SPGuide::description(bool const verbose) const
-         
-         if (verbose) {
-             gchar *oldDescr = descr;
--            descr = g_strconcat(oldDescr, shortcuts, NULL);
-+            descr = g_strconcat(oldDescr, shortcuts, nullptr);
-             g_free(oldDescr);
-         }
- 
-diff --git a/src/object/sp-image.cpp b/src/object/sp-image.cpp
-index 3c3fc5dd8a..459ecd4243 100644
---- a/src/object/sp-image.cpp
-+++ b/src/object/sp-image.cpp
-@@ -756,7 +756,7 @@ void sp_embed_image(Inkscape::XML::Node *image_node, Inkscape::Pixbuf *pb)
-     if (data == nullptr) {
-         // if there is no supported MIME data, embed as PNG
-         data_mimetype = "image/png";
--        gdk_pixbuf_save_to_buffer(pb->getPixbufRaw(), reinterpret_cast<gchar**>(&data), &len, "png", nullptr, NULL);
-+        gdk_pixbuf_save_to_buffer(pb->getPixbufRaw(), reinterpret_cast<gchar**>(&data), &len, "png", nullptr, nullptr);
-         free_data = true;
-     }
- 
-diff --git a/src/rdf.cpp b/src/rdf.cpp
-index 563776a19b..3aeb0afa9d 100644
---- a/src/rdf.cpp
-+++ b/src/rdf.cpp
-@@ -543,7 +543,7 @@ const gchar *RDFImpl::getReprText( Inkscape::XML::Node const * repr, struct rdf_
-                     const gchar * str = temp->firstChild()->content();
-                     if (bag) {
-                         holder = bag;
--                        bag = g_strconcat(holder, ", ", str, NULL);
-+                        bag = g_strconcat(holder, ", ", str, nullptr);
-                         g_free(holder);
-                     }
-                     else {
-diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp
-index 5596030a64..38c5d59063 100644
---- a/src/selection-chemistry.cpp
-+++ b/src/selection-chemistry.cpp
-@@ -3663,7 +3663,7 @@ void ObjectSet::createBitmapCopy()
-     if (directory == nullptr) {
-         directory = Inkscape::IO::Resource::homedir_path(nullptr);
-     }
--    gchar *filepath = g_build_filename(directory, basename, NULL);
-+    gchar *filepath = g_build_filename(directory, basename, nullptr);
-     g_free(directory);
- 
-     //g_print("%s\n", filepath);
-diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp
-index 0cddf4586c..426ec52e81 100644
---- a/src/ui/clipboard.cpp
-+++ b/src/ui/clipboard.cpp
-@@ -1221,7 +1221,7 @@ bool ClipboardManagerImpl::_pasteImage(SPDocument *doc)
-     prefs->setBool("/dialogs/import/ask", false);
-     png->set_gui(false);
- 
--    gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-import", NULL );
-+    gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-import", nullptr );
-     img->save(filename, "png");
-     file_import(doc, filename, png);
-     g_free(filename);
-@@ -1320,7 +1320,7 @@ std::unique_ptr<SPDocument> ClipboardManagerImpl::_retrieveClipboard(Glib::ustri
- 
-     // FIXME: Temporary hack until we add memory input.
-     // Save the clipboard contents to some file, then read it
--    gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-import", NULL );
-+    gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-import", nullptr );
- 
-     bool file_saved = false;
-     Glib::ustring target = best_target;
-@@ -1413,7 +1413,7 @@ void ClipboardManagerImpl::_onGet(Gtk::SelectionData &sel, guint /*info*/)
- 
-     // FIXME: Temporary hack until we add support for memory output.
-     // Save to a temporary file, read it back and then set the clipboard contents
--    gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-export", NULL );
-+    gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-export", nullptr );
-     gchar *data = nullptr;
-     gsize len;
- 
-@@ -1675,7 +1675,7 @@ void ClipboardManagerImpl::_setClipboardTargets()
-             if ( out != outlist.end() ) {
-                 // FIXME: Temporary hack until we add support for memory output.
-                 // Save to a temporary file, read it back and then set the clipboard contents
--                gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-export.emf", NULL );
-+                gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-export.emf", nullptr );
- 
-                 try {
-                     (*out)->save(_clipboardSPDoc.get(), filename);
-diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp
-index 7802c37449..cd8af7f4a8 100644
---- a/src/ui/dialog/clonetiler.cpp
-+++ b/src/ui/dialog/clonetiler.cpp
-@@ -159,7 +159,7 @@ CloneTiler::CloneTiler()
-             auto cell_list = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(combo->gobj()));
-             gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo->gobj()),
-                                            GTK_CELL_RENDERER(cell_list->data),
--                                           "markup", 0, NULL);
-+                                           "markup", 0, nullptr);
- 
-             for (const auto & sg : sym_groups) {
-                 // Add the description of the symgroup to a new row
-diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp
-index 7496284cec..7f83143992 100644
---- a/src/ui/dialog/export.cpp
-+++ b/src/ui/dialog/export.cpp
-@@ -490,7 +490,7 @@ void Export::set_default_filename () {
-                 extension_point = g_strrstr(uri_copy, old_extension);
-                 extension_point[0] = '\0';
- 
--                final_name = g_strconcat(uri_copy, ".png", NULL);
-+                final_name = g_strconcat(uri_copy, ".png", nullptr);
-                 filename_entry.set_text(final_name);
-                 filename_entry.set_position(strlen(final_name));
- 
-@@ -498,7 +498,7 @@ void Export::set_default_filename () {
-                 g_free(uri_copy);
-             }
-         } else {
--            gchar *name = g_strconcat(uri, ".png", NULL);
-+            gchar *name = g_strconcat(uri, ".png", nullptr);
-             filename_entry.set_text(name);
-             filename_entry.set_position(strlen(name));
- 
-diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
-index 940ef1b834..520e6091d1 100644
---- a/src/ui/dialog/inkscape-preferences.cpp
-+++ b/src/ui/dialog/inkscape-preferences.cpp
-@@ -1623,7 +1623,7 @@ void InkscapePreferences::initPageUI()
-         _page_theme.add_line(false, _("Change GTK theme:"), _gtk_theme, "", "", false);
-         _gtk_theme.signal_changed().connect(sigc::mem_fun(*this, &InkscapePreferences::themeChange));
-     }
--    _sys_user_themes_dir_copy.init(g_build_filename(g_get_user_data_dir(), "themes", NULL), _("Open themes folder"));
-+    _sys_user_themes_dir_copy.init(g_build_filename(g_get_user_data_dir(), "themes", nullptr), _("Open themes folder"));
-     _page_theme.add_line(true, _("User themes:"), _sys_user_themes_dir_copy, "", _("Location of the user’s themes"), true, Gtk::manage(new Gtk::Box()));
-     //_contrast_theme.init("/theme/contrast", 1, 10, 1, 2, 10, 1);
-     Gtk::Widget *space = new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL);
-@@ -3351,7 +3351,7 @@ void InkscapePreferences::initPageSystem()
-                              _("Open fonts folder"));
-     _page_system.add_line(true, _("User fonts:"), _sys_user_fonts_dir, "", _("Location of the user’s fonts"), true);
- 
--    _sys_user_themes_dir.init(g_build_filename(g_get_user_data_dir(), "themes", NULL), _("Open themes folder"));
-+    _sys_user_themes_dir.init(g_build_filename(g_get_user_data_dir(), "themes", nullptr), _("Open themes folder"));
-     _page_system.add_line(true, _("User themes:"), _sys_user_themes_dir, "", _("Location of the user’s themes"), true);
- 
-     _sys_user_icons_dir.init((char const *)IO::Resource::get_path(IO::Resource::USER, IO::Resource::ICONS, ""),
-diff --git a/src/ui/drag-and-drop.cpp b/src/ui/drag-and-drop.cpp
-index 880906c34b..c99bd0f4f5 100644
---- a/src/ui/drag-and-drop.cpp
-+++ b/src/ui/drag-and-drop.cpp
-@@ -357,7 +357,7 @@ ink_drag_data_received(GtkWidget *widget,
-             ext->set_param_optiongroup("link", "embed");
-             ext->set_gui(false);
- 
--            gchar *filename = g_build_filename( g_get_tmp_dir(), "inkscape-dnd-import", NULL );
-+            gchar *filename = g_build_filename( g_get_tmp_dir(), "inkscape-dnd-import", nullptr );
-             g_file_set_contents(filename,
-                 reinterpret_cast<gchar const *>(gtk_selection_data_get_data (data)),
-                 gtk_selection_data_get_length (data),
-diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp
-index 089327c7ac..8ae64382d6 100644
---- a/src/ui/interface.cpp
-+++ b/src/ui/interface.cpp
-@@ -203,7 +203,7 @@ sp_ui_overwrite_file(gchar const *filename)
-         gtk_dialog_add_buttons( GTK_DIALOG(dialog),
-                                 _("_Cancel"), GTK_RESPONSE_NO,
-                                 _("Replace"), GTK_RESPONSE_YES,
--                                NULL );
-+                                nullptr );
-         gtk_dialog_set_default_response( GTK_DIALOG(dialog), GTK_RESPONSE_YES );
- 
-         if ( gtk_dialog_run( GTK_DIALOG(dialog) ) == GTK_RESPONSE_YES ) {
-diff --git a/src/ui/themes.cpp b/src/ui/themes.cpp
-index f874c4c1a8..ff1eca4a9f 100644
---- a/src/ui/themes.cpp
-+++ b/src/ui/themes.cpp
-@@ -30,15 +30,15 @@
- static void inkscape_fill_gtk(const gchar *path, gtkThemeList &themes)
- {
-     const gchar *dir_entry;
--    GDir *dir = g_dir_open(path, 0, NULL);
-+    GDir *dir = g_dir_open(path, 0, nullptr);
-     if (!dir)
-         return;
-     while ((dir_entry = g_dir_read_name(dir))) {
--        gchar *filename = g_build_filename(path, dir_entry, "gtk-3.0", "gtk.css", NULL);
-+        gchar *filename = g_build_filename(path, dir_entry, "gtk-3.0", "gtk.css", nullptr);
-         bool has_prefer_dark = false;
-   
-         Glib::ustring theme = dir_entry;
--        gchar *filenamedark = g_build_filename(path, dir_entry, "gtk-3.0", "gtk-dark.css", NULL);
-+        gchar *filenamedark = g_build_filename(path, dir_entry, "gtk-3.0", "gtk-dark.css", nullptr);
-         if (g_file_test(filenamedark, G_FILE_TEST_IS_REGULAR))
-             has_prefer_dark = true;
-         if (themes.find(theme) != themes.end() && !has_prefer_dark) {
-@@ -67,7 +67,7 @@ std::map<Glib::ustring, bool> get_available_themes()
-     const gchar *const *dirs;
-   
-     /* Builtin themes */
--    builtin_themes = g_resources_enumerate_children("/org/gtk/libgtk/theme", G_RESOURCE_LOOKUP_FLAGS_NONE, NULL);
-+    builtin_themes = g_resources_enumerate_children("/org/gtk/libgtk/theme", G_RESOURCE_LOOKUP_FLAGS_NONE, nullptr);
-     for (i = 0; builtin_themes[i] != NULL; i++) {
-         if (g_str_has_suffix(builtin_themes[i], "/")) {
-             theme = builtin_themes[i];
-@@ -75,7 +75,7 @@ std::map<Glib::ustring, bool> get_available_themes()
-             Glib::ustring theme_path = "/org/gtk/libgtk/theme";
-             theme_path += "/" + theme;
-             gchar **builtin_themes_files =
--                g_resources_enumerate_children(theme_path.c_str(), G_RESOURCE_LOOKUP_FLAGS_NONE, NULL);
-+                g_resources_enumerate_children(theme_path.c_str(), G_RESOURCE_LOOKUP_FLAGS_NONE, nullptr);
-             bool has_prefer_dark = false;
-             if (builtin_themes_files != NULL) {
-                 for (j = 0; builtin_themes_files[j] != NULL; j++) {
-@@ -92,17 +92,17 @@ std::map<Glib::ustring, bool> get_available_themes()
- 
-     g_strfreev(builtin_themes);
- 
--    path = g_build_filename(g_get_user_data_dir(), "themes", NULL);
-+    path = g_build_filename(g_get_user_data_dir(), "themes", nullptr);
-     inkscape_fill_gtk(path, themes);
-     g_free(path);
-   
--    path = g_build_filename(g_get_home_dir(), ".themes", NULL);
-+    path = g_build_filename(g_get_home_dir(), ".themes", nullptr);
-     inkscape_fill_gtk(path, themes);
-     g_free(path);
-   
-     dirs = g_get_system_data_dirs();
-     for (i = 0; dirs[i]; i++) {
--        path = g_build_filename(dirs[i], "themes", NULL);
-+        path = g_build_filename(dirs[i], "themes", nullptr);
-         inkscape_fill_gtk(path, themes);
-         g_free(path);
-     }
-diff --git a/src/ui/tool/control-point.cpp b/src/ui/tool/control-point.cpp
-index c29b09d93f..13f2e60c6e 100644
---- a/src/ui/tool/control-point.cpp
-+++ b/src/ui/tool/control-point.cpp
-@@ -185,7 +185,7 @@ void ControlPoint::_setControlType(Inkscape::CanvasItemCtrlType type)
- 
- void ControlPoint::_setAnchor(SPAnchorType anchor)
- {
--//     g_object_set(_canvas_item_ctrl, "anchor", anchor, NULL);
-+//     g_object_set(_canvas_item_ctrl, "anchor", anchor, nullptr);
- }
- 
- void ControlPoint::_setPixbuf(Glib::RefPtr<Gdk::Pixbuf> p)
-diff --git a/src/ui/toolbar/arc-toolbar.cpp b/src/ui/toolbar/arc-toolbar.cpp
-index b663d905f4..986b28b3f8 100644
---- a/src/ui/toolbar/arc-toolbar.cpp
-+++ b/src/ui/toolbar/arc-toolbar.cpp
-@@ -309,7 +309,7 @@ ArcToolbar::startend_value_changed(Glib::RefPtr<Gtk::Adjustment>&  adj,
-     // in turn, prevent listener from responding
-     _freeze = true;
- 
--    gchar* namespaced_name = g_strconcat("sodipodi:", value_name, NULL);
-+    gchar* namespaced_name = g_strconcat("sodipodi:", value_name, nullptr);
- 
-     bool modmade = false;
-     auto itemlist= _desktop->getSelection()->items();
-diff --git a/src/ui/toolbar/spiral-toolbar.cpp b/src/ui/toolbar/spiral-toolbar.cpp
-index 05ce654242..bae2f8c064 100644
---- a/src/ui/toolbar/spiral-toolbar.cpp
-+++ b/src/ui/toolbar/spiral-toolbar.cpp
-@@ -175,7 +175,7 @@ SpiralToolbar::value_changed(Glib::RefPtr<Gtk::Adjustment> &adj,
-     // in turn, prevent listener from responding
-     _freeze = true;
- 
--    gchar* namespaced_name = g_strconcat("sodipodi:", value_name.data(), NULL);
-+    gchar* namespaced_name = g_strconcat("sodipodi:", value_name.data(), nullptr);
- 
-     bool modmade = false;
-     auto itemlist= _desktop->getSelection()->items();
-diff --git a/src/ui/tools/gradient-tool.cpp b/src/ui/tools/gradient-tool.cpp
-index e83d2b4613..6aecf92ce4 100644
---- a/src/ui/tools/gradient-tool.cpp
-+++ b/src/ui/tools/gradient-tool.cpp
-@@ -116,7 +116,7 @@ void GradientTool::selection_changed(Inkscape::Selection*) {
-                 _("%s selected"),
-                 //TRANSLATORS: Mind the space in front. This is part of a compound message
-                 ngettext(" out of %d gradient handle"," out of %d gradient handles",n_tot),
--                ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
-+                ngettext(" on %d selected object"," on %d selected objects",n_obj),nullptr);
-             message_context->setF(Inkscape::NORMAL_MESSAGE,
-                                   message,_(gr_handle_descr[drag->singleSelectedDraggerSingleDraggableType()]), n_tot, n_obj);
-         } else {
-@@ -125,14 +125,14 @@ void GradientTool::selection_changed(Inkscape::Selection*) {
-                 ngettext("One handle merging %d stop (drag with <b>Shift</b> to separate) selected",
-                          "One handle merging %d stops (drag with <b>Shift</b> to separate) selected",drag->singleSelectedDraggerNumDraggables()),
-                 ngettext(" out of %d gradient handle"," out of %d gradient handles",n_tot),
--                ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
-+                ngettext(" on %d selected object"," on %d selected objects",n_obj),nullptr);
-             message_context->setF(Inkscape::NORMAL_MESSAGE,message,drag->singleSelectedDraggerNumDraggables(), n_tot, n_obj);
-         }
-     } else if (n_sel > 1) {
-         //TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count)
-         gchar * message = g_strconcat(ngettext("<b>%d</b> gradient handle selected out of %d","<b>%d</b> gradient handles selected out of %d",n_sel),
-                                       //TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message
--                                      ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
-+                                      ngettext(" on %d selected object"," on %d selected objects",n_obj),nullptr);
-         message_context->setF(Inkscape::NORMAL_MESSAGE,message, n_sel, n_tot, n_obj);
-     } else if (n_sel == 0) {
-         message_context->setF(Inkscape::NORMAL_MESSAGE,
-diff --git a/src/ui/tools/mesh-tool.cpp b/src/ui/tools/mesh-tool.cpp
-index 07bf68bd12..fbde77f36f 100644
---- a/src/ui/tools/mesh-tool.cpp
-+++ b/src/ui/tools/mesh-tool.cpp
-@@ -131,7 +131,7 @@ void MeshTool::selection_changed(Inkscape::Selection* /*sel*/) {
-                 _("%s selected"),
-                 //TRANSLATORS: Mind the space in front. This is part of a compound message
-                 ngettext(" out of %d mesh handle"," out of %d mesh handles",n_tot),
--                ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
-+                ngettext(" on %d selected object"," on %d selected objects",n_obj),nullptr);
-             this->message_context->setF(Inkscape::NORMAL_MESSAGE,
-                                        message,_(ms_handle_descr[drag->singleSelectedDraggerSingleDraggableType()]), n_tot, n_obj);
-         } else {
-@@ -142,7 +142,7 @@ void MeshTool::selection_changed(Inkscape::Selection* /*sel*/) {
-                              "One handle merging %d stops (drag with <b>Shift</b> to separate) selected",
-                              drag->singleSelectedDraggerNumDraggables()),
-                     ngettext(" out of %d mesh handle"," out of %d mesh handles",n_tot),
--                    ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
-+                    ngettext(" on %d selected object"," on %d selected objects",n_obj),nullptr);
-             this->message_context->setF(Inkscape::NORMAL_MESSAGE,message,drag->singleSelectedDraggerNumDraggables(), n_tot, n_obj);
-         }
-     } else if (n_sel > 1) {
-@@ -150,7 +150,7 @@ void MeshTool::selection_changed(Inkscape::Selection* /*sel*/) {
-         gchar * message =
-             g_strconcat(ngettext("<b>%d</b> mesh handle selected out of %d","<b>%d</b> mesh handles selected out of %d",n_sel),
-                         //TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message
--                        ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
-+                        ngettext(" on %d selected object"," on %d selected objects",n_obj),nullptr);
-         this->message_context->setF(Inkscape::NORMAL_MESSAGE,message, n_sel, n_tot, n_obj);
-     } else if (n_sel == 0) {
-         this->message_context->setF(Inkscape::NORMAL_MESSAGE,
-diff --git a/src/ui/tools/text-tool.cpp b/src/ui/tools/text-tool.cpp
-index 4d0d7f5885..8f7aba97b1 100644
---- a/src/ui/tools/text-tool.cpp
-+++ b/src/ui/tools/text-tool.cpp
-@@ -100,8 +100,8 @@ TextTool::~TextTool() {
- void TextTool::setup() {
-     GtkSettings* settings = gtk_settings_get_default();
-     gint timeout = 0;
--    g_object_get( settings, "gtk-cursor-blink-time", &timeout, NULL );
--    
-+    g_object_get( settings, "gtk-cursor-blink-time", &timeout, nullptr );
-+
-     if (timeout < 0) {
-         timeout = 200;
-     } else {
-diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp
-index 99c6b57af0..cf3b4b4b9b 100644
---- a/src/ui/widget/color-icc-selector.cpp
-+++ b/src/ui/widget/color-icc-selector.cpp
-@@ -369,7 +369,7 @@ void ColorICCSelector::init()
- 
-     GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
-     gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(_impl->_profileSel), renderer, TRUE);
--    gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(_impl->_profileSel), renderer, "text", 0, NULL);
-+    gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(_impl->_profileSel), renderer, "text", 0, nullptr);
- 
-     GtkTreeIter iter;
-     gtk_list_store_append(store, &iter);
-diff --git a/src/ui/widget/combo-box-entry-tool-item.cpp b/src/ui/widget/combo-box-entry-tool-item.cpp
-index 60f87d938b..9bce9ce91b 100644
---- a/src/ui/widget/combo-box-entry-tool-item.cpp
-+++ b/src/ui/widget/combo-box-entry-tool-item.cpp
-@@ -74,8 +74,8 @@ ComboBoxEntryToolItem::ComboBoxEntryToolItem(Glib::ustring name,
-     set_name(name);
- 
-     gchar *action_name = g_strdup( get_name().c_str() );
--    gchar *combobox_name = g_strjoin( nullptr, action_name, "_combobox", NULL );
--    gchar *entry_name =    g_strjoin( nullptr, action_name, "_entry", NULL );
-+    gchar *combobox_name = g_strjoin( nullptr, action_name, "_combobox", nullptr );
-+    gchar *entry_name =    g_strjoin( nullptr, action_name, "_entry", nullptr );
-     g_free( action_name );
- 
-     GtkWidget* comboBoxEntry = gtk_combo_box_new_with_model_and_entry (_model);
-diff --git a/src/ui/widget/marker-combo-box.cpp b/src/ui/widget/marker-combo-box.cpp
-index 6ecc77be14..82199c547d 100644
---- a/src/ui/widget/marker-combo-box.cpp
-+++ b/src/ui/widget/marker-combo-box.cpp
-@@ -201,7 +201,7 @@ const gchar * MarkerComboBox::get_active_marker_uri()
-         gchar *markurn;
-         if (stockid)
-         {
--            markurn = g_strconcat("urn:inkscape:marker:",markid,NULL);
-+            markurn = g_strconcat("urn:inkscape:marker:",markid,nullptr);
-         }
-         else
-         {
-@@ -211,7 +211,7 @@ const gchar * MarkerComboBox::get_active_marker_uri()
-         g_free(markurn);
-         if (mark) {
-             Inkscape::XML::Node *repr = mark->getRepr();
--            marker = g_strconcat("url(#", repr->attribute("id"), ")", NULL);
-+            marker = g_strconcat("url(#", repr->attribute("id"), ")", nullptr);
-         }
-     } else {
-         marker = g_strdup(markid);
-@@ -366,7 +366,7 @@ void MarkerComboBox::add_markers (std::vector<SPMarker *> const& marker_list, SP
- void
- MarkerComboBox::update_marker_image(gchar const *mname)
- {
--    gchar *cache_name = g_strconcat(combo_id, mname, NULL);
-+    gchar *cache_name = g_strconcat(combo_id, mname, nullptr);
-     Glib::ustring key = svg_preview_cache.cache_key(doc->getDocumentURI(), cache_name, 24);
-     g_free (cache_name);
-     svg_preview_cache.remove_preview_from_cache(key);
-@@ -403,7 +403,7 @@ MarkerComboBox::create_marker_image(unsigned psize, gchar const *mname,
-     }
- 
-     /* Get from cache right away */
--    gchar *cache_name = g_strconcat(combo_id, mname, NULL);
-+    gchar *cache_name = g_strconcat(combo_id, mname, nullptr);
-     Glib::ustring key = svg_preview_cache.cache_key(source->getDocumentURI(), cache_name, psize);
-     g_free (cache_name);
-     GdkPixbuf *pixbuf = svg_preview_cache.get_preview_from_cache(key); // no ref created
-diff --git a/src/ui/widget/paint-selector.cpp b/src/ui/widget/paint-selector.cpp
-index 26a5a56032..d196654f2b 100644
---- a/src/ui/widget/paint-selector.cpp
-+++ b/src/ui/widget/paint-selector.cpp
-@@ -878,7 +878,7 @@ void PaintSelector::set_mode_mesh(PaintSelector::Mode mode)
-             GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
-             gtk_cell_renderer_set_padding(renderer, 2, 0);
-             gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), renderer, TRUE);
--            gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), renderer, "text", COMBO_COL_LABEL, NULL);
-+            gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), renderer, "text", COMBO_COL_LABEL, nullptr);
- 
-             ink_mesh_menu(combo);
-             g_signal_connect(G_OBJECT(combo), "changed", G_CALLBACK(PaintSelector::mesh_change), this);
-@@ -947,7 +947,7 @@ SPMeshGradient *PaintSelector::getMeshGradient()
- 
-         gchar *mesh_name;
-         if (stockid) {
--            mesh_name = g_strconcat("urn:inkscape:mesh:", meshid, NULL);
-+            mesh_name = g_strconcat("urn:inkscape:mesh:", meshid, nullptr);
-         } else {
-             mesh_name = g_strdup(meshid);
-         }
-@@ -1202,7 +1202,7 @@ void PaintSelector::set_mode_pattern(PaintSelector::Mode mode)
-             GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
-             gtk_cell_renderer_set_padding(renderer, 2, 0);
-             gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(_patternmenu), renderer, TRUE);
--            gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(_patternmenu), renderer, "text", COMBO_COL_LABEL, NULL);
-+            gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(_patternmenu), renderer, "text", COMBO_COL_LABEL, nullptr);
- 
-             ink_pattern_menu(_patternmenu);
-             g_signal_connect(G_OBJECT(_patternmenu), "changed", G_CALLBACK(PaintSelector::pattern_change), this);
-@@ -1298,7 +1298,7 @@ SPPattern *PaintSelector::getPattern()
-         gchar *paturn;
- 
-         if (stockid) {
--            paturn = g_strconcat("urn:inkscape:pattern:", patid, NULL);
-+            paturn = g_strconcat("urn:inkscape:pattern:", patid, nullptr);
-         } else {
-             paturn = g_strdup(patid);
-         }
-diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
-index 5a018301de..7a5607b57c 100644
---- a/src/widgets/desktop-widget.cpp
-+++ b/src/widgets/desktop-widget.cpp
-@@ -612,8 +612,8 @@ void SPDesktopWidget::on_realize()
-     GtkSettings *settings = gtk_settings_get_default();
-     Gtk::Container *window = get_toplevel();
-     if (settings && window) {
--        g_object_get(settings, "gtk-theme-name", &gtkThemeName, NULL);
--        g_object_get(settings, "gtk-application-prefer-dark-theme", &gtkApplicationPreferDarkTheme, NULL);
-+        g_object_get(settings, "gtk-theme-name", &gtkThemeName, nullptr);
-+        g_object_get(settings, "gtk-application-prefer-dark-theme", &gtkApplicationPreferDarkTheme, nullptr);
-         bool dark = isCurrentThemeDark(dynamic_cast<Gtk::Container *>(window));
-         if (dark) {
-             prefs->setBool("/theme/darkTheme", true);
-diff --git a/src/widgets/sp-xmlview-tree.cpp b/src/widgets/sp-xmlview-tree.cpp
-index b07ce2475e..67b0e9094b 100644
---- a/src/widgets/sp-xmlview-tree.cpp
-+++ b/src/widgets/sp-xmlview-tree.cpp
-@@ -164,7 +164,7 @@ GtkWidget *sp_xmlview_tree_new(Inkscape::XML::Node * repr, void * /*factory*/, v
-     gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW(tree), search_equal_func, nullptr, nullptr);
- 
-     GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
--    GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes ("", renderer, "text", STORE_TEXT_COL, NULL);
-+    GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes ("", renderer, "text", STORE_TEXT_COL, nullptr);
-     gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
-     gtk_cell_renderer_set_padding (renderer, 2, 0);
-     gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-diff --git a/src/xml/repr-io.cpp b/src/xml/repr-io.cpp
-index f3cbdcb8f3..d891f07e09 100644
---- a/src/xml/repr-io.cpp
-+++ b/src/xml/repr-io.cpp
-@@ -449,7 +449,7 @@ void promote_to_namespace(Node *repr, const gchar *prefix) {
-     if ( repr->type() == Inkscape::XML::NodeType::ELEMENT_NODE ) {
-         GQuark code = repr->code();
-         if (!qname_prefix(code).id()) {
--            gchar *svg_name = g_strconcat(prefix, ":", g_quark_to_string(code), NULL);
-+            gchar *svg_name = g_strconcat(prefix, ":", g_quark_to_string(code), nullptr);
-             repr->setCodeUnsafe(g_quark_from_string(svg_name));
-             g_free(svg_name);
-         }
--- 
-2.31.1
-

diff --git a/media-gfx/inkscape/inkscape-1.1.ebuild b/media-gfx/inkscape/inkscape-1.1.ebuild
index 642643d65ca..e62f8efdec2 100644
--- a/media-gfx/inkscape/inkscape-1.1.ebuild
+++ b/media-gfx/inkscape/inkscape-1.1.ebuild
@@ -10,12 +10,15 @@ inherit cmake flag-o-matic xdg toolchain-funcs python-single-r1
 
 DESCRIPTION="SVG based generic vector-drawing program"
 HOMEPAGE="https://inkscape.org/"
-SRC_URI="https://media.inkscape.org/dl/resources/file/${P}.tar.xz"
+SRC_URI="
+	https://media.inkscape.org/dl/resources/file/${P}.tar.xz
+	https://dev.gentoo.org/~dilfridge/distfiles/inkscape-1.1-musl.txz
+"
 
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0"
 KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="cdr dbus dia exif graphicsmagick imagemagick inkjar jemalloc jpeg lcms
+IUSE="cdr dbus dia exif graphicsmagick imagemagick inkjar jemalloc jpeg
 openmp postscript readline spell static-libs svg2 visio wpg"
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
@@ -43,6 +46,7 @@ COMMON_DEPEND="${PYTHON_DEPS}
 	media-gfx/potrace
 	media-libs/fontconfig
 	media-libs/freetype:2
+	media-libs/lcms:2
 	media-libs/libpng:0=
 	net-libs/libsoup:2.4
 	sci-libs/gsl:=
@@ -66,7 +70,6 @@ COMMON_DEPEND="${PYTHON_DEPS}
 	)
 	jemalloc? ( dev-libs/jemalloc )
 	jpeg? ( virtual/jpeg:0 )
-	lcms? ( media-libs/lcms:2 )
 	readline? ( sys-libs/readline:= )
 	spell? ( app-text/gspell )
 	visio? (
@@ -98,10 +101,6 @@ RESTRICT="test"
 
 S="${WORKDIR}/${P}_2021-05-24_c4e8f9ed74"
 
-PATCHES=(
-	"${FILESDIR}/${P}-sentinels.patch" # 1.1 is the last affected version, it is already fixed in upstream
-)
-
 pkg_pretend() {
 	if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
 		tc-has-openmp || die "Please switch to an openmp compatible compiler"
@@ -109,6 +108,9 @@ pkg_pretend() {
 }
 
 src_prepare() {
+	# Backport from master
+	eapply "${WORKDIR}/inkscape-1.1-musl/"*.patch
+
 	cmake_src_prepare
 	sed -i "/install.*COPYING/d" CMakeScripts/ConfigCPack.cmake || die
 }
@@ -131,7 +133,7 @@ src_configure() {
 		-DWITH_GNU_READLINE=$(usex readline)
 		-DWITH_GSPELL=$(usex spell)
 		-DWITH_JEMALLOC=$(usex jemalloc)
-		-DENABLE_LCMS=$(usex lcms)
+		-DENABLE_LCMS=ON
 		-DWITH_OPENMP=$(usex openmp)
 		-DBUILD_SHARED_LIBS=$(usex !static-libs)
 		-DWITH_SVG2=$(usex svg2)

diff --git a/media-gfx/inkscape/inkscape-9999.ebuild b/media-gfx/inkscape/inkscape-9999.ebuild
index dc4abef7db6..05de5cb6c18 100644
--- a/media-gfx/inkscape/inkscape-9999.ebuild
+++ b/media-gfx/inkscape/inkscape-9999.ebuild
@@ -15,7 +15,7 @@ EGIT_REPO_URI="https://gitlab.com/inkscape/inkscape.git"
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0"
 KEYWORDS=""
-IUSE="cdr dbus dia exif graphicsmagick imagemagick inkjar jemalloc jpeg lcms
+IUSE="cdr dbus dia exif graphicsmagick imagemagick inkjar jemalloc jpeg
 openmp postscript readline spell static-libs svg2 test visio wpg"
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
@@ -43,6 +43,7 @@ COMMON_DEPEND="${PYTHON_DEPS}
 	media-gfx/potrace
 	media-libs/fontconfig
 	media-libs/freetype:2
+	media-libs/lcms:2
 	media-libs/libpng:0=
 	net-libs/libsoup:2.4
 	sci-libs/gsl:=
@@ -66,7 +67,6 @@ COMMON_DEPEND="${PYTHON_DEPS}
 	)
 	jemalloc? ( dev-libs/jemalloc )
 	jpeg? ( virtual/jpeg:0 )
-	lcms? ( media-libs/lcms:2 )
 	readline? ( sys-libs/readline:= )
 	spell? ( app-text/gspell )
 	visio? (
@@ -128,7 +128,7 @@ src_configure() {
 		-DWITH_GNU_READLINE=$(usex readline)
 		-DWITH_GSPELL=$(usex spell)
 		-DWITH_JEMALLOC=$(usex jemalloc)
-		-DENABLE_LCMS=$(usex lcms)
+		-DENABLE_LCMS=ON
 		-DWITH_OPENMP=$(usex openmp)
 		-DBUILD_SHARED_LIBS=$(usex !static-libs)
 		-DWITH_SVG2=$(usex svg2)


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2021-09-25 15:59 Andreas K. Hüttel
  0 siblings, 0 replies; 25+ messages in thread
From: Andreas K. Hüttel @ 2021-09-25 15:59 UTC (permalink / raw
  To: gentoo-commits

commit:     b5cf24fbb7854095f11b294e4999374fe2cdaadc
Author:     Petr Vaněk <arkamar <AT> atlas <DOT> cz>
AuthorDate: Mon Jul  5 09:17:05 2021 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Sep 25 15:58:54 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b5cf24fb

media-gfx/inkscape: add 1.1

- Add optional readline support
- gtkspell dependency was changed to gspell, aspell is not required
  anymore
- backported sentinel patch from upstream in order to support musl libc
- dropping ~hppa and ~ia64 keyword because they are missing in
  app-text/gspell dependency

Closes: https://bugs.gentoo.org/791925
Signed-off-by: Petr Vaněk <arkamar <AT> atlas.cz>
Closes: https://github.com/gentoo/gentoo/pull/22353
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 media-gfx/inkscape/Manifest                        |   1 +
 .../inkscape/files/inkscape-1.1-sentinels.patch    | 727 +++++++++++++++++++++
 media-gfx/inkscape/inkscape-1.1.ebuild             | 162 +++++
 3 files changed, 890 insertions(+)

diff --git a/media-gfx/inkscape/Manifest b/media-gfx/inkscape/Manifest
index 595bd98db34..1810db36929 100644
--- a/media-gfx/inkscape/Manifest
+++ b/media-gfx/inkscape/Manifest
@@ -1 +1,2 @@
 DIST inkscape-1.0.2.tar.xz 32421620 BLAKE2B c3f9c37b15343ba0955a6d06810aef5fb9e035a240f99579301b8cd93858a62b5ed1a3ff528a9642ec74b8900305495236cf7f4c672864369a4e33dca3b34bd4 SHA512 f4fbc627c0f07db11194715c505b771a60af29a9a7f8be0232e4f7eb6b1c5814c3f160c2003d64ec62aeb92ef44174320a47aa6b6abc7a67cc27c996cba9522d
+DIST inkscape-1.1.tar.xz 34203156 BLAKE2B 38896509dcdcf1ef18523c790855035ef16dfae75e27c2d69f782270f52a579557edcb790bef30f3210b9f797a619369d7d16dd23f098debdd8e5b6abf9b30aa SHA512 54b75f8794d748ef59d5b719ea04e3debadc1a5cf3f62f14254502567973bbd634850edd0a3bc082be878dacf041e9bd10982c4846bf154f89aa5319eda4ee80

diff --git a/media-gfx/inkscape/files/inkscape-1.1-sentinels.patch b/media-gfx/inkscape/files/inkscape-1.1-sentinels.patch
new file mode 100644
index 00000000000..b4768d44f27
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.1-sentinels.patch
@@ -0,0 +1,727 @@
+From 3abc0aac5ffed8a130086e93b1fdba596f505a1c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@atlas.cz>
+Date: Fri, 2 Jul 2021 12:10:48 +0200
+Subject: [PATCH] Fix sentinel errors for builds against musl libc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This change fixes failing builds on systems with musl libc, where one
+can experience lots of errors similar to following one:
+
+```
+FAILED: src/libnrtype/CMakeFiles/nrtype_LIB.dir/font-lister.cpp.o
+/usr/bin/c++ ... -c ../src/libnrtype/font-lister.cpp
+../src/libnrtype/font-lister.cpp: In function ‘void font_lister_cell_data_func2(GtkCellLayout*, GtkCellRenderer*, GtkTreeModel*, GtkTreeIter*, gpointer)’:
+../src/libnrtype/font-lister.cpp:1236:64: error: missing sentinel in function call [-Werror=format=]
+ 1236 |     g_object_set(G_OBJECT(cell), "markup", markup.c_str(), NULL);
+      |                                                                ^
+```
+
+Those errors are triggered by the compiler, because musl does not use
+GCC's or Clang's __null extension for NULL definition, because it seems
+non-conforming to the standard's requirements [1]. However, it is
+possible to trigger this error with -Wstrict-null-sentinel GCC flag on
+systems with glibc.
+
+[1]: https://git.musl-libc.org/cgit/musl/commit/?id=c8a9c22173f485c8c053709e1dfa0a617cb6be1a
+
+---
+
+The patch is taken from upstream 1.1.x branch.
+
+Upstream-issue: https://gitlab.com/inkscape/inkscape/-/issues/1880
+Upstream-MR: https://gitlab.com/inkscape/inkscape/-/merge_requests/3378
+Backported-from: https://gitlab.com/inkscape/inkscape/-/merge_requests/3378/diffs?commit_id=8d8d7adb07649fa64f9879b56187708ab7166149
+
+
+
+diff --git a/src/display/nr-filter-image.cpp b/src/display/nr-filter-image.cpp
+index bfc2b6bb1f..5311d8cbce 100644
+--- a/src/display/nr-filter-image.cpp
++++ b/src/display/nr-filter-image.cpp
+@@ -158,7 +158,7 @@ void FilterImage::render_cairo(FilterSlot &slot)
+         if ( !g_file_test( fullname, G_FILE_TEST_EXISTS ) ) {
+             // Try to load from relative position combined with document base
+             if( document ) {
+-                fullname = g_build_filename( document->getDocumentBase(), feImageHref, NULL );
++                fullname = g_build_filename( document->getDocumentBase(), feImageHref, nullptr );
+             }
+         }
+         if ( !g_file_test( fullname, G_FILE_TEST_EXISTS ) ) {
+diff --git a/src/extension/dbus/document-interface.cpp b/src/extension/dbus/document-interface.cpp
+index 5021734722..f490b5b6d5 100644
+--- a/src/extension/dbus/document-interface.cpp
++++ b/src/extension/dbus/document-interface.cpp
+@@ -474,7 +474,7 @@ document_interface_spiral (DocumentInterface *doc_interface, int cx, int cy,
+     sp_repr_set_int(newNode, "sodipodi:expansion", 1);
+     gchar * retval = finish_create_shape (doc_interface, error, newNode, (gchar *)"create spiral");
+     //Makes sure there is no fill for spirals by default.
+-    gchar* newString = g_strconcat(newNode->attribute("style"), ";fill:none", NULL);
++    gchar* newString = g_strconcat(newNode->attribute("style"), ";fill:none", nullptr);
+     newNode->setAttribute("style", newString);
+     g_free(newString);
+     return retval;
+diff --git a/src/extension/dependency.cpp b/src/extension/dependency.cpp
+index f94634bbc3..09928c64f7 100644
+--- a/src/extension/dependency.cpp
++++ b/src/extension/dependency.cpp
+@@ -186,7 +186,7 @@ bool Dependency::check ()
+                         break;
+                     }
+                     /* Look for deprecated locations next */
+-                    auto deprloc = g_build_filename("inkex", "deprecated-simple", location.c_str(), NULL);
++                    auto deprloc = g_build_filename("inkex", "deprecated-simple", location.c_str(), nullptr);
+                     std::string tempdepr =
+                         Inkscape::IO::Resource::get_filename_string(Inkscape::IO::Resource::EXTENSIONS, deprloc, false, true);
+                     g_free(deprloc);
+diff --git a/src/inkscape.cpp b/src/inkscape.cpp
+index 29b7e08c25..07794fd8b9 100644
+--- a/src/inkscape.cpp
++++ b/src/inkscape.cpp
+@@ -434,15 +434,15 @@ void Application::add_gtk_css(bool only_providers)
+     gboolean gtkApplicationPreferDarkTheme;
+     GtkSettings *settings = gtk_settings_get_default();
+     if (settings && !only_providers) {
+-        g_object_get(settings, "gtk-icon-theme-name", &gtkIconThemeName, NULL);
+-        g_object_get(settings, "gtk-theme-name", &gtkThemeName, NULL);
+-        g_object_get(settings, "gtk-application-prefer-dark-theme", &gtkApplicationPreferDarkTheme, NULL);
++        g_object_get(settings, "gtk-icon-theme-name", &gtkIconThemeName, nullptr);
++        g_object_get(settings, "gtk-theme-name", &gtkThemeName, nullptr);
++        g_object_get(settings, "gtk-application-prefer-dark-theme", &gtkApplicationPreferDarkTheme, nullptr);
+         prefs->setBool("/theme/defaultPreferDarkTheme", gtkApplicationPreferDarkTheme);
+         prefs->setString("/theme/defaultGtkTheme", Glib::ustring(gtkThemeName));
+         prefs->setString("/theme/defaultIconTheme", Glib::ustring(gtkIconThemeName));
+         Glib::ustring gtkthemename = prefs->getString("/theme/gtkTheme");
+         if (gtkthemename != "") {
+-            g_object_set(settings, "gtk-theme-name", gtkthemename.c_str(), NULL);
++            g_object_set(settings, "gtk-theme-name", gtkthemename.c_str(), nullptr);
+         } else {
+             Glib::RefPtr<Gdk::Display> display = Gdk::Display::get_default();
+             Glib::RefPtr<Gdk::Screen>  screen = display->get_default_screen();
+@@ -451,13 +451,13 @@ void Application::add_gtk_css(bool only_providers)
+             prefs->setBool("/theme/symbolicIcons", iconinfo.is_symbolic());
+         }
+         bool preferdarktheme = prefs->getBool("/theme/preferDarkTheme", false);
+-        g_object_set(settings, "gtk-application-prefer-dark-theme", preferdarktheme, NULL);
++        g_object_set(settings, "gtk-application-prefer-dark-theme", preferdarktheme, nullptr);
+         themeiconname = prefs->getString("/theme/iconTheme");
+         // legacy cleanup
+         if (themeiconname == prefs->getString("/theme/defaultIconTheme")) {
+             prefs->setString("/theme/iconTheme", "");
+         } else if (themeiconname != "") {
+-            g_object_set(settings, "gtk-icon-theme-name", themeiconname.c_str(), NULL);
++            g_object_set(settings, "gtk-icon-theme-name", themeiconname.c_str(), nullptr);
+         }
+     }
+ 
+@@ -684,7 +684,7 @@ Application::crash_handler (int /*signum*/)
+             FILE *file = nullptr;
+             for(auto & location : locations) {
+                 if (!location) continue; // It seems to be okay, but just in case
+-                gchar * filename = g_build_filename(location, c, NULL);
++                gchar * filename = g_build_filename(location, c, nullptr);
+                 Inkscape::IO::dump_fopen_call(filename, "E");
+                 file = Inkscape::IO::fopen_utf8name(filename, "w");
+                 if (file) {
+diff --git a/src/io/resource.cpp b/src/io/resource.cpp
+index fec933f1a9..c75c4ed6cf 100644
+--- a/src/io/resource.cpp
++++ b/src/io/resource.cpp
+@@ -445,14 +445,14 @@ char const *profile_path()
+             }
+ 
+             if (prefdir) {
+-                const char *prefdir_profile = g_build_filename(prefdir, INKSCAPE_PROFILE_DIR, NULL);
++                const char *prefdir_profile = g_build_filename(prefdir, INKSCAPE_PROFILE_DIR, nullptr);
+                 g_free((void *)prefdir);
+                 prefdir = prefdir_profile;
+             }
+         }
+ #endif
+         if (!prefdir) {
+-            prefdir = g_build_filename(g_get_user_config_dir(), INKSCAPE_PROFILE_DIR, NULL);
++            prefdir = g_build_filename(g_get_user_config_dir(), INKSCAPE_PROFILE_DIR, nullptr);
+             // In case the XDG user config dir of the moment does not yet exist...
+             int mode = S_IRWXU;
+ #ifdef S_IRGRP
+@@ -471,7 +471,7 @@ char const *profile_path()
+                 gchar const *userDirs[] = { "keys", "templates", "icons", "extensions", "ui",
+                                             "symbols", "paint", "themes", "palettes", nullptr };
+                 for (gchar const** name = userDirs; *name; ++name) {
+-                    gchar *dir = g_build_filename(prefdir, *name, NULL);
++                    gchar *dir = g_build_filename(prefdir, *name, nullptr);
+                     g_mkdir_with_parents(dir, mode);
+                     g_free(dir);
+                 }
+@@ -495,7 +495,7 @@ char *homedir_path(const char *filename)
+     static const gchar *homedir = nullptr;
+     homedir = g_get_home_dir();
+ 
+-    return g_build_filename(homedir, filename, NULL);
++    return g_build_filename(homedir, filename, nullptr);
+ }
+ 
+ }
+diff --git a/src/libnrtype/font-lister.cpp b/src/libnrtype/font-lister.cpp
+index 6177e7479d..75ff172c05 100644
+--- a/src/libnrtype/font-lister.cpp
++++ b/src/libnrtype/font-lister.cpp
+@@ -1233,7 +1233,7 @@ void font_lister_cell_data_func2(GtkCellLayout * /*cell_layout*/,
+         g_free(sample_escaped);
+     }
+ 
+-    g_object_set(G_OBJECT(cell), "markup", markup.c_str(), NULL);
++    g_object_set(G_OBJECT(cell), "markup", markup.c_str(), nullptr);
+     g_free(family);
+     g_free(family_escaped);
+ }
+diff --git a/src/object/color-profile.cpp b/src/object/color-profile.cpp
+index da103e90d1..a2464194dc 100644
+--- a/src/object/color-profile.cpp
++++ b/src/object/color-profile.cpp
+@@ -700,7 +700,7 @@ std::set<ColorProfile::FilePlusHome> ColorProfile::getBaseProfileDirs() {
+     std::set<ColorProfile::FilePlusHome> sources;
+ 
+     // first try user's local dir
+-    gchar* path = g_build_filename(g_get_user_data_dir(), "color", "icc", NULL);
++    gchar* path = g_build_filename(g_get_user_data_dir(), "color", "icc", nullptr);
+     sources.insert(FilePlusHome(path, true));
+     g_free(path);
+ 
+@@ -708,11 +708,11 @@ std::set<ColorProfile::FilePlusHome> ColorProfile::getBaseProfileDirs() {
+     // (see https://github.com/hughsie/colord/blob/fe10f76536bb27614ced04e0ff944dc6fb4625c0/lib/colord/cd-icc-store.c#L590)
+ 
+     // user store
+-    path = g_build_filename(g_get_user_data_dir(), "icc", NULL);
++    path = g_build_filename(g_get_user_data_dir(), "icc", nullptr);
+     sources.insert(FilePlusHome(path, true));
+     g_free(path);
+ 
+-    path = g_build_filename(g_get_home_dir(), ".color", "icc", NULL);
++    path = g_build_filename(g_get_home_dir(), ".color", "icc", nullptr);
+     sources.insert(FilePlusHome(path, true));
+     g_free(path);
+ 
+@@ -722,7 +722,7 @@ std::set<ColorProfile::FilePlusHome> ColorProfile::getBaseProfileDirs() {
+ 
+     const gchar* const * dataDirs = g_get_system_data_dirs();
+     for ( int i = 0; dataDirs[i]; i++ ) {
+-        gchar* path = g_build_filename(dataDirs[i], "color", "icc", NULL);
++        gchar* path = g_build_filename(dataDirs[i], "color", "icc", nullptr);
+         sources.insert(FilePlusHome(path, false));
+         g_free(path);
+     }
+@@ -732,7 +732,7 @@ std::set<ColorProfile::FilePlusHome> ColorProfile::getBaseProfileDirs() {
+         sources.insert(FilePlusHome("/System/Library/ColorSync/Profiles", false));
+         sources.insert(FilePlusHome("/Library/ColorSync/Profiles", false));
+ 
+-        gchar *path = g_build_filename(g_get_home_dir(), "Library", "ColorSync", "Profiles", NULL);
++        gchar *path = g_build_filename(g_get_home_dir(), "Library", "ColorSync", "Profiles", nullptr);
+         sources.insert(FilePlusHome(path, true));
+         g_free(path);
+     }
+diff --git a/src/object/sp-guide.cpp b/src/object/sp-guide.cpp
+index 01e7596801..678c2b20bc 100644
+--- a/src/object/sp-guide.cpp
++++ b/src/object/sp-guide.cpp
+@@ -538,7 +538,7 @@ char* SPGuide::description(bool const verbose) const
+         
+         if (verbose) {
+             gchar *oldDescr = descr;
+-            descr = g_strconcat(oldDescr, shortcuts, NULL);
++            descr = g_strconcat(oldDescr, shortcuts, nullptr);
+             g_free(oldDescr);
+         }
+ 
+diff --git a/src/object/sp-image.cpp b/src/object/sp-image.cpp
+index 3c3fc5dd8a..459ecd4243 100644
+--- a/src/object/sp-image.cpp
++++ b/src/object/sp-image.cpp
+@@ -756,7 +756,7 @@ void sp_embed_image(Inkscape::XML::Node *image_node, Inkscape::Pixbuf *pb)
+     if (data == nullptr) {
+         // if there is no supported MIME data, embed as PNG
+         data_mimetype = "image/png";
+-        gdk_pixbuf_save_to_buffer(pb->getPixbufRaw(), reinterpret_cast<gchar**>(&data), &len, "png", nullptr, NULL);
++        gdk_pixbuf_save_to_buffer(pb->getPixbufRaw(), reinterpret_cast<gchar**>(&data), &len, "png", nullptr, nullptr);
+         free_data = true;
+     }
+ 
+diff --git a/src/rdf.cpp b/src/rdf.cpp
+index 563776a19b..3aeb0afa9d 100644
+--- a/src/rdf.cpp
++++ b/src/rdf.cpp
+@@ -543,7 +543,7 @@ const gchar *RDFImpl::getReprText( Inkscape::XML::Node const * repr, struct rdf_
+                     const gchar * str = temp->firstChild()->content();
+                     if (bag) {
+                         holder = bag;
+-                        bag = g_strconcat(holder, ", ", str, NULL);
++                        bag = g_strconcat(holder, ", ", str, nullptr);
+                         g_free(holder);
+                     }
+                     else {
+diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp
+index 5596030a64..38c5d59063 100644
+--- a/src/selection-chemistry.cpp
++++ b/src/selection-chemistry.cpp
+@@ -3663,7 +3663,7 @@ void ObjectSet::createBitmapCopy()
+     if (directory == nullptr) {
+         directory = Inkscape::IO::Resource::homedir_path(nullptr);
+     }
+-    gchar *filepath = g_build_filename(directory, basename, NULL);
++    gchar *filepath = g_build_filename(directory, basename, nullptr);
+     g_free(directory);
+ 
+     //g_print("%s\n", filepath);
+diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp
+index 0cddf4586c..426ec52e81 100644
+--- a/src/ui/clipboard.cpp
++++ b/src/ui/clipboard.cpp
+@@ -1221,7 +1221,7 @@ bool ClipboardManagerImpl::_pasteImage(SPDocument *doc)
+     prefs->setBool("/dialogs/import/ask", false);
+     png->set_gui(false);
+ 
+-    gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-import", NULL );
++    gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-import", nullptr );
+     img->save(filename, "png");
+     file_import(doc, filename, png);
+     g_free(filename);
+@@ -1320,7 +1320,7 @@ std::unique_ptr<SPDocument> ClipboardManagerImpl::_retrieveClipboard(Glib::ustri
+ 
+     // FIXME: Temporary hack until we add memory input.
+     // Save the clipboard contents to some file, then read it
+-    gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-import", NULL );
++    gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-import", nullptr );
+ 
+     bool file_saved = false;
+     Glib::ustring target = best_target;
+@@ -1413,7 +1413,7 @@ void ClipboardManagerImpl::_onGet(Gtk::SelectionData &sel, guint /*info*/)
+ 
+     // FIXME: Temporary hack until we add support for memory output.
+     // Save to a temporary file, read it back and then set the clipboard contents
+-    gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-export", NULL );
++    gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-export", nullptr );
+     gchar *data = nullptr;
+     gsize len;
+ 
+@@ -1675,7 +1675,7 @@ void ClipboardManagerImpl::_setClipboardTargets()
+             if ( out != outlist.end() ) {
+                 // FIXME: Temporary hack until we add support for memory output.
+                 // Save to a temporary file, read it back and then set the clipboard contents
+-                gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-export.emf", NULL );
++                gchar *filename = g_build_filename( g_get_user_cache_dir(), "inkscape-clipboard-export.emf", nullptr );
+ 
+                 try {
+                     (*out)->save(_clipboardSPDoc.get(), filename);
+diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp
+index 7802c37449..cd8af7f4a8 100644
+--- a/src/ui/dialog/clonetiler.cpp
++++ b/src/ui/dialog/clonetiler.cpp
+@@ -159,7 +159,7 @@ CloneTiler::CloneTiler()
+             auto cell_list = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(combo->gobj()));
+             gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo->gobj()),
+                                            GTK_CELL_RENDERER(cell_list->data),
+-                                           "markup", 0, NULL);
++                                           "markup", 0, nullptr);
+ 
+             for (const auto & sg : sym_groups) {
+                 // Add the description of the symgroup to a new row
+diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp
+index 7496284cec..7f83143992 100644
+--- a/src/ui/dialog/export.cpp
++++ b/src/ui/dialog/export.cpp
+@@ -490,7 +490,7 @@ void Export::set_default_filename () {
+                 extension_point = g_strrstr(uri_copy, old_extension);
+                 extension_point[0] = '\0';
+ 
+-                final_name = g_strconcat(uri_copy, ".png", NULL);
++                final_name = g_strconcat(uri_copy, ".png", nullptr);
+                 filename_entry.set_text(final_name);
+                 filename_entry.set_position(strlen(final_name));
+ 
+@@ -498,7 +498,7 @@ void Export::set_default_filename () {
+                 g_free(uri_copy);
+             }
+         } else {
+-            gchar *name = g_strconcat(uri, ".png", NULL);
++            gchar *name = g_strconcat(uri, ".png", nullptr);
+             filename_entry.set_text(name);
+             filename_entry.set_position(strlen(name));
+ 
+diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
+index 940ef1b834..520e6091d1 100644
+--- a/src/ui/dialog/inkscape-preferences.cpp
++++ b/src/ui/dialog/inkscape-preferences.cpp
+@@ -1623,7 +1623,7 @@ void InkscapePreferences::initPageUI()
+         _page_theme.add_line(false, _("Change GTK theme:"), _gtk_theme, "", "", false);
+         _gtk_theme.signal_changed().connect(sigc::mem_fun(*this, &InkscapePreferences::themeChange));
+     }
+-    _sys_user_themes_dir_copy.init(g_build_filename(g_get_user_data_dir(), "themes", NULL), _("Open themes folder"));
++    _sys_user_themes_dir_copy.init(g_build_filename(g_get_user_data_dir(), "themes", nullptr), _("Open themes folder"));
+     _page_theme.add_line(true, _("User themes:"), _sys_user_themes_dir_copy, "", _("Location of the user’s themes"), true, Gtk::manage(new Gtk::Box()));
+     //_contrast_theme.init("/theme/contrast", 1, 10, 1, 2, 10, 1);
+     Gtk::Widget *space = new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL);
+@@ -3351,7 +3351,7 @@ void InkscapePreferences::initPageSystem()
+                              _("Open fonts folder"));
+     _page_system.add_line(true, _("User fonts:"), _sys_user_fonts_dir, "", _("Location of the user’s fonts"), true);
+ 
+-    _sys_user_themes_dir.init(g_build_filename(g_get_user_data_dir(), "themes", NULL), _("Open themes folder"));
++    _sys_user_themes_dir.init(g_build_filename(g_get_user_data_dir(), "themes", nullptr), _("Open themes folder"));
+     _page_system.add_line(true, _("User themes:"), _sys_user_themes_dir, "", _("Location of the user’s themes"), true);
+ 
+     _sys_user_icons_dir.init((char const *)IO::Resource::get_path(IO::Resource::USER, IO::Resource::ICONS, ""),
+diff --git a/src/ui/drag-and-drop.cpp b/src/ui/drag-and-drop.cpp
+index 880906c34b..c99bd0f4f5 100644
+--- a/src/ui/drag-and-drop.cpp
++++ b/src/ui/drag-and-drop.cpp
+@@ -357,7 +357,7 @@ ink_drag_data_received(GtkWidget *widget,
+             ext->set_param_optiongroup("link", "embed");
+             ext->set_gui(false);
+ 
+-            gchar *filename = g_build_filename( g_get_tmp_dir(), "inkscape-dnd-import", NULL );
++            gchar *filename = g_build_filename( g_get_tmp_dir(), "inkscape-dnd-import", nullptr );
+             g_file_set_contents(filename,
+                 reinterpret_cast<gchar const *>(gtk_selection_data_get_data (data)),
+                 gtk_selection_data_get_length (data),
+diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp
+index 089327c7ac..8ae64382d6 100644
+--- a/src/ui/interface.cpp
++++ b/src/ui/interface.cpp
+@@ -203,7 +203,7 @@ sp_ui_overwrite_file(gchar const *filename)
+         gtk_dialog_add_buttons( GTK_DIALOG(dialog),
+                                 _("_Cancel"), GTK_RESPONSE_NO,
+                                 _("Replace"), GTK_RESPONSE_YES,
+-                                NULL );
++                                nullptr );
+         gtk_dialog_set_default_response( GTK_DIALOG(dialog), GTK_RESPONSE_YES );
+ 
+         if ( gtk_dialog_run( GTK_DIALOG(dialog) ) == GTK_RESPONSE_YES ) {
+diff --git a/src/ui/themes.cpp b/src/ui/themes.cpp
+index f874c4c1a8..ff1eca4a9f 100644
+--- a/src/ui/themes.cpp
++++ b/src/ui/themes.cpp
+@@ -30,15 +30,15 @@
+ static void inkscape_fill_gtk(const gchar *path, gtkThemeList &themes)
+ {
+     const gchar *dir_entry;
+-    GDir *dir = g_dir_open(path, 0, NULL);
++    GDir *dir = g_dir_open(path, 0, nullptr);
+     if (!dir)
+         return;
+     while ((dir_entry = g_dir_read_name(dir))) {
+-        gchar *filename = g_build_filename(path, dir_entry, "gtk-3.0", "gtk.css", NULL);
++        gchar *filename = g_build_filename(path, dir_entry, "gtk-3.0", "gtk.css", nullptr);
+         bool has_prefer_dark = false;
+   
+         Glib::ustring theme = dir_entry;
+-        gchar *filenamedark = g_build_filename(path, dir_entry, "gtk-3.0", "gtk-dark.css", NULL);
++        gchar *filenamedark = g_build_filename(path, dir_entry, "gtk-3.0", "gtk-dark.css", nullptr);
+         if (g_file_test(filenamedark, G_FILE_TEST_IS_REGULAR))
+             has_prefer_dark = true;
+         if (themes.find(theme) != themes.end() && !has_prefer_dark) {
+@@ -67,7 +67,7 @@ std::map<Glib::ustring, bool> get_available_themes()
+     const gchar *const *dirs;
+   
+     /* Builtin themes */
+-    builtin_themes = g_resources_enumerate_children("/org/gtk/libgtk/theme", G_RESOURCE_LOOKUP_FLAGS_NONE, NULL);
++    builtin_themes = g_resources_enumerate_children("/org/gtk/libgtk/theme", G_RESOURCE_LOOKUP_FLAGS_NONE, nullptr);
+     for (i = 0; builtin_themes[i] != NULL; i++) {
+         if (g_str_has_suffix(builtin_themes[i], "/")) {
+             theme = builtin_themes[i];
+@@ -75,7 +75,7 @@ std::map<Glib::ustring, bool> get_available_themes()
+             Glib::ustring theme_path = "/org/gtk/libgtk/theme";
+             theme_path += "/" + theme;
+             gchar **builtin_themes_files =
+-                g_resources_enumerate_children(theme_path.c_str(), G_RESOURCE_LOOKUP_FLAGS_NONE, NULL);
++                g_resources_enumerate_children(theme_path.c_str(), G_RESOURCE_LOOKUP_FLAGS_NONE, nullptr);
+             bool has_prefer_dark = false;
+             if (builtin_themes_files != NULL) {
+                 for (j = 0; builtin_themes_files[j] != NULL; j++) {
+@@ -92,17 +92,17 @@ std::map<Glib::ustring, bool> get_available_themes()
+ 
+     g_strfreev(builtin_themes);
+ 
+-    path = g_build_filename(g_get_user_data_dir(), "themes", NULL);
++    path = g_build_filename(g_get_user_data_dir(), "themes", nullptr);
+     inkscape_fill_gtk(path, themes);
+     g_free(path);
+   
+-    path = g_build_filename(g_get_home_dir(), ".themes", NULL);
++    path = g_build_filename(g_get_home_dir(), ".themes", nullptr);
+     inkscape_fill_gtk(path, themes);
+     g_free(path);
+   
+     dirs = g_get_system_data_dirs();
+     for (i = 0; dirs[i]; i++) {
+-        path = g_build_filename(dirs[i], "themes", NULL);
++        path = g_build_filename(dirs[i], "themes", nullptr);
+         inkscape_fill_gtk(path, themes);
+         g_free(path);
+     }
+diff --git a/src/ui/tool/control-point.cpp b/src/ui/tool/control-point.cpp
+index c29b09d93f..13f2e60c6e 100644
+--- a/src/ui/tool/control-point.cpp
++++ b/src/ui/tool/control-point.cpp
+@@ -185,7 +185,7 @@ void ControlPoint::_setControlType(Inkscape::CanvasItemCtrlType type)
+ 
+ void ControlPoint::_setAnchor(SPAnchorType anchor)
+ {
+-//     g_object_set(_canvas_item_ctrl, "anchor", anchor, NULL);
++//     g_object_set(_canvas_item_ctrl, "anchor", anchor, nullptr);
+ }
+ 
+ void ControlPoint::_setPixbuf(Glib::RefPtr<Gdk::Pixbuf> p)
+diff --git a/src/ui/toolbar/arc-toolbar.cpp b/src/ui/toolbar/arc-toolbar.cpp
+index b663d905f4..986b28b3f8 100644
+--- a/src/ui/toolbar/arc-toolbar.cpp
++++ b/src/ui/toolbar/arc-toolbar.cpp
+@@ -309,7 +309,7 @@ ArcToolbar::startend_value_changed(Glib::RefPtr<Gtk::Adjustment>&  adj,
+     // in turn, prevent listener from responding
+     _freeze = true;
+ 
+-    gchar* namespaced_name = g_strconcat("sodipodi:", value_name, NULL);
++    gchar* namespaced_name = g_strconcat("sodipodi:", value_name, nullptr);
+ 
+     bool modmade = false;
+     auto itemlist= _desktop->getSelection()->items();
+diff --git a/src/ui/toolbar/spiral-toolbar.cpp b/src/ui/toolbar/spiral-toolbar.cpp
+index 05ce654242..bae2f8c064 100644
+--- a/src/ui/toolbar/spiral-toolbar.cpp
++++ b/src/ui/toolbar/spiral-toolbar.cpp
+@@ -175,7 +175,7 @@ SpiralToolbar::value_changed(Glib::RefPtr<Gtk::Adjustment> &adj,
+     // in turn, prevent listener from responding
+     _freeze = true;
+ 
+-    gchar* namespaced_name = g_strconcat("sodipodi:", value_name.data(), NULL);
++    gchar* namespaced_name = g_strconcat("sodipodi:", value_name.data(), nullptr);
+ 
+     bool modmade = false;
+     auto itemlist= _desktop->getSelection()->items();
+diff --git a/src/ui/tools/gradient-tool.cpp b/src/ui/tools/gradient-tool.cpp
+index e83d2b4613..6aecf92ce4 100644
+--- a/src/ui/tools/gradient-tool.cpp
++++ b/src/ui/tools/gradient-tool.cpp
+@@ -116,7 +116,7 @@ void GradientTool::selection_changed(Inkscape::Selection*) {
+                 _("%s selected"),
+                 //TRANSLATORS: Mind the space in front. This is part of a compound message
+                 ngettext(" out of %d gradient handle"," out of %d gradient handles",n_tot),
+-                ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
++                ngettext(" on %d selected object"," on %d selected objects",n_obj),nullptr);
+             message_context->setF(Inkscape::NORMAL_MESSAGE,
+                                   message,_(gr_handle_descr[drag->singleSelectedDraggerSingleDraggableType()]), n_tot, n_obj);
+         } else {
+@@ -125,14 +125,14 @@ void GradientTool::selection_changed(Inkscape::Selection*) {
+                 ngettext("One handle merging %d stop (drag with <b>Shift</b> to separate) selected",
+                          "One handle merging %d stops (drag with <b>Shift</b> to separate) selected",drag->singleSelectedDraggerNumDraggables()),
+                 ngettext(" out of %d gradient handle"," out of %d gradient handles",n_tot),
+-                ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
++                ngettext(" on %d selected object"," on %d selected objects",n_obj),nullptr);
+             message_context->setF(Inkscape::NORMAL_MESSAGE,message,drag->singleSelectedDraggerNumDraggables(), n_tot, n_obj);
+         }
+     } else if (n_sel > 1) {
+         //TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count)
+         gchar * message = g_strconcat(ngettext("<b>%d</b> gradient handle selected out of %d","<b>%d</b> gradient handles selected out of %d",n_sel),
+                                       //TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message
+-                                      ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
++                                      ngettext(" on %d selected object"," on %d selected objects",n_obj),nullptr);
+         message_context->setF(Inkscape::NORMAL_MESSAGE,message, n_sel, n_tot, n_obj);
+     } else if (n_sel == 0) {
+         message_context->setF(Inkscape::NORMAL_MESSAGE,
+diff --git a/src/ui/tools/mesh-tool.cpp b/src/ui/tools/mesh-tool.cpp
+index 07bf68bd12..fbde77f36f 100644
+--- a/src/ui/tools/mesh-tool.cpp
++++ b/src/ui/tools/mesh-tool.cpp
+@@ -131,7 +131,7 @@ void MeshTool::selection_changed(Inkscape::Selection* /*sel*/) {
+                 _("%s selected"),
+                 //TRANSLATORS: Mind the space in front. This is part of a compound message
+                 ngettext(" out of %d mesh handle"," out of %d mesh handles",n_tot),
+-                ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
++                ngettext(" on %d selected object"," on %d selected objects",n_obj),nullptr);
+             this->message_context->setF(Inkscape::NORMAL_MESSAGE,
+                                        message,_(ms_handle_descr[drag->singleSelectedDraggerSingleDraggableType()]), n_tot, n_obj);
+         } else {
+@@ -142,7 +142,7 @@ void MeshTool::selection_changed(Inkscape::Selection* /*sel*/) {
+                              "One handle merging %d stops (drag with <b>Shift</b> to separate) selected",
+                              drag->singleSelectedDraggerNumDraggables()),
+                     ngettext(" out of %d mesh handle"," out of %d mesh handles",n_tot),
+-                    ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
++                    ngettext(" on %d selected object"," on %d selected objects",n_obj),nullptr);
+             this->message_context->setF(Inkscape::NORMAL_MESSAGE,message,drag->singleSelectedDraggerNumDraggables(), n_tot, n_obj);
+         }
+     } else if (n_sel > 1) {
+@@ -150,7 +150,7 @@ void MeshTool::selection_changed(Inkscape::Selection* /*sel*/) {
+         gchar * message =
+             g_strconcat(ngettext("<b>%d</b> mesh handle selected out of %d","<b>%d</b> mesh handles selected out of %d",n_sel),
+                         //TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message
+-                        ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
++                        ngettext(" on %d selected object"," on %d selected objects",n_obj),nullptr);
+         this->message_context->setF(Inkscape::NORMAL_MESSAGE,message, n_sel, n_tot, n_obj);
+     } else if (n_sel == 0) {
+         this->message_context->setF(Inkscape::NORMAL_MESSAGE,
+diff --git a/src/ui/tools/text-tool.cpp b/src/ui/tools/text-tool.cpp
+index 4d0d7f5885..8f7aba97b1 100644
+--- a/src/ui/tools/text-tool.cpp
++++ b/src/ui/tools/text-tool.cpp
+@@ -100,8 +100,8 @@ TextTool::~TextTool() {
+ void TextTool::setup() {
+     GtkSettings* settings = gtk_settings_get_default();
+     gint timeout = 0;
+-    g_object_get( settings, "gtk-cursor-blink-time", &timeout, NULL );
+-    
++    g_object_get( settings, "gtk-cursor-blink-time", &timeout, nullptr );
++
+     if (timeout < 0) {
+         timeout = 200;
+     } else {
+diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp
+index 99c6b57af0..cf3b4b4b9b 100644
+--- a/src/ui/widget/color-icc-selector.cpp
++++ b/src/ui/widget/color-icc-selector.cpp
+@@ -369,7 +369,7 @@ void ColorICCSelector::init()
+ 
+     GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
+     gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(_impl->_profileSel), renderer, TRUE);
+-    gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(_impl->_profileSel), renderer, "text", 0, NULL);
++    gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(_impl->_profileSel), renderer, "text", 0, nullptr);
+ 
+     GtkTreeIter iter;
+     gtk_list_store_append(store, &iter);
+diff --git a/src/ui/widget/combo-box-entry-tool-item.cpp b/src/ui/widget/combo-box-entry-tool-item.cpp
+index 60f87d938b..9bce9ce91b 100644
+--- a/src/ui/widget/combo-box-entry-tool-item.cpp
++++ b/src/ui/widget/combo-box-entry-tool-item.cpp
+@@ -74,8 +74,8 @@ ComboBoxEntryToolItem::ComboBoxEntryToolItem(Glib::ustring name,
+     set_name(name);
+ 
+     gchar *action_name = g_strdup( get_name().c_str() );
+-    gchar *combobox_name = g_strjoin( nullptr, action_name, "_combobox", NULL );
+-    gchar *entry_name =    g_strjoin( nullptr, action_name, "_entry", NULL );
++    gchar *combobox_name = g_strjoin( nullptr, action_name, "_combobox", nullptr );
++    gchar *entry_name =    g_strjoin( nullptr, action_name, "_entry", nullptr );
+     g_free( action_name );
+ 
+     GtkWidget* comboBoxEntry = gtk_combo_box_new_with_model_and_entry (_model);
+diff --git a/src/ui/widget/marker-combo-box.cpp b/src/ui/widget/marker-combo-box.cpp
+index 6ecc77be14..82199c547d 100644
+--- a/src/ui/widget/marker-combo-box.cpp
++++ b/src/ui/widget/marker-combo-box.cpp
+@@ -201,7 +201,7 @@ const gchar * MarkerComboBox::get_active_marker_uri()
+         gchar *markurn;
+         if (stockid)
+         {
+-            markurn = g_strconcat("urn:inkscape:marker:",markid,NULL);
++            markurn = g_strconcat("urn:inkscape:marker:",markid,nullptr);
+         }
+         else
+         {
+@@ -211,7 +211,7 @@ const gchar * MarkerComboBox::get_active_marker_uri()
+         g_free(markurn);
+         if (mark) {
+             Inkscape::XML::Node *repr = mark->getRepr();
+-            marker = g_strconcat("url(#", repr->attribute("id"), ")", NULL);
++            marker = g_strconcat("url(#", repr->attribute("id"), ")", nullptr);
+         }
+     } else {
+         marker = g_strdup(markid);
+@@ -366,7 +366,7 @@ void MarkerComboBox::add_markers (std::vector<SPMarker *> const& marker_list, SP
+ void
+ MarkerComboBox::update_marker_image(gchar const *mname)
+ {
+-    gchar *cache_name = g_strconcat(combo_id, mname, NULL);
++    gchar *cache_name = g_strconcat(combo_id, mname, nullptr);
+     Glib::ustring key = svg_preview_cache.cache_key(doc->getDocumentURI(), cache_name, 24);
+     g_free (cache_name);
+     svg_preview_cache.remove_preview_from_cache(key);
+@@ -403,7 +403,7 @@ MarkerComboBox::create_marker_image(unsigned psize, gchar const *mname,
+     }
+ 
+     /* Get from cache right away */
+-    gchar *cache_name = g_strconcat(combo_id, mname, NULL);
++    gchar *cache_name = g_strconcat(combo_id, mname, nullptr);
+     Glib::ustring key = svg_preview_cache.cache_key(source->getDocumentURI(), cache_name, psize);
+     g_free (cache_name);
+     GdkPixbuf *pixbuf = svg_preview_cache.get_preview_from_cache(key); // no ref created
+diff --git a/src/ui/widget/paint-selector.cpp b/src/ui/widget/paint-selector.cpp
+index 26a5a56032..d196654f2b 100644
+--- a/src/ui/widget/paint-selector.cpp
++++ b/src/ui/widget/paint-selector.cpp
+@@ -878,7 +878,7 @@ void PaintSelector::set_mode_mesh(PaintSelector::Mode mode)
+             GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
+             gtk_cell_renderer_set_padding(renderer, 2, 0);
+             gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), renderer, TRUE);
+-            gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), renderer, "text", COMBO_COL_LABEL, NULL);
++            gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), renderer, "text", COMBO_COL_LABEL, nullptr);
+ 
+             ink_mesh_menu(combo);
+             g_signal_connect(G_OBJECT(combo), "changed", G_CALLBACK(PaintSelector::mesh_change), this);
+@@ -947,7 +947,7 @@ SPMeshGradient *PaintSelector::getMeshGradient()
+ 
+         gchar *mesh_name;
+         if (stockid) {
+-            mesh_name = g_strconcat("urn:inkscape:mesh:", meshid, NULL);
++            mesh_name = g_strconcat("urn:inkscape:mesh:", meshid, nullptr);
+         } else {
+             mesh_name = g_strdup(meshid);
+         }
+@@ -1202,7 +1202,7 @@ void PaintSelector::set_mode_pattern(PaintSelector::Mode mode)
+             GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
+             gtk_cell_renderer_set_padding(renderer, 2, 0);
+             gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(_patternmenu), renderer, TRUE);
+-            gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(_patternmenu), renderer, "text", COMBO_COL_LABEL, NULL);
++            gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(_patternmenu), renderer, "text", COMBO_COL_LABEL, nullptr);
+ 
+             ink_pattern_menu(_patternmenu);
+             g_signal_connect(G_OBJECT(_patternmenu), "changed", G_CALLBACK(PaintSelector::pattern_change), this);
+@@ -1298,7 +1298,7 @@ SPPattern *PaintSelector::getPattern()
+         gchar *paturn;
+ 
+         if (stockid) {
+-            paturn = g_strconcat("urn:inkscape:pattern:", patid, NULL);
++            paturn = g_strconcat("urn:inkscape:pattern:", patid, nullptr);
+         } else {
+             paturn = g_strdup(patid);
+         }
+diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
+index 5a018301de..7a5607b57c 100644
+--- a/src/widgets/desktop-widget.cpp
++++ b/src/widgets/desktop-widget.cpp
+@@ -612,8 +612,8 @@ void SPDesktopWidget::on_realize()
+     GtkSettings *settings = gtk_settings_get_default();
+     Gtk::Container *window = get_toplevel();
+     if (settings && window) {
+-        g_object_get(settings, "gtk-theme-name", &gtkThemeName, NULL);
+-        g_object_get(settings, "gtk-application-prefer-dark-theme", &gtkApplicationPreferDarkTheme, NULL);
++        g_object_get(settings, "gtk-theme-name", &gtkThemeName, nullptr);
++        g_object_get(settings, "gtk-application-prefer-dark-theme", &gtkApplicationPreferDarkTheme, nullptr);
+         bool dark = isCurrentThemeDark(dynamic_cast<Gtk::Container *>(window));
+         if (dark) {
+             prefs->setBool("/theme/darkTheme", true);
+diff --git a/src/widgets/sp-xmlview-tree.cpp b/src/widgets/sp-xmlview-tree.cpp
+index b07ce2475e..67b0e9094b 100644
+--- a/src/widgets/sp-xmlview-tree.cpp
++++ b/src/widgets/sp-xmlview-tree.cpp
+@@ -164,7 +164,7 @@ GtkWidget *sp_xmlview_tree_new(Inkscape::XML::Node * repr, void * /*factory*/, v
+     gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW(tree), search_equal_func, nullptr, nullptr);
+ 
+     GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
+-    GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes ("", renderer, "text", STORE_TEXT_COL, NULL);
++    GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes ("", renderer, "text", STORE_TEXT_COL, nullptr);
+     gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
+     gtk_cell_renderer_set_padding (renderer, 2, 0);
+     gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+diff --git a/src/xml/repr-io.cpp b/src/xml/repr-io.cpp
+index f3cbdcb8f3..d891f07e09 100644
+--- a/src/xml/repr-io.cpp
++++ b/src/xml/repr-io.cpp
+@@ -449,7 +449,7 @@ void promote_to_namespace(Node *repr, const gchar *prefix) {
+     if ( repr->type() == Inkscape::XML::NodeType::ELEMENT_NODE ) {
+         GQuark code = repr->code();
+         if (!qname_prefix(code).id()) {
+-            gchar *svg_name = g_strconcat(prefix, ":", g_quark_to_string(code), NULL);
++            gchar *svg_name = g_strconcat(prefix, ":", g_quark_to_string(code), nullptr);
+             repr->setCodeUnsafe(g_quark_from_string(svg_name));
+             g_free(svg_name);
+         }
+-- 
+2.31.1
+

diff --git a/media-gfx/inkscape/inkscape-1.1.ebuild b/media-gfx/inkscape/inkscape-1.1.ebuild
new file mode 100644
index 00000000000..642643d65ca
--- /dev/null
+++ b/media-gfx/inkscape/inkscape-1.1.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8,9} )
+PYTHON_REQ_USE="xml"
+
+inherit cmake flag-o-matic xdg toolchain-funcs python-single-r1
+
+DESCRIPTION="SVG based generic vector-drawing program"
+HOMEPAGE="https://inkscape.org/"
+SRC_URI="https://media.inkscape.org/dl/resources/file/${P}.tar.xz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cdr dbus dia exif graphicsmagick imagemagick inkjar jemalloc jpeg lcms
+openmp postscript readline spell static-libs svg2 visio wpg"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+BDEPEND="
+	dev-util/glib-utils
+	>=dev-util/intltool-0.40
+	>=sys-devel/gettext-0.17
+	virtual/pkgconfig
+"
+COMMON_DEPEND="${PYTHON_DEPS}
+	>=app-text/poppler-0.57.0:=[cairo]
+	>=dev-cpp/cairomm-1.12:0
+	>=dev-cpp/glibmm-2.54.1:2
+	dev-cpp/gtkmm:3.0
+	>=dev-cpp/pangomm-2.40:1.4
+	>=dev-libs/boehm-gc-7.1:=
+	dev-libs/double-conversion:=
+	>=dev-libs/glib-2.41
+	>=dev-libs/libsigc++-2.8:2
+	>=dev-libs/libxml2-2.7.4
+	>=dev-libs/libxslt-1.1.25
+	dev-libs/gdl:3
+	dev-libs/popt
+	media-gfx/potrace
+	media-libs/fontconfig
+	media-libs/freetype:2
+	media-libs/libpng:0=
+	net-libs/libsoup:2.4
+	sci-libs/gsl:=
+	x11-libs/libX11
+	>=x11-libs/pango-1.37.2
+	x11-libs/gtk+:3
+	$(python_gen_cond_dep '
+		dev-python/lxml[${PYTHON_USEDEP}]
+		media-gfx/scour[${PYTHON_USEDEP}]
+	')
+	cdr? (
+		app-text/libwpg:0.3
+		dev-libs/librevenge
+		media-libs/libcdr
+	)
+	dbus? ( dev-libs/dbus-glib )
+	exif? ( media-libs/libexif )
+	imagemagick? (
+		!graphicsmagick? ( media-gfx/imagemagick:=[cxx] )
+		graphicsmagick? ( media-gfx/graphicsmagick:=[cxx] )
+	)
+	jemalloc? ( dev-libs/jemalloc )
+	jpeg? ( virtual/jpeg:0 )
+	lcms? ( media-libs/lcms:2 )
+	readline? ( sys-libs/readline:= )
+	spell? ( app-text/gspell )
+	visio? (
+		app-text/libwpg:0.3
+		dev-libs/librevenge
+		media-libs/libvisio
+	)
+	wpg? (
+		app-text/libwpg:0.3
+		dev-libs/librevenge
+	)
+"
+# 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}
+	$(python_gen_cond_dep '
+		dev-python/numpy[${PYTHON_USEDEP}]
+	')
+	dia? ( app-office/dia )
+	postscript? ( app-text/ghostscript-gpl )
+"
+DEPEND="${COMMON_DEPEND}
+	>=dev-libs/boost-1.65
+"
+
+RESTRICT="test"
+
+S="${WORKDIR}/${P}_2021-05-24_c4e8f9ed74"
+
+PATCHES=(
+	"${FILESDIR}/${P}-sentinels.patch" # 1.1 is the last affected version, it is already fixed in upstream
+)
+
+pkg_pretend() {
+	if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
+		tc-has-openmp || die "Please switch to an openmp compatible compiler"
+	fi
+}
+
+src_prepare() {
+	cmake_src_prepare
+	sed -i "/install.*COPYING/d" CMakeScripts/ConfigCPack.cmake || die
+}
+
+src_configure() {
+	# aliasing unsafe wrt #310393
+	append-flags -fno-strict-aliasing
+
+	local mycmakeargs=(
+		# -DWITH_LPETOOL   # Compile with LPE Tool and experimental LPEs enabled
+		-DWITH_NLS=ON
+		-DENABLE_POPPLER=ON
+		-DENABLE_POPPLER_CAIRO=ON
+		-DWITH_PROFILING=OFF
+		-DBUILD_TESTING=OFF
+		-DWITH_LIBCDR=$(usex cdr)
+		-DWITH_DBUS=$(usex dbus)
+		-DWITH_IMAGE_MAGICK=$(usex imagemagick $(usex !graphicsmagick)) # requires ImageMagick 6, only IM must be enabled
+		-DWITH_GRAPHICS_MAGICK=$(usex graphicsmagick $(usex imagemagick)) # both must be enabled to use GraphicsMagick
+		-DWITH_GNU_READLINE=$(usex readline)
+		-DWITH_GSPELL=$(usex spell)
+		-DWITH_JEMALLOC=$(usex jemalloc)
+		-DENABLE_LCMS=$(usex lcms)
+		-DWITH_OPENMP=$(usex openmp)
+		-DBUILD_SHARED_LIBS=$(usex !static-libs)
+		-DWITH_SVG2=$(usex svg2)
+		-DWITH_LIBVISIO=$(usex visio)
+		-DWITH_LIBWPG=$(usex wpg)
+	)
+
+	cmake_src_configure
+}
+
+src_install() {
+	cmake_src_install
+
+	find "${ED}" -type f -name "*.la" -delete || die
+
+	find "${ED}"/usr/share/man -type f -maxdepth 3 -name '*.bz2' -exec bzip2 -d {} \; || die
+
+	find "${ED}"/usr/share/man -type f -maxdepth 3 -name '*.gz' -exec gzip -d {} \; || die
+
+	local extdir="${ED}"/usr/share/${PN}/extensions
+
+	if [[ -e "${extdir}" ]] && [[ -n $(find "${extdir}" -mindepth 1) ]]; then
+		python_optimize "${ED}"/usr/share/${PN}/extensions
+	fi
+
+	# Empty directory causes sandbox issues, see bug #761915
+	rm -r "${ED}/usr/share/inkscape/fonts" || die "Failed to remove fonts directory."
+}


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2022-03-18 21:30 Andreas K. Hüttel
  0 siblings, 0 replies; 25+ messages in thread
From: Andreas K. Hüttel @ 2022-03-18 21:30 UTC (permalink / raw
  To: gentoo-commits

commit:     29b4c8365673eb0c8663e18103e94c09504fe92c
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 18 20:33:43 2022 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Fri Mar 18 21:30:22 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=29b4c836

media-gfx/inkscape: Build fix for poppler-22.03.0

Closes: https://bugs.gentoo.org/835424
See also: https://gitlab.com/inkscape/inkscape/-/merge_requests/4116

Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 .../files/inkscape-1.1.2-poppler-22.03.0.patch     | 38 ++++++++++++++++++++++
 media-gfx/inkscape/inkscape-1.1-r1.ebuild          |  3 ++
 media-gfx/inkscape/inkscape-1.1.1.ebuild           |  4 +++
 media-gfx/inkscape/inkscape-1.1.2.ebuild           |  4 +++
 4 files changed, 49 insertions(+)

diff --git a/media-gfx/inkscape/files/inkscape-1.1.2-poppler-22.03.0.patch b/media-gfx/inkscape/files/inkscape-1.1.2-poppler-22.03.0.patch
new file mode 100644
index 000000000000..5ec18157384e
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.1.2-poppler-22.03.0.patch
@@ -0,0 +1,38 @@
+From 15ab83e02b07018c3ffd4952a2623393187659e0 Mon Sep 17 00:00:00 2001
+From: Evangelos Foutras <evangelos@foutrelis.com>
+Date: Wed, 2 Mar 2022 19:50:02 +0200
+Subject: [PATCH] Fix build with poppler 22.03.0
+
+PDFDoc's constructor now takes an std::unique_ptr as the filename and
+the rest of the parameters are std::optional and can be left out.
+
+Also, remove an obsolete comment regarding special handling on win32;
+the "ifndef _WIN32" it was referring to has been removed by commit
+ad8effaa6ec3 ("Fix PDF import with non-ASCII filename on Windows").
+---
+ src/extension/internal/pdfinput/pdf-input.cpp | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp
+index 3dabc94ba2..63742d8c6d 100644
+--- a/src/extension/internal/pdfinput/pdf-input.cpp
++++ b/src/extension/internal/pdfinput/pdf-input.cpp
+@@ -686,10 +686,12 @@ PdfInput::open(::Inkscape::Extension::Input * /*mod*/, const gchar * uri) {
+     // PDFDoc is from poppler. PDFDoc is used for preview and for native import.
+     std::shared_ptr<PDFDoc> pdf_doc;
+ 
+-    // poppler does not use glib g_open. So on win32 we must use unicode call. code was copied from
+-    // glib gstdio.c
++#if POPPLER_CHECK_VERSION(22, 3, 0)
++    pdf_doc = std::make_shared<PDFDoc>(std::make_unique<GooString>(uri)); // TODO: Could ask for password
++#else
+     GooString *filename_goo = new GooString(uri);
+-    pdf_doc = std::make_shared<PDFDoc>(filename_goo, nullptr, nullptr, nullptr);   // TODO: Could ask for password
++    pdf_doc = std::make_shared<PDFDoc>(filename_goo, nullptr, nullptr, nullptr); // TODO: Could ask for password
++#endif
+ 
+     if (!pdf_doc->isOk()) {
+         int error = pdf_doc->getErrorCode();
+-- 
+GitLab
+

diff --git a/media-gfx/inkscape/inkscape-1.1-r1.ebuild b/media-gfx/inkscape/inkscape-1.1-r1.ebuild
index 517577f93f25..64412bc803f8 100644
--- a/media-gfx/inkscape/inkscape-1.1-r1.ebuild
+++ b/media-gfx/inkscape/inkscape-1.1-r1.ebuild
@@ -111,6 +111,9 @@ src_prepare() {
 	eapply "${WORKDIR}/inkscape-1.1-musl/"*.patch
 	eapply "${FILESDIR}"/${P}-poppler-21.11.0.patch
 
+	# Not yet accepted upstream but rather trivial
+	eapply "${FILESDIR}/${PN}-1.1.2-poppler-22.03.0.patch"  # bug 835424
+
 	cmake_src_prepare
 	sed -i "/install.*COPYING/d" CMakeScripts/ConfigCPack.cmake || die
 }

diff --git a/media-gfx/inkscape/inkscape-1.1.1.ebuild b/media-gfx/inkscape/inkscape-1.1.1.ebuild
index e76f7867922d..a36c80fb7f88 100644
--- a/media-gfx/inkscape/inkscape-1.1.1.ebuild
+++ b/media-gfx/inkscape/inkscape-1.1.1.ebuild
@@ -97,6 +97,10 @@ RESTRICT="test"
 
 S="${WORKDIR}/${P}_2021-09-20_3bf5ae0d25"
 
+PATCHES=(
+	"${FILESDIR}/${PN}-1.1.2-poppler-22.03.0.patch"  # bug 835424
+)
+
 pkg_pretend() {
 	if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
 		tc-has-openmp || die "Please switch to an openmp compatible compiler"

diff --git a/media-gfx/inkscape/inkscape-1.1.2.ebuild b/media-gfx/inkscape/inkscape-1.1.2.ebuild
index 58011f3429ba..5f461759e758 100644
--- a/media-gfx/inkscape/inkscape-1.1.2.ebuild
+++ b/media-gfx/inkscape/inkscape-1.1.2.ebuild
@@ -105,6 +105,10 @@ RESTRICT="!test? ( test )"
 
 S="${WORKDIR}/${MY_P}"
 
+PATCHES=(
+	"${FILESDIR}/${PN}-1.1.2-poppler-22.03.0.patch"  # bug 835424
+)
+
 pkg_pretend() {
 	if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
 		tc-has-openmp || die "Please switch to an openmp compatible compiler"


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2022-05-26  1:12 Sam James
  0 siblings, 0 replies; 25+ messages in thread
From: Sam James @ 2022-05-26  1:12 UTC (permalink / raw
  To: gentoo-commits

commit:     e6873fa9fe5ae8d9e3057f4d4d1204ff2e40122f
Author:     Haelwenn (lanodan) Monnier <contact <AT> hacktivis <DOT> me>
AuthorDate: Mon Mar 29 15:49:06 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu May 26 01:10:45 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e6873fa9

media-gfx/inkscape: Fix automagic dependency on libX11

Related: https://gitlab.com/inkscape/inkscape/-/merge_requests/3208
Closes: https://bugs.gentoo.org/768663
Signed-off-by: Haelwenn (lanodan) Monnier <contact <AT> hacktivis.me>
Closes: https://github.com/gentoo/gentoo/pull/20181
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/inkscape-1.0.2-automagic-libX11.patch    | 181 +++++++++++++++++++++
 ...kscape-9999.ebuild => inkscape-1.1.2-r2.ebuild} |  14 +-
 media-gfx/inkscape/inkscape-9999.ebuild            |   7 +-
 3 files changed, 196 insertions(+), 6 deletions(-)

diff --git a/media-gfx/inkscape/files/inkscape-1.0.2-automagic-libX11.patch b/media-gfx/inkscape/files/inkscape-1.0.2-automagic-libX11.patch
new file mode 100644
index 000000000000..b8f93642088d
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.0.2-automagic-libX11.patch
@@ -0,0 +1,181 @@
+From 6d0ace0518f0da18c7e81be1edecd50d997230b1 Mon Sep 17 00:00:00 2001
+From: "Haelwenn (lanodan) Monnier" <contact@hacktivis.me>
+Date: Tue, 11 May 2021 10:43:27 +0200
+Subject: [PATCH] CMake: Fix automagic dependency on X11
+
+Related: https://bugs.gentoo.org/768663
+Related: https://github.com/gentoo/gentoo/pull/20181
+---
+ CMakeLists.txt                           |  3 +++
+ CMakeScripts/DefineDependsandFlags.cmake | 13 +++++++----
+ src/ege-color-prof-tracker.cpp           | 28 ++++++++++++------------
+ 3 files changed, 26 insertions(+), 18 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c5cb3f7fbd..2a04d86fbf 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -36,6 +36,7 @@ project(inkscape)
+ set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME inkscape) # needs to be before any install() commands
+ 
+ include(CMakeScripts/ConfigPaths.cmake)
++include(CMakeDependentOption)
+ 
+ set(PROJECT_NAME inkscape)
+ 
+@@ -127,6 +128,7 @@ option(WITH_LIBWPG "Compile with support of libwpg for WordPerfect Graphics" ON)
+ option(WITH_NLS "Compile with Native Language Support (using gettext)" ON)
+ option(WITH_JEMALLOC "Compile with JEMALLOC support" OFF)
+ option(WITH_ASAN "Compile with Clang's AddressSanitizer (for debugging purposes)" OFF)
++cmake_dependent_option(WITH_X11 "Compile with X11 support" ON "UNIX; NOT APPLE" OFF)
+ 
+ option(WITH_FUZZ "Compile for fuzzing purpose (use 'make fuzz' only)" OFF)
+ mark_as_advanced(WITH_FUZZ)
+@@ -284,6 +286,7 @@ message("WITH_LIBWPG:             ${WITH_LIBWPG}")
+ message("WITH_NLS:                ${WITH_NLS}")
+ message("WITH_OPENMP:             ${WITH_OPENMP}")
+ message("WITH_JEMALLOC:           ${WITH_JEMALLOC}")
++message("WITH_X11:                ${WITH_X11}")
+ 
+ message("WITH_PROFILING:          ${WITH_PROFILING}")
+ message("BUILD_TESTING:           ${BUILD_TESTING}")
+diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake
+index 1b5ed0d349..ef3f321977 100644
+--- a/CMakeScripts/DefineDependsandFlags.cmake
++++ b/CMakeScripts/DefineDependsandFlags.cmake
+@@ -384,12 +384,17 @@ sanitize_ldflags_for_libs(SIGC++_LDFLAGS)
+ list(APPEND INKSCAPE_LIBS ${SIGC++_LDFLAGS})
+ list(APPEND INKSCAPE_CXX_FLAGS ${SIGC++_CFLAGS_OTHER})
+ 
+-# Some linkers, like gold, don't find symbols recursively. So we have to link against X11 explicitly
+-find_package(X11)
+-if(X11_FOUND)
++if(WITH_X11)
++    find_package(X11 REQUIRED)
+     list(APPEND INKSCAPE_INCS_SYS ${X11_INCLUDE_DIRS})
+     list(APPEND INKSCAPE_LIBS ${X11_LIBRARIES})
+-endif(X11_FOUND)
++    add_definitions(-DHAVE_X11)
++
++    pkg_get_variable(GTK3_TARGETS gtk+-3.0 targets)
++    if(NOT("${GTK3_TARGETS}" MATCHES "x11"))
++        message(FATAL_ERROR "GTK+3 doesn't targets X11, this is required for WITH_X11")
++    endif()
++endif(WITH_X11)
+ 
+ # end Dependencies
+ 
+diff --git a/src/ege-color-prof-tracker.cpp b/src/ege-color-prof-tracker.cpp
+index 0b118f1a57..6fb721c2f3 100644
+--- a/src/ege-color-prof-tracker.cpp
++++ b/src/ege-color-prof-tracker.cpp
+@@ -46,11 +46,11 @@
+ 
+ #include <gtk/gtk.h>
+ 
+-#ifdef GDK_WINDOWING_X11
++#ifdef HAVE_X11
+ #include <X11/Xlib.h>
+ 
+ #include <gdk/gdkx.h>
+-#endif /* GDK_WINDOWING_X11 */
++#endif /* HAVE_X11 */
+ 
+ #include "ege-color-prof-tracker.h"
+ #include "helper/sp-marshal.h"
+@@ -68,24 +68,24 @@ static void ege_color_prof_tracker_set_property( GObject* obj, guint propId, con
+ 
+ class ScreenTrack {
+     public:
+-#ifdef GDK_WINDOWING_X11
++#ifdef HAVE_X11
+     gboolean zeroSeen;
+     gboolean otherSeen;
+-#endif /* GDK_WINDOWING_X11 */
++#endif /* HAVE_X11 */
+     std::vector<EgeColorProfTracker *> *trackers;
+     GPtrArray* profiles;
+     ~ScreenTrack(){ delete trackers; }
+ };
+ 
+ 
+-#ifdef GDK_WINDOWING_X11
++#ifdef HAVE_X11
+ GdkFilterReturn x11_win_filter(GdkXEvent *xevent, GdkEvent *event, gpointer data);
+ void handle_property_change(GdkScreen* screen, const gchar* name);
+ void add_x11_tracking_for_screen(GdkScreen* screen);
+ static void fire(gint monitor);
+ static void clear_profile( guint monitor );
+ static void set_profile( guint monitor, const guint8* data, guint len );
+-#endif /* GDK_WINDOWING_X11 */
++#endif /* HAVE_X11 */
+ 
+ static guint signals[LAST_SIGNAL] = {0};
+ 
+@@ -296,10 +296,10 @@ void track_screen( GdkScreen* screen, EgeColorProfTracker* tracker )
+ 
+         int numMonitors = gdk_display_get_n_monitors(display);
+ 
+-#ifdef GDK_WINDOWING_X11
++#ifdef HAVE_X11
+         tracked_screen->zeroSeen = FALSE;
+         tracked_screen->otherSeen = FALSE;
+-#endif /* GDK_WINDOWING_X11 */
++#endif /* HAVE_X11 */
+         tracked_screen->trackers= new std::vector<EgeColorProfTracker *>;
+         tracked_screen->trackers->push_back(tracker );
+         tracked_screen->profiles = g_ptr_array_new();
+@@ -309,14 +309,14 @@ void track_screen( GdkScreen* screen, EgeColorProfTracker* tracker )
+ 
+         g_signal_connect( G_OBJECT(screen), "size-changed", G_CALLBACK( screen_size_changed_cb ), tracker );
+ 
+-#ifdef GDK_WINDOWING_X11
++#ifdef HAVE_X11
+         if (GDK_IS_X11_DISPLAY (display) ) {
+             // printf( "track_screen: Display is using X11\n" );
+             add_x11_tracking_for_screen(screen);
+         } else {
+             // printf( "track_screen: Display is not using X11\n" );
+         }
+-#endif // GDK_WINDOWING_X11
++#endif // HAVE_X11
+     }
+ }
+ 
+@@ -408,13 +408,13 @@ void screen_size_changed_cb(GdkScreen* screen, gpointer user_data)
+         if ( numMonitors > (gint)tracked_screen->profiles->len ) {
+             for ( guint i = tracked_screen->profiles->len; i < (guint)numMonitors; i++ ) {
+                 g_ptr_array_add( tracked_screen->profiles, nullptr );
+-#ifdef GDK_WINDOWING_X11
++#ifdef HAVE_X11
+                 if (GDK_IS_X11_DISPLAY (display) ) {
+                     gchar* name = g_strdup_printf( "_ICC_PROFILE_%d", i );
+                     handle_property_change( screen, name );
+                     g_free(name);
+                 }
+-#endif /* GDK_WINDOWING_X11 */
++#endif /* HAVE_X11 */
+             }
+         } else if ( numMonitors < (gint)tracked_screen->profiles->len ) {
+ /*             g_message("The count of monitors decreased, remove some"); */
+@@ -422,7 +422,7 @@ void screen_size_changed_cb(GdkScreen* screen, gpointer user_data)
+     }
+ }
+ 
+-#ifdef GDK_WINDOWING_X11
++#ifdef HAVE_X11
+ GdkFilterReturn x11_win_filter(GdkXEvent *xevent,
+                                GdkEvent *event,
+                                gpointer data)
+@@ -615,7 +615,7 @@ static void set_profile( guint monitor, const guint8* data, guint len )
+         }
+     }
+ }
+-#endif /* GDK_WINDOWING_X11 */
++#endif /* HAVE_X11 */
+ /*
+   Local Variables:
+   mode:c++
+-- 
+2.26.3
+

diff --git a/media-gfx/inkscape/inkscape-9999.ebuild b/media-gfx/inkscape/inkscape-1.1.2-r2.ebuild
similarity index 91%
copy from media-gfx/inkscape/inkscape-9999.ebuild
copy to media-gfx/inkscape/inkscape-1.1.2-r2.ebuild
index 8e02f6c2278e..bbf39788284b 100644
--- a/media-gfx/inkscape/inkscape-9999.ebuild
+++ b/media-gfx/inkscape/inkscape-1.1.2-r2.ebuild
@@ -22,7 +22,7 @@ HOMEPAGE="https://inkscape.org/"
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0"
 IUSE="cdr dbus dia exif graphicsmagick imagemagick inkjar jemalloc jpeg
-openmp postscript readline spell svg2 test visio wpg"
+openmp postscript readline spell svg2 test visio wpg X"
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
 
@@ -55,9 +55,9 @@ COMMON_DEPEND="${PYTHON_DEPS}
 	media-libs/libpng:0=
 	net-libs/libsoup:2.4
 	sci-libs/gsl:=
-	x11-libs/libX11
 	>=x11-libs/pango-1.37.2
-	x11-libs/gtk+:3
+	x11-libs/gtk+:3[X?]
+	X? ( x11-libs/libX11 )
 	$(python_gen_cond_dep '
 		dev-python/lxml[${PYTHON_USEDEP}]
 		media-gfx/scour[${PYTHON_USEDEP}]
@@ -106,6 +106,13 @@ RESTRICT="!test? ( test )"
 
 S="${WORKDIR}/${MY_P}"
 
+# automagic-libX11 (merged before 1.2): https://gitlab.com/inkscape/inkscape/-/merge_requests/3208
+PATCHES=(
+	"${FILESDIR}/${PN}-1.1.2-r1-poppler-22.03.0.patch" # bug 835424
+	"${FILESDIR}/${PN}-1.1.2-r1-poppler-22.04.0.patch" # bug 835661 / bug 843275
+	"${FILESDIR}/inkscape-1.0.2-automagic-libX11.patch" # bug 768663
+)
+
 pkg_pretend() {
 	[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
 }
@@ -154,6 +161,7 @@ src_configure() {
 		-DWITH_SVG2=$(usex svg2)
 		-DWITH_LIBVISIO=$(usex visio)
 		-DWITH_LIBWPG=$(usex wpg)
+		-DWITH_X11=$(usex X)
 	)
 
 	cmake_src_configure

diff --git a/media-gfx/inkscape/inkscape-9999.ebuild b/media-gfx/inkscape/inkscape-9999.ebuild
index 8e02f6c2278e..76be9a5c187a 100644
--- a/media-gfx/inkscape/inkscape-9999.ebuild
+++ b/media-gfx/inkscape/inkscape-9999.ebuild
@@ -22,7 +22,7 @@ HOMEPAGE="https://inkscape.org/"
 LICENSE="GPL-2 LGPL-2.1"
 SLOT="0"
 IUSE="cdr dbus dia exif graphicsmagick imagemagick inkjar jemalloc jpeg
-openmp postscript readline spell svg2 test visio wpg"
+openmp postscript readline spell svg2 test visio wpg X"
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
 
@@ -55,9 +55,9 @@ COMMON_DEPEND="${PYTHON_DEPS}
 	media-libs/libpng:0=
 	net-libs/libsoup:2.4
 	sci-libs/gsl:=
-	x11-libs/libX11
 	>=x11-libs/pango-1.37.2
-	x11-libs/gtk+:3
+	x11-libs/gtk+:3[X?]
+	X? ( x11-libs/libX11 )
 	$(python_gen_cond_dep '
 		dev-python/lxml[${PYTHON_USEDEP}]
 		media-gfx/scour[${PYTHON_USEDEP}]
@@ -154,6 +154,7 @@ src_configure() {
 		-DWITH_SVG2=$(usex svg2)
 		-DWITH_LIBVISIO=$(usex visio)
 		-DWITH_LIBWPG=$(usex wpg)
+		-DWITH_X11=$(usex X)
 	)
 
 	cmake_src_configure


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2022-09-02  4:38 Sam James
  0 siblings, 0 replies; 25+ messages in thread
From: Sam James @ 2022-09-02  4:38 UTC (permalink / raw
  To: gentoo-commits

commit:     9f2169be9339bfaad54aa9bf60373ff01a79f8c3
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Sep  2 04:25:00 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Sep  2 04:37:27 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f2169be

media-gfx/inkscape: fix build with Poppler 22.09.0

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/inkscape-1.2.1-poppler-22.09.0.patch     | 35 ++++++++++++++++++++++
 media-gfx/inkscape/inkscape-1.2.1.ebuild           |  4 +++
 2 files changed, 39 insertions(+)

diff --git a/media-gfx/inkscape/files/inkscape-1.2.1-poppler-22.09.0.patch b/media-gfx/inkscape/files/inkscape-1.2.1-poppler-22.09.0.patch
new file mode 100644
index 000000000000..2e5d3b4782f3
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.2.1-poppler-22.09.0.patch
@@ -0,0 +1,35 @@
+--- a/src/extension/internal/pdfinput/pdf-parser.cpp
++++ b/src/extension/internal/pdfinput/pdf-parser.cpp
+@@ -697,7 +697,11 @@ void PdfParser::opSetDash(Object args[], int /*numArgs*/)
+       _POPPLER_FREE(obj);
+     }
+   }
++#if POPPLER_CHECK_VERSION(22, 9, 0)
++  state->setLineDash(std::vector<double> (*dash, length), args[1].getNum());
++#else
+   state->setLineDash(dash, length, args[1].getNum());
++#endif
+   builder->updateStyle(state);
+ }
+ 
+--- a/src/extension/internal/pdfinput/svg-builder.cpp
++++ b/src/extension/internal/pdfinput/svg-builder.cpp
+@@ -388,10 +388,17 @@ void SvgBuilder::_setStrokeStyle(SPCSSAttr *css, GfxState *state) {
+     sp_repr_css_set_property(css, "stroke-miterlimit", os_ml.str().c_str());
+ 
+     // Line dash
+-    double *dash_pattern;
+     int dash_length;
+     double dash_start;
++#if POPPLER_CHECK_VERSION(22, 9, 0)
++    const double *dash_pattern;
++    const std::vector<double> &dash = state->getLineDash(&dash_start);
++    dash_pattern = dash.data();
++    dash_length = dash.size();
++#else
++    double *dash_pattern;
+     state->getLineDash(&dash_pattern, &dash_length, &dash_start);
++#endif
+     if ( dash_length > 0 ) {
+         Inkscape::CSSOStringStream os_array;
+         for ( int i = 0 ; i < dash_length ; i++ ) {

diff --git a/media-gfx/inkscape/inkscape-1.2.1.ebuild b/media-gfx/inkscape/inkscape-1.2.1.ebuild
index e2183428d93b..a0df591ee0d9 100644
--- a/media-gfx/inkscape/inkscape-1.2.1.ebuild
+++ b/media-gfx/inkscape/inkscape-1.2.1.ebuild
@@ -108,6 +108,10 @@ RESTRICT="!test? ( test )"
 
 S="${WORKDIR}/${MY_P}"
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.2.1-poppler-22.09.0.patch
+)
+
 pkg_pretend() {
 	[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
 }


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2022-09-03  1:42 Sam James
  0 siblings, 0 replies; 25+ messages in thread
From: Sam James @ 2022-09-03  1:42 UTC (permalink / raw
  To: gentoo-commits

commit:     767edb76006523baca227ff79909323ec202583d
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Sep  2 23:52:55 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Sep  3 01:38:44 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=767edb76

media-gfx/inkscape: update Poppler 22.09.0 patch

Switch to revision sent upstream.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-gfx/inkscape/files/inkscape-1.2.1-poppler-22.09.0.patch         | 2 +-
 .../inkscape/{inkscape-1.2.1.ebuild => inkscape-1.2.1-r1.ebuild}      | 4 ----
 .../inkscape/{inkscape-1.2.1.ebuild => inkscape-1.2.1-r2.ebuild}      | 0
 3 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/media-gfx/inkscape/files/inkscape-1.2.1-poppler-22.09.0.patch b/media-gfx/inkscape/files/inkscape-1.2.1-poppler-22.09.0.patch
index 87583019d6e3..80d071d51b0b 100644
--- a/media-gfx/inkscape/files/inkscape-1.2.1-poppler-22.09.0.patch
+++ b/media-gfx/inkscape/files/inkscape-1.2.1-poppler-22.09.0.patch
@@ -43,7 +43,7 @@ Signed-off-by: Sam James <sam@gentoo.org>
      }
    }
 +#if POPPLER_CHECK_VERSION(22, 9, 0)
-+  state->setLineDash(std::vector<double> (*dash, length), args[1].getNum());
++  state->setLineDash(std::vector<double> (dash, dash + length), args[1].getNum());
 +#else
    state->setLineDash(dash, length, args[1].getNum());
 +#endif

diff --git a/media-gfx/inkscape/inkscape-1.2.1.ebuild b/media-gfx/inkscape/inkscape-1.2.1-r1.ebuild
similarity index 98%
copy from media-gfx/inkscape/inkscape-1.2.1.ebuild
copy to media-gfx/inkscape/inkscape-1.2.1-r1.ebuild
index a0df591ee0d9..e2183428d93b 100644
--- a/media-gfx/inkscape/inkscape-1.2.1.ebuild
+++ b/media-gfx/inkscape/inkscape-1.2.1-r1.ebuild
@@ -108,10 +108,6 @@ RESTRICT="!test? ( test )"
 
 S="${WORKDIR}/${MY_P}"
 
-PATCHES=(
-	"${FILESDIR}"/${PN}-1.2.1-poppler-22.09.0.patch
-)
-
 pkg_pretend() {
 	[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
 }

diff --git a/media-gfx/inkscape/inkscape-1.2.1.ebuild b/media-gfx/inkscape/inkscape-1.2.1-r2.ebuild
similarity index 100%
rename from media-gfx/inkscape/inkscape-1.2.1.ebuild
rename to media-gfx/inkscape/inkscape-1.2.1-r2.ebuild


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2023-05-01  7:32 Sam James
  0 siblings, 0 replies; 25+ messages in thread
From: Sam James @ 2023-05-01  7:32 UTC (permalink / raw
  To: gentoo-commits

commit:     4edc51728fdea1246c4dbe0abf6dd310e7362dbc
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon May  1 07:31:33 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon May  1 07:32:11 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4edc5172

media-gfx/inkscape: fix compile issue

Unclear when this happens but I can see how it might, so..

Closes: https://bugs.gentoo.org/903867
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/inkscape-1.2.2-fix-compile.patch         |  46 +++++
 media-gfx/inkscape/inkscape-1.2.2-r1.ebuild        | 197 +++++++++++++++++++++
 2 files changed, 243 insertions(+)

diff --git a/media-gfx/inkscape/files/inkscape-1.2.2-fix-compile.patch b/media-gfx/inkscape/files/inkscape-1.2.2-fix-compile.patch
new file mode 100644
index 000000000000..c219a6e45273
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.2.2-fix-compile.patch
@@ -0,0 +1,46 @@
+https://src.fedoraproject.org/rpms/inkscape/blob/rawhide/f/0001-Fix-build-with-GCC13.patch
+https://gitlab.com/inkscape/inkscape/-/merge_requests/5108
+https://gitlab.com/inkscape/inkscape/-/merge_requests/5111 (version which got accepted upstream)
+https://bugs.gentoo.org/903867
+
+From c68f5f9cade8a890efefcb4c2e0fc57762211286 Mon Sep 17 00:00:00 2001
+From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
+Date: Fri, 24 Feb 2023 14:01:18 -0500
+Subject: [PATCH] Fix build with GCC13
+
+GCC 13 now complains about this line:
+```
+src/ui/widget/selected-style.cpp:111:6: error: statement-expressions are not allowed outside functions nor in template-argument lists
+  111 |     {g_strdup("application/x-oswb-color"), 0, APP_OSWB_COLOR}
+      |      ^~~~~~~~
+```
+
+However, it is not necessary to strdup the string constant as the value
+just needs to exist indefinitely, and it will as a constant. While C
+doesn't mind the `const` difference, a simple cast will silence C++'s
+higher strictness.
+
+And in fact, the other use of `GtkTargetEntry` in
+`src/ui/drag-and-drop.cpp` does the same cast.
+
+Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
+--- a/src/ui/widget/selected-style.cpp
++++ b/src/ui/widget/selected-style.cpp
+@@ -100,14 +100,8 @@ enum ui_drop_target_info {
+     APP_OSWB_COLOR
+ };
+ 
+-//TODO: warning: deprecated conversion from string constant to ‘gchar*’
+-//
+-//Turn out to be warnings that we should probably leave in place. The
+-// pointers/types used need to be read-only. So until we correct the using
+-// code, those warnings are actually desired. They say "Hey! Fix this". We
+-// definitely don't want to hide/ignore them. --JonCruz
+ static const GtkTargetEntry ui_drop_target_entries [] = {
+-    {g_strdup("application/x-oswb-color"), 0, APP_OSWB_COLOR}
++    {(gchar *)"application/x-oswb-color", 0, APP_OSWB_COLOR}
+ };
+ 
+ static guint nui_drop_target_entries = G_N_ELEMENTS(ui_drop_target_entries);
+-- 
+2.39.2

diff --git a/media-gfx/inkscape/inkscape-1.2.2-r1.ebuild b/media-gfx/inkscape/inkscape-1.2.2-r1.ebuild
new file mode 100644
index 000000000000..5813268f5d70
--- /dev/null
+++ b/media-gfx/inkscape/inkscape-1.2.2-r1.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_REQ_USE="xml(+)"
+MY_P="${P/_/}"
+inherit cmake flag-o-matic xdg toolchain-funcs python-single-r1
+
+if [[ ${PV} = 9999* ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://gitlab.com/inkscape/inkscape.git"
+else
+	SRC_URI="https://media.inkscape.org/dl/resources/file/${P}.tar.xz"
+	KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+DESCRIPTION="SVG based generic vector-drawing program"
+HOMEPAGE="https://inkscape.org/ https://gitlab.com/inkscape/inkscape/"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+IUSE="cdr dia exif graphicsmagick imagemagick inkjar jemalloc jpeg
+openmp postscript readline spell svg2 test visio wpg X"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+BDEPEND="
+	dev-util/glib-utils
+	>=dev-util/intltool-0.40
+	>=sys-devel/gettext-0.17
+	virtual/pkgconfig
+	test? ( virtual/imagemagick-tools )
+"
+COMMON_DEPEND="${PYTHON_DEPS}
+	>=app-text/poppler-0.57.0:=[cairo]
+	>=dev-cpp/cairomm-1.12:0
+	>=dev-cpp/glibmm-2.54.1:2
+	dev-cpp/gtkmm:3.0
+	>=dev-cpp/pangomm-2.40:1.4
+	>=dev-libs/boehm-gc-7.1:=
+	dev-libs/boost:=
+	dev-libs/double-conversion:=
+	>=dev-libs/glib-2.41
+	>=dev-libs/libsigc++-2.8:2
+	>=dev-libs/libxml2-2.7.4
+	>=dev-libs/libxslt-1.1.25
+	dev-libs/gdl:3
+	dev-libs/popt
+	media-gfx/potrace
+	media-libs/fontconfig
+	media-libs/freetype:2
+	media-libs/lcms:2
+	media-libs/libpng:0=
+	net-libs/libsoup:2.4
+	sci-libs/gsl:=
+	>=x11-libs/pango-1.44
+	x11-libs/gtk+:3[X?]
+	X? ( x11-libs/libX11 )
+	$(python_gen_cond_dep '
+		dev-python/cachecontrol[${PYTHON_USEDEP}]
+		dev-python/cssselect[${PYTHON_USEDEP}]
+		dev-python/lockfile[${PYTHON_USEDEP}]
+		dev-python/lxml[${PYTHON_USEDEP}]
+		media-gfx/scour[${PYTHON_USEDEP}]
+	')
+	cdr? (
+		app-text/libwpg:0.3
+		dev-libs/librevenge
+		media-libs/libcdr
+	)
+	exif? ( media-libs/libexif )
+	imagemagick? (
+		!graphicsmagick? ( media-gfx/imagemagick:=[cxx] )
+		graphicsmagick? ( media-gfx/graphicsmagick:=[cxx] )
+	)
+	jemalloc? ( dev-libs/jemalloc )
+	jpeg? ( media-libs/libjpeg-turbo:= )
+	readline? ( sys-libs/readline:= )
+	spell? ( app-text/gspell )
+	visio? (
+		app-text/libwpg:0.3
+		dev-libs/librevenge
+		media-libs/libvisio
+	)
+	wpg? (
+		app-text/libwpg:0.3
+		dev-libs/librevenge
+	)
+"
+# 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}
+	$(python_gen_cond_dep '
+		dev-python/numpy[${PYTHON_USEDEP}]
+	')
+	dia? ( app-office/dia )
+	postscript? ( app-text/ghostscript-gpl )
+"
+DEPEND="${COMMON_DEPEND}
+	test? ( dev-cpp/gtest )
+"
+
+RESTRICT="!test? ( test )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.2.2-fix-compile.patch
+)
+
+pkg_pretend() {
+	[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+	[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+	python-single-r1_pkg_setup
+}
+
+src_unpack() {
+	if [[ ${PV} = 9999* ]]; then
+		git-r3_src_unpack
+	else
+		default
+	fi
+	[[ -d "${S}" ]] || mv -v "${WORKDIR}/${P}_202"?-??-* "${S}" || die
+}
+
+src_prepare() {
+	cmake_src_prepare
+	sed -i "/install.*COPYING/d" CMakeScripts/ConfigCPack.cmake || die
+}
+
+src_configure() {
+	# aliasing unsafe wrt #310393
+	append-flags -fno-strict-aliasing
+
+	local mycmakeargs=(
+		# -DWITH_LPETOOL   # Compile with LPE Tool and experimental LPEs enabled
+		-DWITH_NLS=ON
+		-DENABLE_POPPLER=ON
+		-DENABLE_POPPLER_CAIRO=ON
+		-DWITH_PROFILING=OFF
+		-DWITH_INTERNAL_2GEOM=ON
+		-DBUILD_TESTING=$(usex test)
+		-DWITH_LIBCDR=$(usex cdr)
+		-DWITH_IMAGE_MAGICK=$(usex imagemagick $(usex !graphicsmagick)) # requires ImageMagick 6, only IM must be enabled
+		-DWITH_GRAPHICS_MAGICK=$(usex graphicsmagick $(usex imagemagick)) # both must be enabled to use GraphicsMagick
+		-DWITH_GNU_READLINE=$(usex readline)
+		-DWITH_GSPELL=$(usex spell)
+		-DWITH_JEMALLOC=$(usex jemalloc)
+		-DENABLE_LCMS=ON
+		-DWITH_OPENMP=$(usex openmp)
+		-DBUILD_SHARED_LIBS=ON
+		-DWITH_SVG2=$(usex svg2)
+		-DWITH_LIBVISIO=$(usex visio)
+		-DWITH_LIBWPG=$(usex wpg)
+		-DWITH_X11=$(usex X)
+	)
+
+	cmake_src_configure
+}
+
+src_test() {
+	local myctestargs=(
+		# render_text*: needs patched Cairo / maybe upstream changes
+		# not yet in a release.
+		# test_lpe/test_lpe64: precision differences b/c of new GCC?
+		# cli_export-png-color-mode-gray-8_png_check_output: ditto?
+		-E "(render_test-use|render_test-glyph-y-pos|render_text-glyphs-combining|render_text-glyphs-vertical|render_test-rtl-vertical|test_lpe|test_lpe64|cli_export-png-color-mode-gray-8_png_check_output)"
+	)
+
+	cmake_src_test -j1
+}
+
+src_install() {
+	cmake_src_install
+
+	find "${ED}" -type f -name "*.la" -delete || die
+
+	find "${ED}"/usr/share/man -type f -maxdepth 3 -name '*.bz2' -exec bzip2 -d {} \; || die
+
+	find "${ED}"/usr/share/man -type f -maxdepth 3 -name '*.gz' -exec gzip -d {} \; || die
+
+	local extdir="${ED}"/usr/share/${PN}/extensions
+
+	if [[ -e "${extdir}" ]] && [[ -n $(find "${extdir}" -mindepth 1) ]]; then
+		python_optimize "${ED}"/usr/share/${PN}/extensions
+	fi
+
+	# Empty directory causes sandbox issues, see bug #761915
+	rm -r "${ED}/usr/share/inkscape/fonts" || die "Failed to remove fonts directory."
+}


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2024-05-30 13:59 Andreas Sturmlechner
  0 siblings, 0 replies; 25+ messages in thread
From: Andreas Sturmlechner @ 2024-05-30 13:59 UTC (permalink / raw
  To: gentoo-commits

commit:     c1cf061e286291561ddefa7e634a6b8d207939ff
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu May 30 13:50:24 2024 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Thu May 30 13:59:31 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1cf061e

media-gfx/inkscape: Fix build with >=app-text/poppler-24.05

Closes: https://bugs.gentoo.org/931917
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../inkscape/files/inkscape-1.3.2-cxx20.patch      | 91 ++++++++++++++++++++++
 .../files/inkscape-1.3.2-poppler-24.05.patch       | 64 +++++++++++++++
 media-gfx/inkscape/inkscape-1.3.2-r2.ebuild        |  2 +
 3 files changed, 157 insertions(+)

diff --git a/media-gfx/inkscape/files/inkscape-1.3.2-cxx20.patch b/media-gfx/inkscape/files/inkscape-1.3.2-cxx20.patch
new file mode 100644
index 000000000000..3c61b1919278
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.3.2-cxx20.patch
@@ -0,0 +1,91 @@
+From 1798e9c13b786f3d077ba0132592c4d5c1d1fb9b Mon Sep 17 00:00:00 2001
+From: Tavmjong Bah <tavmjong@free.fr>
+Date: Tue, 26 Sep 2023 19:23:27 +0000
+Subject: [PATCH] Up C++ version to C++20.
+
+---
+ CMakeLists.txt                     | 4 ++--
+ _clang-format                      | 2 +-
+ src/ui/knot/knot-holder-entity.cpp | 2 +-
+ src/ui/tools/pencil-tool.cpp       | 9 ++++++---
+ 4 files changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fe6b10cda24..de2680bd651 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,9 +18,9 @@ message("Binary Dir: ${CMAKE_CURRENT_BINARY_DIR}")
+ # -----------------------------------------------------------------------------
+ # CMake Configuration
+ # -----------------------------------------------------------------------------
+-set(CMAKE_CXX_STANDARD 17)
++set(CMAKE_CXX_STANDARD 20)
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+-# set(CMAKE_CXX_EXTENSIONS OFF) # enforces -std=c++17 instead of -std=gnu++17
++# set(CMAKE_CXX_EXTENSIONS OFF) # enforces -std=c++20 instead of -std=gnu++20
+                                 # TODO: build currently fails with it as we actually depend on GNU compiler extensions...
+                                 #       mostly use of the non-Standard M_PI et al. TODO: C++20: Use the <numbers> header.
+ 
+diff --git a/_clang-format b/_clang-format
+index 39396fad65a..48de4d2bd88 100644
+--- a/_clang-format
++++ b/_clang-format
+@@ -103,7 +103,7 @@ SpacesInContainerLiterals: false
+ SpacesInCStyleCastParentheses: false
+ SpacesInParentheses: false
+ SpacesInSquareBrackets: false
+-Standard:        c++17
++Standard:        c++20
+ StatementMacros: []
+ TypenameMacros: []
+ TabWidth: 4
+diff --git a/src/ui/knot/knot-holder-entity.cpp b/src/ui/knot/knot-holder-entity.cpp
+index 8703f5975f7..add66d2fa29 100644
+--- a/src/ui/knot/knot-holder-entity.cpp
++++ b/src/ui/knot/knot-holder-entity.cpp
+@@ -315,7 +315,7 @@ void PatternKnotHolderEntityScale::knot_set(Geom::Point const &p, Geom::Point co
+     double scale_x = std::clamp(new_extent[X] / _cached_diagonal[X], _cached_min_scale, 1e9);
+     double scale_y = std::clamp(new_extent[Y] / _cached_diagonal[Y], _cached_min_scale, 1e9);
+ 
+-    Affine new_transform = (state & GDK_CONTROL_MASK) ? Scale(lerp(0.5, scale_x, scale_y))
++    Affine new_transform = (state & GDK_CONTROL_MASK) ? Scale((scale_x + scale_y) * 0.5)
+                                                       : Scale(scale_x, scale_y);
+ 
+     // 2. Calculate offset to keep pattern origin aligned
+diff --git a/src/ui/tools/pencil-tool.cpp b/src/ui/tools/pencil-tool.cpp
+index fd2d08cad0c..7324f7c8515 100644
+--- a/src/ui/tools/pencil-tool.cpp
++++ b/src/ui/tools/pencil-tool.cpp
+@@ -17,7 +17,11 @@
+  * Released under GNU GPL v2+, read the file 'COPYING' for more information.
+  */
+ 
+-#include <numeric> // For std::accumulate
++#include "pencil-tool.h"
++
++#include <cmath>   // std::lerp
++#include <numeric> // std::accumulate
++
+ #include <gdk/gdkkeysyms.h>
+ #include <glibmm/i18n.h>
+ 
+@@ -26,7 +30,6 @@
+ #include <2geom/sbasis-to-bezier.h>
+ #include <2geom/svg-path-parser.h>
+ 
+-#include "pencil-tool.h"
+ 
+ #include "context-fns.h"
+ #include "desktop.h"
+@@ -806,7 +809,7 @@ void PencilTool::_addFreehandPoint(Geom::Point const &p, guint /*state*/, bool l
+             min = max;
+         }
+         double dezoomify_factor = 0.05 * 1000 / _desktop->current_zoom();
+-        double const pressure_shrunk = pressure * (max - min) + min; // C++20 -> use std::lerp()
++        double const pressure_shrunk = std::lerp(min, max, pressure);
+         double pressure_computed = std::abs(pressure_shrunk * dezoomify_factor);
+         double pressure_computed_scaled = std::abs(pressure_computed * _desktop->getDocument()->getDocumentScale().inverse()[Geom::X]);
+         if (p != p_array[_npoints - 1]) {
+-- 
+GitLab
+

diff --git a/media-gfx/inkscape/files/inkscape-1.3.2-poppler-24.05.patch b/media-gfx/inkscape/files/inkscape-1.3.2-poppler-24.05.patch
new file mode 100644
index 000000000000..bb2764032c44
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.3.2-poppler-24.05.patch
@@ -0,0 +1,64 @@
+From 96ca7a6c215aa14336b52753f56244dc8796ec43 Mon Sep 17 00:00:00 2001
+From: Heiko Becker <mail@heiko-becker.de>
+Date: Fri, 3 May 2024 14:52:00 +0200
+Subject: [PATCH] Fix build with poppler >= 24.05.0
+
+GooString::hasUnicodeMarkerLE and GooString::hasUnicodeMarker were
+rename and moved to UTF.h [1][2]
+
+[1] https://gitlab.freedesktop.org/poppler/poppler/-/commit/98fabb298b0e8eaef9193bbce68c99c85473a314
+[2] https://gitlab.freedesktop.org/poppler/poppler/-/commit/1f06dca08c32ed18c3030530d98a0e30d41dd7a2
+---
+ src/extension/internal/pdfinput/poppler-transition-api.h | 9 +++++++++
+ src/extension/internal/pdfinput/poppler-utils.cpp        | 6 ++++--
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h
+index 58aa1ec921d..481aefadf46 100644
+--- a/src/extension/internal/pdfinput/poppler-transition-api.h
++++ b/src/extension/internal/pdfinput/poppler-transition-api.h
+@@ -13,6 +13,15 @@
+ #define SEEN_POPPLER_TRANSITION_API_H
+ 
+ #include <glib/poppler-features.h>
++#include <poppler/UTF.h>
++
++#if POPPLER_CHECK_VERSION(24, 5, 0)
++#define _POPPLER_HAS_UNICODE_BOM(value) (hasUnicodeByteOrderMark(value->toStr()))
++#define _POPPLER_HAS_UNICODE_BOMLE(value) (hasUnicodeByteOrderMarkLE(value->toStr()))
++#else
++#define _POPPLER_HAS_UNICODE_BOM(value) (value->hasUnicodeMarker())
++#define _POPPLER_HAS_UNICODE_BOMLE(value) (value->hasUnicodeMarkerLE())
++#endif
+ 
+ #if POPPLER_CHECK_VERSION(24, 3, 0)
+ #define _POPPLER_FUNCTION_TYPE_SAMPLED Function::Type::Sampled
+diff --git a/src/extension/internal/pdfinput/poppler-utils.cpp b/src/extension/internal/pdfinput/poppler-utils.cpp
+index 78d90c66c9d..c02815f64b9 100644
+--- a/src/extension/internal/pdfinput/poppler-utils.cpp
++++ b/src/extension/internal/pdfinput/poppler-utils.cpp
+@@ -12,6 +12,8 @@
+ 
+ #include "poppler-utils.h"
+ 
++#include <poppler/UTF.h>
++
+ #include "2geom/affine.h"
+ #include "GfxFont.h"
+ #include "GfxState.h"
+@@ -563,10 +565,10 @@ std::string getDictString(Dict *dict, const char *key)
+  */
+ std::string getString(const GooString *value)
+ {
+-    if (value->hasUnicodeMarker()) {
++    if (_POPPLER_HAS_UNICODE_BOM(value)) {
+         return g_convert(value->getCString () + 2, value->getLength () - 2,
+                          "UTF-8", "UTF-16BE", NULL, NULL, NULL);
+-    } else if (value->hasUnicodeMarkerLE()) {
++    } else if (_POPPLER_HAS_UNICODE_BOMLE(value)) {
+         return g_convert(value->getCString () + 2, value->getLength () - 2,
+                          "UTF-8", "UTF-16LE", NULL, NULL, NULL);
+     }
+-- 
+GitLab
+

diff --git a/media-gfx/inkscape/inkscape-1.3.2-r2.ebuild b/media-gfx/inkscape/inkscape-1.3.2-r2.ebuild
index f746f1a32d60..1304ff3969b1 100644
--- a/media-gfx/inkscape/inkscape-1.3.2-r2.ebuild
+++ b/media-gfx/inkscape/inkscape-1.3.2-r2.ebuild
@@ -112,6 +112,8 @@ DEPEND="${COMMON_DEPEND}
 PATCHES=(
 	"${FILESDIR}"/${P}-libxml2-2.12.patch
 	"${FILESDIR}"/${P}-poppler-24.03.patch
+	"${FILESDIR}"/${P}-poppler-24.05.patch # bug 931917
+	"${FILESDIR}"/${P}-cxx20.patch # bug 931917
 )
 
 pkg_pretend() {


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2024-05-31 16:08 David Seifert
  0 siblings, 0 replies; 25+ messages in thread
From: David Seifert @ 2024-05-31 16:08 UTC (permalink / raw
  To: gentoo-commits

commit:     5aa7b6faf4fa13a1b77b18198ffa62f3fbd8a51f
Author:     Sven Hesse <drmccoy <AT> drmccoy <DOT> de>
AuthorDate: Fri May 31 16:07:59 2024 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Fri May 31 16:07:59 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5aa7b6fa

media-gfx/inkscape: add patch for C++20 syntax break

Closes: https://bugs.gentoo.org/933216
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 media-gfx/inkscape/files/inkscape-1.3.2-cxx20-2.patch | 11 +++++++++++
 media-gfx/inkscape/inkscape-1.3.2-r2.ebuild           |  1 +
 2 files changed, 12 insertions(+)

diff --git a/media-gfx/inkscape/files/inkscape-1.3.2-cxx20-2.patch b/media-gfx/inkscape/files/inkscape-1.3.2-cxx20-2.patch
new file mode 100644
index 000000000000..6364c3f88a9e
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.3.2-cxx20-2.patch
@@ -0,0 +1,11 @@
+--- a/src/ui/dialog/filter-effects-dialog.cpp
++++ b/src/ui/dialog/filter-effects-dialog.cpp
+@@ -202,7 +202,7 @@
+ template< typename T> class ComboWithTooltip : public Gtk::EventBox
+ {
+ public:
+-    ComboWithTooltip<T>(T default_value, const Util::EnumDataConverter<T>& c, const SPAttr a = SPAttr::INVALID, char* tip_text = nullptr)
++    ComboWithTooltip(T default_value, const Util::EnumDataConverter<T>& c, const SPAttr a = SPAttr::INVALID, char* tip_text = nullptr)
+     {
+         if (tip_text) {
+             set_tooltip_text(tip_text);

diff --git a/media-gfx/inkscape/inkscape-1.3.2-r2.ebuild b/media-gfx/inkscape/inkscape-1.3.2-r2.ebuild
index 1304ff3969b1..a47b5b9d4390 100644
--- a/media-gfx/inkscape/inkscape-1.3.2-r2.ebuild
+++ b/media-gfx/inkscape/inkscape-1.3.2-r2.ebuild
@@ -114,6 +114,7 @@ PATCHES=(
 	"${FILESDIR}"/${P}-poppler-24.03.patch
 	"${FILESDIR}"/${P}-poppler-24.05.patch # bug 931917
 	"${FILESDIR}"/${P}-cxx20.patch # bug 931917
+	"${FILESDIR}"/${P}-cxx20-2.patch # bug 933216
 )
 
 pkg_pretend() {


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/
@ 2024-11-04  9:51 David Seifert
  0 siblings, 0 replies; 25+ messages in thread
From: David Seifert @ 2024-11-04  9:51 UTC (permalink / raw
  To: gentoo-commits

commit:     21682d8394e3111056ed6909122034d074b3433f
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Mon Nov  4 09:50:59 2024 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Mon Nov  4 09:50:59 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=21682d83

media-gfx/inkscape: add patch for poppler-24.10.0 breakage

Closes: https://bugs.gentoo.org/941933
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 .../inkscape-1.4-poppler-24.10-fix-backport.patch  | 432 +++++++++++++++++++++
 media-gfx/inkscape/inkscape-1.4.ebuild             |   1 +
 2 files changed, 433 insertions(+)

diff --git a/media-gfx/inkscape/files/inkscape-1.4-poppler-24.10-fix-backport.patch b/media-gfx/inkscape/files/inkscape-1.4-poppler-24.10-fix-backport.patch
new file mode 100644
index 000000000000..c20ab13e4f52
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.4-poppler-24.10-fix-backport.patch
@@ -0,0 +1,432 @@
+https://bugs.gentoo.org/941933
+
+From 22304ae8034d067670a9f95022083a75fac92b4c Mon Sep 17 00:00:00 2001
+From: PBS <pbs3141@gmail.com>
+Date: Tue, 22 Oct 2024 14:48:31 +0100
+Subject: [PATCH] Future-proof against poppler 24.10 changes
+
+---
+ .../internal/pdfinput/pdf-parser.cpp          | 120 ++++++++----------
+ src/extension/internal/pdfinput/pdf-parser.h  |   4 +-
+ .../pdfinput/poppler-transition-api.h         |   6 +
+ 3 files changed, 61 insertions(+), 69 deletions(-)
+
+diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
+index 97b2909218a..28000a87b0c 100644
+--- a/src/extension/internal/pdfinput/pdf-parser.cpp
++++ b/src/extension/internal/pdfinput/pdf-parser.cpp
+@@ -817,11 +817,11 @@ void PdfParser::opSetExtGState(Object args[], int /*numArgs*/)
+             _POPPLER_FREE(obj3);
+             if (_POPPLER_CALL_ARGS_DEREF(obj3, obj2.dictLookup, "G").isStream()) {
+                 if (_POPPLER_CALL_ARGS_DEREF(obj4, obj3.streamGetDict()->lookup, "Group").isDict()) {
+-                    GfxColorSpace *blendingColorSpace = nullptr;
++                    std::unique_ptr<GfxColorSpace> blendingColorSpace;
+                     GBool isolated = gFalse;
+                     GBool knockout = gFalse;
+                     if (!_POPPLER_CALL_ARGS_DEREF(obj5, obj4.dictLookup, "CS").isNull()) {
+-                        blendingColorSpace = GfxColorSpace::parse(nullptr, &obj5, nullptr, state);
++                        blendingColorSpace = std::unique_ptr<GfxColorSpace>(GfxColorSpace::parse(nullptr, &obj5, nullptr, state));
+                     }
+                     _POPPLER_FREE(obj5);
+                     if (_POPPLER_CALL_ARGS_DEREF(obj5, obj4.dictLookup, "I").isBool()) {
+@@ -842,7 +842,7 @@ void PdfParser::opSetExtGState(Object args[], int /*numArgs*/)
+                             }
+                         }
+                     }
+-                    doSoftMask(&obj3, alpha, blendingColorSpace, isolated, knockout, funcs[0], &backdropColor);
++                    doSoftMask(&obj3, alpha, blendingColorSpace.get(), isolated, knockout, funcs[0], &backdropColor);
+                     if (funcs[0]) {
+                         delete funcs[0];
+                     }
+@@ -927,9 +927,6 @@ void PdfParser::doSoftMask(Object *str, GBool alpha,
+ 	  alpha, transferFunc, backdropColor);
+   --formDepth;
+ 
+-  if (blendingColorSpace) {
+-    delete blendingColorSpace;
+-  }
+   _POPPLER_FREE(obj1);
+ }
+ 
+@@ -946,42 +943,43 @@ void PdfParser::opSetRenderingIntent(Object /*args*/[], int /*numArgs*/)
+  *
+  * Maintains a cache for named color spaces to avoid expensive re-parsing.
+  */
+-GfxColorSpace *PdfParser::lookupColorSpaceCopy(Object &arg)
++std::unique_ptr<GfxColorSpace> PdfParser::lookupColorSpaceCopy(Object &arg)
+ {
+     assert(!arg.isNull());
+-    GfxColorSpace *colorSpace = nullptr;
+ 
+     if (char const *name = arg.isName() ? arg.getName() : nullptr) {
+         auto const cache_name = std::to_string(formDepth) + "-" + name;
+-        if ((colorSpace = colorSpacesCache[cache_name].get())) {
+-            return colorSpace->copy();
++        if (auto cached = colorSpacesCache[cache_name].get()) {
++            return std::unique_ptr<GfxColorSpace>(cached->copy());
+         }
+ 
+-        Object obj = res->lookupColorSpace(name);
+-        if (obj.isNull()) {
+-            colorSpace = GfxColorSpace::parse(res, &arg, nullptr, state);
++        std::unique_ptr<GfxColorSpace> colorSpace;
++        if (auto obj = res->lookupColorSpace(name); !obj.isNull()) {
++            colorSpace = std::unique_ptr<GfxColorSpace>(GfxColorSpace::parse(res, &obj, nullptr, state));
+         } else {
+-            colorSpace = GfxColorSpace::parse(res, &obj, nullptr, state);
++            colorSpace = std::unique_ptr<GfxColorSpace>(GfxColorSpace::parse(res, &arg, nullptr, state));
+         }
+ 
+         if (colorSpace && colorSpace->getMode() != csPattern) {
+-            colorSpacesCache[cache_name].reset(colorSpace->copy());
++            colorSpacesCache[cache_name] = std::unique_ptr<GfxColorSpace>(colorSpace->copy());
+         }
++
++        return colorSpace;
+     } else {
+         // We were passed in an object directly.
+-        colorSpace = GfxColorSpace::parse(res, &arg, nullptr, state);
++        return std::unique_ptr<GfxColorSpace>(GfxColorSpace::parse(res, &arg, nullptr, state));
+     }
+-    return colorSpace;
+ }
+ 
+ /**
+  * Look up pattern/gradients from the GfxResource dictionary
+  */
+-GfxPattern *PdfParser::lookupPattern(Object *obj, GfxState *state)
++std::unique_ptr<GfxPattern> PdfParser::lookupPattern(Object *obj, GfxState *state)
+ {
+-    if (!obj->isName())
+-        return nullptr;
+-    return res->lookupPattern(obj->getName(), nullptr, state);
++    if (!obj->isName()) {
++        return {};
++    }
++    return std::unique_ptr<GfxPattern>(res->lookupPattern(obj->getName(), nullptr, state));
+ }
+ 
+ // TODO not good that numArgs is ignored but args[] is used:
+@@ -990,7 +988,7 @@ void PdfParser::opSetFillGray(Object args[], int /*numArgs*/)
+   GfxColor color;
+   builder->beforeStateChange(state);
+   state->setFillPattern(nullptr);
+-  state->setFillColorSpace(new GfxDeviceGrayColorSpace());
++  state->setFillColorSpace(_POPPLER_CONSUME_UNIQPTR_ARG(std::make_unique<GfxDeviceGrayColorSpace>()));
+   color.c[0] = dblToCol(args[0].getNum());
+   state->setFillColor(&color);
+   builder->updateStyle(state);
+@@ -1002,7 +1000,7 @@ void PdfParser::opSetStrokeGray(Object args[], int /*numArgs*/)
+   GfxColor color;
+   builder->beforeStateChange(state);
+   state->setStrokePattern(nullptr);
+-  state->setStrokeColorSpace(new GfxDeviceGrayColorSpace());
++  state->setStrokeColorSpace(_POPPLER_CONSUME_UNIQPTR_ARG(std::make_unique<GfxDeviceGrayColorSpace>()));
+   color.c[0] = dblToCol(args[0].getNum());
+   state->setStrokeColor(&color);
+   builder->updateStyle(state);
+@@ -1015,7 +1013,7 @@ void PdfParser::opSetFillCMYKColor(Object args[], int /*numArgs*/)
+   int i;
+   builder->beforeStateChange(state);
+   state->setFillPattern(nullptr);
+-  state->setFillColorSpace(new GfxDeviceCMYKColorSpace());
++  state->setFillColorSpace(_POPPLER_CONSUME_UNIQPTR_ARG(std::make_unique<GfxDeviceCMYKColorSpace>()));
+   for (i = 0; i < 4; ++i) {
+     color.c[i] = dblToCol(args[i].getNum());
+   }
+@@ -1029,7 +1027,7 @@ void PdfParser::opSetStrokeCMYKColor(Object args[], int /*numArgs*/)
+   GfxColor color;
+   builder->beforeStateChange(state);
+   state->setStrokePattern(nullptr);
+-  state->setStrokeColorSpace(new GfxDeviceCMYKColorSpace());
++  state->setStrokeColorSpace(_POPPLER_CONSUME_UNIQPTR_ARG(std::make_unique<GfxDeviceCMYKColorSpace>()));
+   for (int i = 0; i < 4; ++i) {
+     color.c[i] = dblToCol(args[i].getNum());
+   }
+@@ -1043,7 +1041,7 @@ void PdfParser::opSetFillRGBColor(Object args[], int /*numArgs*/)
+   GfxColor color;
+   builder->beforeStateChange(state);
+   state->setFillPattern(nullptr);
+-  state->setFillColorSpace(new GfxDeviceRGBColorSpace());
++  state->setFillColorSpace(_POPPLER_CONSUME_UNIQPTR_ARG(std::make_unique<GfxDeviceRGBColorSpace>()));
+   for (int i = 0; i < 3; ++i) {
+     color.c[i] = dblToCol(args[i].getNum());
+   }
+@@ -1056,7 +1054,7 @@ void PdfParser::opSetStrokeRGBColor(Object args[], int /*numArgs*/) {
+   GfxColor color;
+   builder->beforeStateChange(state);
+   state->setStrokePattern(nullptr);
+-  state->setStrokeColorSpace(new GfxDeviceRGBColorSpace());
++  state->setStrokeColorSpace(_POPPLER_CONSUME_UNIQPTR_ARG(std::make_unique<GfxDeviceRGBColorSpace>()));
+   for (int i = 0; i < 3; ++i) {
+     color.c[i] = dblToCol(args[i].getNum());
+   }
+@@ -1068,14 +1066,14 @@ void PdfParser::opSetStrokeRGBColor(Object args[], int /*numArgs*/) {
+ void PdfParser::opSetFillColorSpace(Object args[], int numArgs)
+ {
+   assert(numArgs >= 1);
+-  GfxColorSpace *colorSpace = lookupColorSpaceCopy(args[0]);
++  auto colorSpace = lookupColorSpaceCopy(args[0]);
+   builder->beforeStateChange(state);
+   state->setFillPattern(nullptr);
+ 
+   if (colorSpace) {
+     GfxColor color;
+-    state->setFillColorSpace(colorSpace);
+     colorSpace->getDefaultColor(&color);
++    state->setFillColorSpace(_POPPLER_CONSUME_UNIQPTR_ARG(colorSpace));
+     state->setFillColor(&color);
+     builder->updateStyle(state);
+   } else {
+@@ -1089,14 +1087,14 @@ void PdfParser::opSetStrokeColorSpace(Object args[], int numArgs)
+   assert(numArgs >= 1);
+   builder->beforeStateChange(state);
+ 
+-  GfxColorSpace *colorSpace = lookupColorSpaceCopy(args[0]);
++  auto colorSpace = lookupColorSpaceCopy(args[0]);
+ 
+   state->setStrokePattern(nullptr);
+ 
+   if (colorSpace) {
+     GfxColor color;
+-    state->setStrokeColorSpace(colorSpace);
+     colorSpace->getDefaultColor(&color);
++    state->setStrokeColorSpace(_POPPLER_CONSUME_UNIQPTR_ARG(colorSpace));
+     state->setStrokeColor(&color);
+     builder->updateStyle(state);
+   } else {
+@@ -1159,7 +1157,7 @@ void PdfParser::opSetFillColorN(Object args[], int numArgs) {
+       builder->updateStyle(state);
+     }
+     if (auto pattern = lookupPattern(&(args[numArgs - 1]), state)) {
+-        state->setFillPattern(pattern);
++        state->setFillPattern(_POPPLER_CONSUME_UNIQPTR_ARG(pattern));
+         builder->updateStyle(state);
+     }
+ 
+@@ -1202,7 +1200,7 @@ void PdfParser::opSetStrokeColorN(Object args[], int numArgs) {
+       builder->updateStyle(state);
+     }
+     if (auto pattern = lookupPattern(&(args[numArgs - 1]), state)) {
+-        state->setStrokePattern(pattern);
++        state->setStrokePattern(_POPPLER_CONSUME_UNIQPTR_ARG(pattern));
+         builder->updateStyle(state);
+     }
+ 
+@@ -1579,11 +1577,11 @@ void PdfParser::doShadingPatternFillFallback(GfxShadingPattern *sPat,
+ // TODO not good that numArgs is ignored but args[] is used:
+ void PdfParser::opShFill(Object args[], int /*numArgs*/)
+ {
+-  GfxShading *shading = nullptr;
+   GfxPath *savedPath = nullptr;
+   bool savedState = false;
+ 
+-  if (!(shading = res->lookupShading(args[0].getName(), nullptr, state))) {
++  auto shading = std::unique_ptr<GfxShading>(res->lookupShading(args[0].getName(), nullptr, state));
++  if (!shading) {
+     return;
+   }
+ 
+@@ -1615,19 +1613,19 @@ void PdfParser::opShFill(Object args[], int /*numArgs*/)
+   // do shading type-specific operations
+   switch (shading->getType()) {
+   case 1: // Function-based shading
+-    doFunctionShFill(static_cast<GfxFunctionShading *>(shading));
++    doFunctionShFill(static_cast<GfxFunctionShading *>(shading.get()));
+     break;
+   case 2: // Axial shading
+   case 3: // Radial shading
+-      builder->addClippedFill(shading, stateToAffine(state));
++      builder->addClippedFill(shading.get(), stateToAffine(state));
+       break;
+   case 4: // Free-form Gouraud-shaded triangle mesh
+   case 5: // Lattice-form Gouraud-shaded triangle mesh
+-    doGouraudTriangleShFill(static_cast<GfxGouraudTriangleShading *>(shading));
++    doGouraudTriangleShFill(static_cast<GfxGouraudTriangleShading *>(shading.get()));
+     break;
+   case 6: // Coons patch mesh
+   case 7: // Tensor-product patch mesh
+-    doPatchMeshShFill(static_cast<GfxPatchMeshShading *>(shading));
++    doPatchMeshShFill(static_cast<GfxPatchMeshShading *>(shading.get()));
+     break;
+   }
+ 
+@@ -1636,8 +1634,6 @@ void PdfParser::opShFill(Object args[], int /*numArgs*/)
+     restoreState();
+     state->setPath(savedPath);
+   }
+-
+-  delete shading;
+ }
+ 
+ void PdfParser::doFunctionShFill(GfxFunctionShading *shading) {
+@@ -2528,7 +2524,7 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, GBool inlineImg)
+         
+     } else {
+         // get color space and color map
+-        GfxColorSpace *colorSpace;
++        std::unique_ptr<GfxColorSpace> colorSpace;
+         _POPPLER_CALL_ARGS(obj1, dict->lookup, "ColorSpace");
+         if (obj1.isNull()) {
+             _POPPLER_FREE(obj1);
+@@ -2537,13 +2533,11 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, GBool inlineImg)
+         if (!obj1.isNull()) {
+             colorSpace = lookupColorSpaceCopy(obj1);
+         } else if (csMode == streamCSDeviceGray) {
+-            colorSpace = new GfxDeviceGrayColorSpace();
++            colorSpace = std::make_unique<GfxDeviceGrayColorSpace>();
+         } else if (csMode == streamCSDeviceRGB) {
+-            colorSpace = new GfxDeviceRGBColorSpace();
++            colorSpace = std::make_unique<GfxDeviceRGBColorSpace>();
+         } else if (csMode == streamCSDeviceCMYK) {
+-            colorSpace = new GfxDeviceCMYKColorSpace();
+-        } else {
+-            colorSpace = nullptr;
++            colorSpace = std::make_unique<GfxDeviceCMYKColorSpace>();
+         }
+         _POPPLER_FREE(obj1);
+         if (!colorSpace) {
+@@ -2554,10 +2548,9 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, GBool inlineImg)
+             _POPPLER_FREE(obj1);
+             _POPPLER_CALL_ARGS(obj1, dict->lookup, "D");
+         }
+-        GfxImageColorMap *colorMap = new GfxImageColorMap(bits, &obj1, colorSpace);
++        auto colorMap = std::make_unique<GfxImageColorMap>(bits, &obj1, _POPPLER_CONSUME_UNIQPTR_ARG(colorSpace));
+         _POPPLER_FREE(obj1);
+         if (!colorMap->isOk()) {
+-            delete colorMap;
+             goto err1;
+         }
+         
+@@ -2568,7 +2561,7 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, GBool inlineImg)
+         int maskWidth = 0;
+         int maskHeight = 0;
+         maskInvert = gFalse;
+-        GfxImageColorMap *maskColorMap = nullptr;
++        std::unique_ptr<GfxImageColorMap> maskColorMap;
+         _POPPLER_CALL_ARGS(maskObj, dict->lookup, "Mask");
+         _POPPLER_CALL_ARGS(smaskObj, dict->lookup, "SMask");
+         Dict* maskDict;
+@@ -2624,7 +2617,7 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, GBool inlineImg)
+ 	            _POPPLER_FREE(obj1);
+                     _POPPLER_CALL_ARGS(obj1, maskDict->lookup, "CS");
+             }
+-            GfxColorSpace *maskColorSpace = lookupColorSpaceCopy(obj1);
++            auto maskColorSpace = lookupColorSpaceCopy(obj1);
+             _POPPLER_FREE(obj1);
+             if (!maskColorSpace || maskColorSpace->getMode() != csDeviceGray) {
+                 goto err1;
+@@ -2634,10 +2627,9 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, GBool inlineImg)
+                 _POPPLER_FREE(obj1);
+                 _POPPLER_CALL_ARGS(obj1, maskDict->lookup, "D");
+             }
+-            maskColorMap = new GfxImageColorMap(maskBits, &obj1, maskColorSpace);
++            maskColorMap = std::make_unique<GfxImageColorMap>(maskBits, &obj1, _POPPLER_CONSUME_UNIQPTR_ARG(maskColorSpace));
+             _POPPLER_FREE(obj1);
+             if (!maskColorMap->isOk()) {
+-                delete maskColorMap;
+                 goto err1;
+             }
+             //~ handle the Matte entry
+@@ -2718,17 +2710,15 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, GBool inlineImg)
+         
+         // draw it
+         if (haveSoftMask) {
+-	    builder->addSoftMaskedImage(state, str, width, height, colorMap, interpolate,
+-				maskStr, maskWidth, maskHeight, maskColorMap, maskInterpolate);
+-            delete maskColorMap;
++	    builder->addSoftMaskedImage(state, str, width, height, colorMap.get(), interpolate,
++				maskStr, maskWidth, maskHeight, maskColorMap.get(), maskInterpolate);
+         } else if (haveExplicitMask) {
+- 	    builder->addMaskedImage(state, str, width, height, colorMap, interpolate,
++ 	    builder->addMaskedImage(state, str, width, height, colorMap.get(), interpolate,
+ 				maskStr, maskWidth, maskHeight, maskInvert, maskInterpolate);
+         } else {
+-	    builder->addImage(state, str, width, height, colorMap, interpolate,
+-		        haveColorKeyMask ? maskColors : static_cast<int *>(nullptr));
++	    builder->addImage(state, str, width, height, colorMap.get(), interpolate,
++		        haveColorKeyMask ? maskColors : nullptr);
+         }
+-        delete colorMap;
+         
+         _POPPLER_FREE(maskObj);
+         _POPPLER_FREE(smaskObj);
+@@ -2746,7 +2736,6 @@ void PdfParser::doForm(Object *str, double *offset)
+ {
+     Dict *dict;
+     GBool transpGroup, isolated, knockout;
+-    GfxColorSpace *blendingColorSpace;
+     Object matrixObj, bboxObj;
+     double m[6], bbox[4];
+     Object resObj;
+@@ -2812,12 +2801,12 @@ void PdfParser::doForm(Object *str, double *offset)
+ 
+     // check for a transparency group
+     transpGroup = isolated = knockout = gFalse;
+-    blendingColorSpace = nullptr;
++    std::unique_ptr<GfxColorSpace> blendingColorSpace;
+     if (_POPPLER_CALL_ARGS_DEREF(obj1, dict->lookup, "Group").isDict()) {
+         if (_POPPLER_CALL_ARGS_DEREF(obj2, obj1.dictLookup, "S").isName("Transparency")) {
+         transpGroup = gTrue;
+         if (!_POPPLER_CALL_ARGS_DEREF(obj3, obj1.dictLookup, "CS").isNull()) {
+-                blendingColorSpace = GfxColorSpace::parse(nullptr, &obj3, nullptr, state);
++            blendingColorSpace = std::unique_ptr<GfxColorSpace>(GfxColorSpace::parse(nullptr, &obj3, nullptr, state));
+         }
+         _POPPLER_FREE(obj3);
+         if (_POPPLER_CALL_ARGS_DEREF(obj3, obj1.dictLookup, "I").isBool()) {
+@@ -2835,12 +2824,9 @@ void PdfParser::doForm(Object *str, double *offset)
+ 
+     // draw it
+     ++formDepth;
+-    doForm1(str, resDict, m, bbox, transpGroup, gFalse, blendingColorSpace, isolated, knockout);
++    doForm1(str, resDict, m, bbox, transpGroup, gFalse, blendingColorSpace.get(), isolated, knockout);
+     --formDepth;
+ 
+-    if (blendingColorSpace) {
+-        delete blendingColorSpace;
+-    }
+     _POPPLER_FREE(resObj);
+ }
+ 
+diff --git a/src/extension/internal/pdfinput/pdf-parser.h b/src/extension/internal/pdfinput/pdf-parser.h
+index c7c10caefed..8325ea24364 100644
+--- a/src/extension/internal/pdfinput/pdf-parser.h
++++ b/src/extension/internal/pdfinput/pdf-parser.h
+@@ -137,7 +137,7 @@ public:
+     void loadPatternColorProfiles(Dict *resources);
+     void loadColorProfile();
+     void loadColorSpaceProfile(GfxColorSpace *space, Object *obj);
+-    GfxPattern *lookupPattern(Object *obj, GfxState *state);
++    std::unique_ptr<GfxPattern> lookupPattern(Object *obj, GfxState *state);
+ 
+     std::shared_ptr<CairoFontEngine> getFontEngine();
+ 
+@@ -176,7 +176,7 @@ private:
+     //! Caches color spaces by name
+     std::map<std::string, std::unique_ptr<GfxColorSpace>> colorSpacesCache;
+ 
+-    GfxColorSpace *lookupColorSpaceCopy(Object &);
++    std::unique_ptr<GfxColorSpace> lookupColorSpaceCopy(Object &);
+ 
+     void setDefaultApproximationPrecision(); // init color deltas
+     void pushOperator(const char *name);
+diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h
+index 481aefadf46..8f03aa17779 100644
+--- a/src/extension/internal/pdfinput/poppler-transition-api.h
++++ b/src/extension/internal/pdfinput/poppler-transition-api.h
+@@ -15,6 +15,12 @@
+ #include <glib/poppler-features.h>
+ #include <poppler/UTF.h>
+ 
++#if POPPLER_CHECK_VERSION(24, 10, 0)
++#define _POPPLER_CONSUME_UNIQPTR_ARG(value) std::move(value)
++#else
++#define _POPPLER_CONSUME_UNIQPTR_ARG(value) value.release()
++#endif
++
+ #if POPPLER_CHECK_VERSION(24, 5, 0)
+ #define _POPPLER_HAS_UNICODE_BOM(value) (hasUnicodeByteOrderMark(value->toStr()))
+ #define _POPPLER_HAS_UNICODE_BOMLE(value) (hasUnicodeByteOrderMarkLE(value->toStr()))
+-- 
+GitLab
+

diff --git a/media-gfx/inkscape/inkscape-1.4.ebuild b/media-gfx/inkscape/inkscape-1.4.ebuild
index 29117135a3c6..33c9e981ae53 100644
--- a/media-gfx/inkscape/inkscape-1.4.ebuild
+++ b/media-gfx/inkscape/inkscape-1.4.ebuild
@@ -110,6 +110,7 @@ DEPEND="${COMMON_DEPEND}
 
 PATCHES=(
 	"${FILESDIR}"/${PN}-1.4-gcc15.patch
+	"${FILESDIR}"/${PN}-1.4-poppler-24.10-fix-backport.patch
 )
 
 pkg_pretend() {


^ permalink raw reply related	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2024-11-04  9:51 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-16 13:25 [gentoo-commits] repo/gentoo:master commit in: media-gfx/inkscape/files/, media-gfx/inkscape/ Andreas K. Hüttel
  -- strict thread matches above, loose matches on Subject: below --
2024-11-04  9:51 David Seifert
2024-05-31 16:08 David Seifert
2024-05-30 13:59 Andreas Sturmlechner
2023-05-01  7:32 Sam James
2022-09-03  1:42 Sam James
2022-09-02  4:38 Sam James
2022-05-26  1:12 Sam James
2022-03-18 21:30 Andreas K. Hüttel
2021-09-25 15:59 Andreas K. Hüttel
2021-09-25 15:59 Andreas K. Hüttel
2021-04-14 19:01 Mikle Kolyada
2020-08-26  6:49 Mikle Kolyada
2020-07-02  8:18 Mikle Kolyada
2020-05-08  7:42 Miroslav Šulc
2019-11-11  9:41 Miroslav Šulc
2019-11-09  8:57 Andreas Sturmlechner
2019-11-06 21:07 Miroslav Šulc
2019-07-24 20:57 Andreas Sturmlechner
2019-04-24 13:18 Lars Wendler
2018-09-15 21:46 Andreas Hüttel
2018-05-18  6:31 Lars Wendler
2018-05-07 12:59 Lars Wendler
2017-05-12 19:41 Andreas Hüttel
2016-06-29 20:29 Patrick McLean

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox