Skip to content

Commit

Permalink
inkscape: Add version 0.92.3
Browse files Browse the repository at this point in the history
The release notes are available online [1].

> Inkscape 0.92.3 is mainly a stability and bugfix release, but it also
> brings some small new features, like being able to set an ellipses'
> radii numerically in the tool controls, or switching the writing
> direction from left-to-right to right-to-left. Windows users will be
> happy to learn that the long startup times many of them were seeing
> could greatly be reduced. A new rendering option with an adjusted
> default value can vastly improve performance when working with
> filters.
>
> Many of the bug fixes address important functionality, like printing
> issues, crashes with the node tool or problems with keyboard
> shortcuts.

Update the URLs, and also the ImageMagick version, as the old one, is
not available for download anymore.

[1] https://inkscape.org/en/release/0.92.3/

Fixes: #16
  • Loading branch information
pmenzel committed Mar 29, 2018
1 parent d490062 commit a60ed5e
Showing 1 changed file with 109 additions and 0 deletions.
109 changes: 109 additions & 0 deletions inkscape-0.92.3-0.build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
#! /bin/sh
set -xe

PKG=inkscape
VERSION=0.92.3
BUILD=0
PREFIX=/pkg/$PKG-$VERSION-$BUILD

mkdir -p $PREFIX
cat >$PREFIX/profile <<-EOF
PATH=$PREFIX/bin:\$PATH
EOF

source $PREFIX/profile

export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig

# what is the problem here?
# https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
#
# our installed Glib & friends are build with an old cxx( which didn't use the CXX11 ABI)
# our installed imagemagick is build with a new cxx (which defaulted to CXX11 ABI)
#
# we want to use both libraries. So neither _GLIBCXX_USE_CXX11_ABI=1 (the default now) nor
# _GLIBCXX_USE_CXX11_ABI=0 by it self is enough.
#
# with _GLIBCXX_USE_CXX11_ABI=1 (default)
# ./lib/libinkscape_base.so: undefined reference to `Magick::Blob::base64(std::string)'
# ...
# with _GLIBCXX_USE_CXX11_ABI=0 (default)
# main.cpp:(.text+0x2a01): undefined reference to `Glib::build_filename(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
# ...
#
# As a quick fix we include ImageMagick with _GLIBCXX_USE_CXX11_ABI=0 here, so this ImageMagick
# library is compatible to the installed Glib and friends.
#
# We can't use the newest ImageMagick:
#
# /pkg/inkscape-0.92.1-0/build/inkscape-0.92.1/src/extension/internal/bitmap/channel.cpp: In member function ‘virtual void Inkscape::Extension::Internal::Bitmap::Channel::applyEffect(Magick::Image*)’:
# /pkg/inkscape-0.92.1-0/build/inkscape-0.92.1/src/extension/internal/bitmap/channel.cpp:31:58: error: ‘MatteChannel’ is not a member of ‘Magick’
#

# ImageMagick

VER=6.9.9-40

mkdir -p $PREFIX/build
cd $PREFIX/build
test -e ImageMagick-$VER.tar.xz || wget https://www.imagemagick.org/download/releases/ImageMagick-$VER.tar.xz
test -d ImageMagick-$VER || tar xf ImageMagick-$VER.tar.xz
cd ImageMagick-$VER
./configure --prefix=$PREFIX CXXFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0
make -j $(nproc)
make install

# inkscape

mkdir -p $PREFIX/build
cd $PREFIX/build

test -e inkscape-$VERSION.tar.bz2 || wget https://inkscape.org/en/gallery/item/12187/inkscape-$VERSION.tar.bz2
test -d inkscape-$VERSION || tar xf inkscape-$VERSION.tar.bz2
cd inkscape-$VERSION

# another problem: the CMakeLists of inkscape includes
# if(APPLE)
# SET(CMAKE_MACOSX_RPATH TRUE)
# SET(CMAKE_INSTALL_RPATH "@loader_path/../lib/inkscape")
# else()
# SET(CMAKE_INSTALL_RPATH "$ORIGIN/../lib/inkscape")
# endif()
# Thereby overwriting any RPATH we might set e.g.
# cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DCMAKE_CXX_FLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 -DCMAKE_INSTALL_RPATH=$PREFIX/lib .
# to find ImageMagick library.

patch -p1 <<'EOF'
From: Unpriviledged Software Builder <build@theinternet.molgen.mpg.de>
Date: Fri, 24 Feb 2017 13:02:24 +0100
Subject: [PATCH] Honor CMAKE_INSTALL_RPATH
This enables us to configure CMAKE_INSTALL_RPATH e.g. use
cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DCMAKE_INSTALL_RPATH=$PREFIX/lib .
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e5d8919..e253961 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,7 +27,7 @@ if(APPLE)
SET(CMAKE_MACOSX_RPATH TRUE)
SET(CMAKE_INSTALL_RPATH "@loader_path/../lib/inkscape")
else()
- SET(CMAKE_INSTALL_RPATH "$ORIGIN/../lib/inkscape")
+ SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:$ORIGIN/../lib/inkscape")
endif()
cmake_policy(SET CMP0003 NEW) # don't be prolific with library paths
--
2.4.1
EOF

cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DCMAKE_CXX_FLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 -DCMAKE_INSTALL_RPATH=$PREFIX/lib .
make -j $(nproc)
make install

0 comments on commit a60ed5e

Please sign in to comment.