aboutsummaryrefslogtreecommitdiff
path: root/graphics/inkscape-gtk2
diff options
context:
space:
mode:
authorPetar Petrov <slackalaxy@gmail.com>2023-04-28 03:30:48 +0100
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2023-04-29 18:11:41 +0700
commit01aa77a1dcffcd30067a7a436ea8b9444f338a42 (patch)
treec0aaef43c22f4ea611474d08bc589b500669823d /graphics/inkscape-gtk2
parenteea8e1e3dfc04bf103dc02135a9349a2cc5c36eb (diff)
graphics/inkscape-gtk2: Added (Open Source vector graphics editor)
Signed-off-by: bedlam <dave@slackbuilds.org> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'graphics/inkscape-gtk2')
-rw-r--r--graphics/inkscape-gtk2/README12
-rw-r--r--graphics/inkscape-gtk2/doinst.sh10
-rw-r--r--graphics/inkscape-gtk2/gcc9.patch95
-rw-r--r--graphics/inkscape-gtk2/im7.patch106
-rw-r--r--graphics/inkscape-gtk2/inkscape-gtk2.SlackBuild131
-rw-r--r--graphics/inkscape-gtk2/inkscape-gtk2.info10
-rw-r--r--graphics/inkscape-gtk2/poppler-21.11.0.patch26
-rw-r--r--graphics/inkscape-gtk2/slack-desc19
8 files changed, 409 insertions, 0 deletions
diff --git a/graphics/inkscape-gtk2/README b/graphics/inkscape-gtk2/README
new file mode 100644
index 000000000000..b1fbe59e60fc
--- /dev/null
+++ b/graphics/inkscape-gtk2/README
@@ -0,0 +1,12 @@
+This is the last GTK2 version of Inkscape. It will conflict with the
+latest one, so don't install both.
+
+Inkscape is an Open Source vector graphics editor, with capabilities
+similar to Illustrator, Freehand, CorelDraw, or Xara X using the W3C
+standard Scalable Vector Graphics (SVG) file format. Supported SVG
+features include shapes, paths, text, markers, clones, alpha blending,
+transforms, gradients, patterns, and grouping. Inkscape also supports
+Creative Commons meta-data, node editing, layers, complex path
+operations, bitmap tracing, text-on-path, flowed text, direct XML
+editing, and more. It imports formats such as JPEG, PNG, TIFF, and
+others and exports PNG as well as multiple vector-based formats.
diff --git a/graphics/inkscape-gtk2/doinst.sh b/graphics/inkscape-gtk2/doinst.sh
new file mode 100644
index 000000000000..f452554ffaeb
--- /dev/null
+++ b/graphics/inkscape-gtk2/doinst.sh
@@ -0,0 +1,10 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database usr/share/applications >/dev/null 2>&1
+fi
+
+if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
+ if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
+ fi
+fi
+
diff --git a/graphics/inkscape-gtk2/gcc9.patch b/graphics/inkscape-gtk2/gcc9.patch
new file mode 100644
index 000000000000..c9106beb021c
--- /dev/null
+++ b/graphics/inkscape-gtk2/gcc9.patch
@@ -0,0 +1,95 @@
+--- a/src/ui/dialog/document-properties.cpp.ORIG 2019-01-15 05:29:27.000000000 +0100
++++ b/src/ui/dialog/document-properties.cpp 2019-02-01 12:24:16.664281733 +0100
+@@ -563,7 +563,7 @@
+ }
+
+ struct _cmp {
+- bool operator()(const SPObject * const & a, const SPObject * const & b)
++ bool operator()(const SPObject * const & a, const SPObject * const & b) const
+ {
+ const Inkscape::ColorProfile &a_prof = reinterpret_cast<const Inkscape::ColorProfile &>(*a);
+ const Inkscape::ColorProfile &b_prof = reinterpret_cast<const Inkscape::ColorProfile &>(*b);
+--- a/src/vanishing-point.h.ORIG 2019-05-14 11:10:14.069835323 +0200
++++ b/src/vanishing-point.h 2019-05-14 15:49:31.931911893 +0200
+@@ -78,7 +78,7 @@
+ return _persp = persp;
+ }
+
+- inline bool hasBox (SPBox3D *box) {
++ inline bool hasBox (SPBox3D *box) const {
+ return persp3d_has_box(_persp, box);
+ }
+ inline unsigned int numberOfBoxes() const {
+@@ -104,7 +104,7 @@
+ g_return_if_fail (_persp);
+ persp3d_get_VP (_persp, _axis).print("");
+ }
+- inline char const *axisString () { return Proj::string_from_axis(_axis); }
++ inline char const *axisString () const { return Proj::string_from_axis(_axis); }
+
+ unsigned int my_counter;
+ static unsigned int global_counter; // FIXME: Only to implement operator< so that we can merge lists. Do this in a better way!!
+@@ -116,7 +116,7 @@
+ struct VPDrag;
+
+ struct less_ptr : public std::binary_function<VanishingPoint *, VanishingPoint *, bool> {
+- bool operator()(VanishingPoint *vp1, VanishingPoint *vp2) {
++ bool operator()(VanishingPoint *vp1, VanishingPoint *vp2) const {
+ return GPOINTER_TO_INT(vp1) < GPOINTER_TO_INT(vp2);
+ }
+ };
+@@ -144,8 +144,8 @@
+ void updateTip();
+
+ unsigned int numberOfBoxes(); // the number of boxes linked to all VPs of the dragger
+- VanishingPoint *findVPWithBox(SPBox3D *box);
+- std::set<VanishingPoint*, less_ptr> VPsOfSelectedBoxes();
++ VanishingPoint *findVPWithBox(SPBox3D *box) const;
++ std::set<VanishingPoint*, less_ptr> VPsOfSelectedBoxes() const;
+
+ bool hasPerspective(const Persp3D *persp);
+ void mergePerspectives(); // remove duplicate perspectives
+--- a/src/vanishing-point.cpp.ORIG 2019-01-15 05:29:27.000000000 +0100
++++ b/src/vanishing-point.cpp 2019-05-14 16:01:07.035873590 +0200
+@@ -382,17 +382,17 @@
+ }
+
+ VanishingPoint *
+-VPDragger::findVPWithBox (SPBox3D *box) {
+- for (std::list<VanishingPoint>::iterator vp = vps.begin(); vp != vps.end(); ++vp) {
++VPDragger::findVPWithBox (SPBox3D *box) const {
++ for (std::list<VanishingPoint>::const_iterator vp = vps.begin(); vp != vps.end(); ++vp) {
+ if ((*vp).hasBox(box)) {
+- return &(*vp);
++ return const_cast<VanishingPoint*>(&(*vp));
+ }
+ }
+ return NULL;
+ }
+
+ std::set<VanishingPoint*, less_ptr>
+-VPDragger::VPsOfSelectedBoxes() {
++VPDragger::VPsOfSelectedBoxes() const {
+ std::set<VanishingPoint*, less_ptr> sel_vps;
+ VanishingPoint *vp;
+ // FIXME: Should we take the selection from the parent VPDrag? I guess it shouldn't make a difference.
+@@ -402,7 +402,7 @@
+ SPItem *item = *i;
+ SPBox3D *box = dynamic_cast<SPBox3D *>(item);
+ if (box) {
+- vp = this->findVPWithBox(box);
++ vp = const_cast<VPDragger*>(this)->findVPWithBox(box);
+ if (vp) {
+ sel_vps.insert (vp);
+ }
+--- a/src/ui/widget/color-icc-selector.cpp.ORIG 2019-01-15 05:29:27.000000000 +0100
++++ b/src/ui/widget/color-icc-selector.cpp 2019-02-01 12:31:47.770306444 +0100
+@@ -673,7 +673,7 @@
+
+ #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2)
+ struct _cmp {
+- bool operator()(const SPObject * const & a, const SPObject * const & b)
++ bool operator()(const SPObject * const & a, const SPObject * const & b) const
+ {
+ const Inkscape::ColorProfile &a_prof = reinterpret_cast<const Inkscape::ColorProfile &>(*a);
+ const Inkscape::ColorProfile &b_prof = reinterpret_cast<const Inkscape::ColorProfile &>(*b);
diff --git a/graphics/inkscape-gtk2/im7.patch b/graphics/inkscape-gtk2/im7.patch
new file mode 100644
index 000000000000..0572cd5f5977
--- /dev/null
+++ b/graphics/inkscape-gtk2/im7.patch
@@ -0,0 +1,106 @@
+diff -Naur orig/src/extension/CMakeLists.txt patched/src/extension/CMakeLists.txt
+--- orig/src/extension/CMakeLists.txt 2017-03-24 00:51:36.134741323 +0100
++++ patched/src/extension/CMakeLists.txt 2017-03-24 04:14:34.510756391 +0100
+@@ -218,8 +218,8 @@
+ internal/bitmap/normalize.h
+ internal/bitmap/oilPaint.cpp
+ internal/bitmap/oilPaint.h
+- internal/bitmap/opacity.cpp
+- internal/bitmap/opacity.h
++# internal/bitmap/opacity.cpp
++# internal/bitmap/opacity.h
+ internal/bitmap/raise.cpp
+ internal/bitmap/raise.h
+ internal/bitmap/reduceNoise.cpp
+diff -Naur orig/src/extension/init.cpp patched/src/extension/init.cpp
+--- orig/src/extension/init.cpp 2017-03-24 00:51:36.134741323 +0100
++++ patched/src/extension/init.cpp 2017-03-24 13:12:39.709882011 +0100
+@@ -88,7 +88,7 @@
+ #include "internal/bitmap/negate.h"
+ #include "internal/bitmap/normalize.h"
+ #include "internal/bitmap/oilPaint.h"
+-#include "internal/bitmap/opacity.h"
++//#include "internal/bitmap/opacity.h"
+ #include "internal/bitmap/raise.h"
+ #include "internal/bitmap/reduceNoise.h"
+ #include "internal/bitmap/sample.h"
+@@ -224,7 +224,7 @@
+ Internal::Bitmap::Negate::init();
+ Internal::Bitmap::Normalize::init();
+ Internal::Bitmap::OilPaint::init();
+- Internal::Bitmap::Opacity::init();
++// Internal::Bitmap::Opacity::init();
+ Internal::Bitmap::Raise::init();
+ Internal::Bitmap::ReduceNoise::init();
+ Internal::Bitmap::Sample::init();
+diff -Naur orig/src/extension/internal/bitmap/channel.cpp patched/src/extension/internal/bitmap/channel.cpp
+--- orig/src/extension/internal/bitmap/channel.cpp 2017-03-24 00:51:36.134741323 +0100
++++ patched/src/extension/internal/bitmap/channel.cpp 2017-03-24 03:06:36.164250664 +0100
+@@ -28,7 +28,7 @@
+ else if (!strcmp(_layerName, "Yellow Channel")) layer = Magick::YellowChannel;
+ else if (!strcmp(_layerName, "Black Channel")) layer = Magick::BlackChannel;
+ else if (!strcmp(_layerName, "Opacity Channel")) layer = Magick::OpacityChannel;
+- else if (!strcmp(_layerName, "Matte Channel")) layer = Magick::MatteChannel;
++ else if (!strcmp(_layerName, "Alpha Channel")) layer = Magick::AlphaChannel;
+
+ image->channel(layer);
+ }
+@@ -56,7 +56,7 @@
+ "<_item value='Yellow Channel'>" N_("Yellow Channel") "</_item>\n"
+ "<_item value='Black Channel'>" N_("Black Channel") "</_item>\n"
+ "<_item value='Opacity Channel'>" N_("Opacity Channel") "</_item>\n"
+- "<_item value='Matte Channel'>" N_("Matte Channel") "</_item>\n"
++ "<_item value='Alpha Channel'>" N_("Alpha Channel") "</_item>\n"
+ "</param>\n"
+ "<effect>\n"
+ "<object-type>all</object-type>\n"
+diff -Naur orig/src/extension/internal/bitmap/crop.cpp patched/src/extension/internal/bitmap/crop.cpp
+--- orig/src/extension/internal/bitmap/crop.cpp 2017-03-24 00:51:36.134741323 +0100
++++ patched/src/extension/internal/bitmap/crop.cpp 2017-03-24 02:31:09.915343848 +0100
+@@ -24,7 +24,7 @@
+ int width = image->baseColumns() - (_left + _right);
+ int height = image->baseRows() - (_top + _bottom);
+ if (width > 0 and height > 0) {
+- image->crop(Magick::Geometry(width, height, _left, _top, false, false));
++ image->crop(Magick::Geometry(width, height, _left, _top));
+ image->page("+0+0");
+ }
+ }
+diff -Naur orig/src/extension/internal/bitmap/levelChannel.cpp patched/src/extension/internal/bitmap/levelChannel.cpp
+--- orig/src/extension/internal/bitmap/levelChannel.cpp 2017-03-24 00:51:36.134741323 +0100
++++ patched/src/extension/internal/bitmap/levelChannel.cpp 2017-03-24 03:45:35.902823802 +0100
+@@ -28,9 +28,9 @@
+ else if (!strcmp(_channelName, "Yellow Channel")) channel = Magick::YellowChannel;
+ else if (!strcmp(_channelName, "Black Channel")) channel = Magick::BlackChannel;
+ else if (!strcmp(_channelName, "Opacity Channel")) channel = Magick::OpacityChannel;
+- else if (!strcmp(_channelName, "Matte Channel")) channel = Magick::MatteChannel;
+- Magick::Quantum black_point = Magick::Color::scaleDoubleToQuantum(_black_point / 100.0);
+- Magick::Quantum white_point = Magick::Color::scaleDoubleToQuantum(_white_point / 100.0);
++ else if (!strcmp(_channelName, "Alpha Channel")) channel = Magick::AlphaChannel;
++ Magick::Quantum black_point = static_cast<Magick::Quantum>(_black_point / 100.0);
++ Magick::Quantum white_point = static_cast<Magick::Quantum>(_white_point / 100.0);
+ image->levelChannel(channel, black_point, white_point, _mid_point);
+ }
+
+@@ -60,7 +60,7 @@
+ "<_item value='Yellow Channel'>" N_("Yellow Channel") "</_item>\n"
+ "<_item value='Black Channel'>" N_("Black Channel") "</_item>\n"
+ "<_item value='Opacity Channel'>" N_("Opacity Channel") "</_item>\n"
+- "<_item value='Matte Channel'>" N_("Matte Channel") "</_item>\n"
++ "<_item value='Alpha Channel'>" N_("Alpha Channel") "</_item>\n"
+ "</param>\n"
+ "<param name=\"blackPoint\" _gui-text=\"" N_("Black Point:") "\" type=\"float\" min=\"0.0\" max=\"100.0\">0.0</param>\n"
+ "<param name=\"whitePoint\" _gui-text=\"" N_("White Point:") "\" type=\"float\" min=\"0.0\" max=\"100.0\">100.0</param>\n"
+diff -Naur orig/src/extension/internal/bitmap/level.cpp patched/src/extension/internal/bitmap/level.cpp
+--- orig/src/extension/internal/bitmap/level.cpp 2017-03-24 00:51:36.134741323 +0100
++++ patched/src/extension/internal/bitmap/level.cpp 2017-03-24 03:45:33.306793000 +0100
+@@ -19,8 +19,8 @@
+
+ void
+ Level::applyEffect(Magick::Image* image) {
+- Magick::Quantum black_point = Magick::Color::scaleDoubleToQuantum(_black_point / 100.0);
+- Magick::Quantum white_point = Magick::Color::scaleDoubleToQuantum(_white_point / 100.0);
++ Magick::Quantum black_point = static_cast<Magick::Quantum>(_black_point / 100.0);
++ Magick::Quantum white_point = static_cast<Magick::Quantum>(_white_point / 100.0);
+ image->level(black_point, white_point, _mid_point);
+ }
diff --git a/graphics/inkscape-gtk2/inkscape-gtk2.SlackBuild b/graphics/inkscape-gtk2/inkscape-gtk2.SlackBuild
new file mode 100644
index 000000000000..37ed79422bec
--- /dev/null
+++ b/graphics/inkscape-gtk2/inkscape-gtk2.SlackBuild
@@ -0,0 +1,131 @@
+#!/bin/bash
+
+# Slackware build script for inkscape-gtk2
+
+# Modified 2023 Petar Petrov slackalaxy@gmail.com
+# Copyright 2006-2014 Robby Workman, Northport, AL, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=inkscape-gtk2
+SRCNAM=inkscape
+VERSION=${VERSION:-0.92.5}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.bz2
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+patch -p1 -i $CWD/gcc9.patch
+patch -p1 -i $CWD/im7.patch
+patch -p1 -i $CWD/poppler-21.11.0.patch
+
+sed -i "s:lib/inkscape:lib${LIBDIRSUFFIX}/inkscape:g" CMakeLists.txt
+sed -i "s:{CMAKE_BINARY_DIR}/lib:{CMAKE_BINARY_DIR}/lib${LIBDIRSUFFIX}:g" CMakeLists.txt
+
+mkdir -p build
+cd build
+ cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DINKSCAPE_LIBDIR=/usr/lib${LIBDIRSUFFIX} \
+ -DCMAKE_BUILD_TYPE=Release ..
+
+ sed -i "s:lib/inkscape:lib${LIBDIRSUFFIX}/inkscape:g" src/cmake_install.cmake
+
+ make
+ make install DESTDIR=$PKG
+cd ..
+
+rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+# We don't want the static libs
+rm -rf $PKG/usr/lib
+
+# Move man pages to their proper place
+mv $PKG/usr/share/man $PKG/usr/man
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+
+# fix the desktop file
+sed -i -n '/\[Drawing Shortcut Group\]/q;p' $PKG/usr/share/applications/inkscape.desktop
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ AUTHORS ChangeLog COPYING GPL2.txt GPL3.txt LGPL2.1.txt NEWS README README.*.txt TRANSLATORS doc/* \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+find $PKG/usr/doc -name "Makefile*" -exec rm {} \;
+find $PKG/usr/doc -type f -exec chmod 644 {} \;
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/graphics/inkscape-gtk2/inkscape-gtk2.info b/graphics/inkscape-gtk2/inkscape-gtk2.info
new file mode 100644
index 000000000000..4fc8f5dba886
--- /dev/null
+++ b/graphics/inkscape-gtk2/inkscape-gtk2.info
@@ -0,0 +1,10 @@
+PRGNAM="inkscape-gtk2"
+VERSION="0.92.5"
+HOMEPAGE="http://www.inkscape.org/"
+DOWNLOAD="https://ftp.osuosl.org/pub/blfs/conglomeration/inkscape/inkscape-0.92.5.tar.bz2"
+MD5SUM="592c0e94cf00ea9e0a8901883d8f06fd"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="lxml potrace"
+MAINTAINER="Petar Petrov"
+EMAIL="slackalaxy@gmail.com"
diff --git a/graphics/inkscape-gtk2/poppler-21.11.0.patch b/graphics/inkscape-gtk2/poppler-21.11.0.patch
new file mode 100644
index 000000000000..dd908756f047
--- /dev/null
+++ b/graphics/inkscape-gtk2/poppler-21.11.0.patch
@@ -0,0 +1,26 @@
+From ff61b5e3df3351d4ab5437181fe6d34729f4cbbb Mon Sep 17 00:00:00 2001
+From: Evangelos Foutras <evangelos@foutrelis.com>
+Date: Mon, 1 Nov 2021 21:45:38 +0200
+Subject: [PATCH] Fix build with poppler 21.11.0
+
+GfxFont::tag is now of type std::string instead of GooString *.
+---
+ src/extension/internal/pdfinput/pdf-parser.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
+index e3d04d544b..feecefa043 100644
+--- a/src/extension/internal/pdfinput/pdf-parser.cpp
++++ b/src/extension/internal/pdfinput/pdf-parser.cpp
+@@ -2169,7 +2169,11 @@ void PdfParser::opSetFont(Object args[], int /*numArgs*/)
+ }
+ if (printCommands) {
+ printf(" font: tag=%s name='%s' %g\n",
++#if POPPLER_CHECK_VERSION(21,11,0)
++ font->getTag().c_str(),
++#else
+ font->getTag()->getCString(),
++#endif
+ font->getName() ? font->getName()->getCString() : "???",
+ args[1].getNum());
+ fflush(stdout);
diff --git a/graphics/inkscape-gtk2/slack-desc b/graphics/inkscape-gtk2/slack-desc
new file mode 100644
index 000000000000..ce3bb6623c99
--- /dev/null
+++ b/graphics/inkscape-gtk2/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+inkscape-gtk2: inkscape-gtk2 (Open Source vector graphics editor)
+inkscape-gtk2:
+inkscape-gtk2: Inkscape is an Open Source vector graphics editor, with capabilities
+inkscape-gtk2: similar to Illustrator, Freehand, CorelDraw, or Xara X using the W3C
+inkscape-gtk2: standard Scalable Vector Graphics (SVG) file format.
+inkscape-gtk2:
+inkscape-gtk2: Homepage: http://www.inkscape.org/
+inkscape-gtk2:
+inkscape-gtk2:
+inkscape-gtk2:
+inkscape-gtk2: