Inkscape in centos8 package manager

Issues related to applications and software problems and general support
Post Reply
FoxWise
Posts: 2
Joined: 2020/07/28 17:05:09

Inkscape in centos8 package manager

Post by FoxWise » 2021/01/30 10:53:41

Hi,

Installing inkscape through the dnf installs 0.92 Inkscape version
which is heavily bugged with Centos 8!
Creating text field and pressing enter crushes program.
This bug is fixed for the latest releases.
Could newer version of Inkscape be pushed to the package manager? Or/and pinta?

Sorry if this is not centos8 related, didn't know where to write

cheers

sml
Posts: 305
Joined: 2020/01/17 09:01:44

Re: Inkscape in centos8 package manager

Post by sml » 2021/01/30 12:40:46

FoxWise wrote:
2021/01/30 10:53:41
Or/and pinta?
Isn't pinta a raster graphic editor like GIMP? How can it be replacement for Inkscape?

User avatar
TrevorH
Site Admin
Posts: 33191
Joined: 2009/09/24 10:40:56
Location: Brighton, UK

Re: Inkscape in centos8 package manager

Post by TrevorH » 2021/01/30 13:26:38

Inkscape is in AppStream which means it's suppled a part of RHEL so you'd need to get RH to update it.
The future appears to be RHEL or Debian. I think I'm going Debian.
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke

mathog
Posts: 258
Joined: 2008/07/09 23:52:06

Re: Inkscape in centos8 package manager

Post by mathog » 2021/02/02 19:49:37

I built it from scratch. This is not for the faint of heart. The list of dependencies is very long, and many of these were installed previously with other software so will not be reflected in the notes. (See the final list of linked libraries at the bottom.) You will probably have to "dnf" more packages than are shown here.

My system has Lmod installed and an account "modules" which is used by that and for installing all non-dnf software.

Code: Select all

#be sure boost169 is installed, RPMs are:
boost169-chrono-1.69.0-4.el8.x86_64
boost169-contract-1.69.0-4.el8.x86_64
boost169-regex-1.69.0-4.el8.x86_64
boost169-serialization-1.69.0-4.el8.x86_64
boost169-coroutine-1.69.0-4.el8.x86_64
boost169-graph-1.69.0-4.el8.x86_64
boost169-date-time-1.69.0-4.el8.x86_64
boost169-wave-1.69.0-4.el8.x86_64
boost169-program-options-1.69.0-4.el8.x86_64
boost169-system-1.69.0-4.el8.x86_64
boost169-atomic-1.69.0-4.el8.x86_64
boost169-type_erasure-1.69.0-4.el8.x86_64
boost169-container-1.69.0-4.el8.x86_64
boost169-timer-1.69.0-4.el8.x86_64
boost169-locale-1.69.0-4.el8.x86_64
boost169-iostreams-1.69.0-4.el8.x86_64
boost169-devel-1.69.0-4.el8.x86_64
boost169-thread-1.69.0-4.el8.x86_64
boost169-test-1.69.0-4.el8.x86_64
boost169-random-1.69.0-4.el8.x86_64
boost169-python3-1.69.0-4.el8.x86_64
boost169-log-1.69.0-4.el8.x86_64
boost169-1.69.0-4.el8.x86_64
boost169-fiber-1.69.0-4.el8.x86_64
boost169-numpy3-1.69.0-4.el8.x86_64
boost169-filesystem-1.69.0-4.el8.x86_64
boost169-stacktrace-1.69.0-4.el8.x86_64
boost169-python2-1.69.0-4.el8.x86_64
boost169-context-1.69.0-4.el8.x86_64
boost169-math-1.69.0-4.el8.x86_64
boost169-numpy2-1.69.0-4.el8.x86_64

Code: Select all

#Here are my notes:
  pversion=1.0_2020-05-01
  package=inkscape
  TOPDIR=/usr/common/modules/el8/x86_64/software/${package}/${pversion}-CentOS-vanilla
  THELUA=/usr/common/modules/el8/x86_64/modules/all/${package}/${pversion}-CentOS-vanilla.lua
  #as modules on 2020/05/22 on CentOS 8
  #download source using browser from inkscape.org
  #and unpack in /usr/common/src/inkscape-1.0*
  #there are MANY dependencies which need to go in first:
  ##############################
  #as root
  cd /tmp
  dnf install libsoup-devel
  dnf install double-conversion-devel
  dnf install gc-devel
  dnf install poppler-devel
  dnf install libwpg-devel
  dnf install libvisio-devel
  dnf install libwpd-devel
  dnf install libcdr
  dnf install boost-devel
  dnf install help2man
  dnf install cppunit-devel
  wget http://vault.centos.org/8.1.1911/AppStream/Source/SPackages/libcdr-0.1.4-4.el8.src.rpm
  rpmbuild --rebuild libcdr-0.1.4-4.el8.src.rpm
  dnf install ~/rpmbuild/RPMS/x86_64/libcdr-devel-0.1.4-4.el8.x86_64.rpm 
  mv /root/rpmbuild/RPMS/x86_64/libcdr-devel-0.1.4-4.el8.x86_64.rpm \
     /root/rebuilt_rpms/x86_64
  rm -rf /root/rpmbuild
  dnfinstall potrace
  #needs potrace-devel, there is no such RPM
  wget http://vault.centos.org/8.1.1911/AppStream/Source/SPackages/potrace-1.15-2.el8.src.rpm
  rpmbuild -rp potrace-1.15-2.el8.src.rpm
  nedit /root/rpmbuild/SPECS/potrace.spec
  #add: export CC=/usr/bin/gcc
  #right before %configure
  rpmbuild -ba /root/rpmbuild/SPECS/potrace.spec
  cd /root/rpmbuild/RPMS/x86_64
  dnf install /root/rpmbuild/RPMS/x86_64/potrace-devel-1.15-2.el8.x86_64.rpm
  mv /root/rpmbuild/RPMS/x86_64/potrace-devel-1.15-2.el8.x86_64.rpm \
     /root/rebuilt_rpms/x86_64
  rm -rf /root/rpmbuild    
  dnf install gtkmm30-devel
  wget https://download.fedoraproject.org/pub/fedora/linux/releases/31/Everything/source/tree/Packages/l/libgdl-3.34.0-1.fc31.src.rpm
  dnf -y install gobject-introspection-devel
  dnf -y install gtk-doc
  rpmbuild --rebuild libgdl-3.34.0-1.fc31.src.rpm
  dnf install \
      /root/rpmbuild/RPMS/x86_64/libgdl-3.34.0-1.el8.x86_64.rpm \
      /root/rpmbuild/RPMS/x86_64/libgdl-devel-3.34.0-1.el8.x86_64.rpm
  mv /root/rpmbuild/RPMS/x86_64/libgdl-3.34.0-1.el8.x86_64.rpm \
     /root/rpmbuild/RPMS/x86_64/libgdl-devel-3.34.0-1.el8.x86_64.rpm \
     /root/rebuilt_rpms/x86_64
  rm -rf /root/rpmbuild    
  dnf -y install gtkspell3-devel
  dnf -y install aspell-devel
  dnf -y install libxslt-devel
  dnf -y install gtest-devel
  dnf -y install ccache #REMOVE THIS AFTERWARDS!
  dnf -y install poppler-glib-devel
  dnf -y install ImageMagick-c++-devel
  #GraphicsMagick not used when preceding is present.
  /bin/rm *tar.gz
  ##############################
  #as modules
  cd /usr/common/src/inkscape*
  mkdir build
  cd build
  cmake \
    -DCMAKE_INSTALL_PREFIX=$TOPDIR \
    -DCMAKE_C_COMPILER_LAUNCHER=ccache \
    -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
    -DBOOST_INCLUDEDIR=/usr/include/boost169 \
    -DBOOST_LIBRARYDIR=/usr/lib64/boost169 \
    -DBoost_NO_SYSTEM_PATHS=ON \
    .. 2>&1 | tee cmake_2020_05_27.log
  make -j6     2>&1 | tee build_2020_05_27.log
  make install 2>&1 | tee install_2020_05_27.log
  make test    2>&1 | tee test_2020_05_27.log
  #first 17 tests (Not Run) and 35,49 (both emf related, Skipped
  # 35 - cli_export-type_emf_check_output (Skipped)
  # 49 - cli_export-area-page_emf_check_output (Skipped)
  module_generate_from_directory.sh \
     $package \
     $pversion \
     CentOS/vanilla \
     $TOPDIR \
     "Professional quality vector graphics software." \
     "https://www.inkscape.org/"
  #should remove everything except log files as it takes up 673MB.
  #as root
  dnf remove ccache
This is the module_generate_from_directory.sh package:

Code: Select all

#!/bin/bash
#
#  generate a module file (for Lmod) based on the structure
#    of a directory.  
#  Module file will be written to the first directory in 
#    MODULEPATH, under the "all" subdirectory.
#
# Parameters:
# $1  root name (like "Jellyfish")
# $2  version number (like 2.3.0)
# $3  build environment (If "" uses "CentOS/vanilla", which is just
#       regular CentOS, for the current version of CentOS (like 7).
#       If some other build environment is needed specify it here.)
# $4  path to install directory (which will be analyzed)
#
#     help() message is constructed from:
# $5  description of software (single line)
# $6  homepage for software (single line)
#     Then see if there is a file $MOREHELP.  If
#     present append it to the help.
#
# $7  (optional) space separated list of prerequisites.
#
# example (as "modules" user) :
#    module_generate_from-directory.sh \
#       Jellyfish \
#       2.3.0 \
#       CentOS/vanilla \
#       /usr/common/modules/software/Jellyfish/2.3.0-CentOS-vanilla \
#       "Jellyfish is a tool for fast, memory-efficient counting of k-mers in DNA." \
#       "http://www.genome.umd.edu/jellyfish.html" \
#       "module1 module2"
#
# v1.0.6 2020/04/15 Search MODULEPATH sequentially for "CentOS/vanilla.lua"
#                   instead of expecting it in the first directory.  Needed 
#                   because SCL on CentOS 8 prepends its own module directory
#                   a couple of times.
# v1.0.5 2020/02/04 Add detection of PYTHONPATH and addition to lua file.
# v1.0.4 2019/11/04 Add ROOT_<uppercase(root)> to defined symbols.
# v1.0.3 2019/10/28 Add scripts subdirectory to those added to PATH
# v1.0.2 2019/08/23 Add MOREHELP to end of help() message if present.  mathog
# v1.0.1 2019/08/23 Allow default for build, change messages,
#       prereqs (optional).  mathog
# v1.0.0 2019/08/21 First coding. David Mathog mathog join(reverse(t,a)) join(reverse((edu,caltech))
######################################################

######
#functions
######

# given colon delimited path $1 find first directory that
# contains file $2.  If none, return an empty string.
filewhere() {
  CPATH="$1"
  THEFILE="$2"
  for i in `echo $CPATH | tr ':' '\n'`
  do
    if [[ -e "$i/$THEFILE" ]]
    then
      echo $i
      break
    fi
  done
  echo ""
}


AROOT=$1
AVERS=$2
ABUILD=$3
AIDIR=$4
ADESC=$5
AHOME=$6
APREQ=$7
DEFBUILD="CentOS/vanilla"
if [ -z "$AROOT" ]
then
   echo "Error: root name not defined (argument 1)"
   exit
fi
if [ -z "$AVERS" ]
then
   echo "Error: version string not defined (argument 2)"
   exit
fi
if [ -z "$ABUILD" ]
then
   ABUILD=$DEFBUILD
   echo "Info:  using default build: $ABUILD"
fi
 
#verify that build type is already defined
BUILD_MAJOR=`echo $ABUILD | cut -f 1 -d '/'`
BUILD_MINOR=`echo $ABUILD | cut -f 2 -d '/'`
if [ -z "$BUILD_MAJOR" ]
then
   echo "Error: Build descriptor >$ABUILD< must have format Major/Minor"
   exit
fi

if [ -z "$AIDIR" ]
then
   echo "Error: install directory not defined (argument 4)"
   exit
fi
if [ -z "$ADESC" ]
then
   echo "Error: description of package not defined (argument 5)"
   exit
else
   spaces=`echo $ADESC | tr -d -c ' \t' | wc --chars`
   if [ $spaces -eq 0 ]
   then
      echo "Info:  Description lacks white space.  Directory (argument 4) is defined?"
   fi
fi

if [ -z "$AHOME" ]
then
   echo "Error: home URL of package not defined (argument 6)"
   exit
fi
if [ -z "$MODULEPATH" ]
then
   echo "Error: Lmod is not configured, MODULEPATH is empty"
   exit
else
   WRITEMOD=$(filewhere "$MODULEPATH" "$BUILD_MAJOR/$BUILD_MINOR.lua")
   if [ -z "$WRITEMOD" ]
   then
      echo "Error: Build type $ABUILD not found in any MODULEPATH directory.  Input typo or new build type must be constructed."
      exit
   fi
   OUTMODDIR=$WRITEMOD/$AROOT
   OUTMODFILE=`echo $AVERS-$ABUILD.lua | tr '/' '-' `
   OUTMODFULL=$OUTMODDIR/$OUTMODFILE
fi
mkdir -p $OUTMODDIR
cat >$OUTMODFULL <<EOD
help([==[

Description
===========
$ADESC


More information
================
 - Homepage: $AHOME
EOD

#If a file $MOREHELP exists append it to help().
#Most often nothing will happen here.
if [ -n "$MOREHELP" ]
then
   if [ -f $MOREHELP ]
   then
      if [ -s $MOREHELP ]
      then
         echo "found MOREHELP ($MOREHELP)"
         cat $MOREHELP >>$OUTMODFULL
      else
         echo "Warning: file MOREHELP ($MOREHELP) is EMPTY"
      fi 
   else
         echo "Warning: file MOREHELP ($MOREHELP) is not found"
   fi
fi

cat >>$OUTMODFULL <<EOD
]==])

whatis([==[Description: $ADESC]==])
whatis([==[Homepage: $AHOME]==])
whatis([==[URL: $AHOME]==])

local root = "$AIDIR"

conflict("$AROOT")

if not ( isloaded("$ABUILD") ) then
    load("$ABUILD")
end
EOD

if [ -n "$APREQ" ]
then
   for preq in $APREQ; do
cat >>$OUTMODFULL <<EOD

if not ( isloaded("$preq") ) then
    load("$preq")
end
EOD
   done
fi
echo "" >>$OUTMODFULL

HASINCLUDE=0 #set LIBRARY_PATH if LD_LIBRARY_PATH and CPATH both set
HASFOUND=""
HASPPATH="PYTHONPATH=none"

#CPATH modifications
test=`ls -1 $AIDIR/include 2>/dev/null `
if [ -n "$test" ]
then
   HASFOUND="$HASFOUND include"
   echo "prepend_path(\"CPATH\", pathJoin(root, \"include\"))" >> $OUTMODFULL
   HASINCLUDE=1
fi

#LD_LIBRARY_PATH modifications
test=`ls -1 $AIDIR/lib 2>/dev/null | grep -v pkgconfig `
if [ -n "$test" ]
then
   HASFOUND="$HASFOUND lib"
   echo "prepend_path(\"LD_LIBRARY_PATH\", pathJoin(root, \"lib\"))" >> $OUTMODFULL
   if [ $HASINCLUDE ]
   then
      echo "prepend_path(\"LIBRARY_PATH\", pathJoin(root, \"lib\"))" >> $OUTMODFULL
   fi
fi

test=`ls -1 $AIDIR/lib64 2>/dev/null | grep -v pkgconfig `
if [ -n "$test" ]
then
   HASFOUND="$HASFOUND lib64"
   echo "prepend_path(\"LD_LIBRARY_PATH\", pathJoin(root, \"lib64\"))" >> $OUTMODFULL
   if [ $HASINCLUDE ]
   then
      echo "prepend_path(\"LIBRARY_PATH\", pathJoin(root, \"lib64\"))" >> $OUTMODFULL
   fi
fi

#MANPATH modifications
test=`ls -1 $AIDIR/share/man 2>/dev/null `
if [ -n "$test" ]
then
   HASFOUND="$HASFOUND share/man"
   echo "prepend_path(\"MANPATH\", pathJoin(root, \"share/man\"))" >> $OUTMODFULL
fi

test=`ls -1 $AIDIR/man 2>/dev/null `
if [ -n "$test" ]
then
   HASFOUND="$HASFOUND man"
   echo "prepend_path(\"MANPATH\", pathJoin(root, \"man\"))" >> $OUTMODFULL
fi

#PATH modifications
test=`ls -1 $AIDIR/bin 2>/dev/null `
if [ -n "$test" ]
then
   HASFOUND="$HASFOUND bin"
  echo "prepend_path(\"PATH\", pathJoin(root, \"bin\"))" >> $OUTMODFULL
fi

test=`ls -1 $AIDIR/scripts 2>/dev/null `
if [ -n "$test" ]
then
   HASFOUND="$HASFOUND scripts"
  echo "prepend_path(\"PATH\", pathJoin(root, \"scripts\"))" >> $OUTMODFULL
fi

#PKG_CONFIG_PATH modifications
test=`ls -1 $AIDIR/lib/pkgconfig 2>/dev/null `
if [ -n "$test" ]
then
   HASFOUND="$HASFOUND lib/pkgconfig"
   echo "prepend_path(\"PKG_CONFIG_PATH\", pathJoin(root, \"lib/pkgconfig\"))" >> $OUTMODFULL
fi

test=`ls -1 $AIDIR/lib64/pkgconfig 2>/dev/null `
if [ -n "$test" ]
then
   HASFOUND="$HASFOUND lib64/pkgconfig"
   echo "prepend_path(\"PKG_CONFIG_PATH\", pathJoin(root, \"lib64/pkgconfig\"))" >> $OUTMODFULL
fi

AUPPERROOT=`echo $AROOT | tr 'a-z\-' 'A-Z_'`
echo "setenv(\"ROOT_${AUPPERROOT}\", root)" >> $OUTMODFULL

test=`echo $PYTHONPATH`
if [ -d "$PYTHONPATH" ]
then
   HASPPATH="PYTHONPATH=$PYTHONPATH"
   cat >>$OUTMODFULL <<EOD
if ("PYTHONPATH") then
   prepend_path("PYTHONPATH", "$PYTHONPATH")
else
   setenv("PYTHONPATH","$PYTHONPATH")
end
EOD
fi

NOW=`date`
cat >>$OUTMODFULL <<EOD

-- example setenv, uncomment and modify as needed:
--    setenv("VAR_NAME",VAR_VALUE)

-- constructed by module_generate_from_directory.sh on $NOW

EOD
echo "found subdirs: $HASFOUND"
echo "$HASPPATH "
echo "Wrote: $OUTMODFULL"
echo "Edit this file if any environmental variables must be defined."

Code: Select all

#here are the libraries linked to the final binary:
	linux-vdso.so.1 (0x00007ffd473e5000)
	libinkscape_base.so => /usr/common/modules/el8/x86_64/software/inkscape/1.0_2020-05-01-CentOS-vanilla/bin/../lib/inkscape/libinkscape_base.so (0x00007ff025125000)
	libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007ff024e7f000)
	libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x00007ff024c70000)
	libcairo.so.2 => /lib64/libcairo.so.2 (0x00007ff02494e000)
	libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x00007ff024737000)
	libpango-1.0.so.0 => /lib64/libpango-1.0.so.0 (0x00007ff0244f0000)
	libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007ff0242ab000)
	libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007ff023fef000)
	libgsl.so.23 => /lib64/libgsl.so.23 (0x00007ff023b5e000)
	libgslcblas.so.0 => /lib64/libgslcblas.so.0 (0x00007ff02391f000)
	libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007ff02371b000)
	libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007ff023402000)
	libsoup-2.4.so.1 => /lib64/libsoup-2.4.so.1 (0x00007ff023106000)
	libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007ff022d5d000)
	libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007ff022b0a000)
	liblcms2.so.2 => /lib64/liblcms2.so.2 (0x00007ff0228ad000)
	libgc.so.1 => /lib64/libgc.so.1 (0x00007ff022550000)
	libpoppler.so.78 => /lib64/libpoppler.so.78 (0x00007ff02206a000)
	libpoppler-glib.so.8 => /lib64/libpoppler-glib.so.8 (0x00007ff021e04000)
	libwpg-0.3.so.3 => /lib64/libwpg-0.3.so.3 (0x00007ff021be5000)
	librevenge-0.0.so.0 => /lib64/librevenge-0.0.so.0 (0x00007ff0219b7000)
	librevenge-stream-0.0.so.0 => /lib64/librevenge-stream-0.0.so.0 (0x00007ff021794000)
	libvisio-0.1.so.1 => /lib64/libvisio-0.1.so.1 (0x00007ff0214ed000)
	libcdr-0.1.so.1 => /lib64/libcdr-0.1.so.1 (0x00007ff02124a000)
	libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007ff020fe1000)
	libpng16.so.16 => /lib64/libpng16.so.16 (0x00007ff020dac000)
	libpotrace.so.0 => /lib64/libpotrace.so.0 (0x00007ff020ba4000)
	libgtkmm-3.0.so.1 => /lib64/libgtkmm-3.0.so.1 (0x00007ff0203f2000)
	libatkmm-1.6.so.1 => /lib64/libatkmm-1.6.so.1 (0x00007ff02019f000)
	libgdkmm-3.0.so.1 => /lib64/libgdkmm-3.0.so.1 (0x00007ff01ff44000)
	libgiomm-2.4.so.1 => /lib64/libgiomm-2.4.so.1 (0x00007ff01fb66000)
	libpangomm-1.4.so.1 => /lib64/libpangomm-1.4.so.1 (0x00007ff01f934000)
	libglibmm-2.4.so.1 => /lib64/libglibmm-2.4.so.1 (0x00007ff01f6a5000)
	libcairomm-1.0.so.1 => /lib64/libcairomm-1.0.so.1 (0x00007ff01f47b000)
	libsigc-2.0.so.0 => /lib64/libsigc-2.0.so.0 (0x00007ff01f274000)
	libgdl-3.so.5 => /lib64/libgdl-3.so.5 (0x00007ff01f040000)
	libgtk-3.so.0 => /lib64/libgtk-3.so.0 (0x00007ff01e720000)
	libgdk-3.so.0 => /lib64/libgdk-3.so.0 (0x00007ff01e425000)
	libatk-1.0.so.0 => /lib64/libatk-1.0.so.0 (0x00007ff01e1fd000)
	libcairo-gobject.so.2 => /lib64/libcairo-gobject.so.2 (0x00007ff01dff4000)
	libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x00007ff01ddcb000)
	libgtkspell3-3.so.0 => /lib64/libgtkspell3-3.so.0 (0x00007ff01dbc0000)
	libenchant.so.1 => /lib64/libenchant.so.1 (0x00007ff01d9b4000)
	libaspell.so.15 => /lib64/libaspell.so.15 (0x00007ff01d704000)
	libxslt.so.1 => /lib64/libxslt.so.1 (0x00007ff01d4c3000)
	libxml2.so.2 => /lib64/libxml2.so.2 (0x00007ff01d15b000)
	libz.so.1 => /lib64/libz.so.1 (0x00007ff01cf44000)
	libMagick++-6.Q16.so.8 => /lib64/libMagick++-6.Q16.so.8 (0x00007ff01ccb0000)
	libMagickWand-6.Q16.so.6 => /lib64/libMagickWand-6.Q16.so.6 (0x00007ff01c984000)
	libMagickCore-6.Q16.so.6 => /lib64/libMagickCore-6.Q16.so.6 (0x00007ff01c4bb000)
	libSM.so.6 => /lib64/libSM.so.6 (0x00007ff01c2b2000)
	libICE.so.6 => /lib64/libICE.so.6 (0x00007ff01c095000)
	libX11.so.6 => /lib64/libX11.so.6 (0x00007ff01bd51000)
	libXext.so.6 => /lib64/libXext.so.6 (0x00007ff01bb3e000)
	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007ff01b7a9000)
	libm.so.6 => /lib64/libm.so.6 (0x00007ff01b427000)
	libc.so.6 => /lib64/libc.so.6 (0x00007ff01b065000)
	libgomp.so.1 => /lib64/libgomp.so.1 (0x00007ff01ae2d000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ff01ac15000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff01a9f5000)
	libdouble-conversion.so.3 => /lib64/libdouble-conversion.so.3 (0x00007ff01a7e0000)
	libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007ff01a5b4000)
	libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007ff01a30d000)
	libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007ff01a109000)
	libxcb.so.1 => /lib64/libxcb.so.1 (0x00007ff019ee0000)
	libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007ff019cd2000)
	libXrender.so.1 => /lib64/libXrender.so.1 (0x00007ff019ac7000)
	librt.so.1 => /lib64/librt.so.1 (0x00007ff0198be000)
	libthai.so.0 => /lib64/libthai.so.0 (0x00007ff0196b4000)
	libfribidi.so.0 => /lib64/libfribidi.so.0 (0x00007ff019498000)
	libexpat.so.1 => /lib64/libexpat.so.1 (0x00007ff01925d000)
	libuuid.so.1 => /lib64/libuuid.so.1 (0x00007ff019055000)
	libbz2.so.1 => /lib64/libbz2.so.1 (0x00007ff018e44000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007ff018c40000)
	libgnutls.so.30 => /lib64/libgnutls.so.30 (0x00007ff018884000)
	libpcre.so.1 => /lib64/libpcre.so.1 (0x00007ff018613000)
	libsqlite3.so.0 => /lib64/libsqlite3.so.0 (0x00007ff018300000)
	libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007ff0180b0000)
	libffi.so.6 => /lib64/libffi.so.6 (0x00007ff017ea7000)
	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007ff017c7c000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x00007ff017a65000)
	libmount.so.1 => /lib64/libmount.so.1 (0x00007ff01780b000)
	libatomic_ops.so.1 => /lib64/libatomic_ops.so.1 (0x00007ff017608000)
	/lib64/ld-linux-x86-64.so.2 (0x00007ff026bc2000)
	libsmime3.so => /lib64/libsmime3.so (0x00007ff0173df000)
	libnss3.so => /lib64/libnss3.so (0x00007ff0170a9000)
	libnspr4.so => /lib64/libnspr4.so (0x00007ff016e68000)
	libopenjp2.so.7 => /lib64/libopenjp2.so.7 (0x00007ff016c16000)
	libtiff.so.5 => /lib64/libtiff.so.5 (0x00007ff01699d000)
	libwpd-0.10.so.10 => /lib64/libwpd-0.10.so.10 (0x00007ff016707000)
	libicuuc.so.60 => /lib64/libicuuc.so.60 (0x00007ff016345000)
	libicudata.so.60 => /lib64/libicudata.so.60 (0x00007ff01479b000)
	libicui18n.so.60 => /lib64/libicui18n.so.60 (0x00007ff0142da000)
	libXi.so.6 => /lib64/libXi.so.6 (0x00007ff0140c9000)
	libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007ff013ec3000)
	libatk-bridge-2.0.so.0 => /lib64/libatk-bridge-2.0.so.0 (0x00007ff013c92000)
	libwayland-client.so.0 => /lib64/libwayland-client.so.0 (0x00007ff013a82000)
	libepoxy.so.0 => /lib64/libepoxy.so.0 (0x00007ff01374f000)
	libXinerama.so.1 => /lib64/libXinerama.so.1 (0x00007ff01354c000)
	libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007ff013341000)
	libXcursor.so.1 => /lib64/libXcursor.so.1 (0x00007ff013136000)
	libXcomposite.so.1 => /lib64/libXcomposite.so.1 (0x00007ff012f33000)
	libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007ff012d30000)
	libxkbcommon.so.0 => /lib64/libxkbcommon.so.0 (0x00007ff012af0000)
	libwayland-cursor.so.0 => /lib64/libwayland-cursor.so.0 (0x00007ff0128e8000)
	libwayland-egl.so.1 => /lib64/libwayland-egl.so.1 (0x00007ff0126e6000)
	liblzma.so.5 => /lib64/liblzma.so.5 (0x00007ff0124bf000)
	libraqm.so.0 => /lib64/libraqm.so.0 (0x00007ff0122ba000)
	libfftw3.so.3 => /lib64/libfftw3.so.3 (0x00007ff011eb4000)
	libXt.so.6 => /lib64/libXt.so.6 (0x00007ff011c49000)
	libltdl.so.7 => /lib64/libltdl.so.7 (0x00007ff011a3f000)
	libXau.so.6 => /lib64/libXau.so.6 (0x00007ff01183b000)
	libdatrie.so.1 => /lib64/libdatrie.so.1 (0x00007ff011633000)
	libp11-kit.so.0 => /lib64/libp11-kit.so.0 (0x00007ff011300000)
	libidn2.so.0 => /lib64/libidn2.so.0 (0x00007ff0110e2000)
	libunistring.so.2 => /lib64/libunistring.so.2 (0x00007ff010d61000)
	libtasn1.so.6 => /lib64/libtasn1.so.6 (0x00007ff010b4e000)
	libnettle.so.6 => /lib64/libnettle.so.6 (0x00007ff010915000)
	libhogweed.so.4 => /lib64/libhogweed.so.4 (0x00007ff0106e5000)
	libgmp.so.10 => /lib64/libgmp.so.10 (0x00007ff01044d000)
	libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007ff01015d000)
	libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007ff00ff41000)
	libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007ff00fd3d000)
	libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007ff00fb2c000)
	libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007ff00f649000)
	libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007ff00f445000)
	libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007ff00f1c1000)
	libblkid.so.1 => /lib64/libblkid.so.1 (0x00007ff00ef6f000)
	libnssutil3.so => /lib64/libnssutil3.so (0x00007ff00ed3e000)
	libplc4.so => /lib64/libplc4.so (0x00007ff00eb39000)
	libplds4.so => /lib64/libplds4.so (0x00007ff00e935000)
	libjbig.so.2.1 => /lib64/libjbig.so.2.1 (0x00007ff00e729000)
	libatspi.so.0 => /lib64/libatspi.so.0 (0x00007ff00e4f6000)
	libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007ff00e2a2000)
	libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007ff00df5e000)
	liblz4.so.1 => /lib64/liblz4.so.1 (0x00007ff00dd47000)
	libcap.so.2 => /lib64/libcap.so.2 (0x00007ff00db41000)
	libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x00007ff00d825000)
	libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007ff00d604000)

mathog
Posts: 258
Joined: 2008/07/09 23:52:06

Re: Inkscape in centos8 package manager

Post by mathog » 2021/07/04 22:42:27

Something peculiar in the linkage. After upgrading from 8.3 to 8.4 inkscape stopped working because it was linked to libpoppler.so.78 and that had been replaced by a more recent version. Making libpoppler.so.78 a link to the current version let it run, but I don't like to add links like that to system libraries, so removed it. Tried to install the most recent source (1.1 I think) but that wouldn't fly because CentOS 8.4 versions of some libraries were too old. So in the end I just rebuilt the existing inkscape version as above, which completed without issue. I'm not on that machine at the moment but I suspect that either CentOS does not have a libpoppler.so which is linked to the current version or that the cmake intentionally links to a specific version of libpoppler.

Mike_Rochefort
Posts: 215
Joined: 2016/03/16 02:34:19

Re: Inkscape in centos8 package manager

Post by Mike_Rochefort » 2021/07/05 03:42:56

Have you considered installing the Flatpak version of Inkscape?

https://flathub.org/apps/details/org.inkscape.Inkscape

This way you can avoid the complexity of source building and dealing with link breakage.

Cheers,
Mike
Solution Architect @RedHat | RHCE
Former SysAdmin @BlueSkyStudios and @Pixar
Feature animation and VFX enthusiast
--
Report CentOS Stream 8 bugs: https://da.gd/c8s-bugs
Report CentOS Stream 9 bugs: https://da.gd/c9s-bugs

mathog
Posts: 258
Joined: 2008/07/09 23:52:06

Re: Inkscape in centos8 package manager

Post by mathog » 2021/07/05 20:34:49

Isn't flatpak yet another instance of "make software portable by running another version of linux on top of the system OS", more or less like docker? I'm not a fan of that approach. In my experience it often made the software (much) less portable, in terms of actually being able to run "native" on different targets, because developers stopped fixing portability issues (ie, they were making distro specific coding assumptions) and just directed end users to the prebuilt image for their preferred "portable run environment". Huge amount of bloat in that approach too, with each image replicating big chunks of common operating system files.

Mike_Rochefort
Posts: 215
Joined: 2016/03/16 02:34:19

Re: Inkscape in centos8 package manager

Post by Mike_Rochefort » 2021/07/06 03:13:05

Huge amount of bloat in that approach too, with each image replicating big chunks of common operating system files.
Flatpak operates in a shared layer methodology. For example, when installing Inkscape from:

Code: Select all

# Flathub Registry
$ flatpak install flathub org.inkscape.Inkscape
Looking for matches…

org.inkscape.Inkscape permissions:
    ipc      network      fallback-x11      wayland      x11     file access [1]     dbus access [2]

    [1] host, xdg-run/gvfs, xdg-run/gvfsd
    [2] org.gtk.vfs.*


        ID                                             Branch            Op           Remote            Download
 1.     org.freedesktop.Platform.GL.default            20.08             i            flathub           < 106.4 MB
 2.     org.freedesktop.Platform.openh264              2.0               i            flathub             < 1.5 MB
 3.     org.gnome.Platform.Locale                      40                i            flathub           < 333.7 MB (partial)
 4.     org.gnome.Platform                             40                i            flathub           < 363.7 MB
 5.     org.inkscape.Inkscape.Locale                   stable            i            flathub            < 13.8 MB (partial)
 6.     org.inkscape.Inkscape                          stable            i            flathub            < 81.2 MB
 

Code: Select all

# Fedora Registry
$ flatpak install fedora org.inkscape.Inkscape
Looking for matches…

org.inkscape.Inkscape permissions:
    ipc                   fallback-x11          wayland       x11
    file access [1]       dbus access [2]

    [1] host, xdg-run/gvfs, xdg-run/gvfsd
    [2] org.gtk.vfs, org.gtk.vfs.*


        ID                            Branch    Op    Remote   Download
 1.     org.fedoraproject.Platform    f34       i     fedora   < 667.7 MB
 2.     org.inkscape.Inkscape         stable    i     fedora    < 84.6 MB
Other flatpak'd applications (from Flathub) may also need org.gnome.Platform 40, in which case there's no extra download as it's already on the system. If a different version of org.gnome.Platform is required, it'll pull that layer down separately and will be used by the applications that need it. So there will be an initial "bloat" when installing a layer for the first time, but since it's reused you don't incur that cost repeatedly. While it's not a truly native solution, it works really well as a sandbox environment (which is really easy to customize with Flatseal) for situations where the actual operating system you're using is lagging behind.

If I understand it correctly, the Fedora images are actually RPMs natively built against Fedora (inside a modularity stream) just bundled in Flatpak format in comparison to the multi-platform(layer)/freedesktop approach of Flathub images. Fedora has a more monolithic approach in having the large base platform that is shared, rather than splintered off.

Cheers,
Mike
Solution Architect @RedHat | RHCE
Former SysAdmin @BlueSkyStudios and @Pixar
Feature animation and VFX enthusiast
--
Report CentOS Stream 8 bugs: https://da.gd/c8s-bugs
Report CentOS Stream 9 bugs: https://da.gd/c9s-bugs

gerry666uk
Posts: 98
Joined: 2020/02/10 19:06:06

Re: Inkscape in centos8 package manager

Post by gerry666uk » 2021/07/24 20:36:06

I've had Inkscape installed since CentOS 8.0.
I'm now on CentOS 8.4.
As far as I can tell, it's still working. (libpoppler?)
I'm interested to know how to reproduce the "text field" crash issue?

Post Reply