Inkscape.org
Beyond the Basics Anybody build from source on RH EL 8 (or related)?
  1. #1
    David Mathog David Mathog @mathog

    Anybody here build Inkscape on RH EL8 or a closely related distro?  If so, can you please share the steps you used?  (RH EL9 would be OK too, although  I would really rather not upgrade at this time.)

    Lately I have been using Alma Linux, now at 8.6, which is one of the many RH EL 8 derivative distros.  There is a quite old version of inkscape available as an RPM.  I have been using 1.0 downloaded as source on 2020-05-01 for a while.  Unfortunately every Alma update breaks something, because the build hard links to specific library versions, and when those increment, boom.  I tried in the beginning to use 1.1 but it wanted many more libraries than I had already added.  The upgrade to 8.6 is even stranger, as (the same) cmake now no longer likes poppler for some reason, complaining about the lack of an include directory.  But the poppler.src.rpm won't build either, doing this:

    error: Failed build dependencies:
        pkgconfig(Qt5Core) is needed by poppler-20.11.0-4.el8.x86_64
        pkgconfig(Qt5Gui) is needed by poppler-20.11.0-4.el8.x86_64
        pkgconfig(Qt5Test) is needed by poppler-20.11.0-4.el8.x86_64
        pkgconfig(Qt5Widgets) is needed by poppler-20.11.0-4.el8.x86_64
        pkgconfig(Qt5Xml) is needed by poppler-20.11.0-4.el8.x86_64
        pkgconfig(libopenjp2) is needed by poppler-20.11.0-4.el8.x86_64
        pkgconfig(nss) is needed by poppler-20.11.0-4.el8.x86_64
        pkgconfig(poppler-data) is needed by poppler-20.11.0-4.el8.x86_64

    poppler-data is installed, but there is no pkgconfig for it. 

    Anyway, I would like to use a current release, I think now 1.2.x, but don't want to install the statically linked binary from the Inkscape, I want to be able to rebuild from source if needed.  However building in this environment is really a PITA, and if somebody else has figured out how to do this, I am more than happy to follow their lead.


    Thanks.

  2. #2
    Stephen Chivers Stephen Chivers @Stephen.Chivers

    I have been building inkscape for CentOS 8 Stream for most of this year. The builds are done in Virtual Machines so that my primary computers have a stable configuration (until there is a need to upgrade to account for the changed inkscape).

    You would definitely have less trouble building with CentOS 9, as the versions of GTK, GTKMM and Pango match those required by Inkscape for versions 1.2.2 and onwards.

    When I first moved to CentOS 8 it was noticeable that some development packages were not available but the runtime ones were. I don't have a record of which packages those were.

    To work around the lack of development packages, I simply rebuilt the packages from the Source RPM and installed them.

    The development package for poppler is in the CentOS 8 powertools repository.

    I build RPMS as a matter of policy and only build software directly rarely.

    For builds later in the year, such as Inkscape 1.2.2, a number of patches were required, so that the CentOS 8 versions of gtk, gtkmm and pango could be used.

    One thing that CentOS 8 lacked is python3-scour although that seems to have turned up recently. I built my own package for this earlier in the year.

    Lately, I have upgraded gtk3 and gtkmm30 to version 3.24 by building them. I did "customize" them to sort and I used the Fedora 31 SRC packages from the Fedora Koji as a starting point.

    This reduces the number of patches to one, a patch that "fixes" two font files (classes) in the inkscape source library src/libnrtype for compilation with the CentOS 8 version of pango. The patch has very few lines (a good thing).

    The upgrade to gtk3-3.24 4and gtk30mm-3.24 is pretty painless. No other packages have to be rebuilt and I checked most of the dependencies and they all appear to be unaffected.

    I did a build of master from the inkscape git repo master branch (with submodules) this morning in a fresh'ish VM and all build dependencies came  (I think) from standard CentOS 8 repositories (except gtk3-3.24 and gtkmm30-3.24). Again the only patch is the one for pango. I did modify the RPM spec file to use a local version of boost 1.76 as inkscape appears to depend on that. Also, the internal version of lib2geom was used.

    The boost176 package is locally compiled and was "derived" from the boost169 package in CentOS8.

    Todays build runs and there seems to be no problems with text. I haven't looked extensively for things like memory leaks associated with the fonts.

    Stephen Chivers.

    PS. I am a semi retired Systems Engineer and some of this is way too much like work.

    Lib2geom is a bit of problem as it must be compiled with the same version of boost as inkscape.

Inkscape Inkscape.org Inkscape Forum Beyond the Basics Anybody build from source on RH EL 8 (or related)?