* [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", >kIconThemeName, NULL);
-- g_object_get(settings, "gtk-theme-name", >kThemeName, NULL);
-- g_object_get(settings, "gtk-application-prefer-dark-theme", >kApplicationPreferDarkTheme, NULL);
-+ g_object_get(settings, "gtk-icon-theme-name", >kIconThemeName, nullptr);
-+ g_object_get(settings, "gtk-theme-name", >kThemeName, nullptr);
-+ g_object_get(settings, "gtk-application-prefer-dark-theme", >kApplicationPreferDarkTheme, 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", >kThemeName, NULL);
-- g_object_get(settings, "gtk-application-prefer-dark-theme", >kApplicationPreferDarkTheme, NULL);
-+ g_object_get(settings, "gtk-theme-name", >kThemeName, nullptr);
-+ g_object_get(settings, "gtk-application-prefer-dark-theme", >kApplicationPreferDarkTheme, 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", >kIconThemeName, NULL);
+- g_object_get(settings, "gtk-theme-name", >kThemeName, NULL);
+- g_object_get(settings, "gtk-application-prefer-dark-theme", >kApplicationPreferDarkTheme, NULL);
++ g_object_get(settings, "gtk-icon-theme-name", >kIconThemeName, nullptr);
++ g_object_get(settings, "gtk-theme-name", >kThemeName, nullptr);
++ g_object_get(settings, "gtk-application-prefer-dark-theme", >kApplicationPreferDarkTheme, 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", >kThemeName, NULL);
+- g_object_get(settings, "gtk-application-prefer-dark-theme", >kApplicationPreferDarkTheme, NULL);
++ g_object_get(settings, "gtk-theme-name", >kThemeName, nullptr);
++ g_object_get(settings, "gtk-application-prefer-dark-theme", >kApplicationPreferDarkTheme, 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