#!/bin/sh # Generated by Alien's SlackBuild Toolkit: http://slackware.com/~alien/AST # Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015 Eric Hameleers, Eindhoven, Netherlands # Copyright 2015-2017 Thorn Inurcide # Copyright 2015-2017 tde-slackbuilds project on GitHub # All rights reserved. # # Permission to use, copy, modify, and distribute this software for # any purpose with or without fee is hereby granted, provided that # the above copyright notice and this permission notice appear in all # copies. # # THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR # CONTRIBUTORS 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. PRGNAM=inkscape ## store version for later use to set $version for package name - ## too late for log file name, but sort that out when Sl current is released as Sl 15 ## and this script updated for v1.x.x only echo 0.92.4 > $TMPVARS/INKSC_VERS && { ## v 1.1 for Slackware current [[ $(ls /var/log/packages/poppler-*) == *-2[1-9].* ]] && echo 1.1 > $TMPVARS/INKSC_VERS ; } VERSION=$(cat $TMPVARS/INKSC_VERS) BUILD=${BUILD:-1} ARCHIVE_TYPE="tar.bz2" && [[ $VERSION == 1.1 ]] && ARCHIVE_TYPE="tar.xz" SRCURL="https://media.inkscape.org/dl/resources/file/$PRGNAM-$VERSION.$ARCHIVE_TYPE" source ../../get-source.sh ## need this here for CXX_FLAGS for double-conversion getsource_fn ## inkscape v1.1 for Slackware current needs gdl and double-conversion [[ $(cat $TMPVARS/PRE_DOWNLOAD) != yes ]] && { # ### gdl and double-conversion - start [[ $(ls /var/log/packages/poppler-*) == *-2[1-9].* ]] && { ## If they are already installed, go to end [[ -s /usr/local/lib$LIBDIRSUFFIX/libgdl-3.so ]] && \ [[ -s /usr/local/lib$LIBDIRSUFFIX/libdouble-conversion.so ]] || { ## otherwise, if the source archives are in 'src' .. [[ -s $BUILD_TDE_ROOT/src/gdl-3.34.0.tar.xz ]] && \ [[ -s $BUILD_TDE_ROOT/src/double-conversion-3.1.5.tar.gz ]] && { ## .. build, package, and install them ( ## gdl: echo -e "\n building gdl \n" cd /$TMP_BUILD rm -rf *gdl* tar xf $BUILD_TDE_ROOT/src/gdl-3.34.0.tar.xz cd gdl-3.34.0 LOCALES=$(cat po/LINGUAS) rm po/LINGUAS for locale in $I18N do [[ $LOCALES == *$locale* ]] && echo $locale >> po/LINGUAS done [[ $(cat $TMPVARS/BuildOptions) == *no_warn* ]] && C_Flags='CFLAGS=-w' ./configure --libdir=/usr/local/lib$LIBDIRSUFFIX ${C_Flags:-} PKG=$TMP_BUILD/package-gdl make_fn cd $TMP_BUILD/package-gdl makepkg -l y -c n $OUTPUT/gdl-3.34.0-$ARCH-$BUILD.txz installpkg $OUTPUT/gdl-3.34.0-$ARCH-$BUILD.txz ## double-conversion: echo -e "\n building double-conversion \n" cd /$TMP_BUILD rm -rf *double-conversion* tar xf $BUILD_TDE_ROOT/src/double-conversion-3.1.5.tar.gz cd double-conversion-3.1.5/ cd cmake/ # LIBDIRSUFFIX not required - builds to lib$LIBDIRSUFFIX .. cmake ${G_NINJA:-} ../ -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_FLAGS="$SLKCFLAGS" PKG=$TMP_BUILD/package-double-conversion make_fn cd $TMP_BUILD/package-double-conversion makepkg -l y -c n $OUTPUT/double-conversion-3.1.5-$ARCH-$BUILD.txz installpkg $OUTPUT/double-conversion-3.1.5-$ARCH-$BUILD.txz ) echo -e "\n returning to building inkscape \n" } || { ## .. but if the source archives aren't in 'src', display message .. echo -e "\n ############ \n\n\033[39;1m gdl and/or double-conversion are not installed and are required for this build \n \033[34;1m Download: \n wget -O $BUILD_TDE_ROOT/src/gdl-3.34.0.tar.xz https://download.gnome.org/sources/gdl/3.34/gdl-3.34.0.tar.xz \n wget -O $BUILD_TDE_ROOT/src/double-conversion-3.1.5.tar.gz https://github.com/google/double-conversion/archive/v3.1.5.tar.gz \n and re-run this script .. \n\n \033[0m ############ \n" ; exit 1 ; } } } # ### gdl and double-conversion - end } untar_fn ## install to .../lib64 on 64-bit system ## add -DLIB_SUFFIX=$LIBDIRSUFFIX to cmake [[ -d /lib64 ]] && { ## set RPATH sed -i 's|ORIGIN/../lib/inkscape|ORIGIN/../lib${LIB_SUFFIX}/inkscape|' CMakeLists.txt ## set output directory sed -i 's|/lib |/lib${LIB_SUFFIX} |' CMakeLists.txt ## for dynamic lib sed -i 's|lib/inkscape|lib${LIB_SUFFIX}/inkscape|' src/CMakeLists.txt ## for static libs sed -i 's|lib/inkscape|lib${LIB_SUFFIX}/inkscape|' CMakeScripts/HelperMacros.cmake } ## only build for required locales # ### TODO tidy up when Sl 15 released and v0.92.4 no longer built { ## set up a directory to store the required locale files temporarily TEMP_DIR=$TMP_BUILD/tmp-$PRGNAM/loc_tmp mkdir $TEMP_DIR ## .. for po/LINGUAS LOCALES=$(cat po/LINGUAS) rm po/LINGUAS for locale in $I18N do [[ $LOCALES == *$locale* ]] && \ echo $locale >> po/LINGUAS done ## .. for translations locas="" ## for slack-desc for locale in $I18N do mv po/$locale.po $TEMP_DIR && locas="$locas $locale" done rm -rf po/*.po mv $TEMP_DIR/* po/ ## .. for READMEs for locale in $I18N do mv README.$locale.txt $TEMP_DIR done rm README.*.txt mv $TEMP_DIR/* . RM_LIST=$(ls -1 README*) ## .. for keys.*.html for locale in $I18N do mv doc/keys.$locale.html $TEMP_DIR done rm doc/keys.*.html mv $TEMP_DIR/* doc/ KEYS_LIST=$(ls -1 doc/keys.*) ## .. for tutorials for locale in $I18N do mv share/tutorials/*.$locale.* $TEMP_DIR done rm share/tutorials/*.*.* mv $TEMP_DIR/* share/tutorials/ ## .. for templates for locale in $I18N do mv share/templates/*.$locale.* $TEMP_DIR done rm share/templates/*.*.* mv $TEMP_DIR/* share/templates/ } || true [[ $VERSION == 1.1 ]] && { ## only package man pages for required locales for file in man/ink*.*.pod.in do [[ $I18N != *$(echo $file | cut -d"." -f2)* ]] && rm $file done ## and install them to $prefix, as per most other Slackware packages sed -i 's|MANFILE_DEST "${SHARE_INSTALL}|MANFILE_DEST "${CMAKE_INSTALL_PREFIX}|' CMakeScripts/Pod2man.cmake } listdocs_fn chown_fn cd_builddir_fn ## default options have been pulled from CMakeLists.txt ## These next two determine the RPATH for the inkscape library relative to the binary: ## INKSCAPE_INSTALL_LIBDIR is an addition for v1.1 and is relative to CMAKE_INSTALL_PREFIX/ ## LIB_SUFFIX is used for v0.92.4 # cmake ${G_NINJA:-} \ -DCMAKE_C_FLAGS="$SLKCFLAGS" \ -DCMAKE_CXX_FLAGS="$SLKCFLAGS" \ -DCMAKE_C_COMPILER=$COMPILER \ -DCMAKE_CXX_COMPILER=$COMPILER_CXX \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DINKSCAPE_INSTALL_LIBDIR=lib$LIBDIRSUFFIX/inkscape \ -DLIB_SUFFIX=$LIBDIRSUFFIX \ -DBUILD_SHARED_LIBS="ON" \ -DENABLE_BINRELOC="OFF" \ -DENABLE_LCMS="ON" \ -DENABLE_POPPLER="ON" \ -DENABLE_POPPLER_CAIRO="ON" \ -DWITH_ASAN="OFF" \ -DWITH_DBUS="OFF" \ -DWITH_FUZZ="OFF" \ -DWITH_GNOME_VFS="ON" \ -DWITH_GRAPHICS_MAGICK="ON" \ -DWITH_GTK3_EXPERIMENTAL="OFF" \ -DWITH_GTKSPELL="OFF" \ -DWITH_IMAGE_MAGICK="ON" \ -DWITH_INKJAR="ON" \ -DWITH_JEMALLOC="OFF" \ -DWITH_LIBCDR="ON" \ -DWITH_LIBVISIO="ON" \ -DWITH_LIBWPG="ON" \ -DWITH_LPETOOL="OFF" \ -DLPE_ENABLE_TEST_EFFECTS="OFF" \ -DWITH_MANPAGE_COMPRESSION="ON" \ -DWITH_NLS="ON" \ -DWITH_OPENMP="ON" \ -DWITH_PROFILING="OFF" \ -DWITH_SVG2="ON" \ -Wno-dev \ .. make_fn INSTALL_TDE="/usr/local" installdocs_fn [[ $VERSION == 0.92.4 ]] && { ## only package man pages for required locales mkdir -p $PKG/usr/man/man1/ mv $PKG/usr/local/share/man/man1/* $PKG/usr/man/man1/ rm -rf $PKG/usr/local/share/man { for locale in $I18N do [[ -s $PKG/usr/man/man1/inkscape.$locale.1 ]] && mv $PKG/usr/man/man1/inkscape.$locale.1 $TEMP_DIR done rm $PKG/usr/man/man1/inkscape.*.1 mv $TEMP_DIR/* $PKG/usr/man/man1/ rm -rf $TEMP_DIR } || true ## man pages are gzipped by WITH_MANPAGE_COMPRESSION="ON" for 1.1 INSTALL_TDE=/usr mangzip_fn } strip_fn mkdir_install_fn INSTALL_TDE=/usr/local doinst_sh_fn echo " # 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 ':'. |-----handy-ruler------------------------------------------------------| $PRGNAM: Inkscape (Open Source vector graphics editor) $PRGNAM: $PRGNAM: Inkscape is an Open Source vector graphics editor, with capabilities $PRGNAM: similar to Illustrator, Freehand, CorelDraw, or Xara X using the W3C $PRGNAM: standard Scalable Vector Graphics (SVG) file format. $PRGNAM: $PRGNAM: With language support for: $PRGNAM: en$locas $PRGNAM: $PRGNAM: $PRGNAM: $PRGNAM: " > $PKG/install/slack-desc makepkg_fn