[SOLVED] Inkscape: I'm missing something, but what?
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Distribution: Slackware64 15.0 (started with 13.37). Testing -current in a spare partition.
Posts: 928
Rep:
@business_kid If you don't use slackpkg, take a look at the .dep file in Alienbob repository.
If a package has dependencies they are listed (note that a dependency can have it's own .dep file ) https://slackware.nl/people/alien/sl..._64-1alien.dep
If you have sbopkg installed, you can build a list of dependencies with 'sqg -p inkscape'
(for ponce's -current SBo-git run 'REPO_BRANCH=current REPO_NAME=SBo-git sqg -p inkscape')
Then run 'sbopkg -Rki inkscape' and choose build queue. That's the way I installed it.
(-R for show the README
-k for skip packages already installed *from SBo*
-i build and install/upgrade)
Inkscape 1.0.2 can be built with only three libraries added to -current: double-conversion, gdl, and potrace. I build it that way to minimize dependencies.
Ed
It's evidently high time I stopped being an ostrich, and got my teeth into slackpkg, slackpkg plus, and Sbopkg, along with any others. I was right about one thing: Inkscape has added dependencies.
package-name -->one of [README, build,pkg or pkg64] --> [correct version] before we get to a t?z. If that's handled automagically, the pessimist in me tends to presume the worst. Mind you, I have decent backups now.
Both slackpkg and slackpkg+ do not support dependency resolution. To use slackpkg+ you would be required to manually check dependencies (with the .dep files) and install everything. Just as with SBo, most .dep files will only contain 1st level dependencies, so you would need to check to see if the dependencies have dependencies of their own.
In this case, as marav mentioned, you'd need to issue the following command for slackpkg+ to properly install inkscape (this temporarily needs the poppler-compat package since inkscape hasn't been compiled against the newer poppler in -current). This command would be determined after checking each package for any dependencies and adding them to the list.
Alien Bob's repo is compatible with slapt-get, which does support dependency resolution. It is much easier to install inkscape through that:
Code:
slapt-get -i inkscape
Programs like sbopkg/sbotools/sboui/slackrepo/etc that work with SBo will typically have some method of dealing with dependencies. Most will automatically deal with them when you try and install the main piece of software, however, sbopkg does require a companion app, sqg, to generate a build queue and then sbopkg will build the packages in the order of that queue. All will support multi-level dependencies (dependencies that have their own dependencies).
Last edited by bassmadrigal; 05-06-2021 at 11:18 AM.
slapt-get? Another one to add to the "Investigate this ASAP" list. I never had much issue with dependencies since I discovered ldd. The one exception to that is Python apps, but you usually find the module list somewhere.
Thanks for the reply, and the mention of slapt-get.
EDIT: the poppler-compat I kinda dodged around with a symlink /usr/lib64/libpoppler.so.104 pointing to /usr/lib64/libpoppler.so.107. I'm sure purists would frown, but purists are thankfully in short supply here
Last edited by business_kid; 05-07-2021 at 04:50 AM.
It was pretty similar in the browser, but I didn't trust that, so went for inkscape. It's been an interesting thread, both for the way inkscape is sprouting oddball dependencies, and slackware is handling them.
Newbie Question: How would he know what runtime dependencies to install?
The easy way is to use a tool which downloads, compiles and installs software with dependency resolution. Some tools have been mentioned here, but not my favorite: slpkg
Example:
Code:
slpkg -s sbo inkscape
The above will download, build and install inkscape using SlackBuild scripts from slackbuilds.org and walk rekursively through all dependencies.
I did that many years ago on my Slackware 14.2 system and running that command again now results in the following:
Code:
bash-4.3# slpkg -s sbo inkscape
Reading package lists... Done
Resolving dependencies... Done
The following packages will be automatically installed or upgraded
with new version:
+==============================================================================
| Package New version Arch Build Repos Size
+==============================================================================
Installing:
inkscape-0.91 0.92.4 x86_64 SBo
Installing for dependencies:
python3-3.7.2 3.7.2 x86_64 SBo
six-1.14.0 1.14.0 x86_64 SBo
python3-six 1.13.0 x86_64 SBo
python-webencodings 0.5.1 x86_64 SBo
setuptools-scm-3.3.3 3.4.1 x86_64 SBo
functools-lru-cache-1.5 1.5 x86_64 SBo
python-soupsieve 1.9.6 x86_64 SBo
BeautifulSoup4-4.5.1 4.9.3 x86_64 SBo
html5lib-0.90 1.0.1 x86_64 SBo
lxml-3.6.4 4.4.1 x86_64 SBo
numpy-1.14.3 1.14.3 x86_64 SBo
Installing summary
===============================================================================
Total 12 packages.
3 packages will be installed, 4 already installed and 5 packages
will be upgraded.
Would you like to continue [y/N]? N
In my terminal packages get color codes, green for up to date, yellow for will get updated and red for new packages which wasn't installed before.
How these dependenices are found depends upon the repository. For the slackbuilds.org repository all dependencies are listed in the .info-file. This is what inkscape.info looks like:
The REQUIRES row lists the dependencies, but some of those dependencies might have more recursive dependencies. Only 10 packages are listed in REQUIRES, but at least one of them has some more dependency as slpkg found a total of 12 packages which were needed.
You might have noted that I did press "N" not to upgrade versions, and that is usually a good idea. If I only wanted to upgrade inkscape I could have written:
Code:
bash-4.3# slpkg -s sbo inkscape --resolve-off
Reading package lists... Done
Resolving dependencies... Done
The following packages will be automatically installed or upgraded
with new version:
+==============================================================================
| Package New version Arch Build Repos Size
+==============================================================================
Installing:
inkscape-0.91 0.92.4 x86_64 SBo
Installing summary
===============================================================================
Total 1 package.
0 package will be installed, 0 already installed and 1 package
will be upgraded.
Would you like to continue [y/N]?
...and hope that also the new version would work with those old libraries. Upgrading libraries might be a good idea for the current application (in this case inkscape), but it might break some other application which also depends upon the same library.
Newbie Question: How would he know what runtime dependencies to install?
The much simpler answer is to look at the .dep file in package directory of Alien Bob's repo. If it has a .dep file, there are additional dependencies that need to be installed.
In the case of inkscape on 15.0, you need to install the following packages (all available from Alien Bob's repo):
The much simpler answer is to look at the .dep file in package directory of Alien Bob's repo. If it has a .dep file, there are additional dependencies that need to be installed.
In the case of inkscape on 15.0, you need to install the following packages (all available from Alien Bob's repo):
double-conversion
gdl
graphicsmagick
libcdr
potrace
pstoedit
python-lxml
python-numpy
scour
Hey, I ran md5sum on the 9 files above plus inkscape and checked them against alien's published md5s and installed all 10, apparently successfully, then when I try to run inkscape, I get:
inkscape: error while loading shared libraries: libboost_filesystem.so.1.77.0: cannot open shared object file: No such file or directory
Hey, I ran md5sum on the 9 files above plus inkscape and checked them against alien's published md5s and installed all 10, apparently successfully, then when I try to run inkscape, I get:
inkscape: error while loading shared libraries: libboost_filesystem.so.1.77.0: cannot open shared object file: No such file or directory
your boost library is mismatched with the one of alienbob when he compiled the package.
boost is very sensible to .so library version bumps.
you should install alienbob's boost-compat package
The much simpler answer is to look at the .dep file in package directory of Alien Bob's repo. If it has a .dep file, there are additional dependencies that need to be installed.
In the case of inkscape on 15.0, you need to install the following packages (all available from Alien Bob's repo):
double-conversion
gdl
graphicsmagick
libcdr
potrace
pstoedit
python-lxml
python-numpy
scour
Would that procedure really be much simpler than just typing:
slpkg -s alien inkscape
Ok, initially you also might have to do the following:
slpkg repo-enable
(select to add alien repo in the dialog)
slpkg update
It is nice that slpkg does support many different package repositories. However I mostly prefer to only install stuff from Slackware and slackbuilds.org myself. Mixing packages from different repositories might give problems. I also prefer slackbuilds.org as it builds most packages from source instead of installing prebuilt packages. That said, I still do install things from alien, but in slpkg that repo is called "multi" as we are talking about the multilib support for Slackware.
Yes, different package repositories might have different ways to track dependencies. However slpkg makes use of these different ways for all supported repositories.
Would that procedure really be much simpler than just typing:
slpkg -s alien inkscape
Ok, initially you also might have to do the following:
slpkg repo-enable
(select to add alien repo in the dialog)
slpkg update
It is nice that slpkg does support many different package repositories. However I mostly prefer to only install stuff from Slackware and slackbuilds.org myself. Mixing packages from different repositories might give problems. I also prefer slackbuilds.org as it builds most packages from source instead of installing prebuilt packages. That said, I still do install things from alien, but in slpkg that repo is called "multi" as we are talking about the multilib support for Slackware.
Yes, different package repositories might have different ways to track dependencies. However slpkg makes use of these different ways for all supported repositories.
regards Henrik
Not if you don't already have slpkg installed. The above method requires nothing beyond the stock Slackware package tools.
There are several programs that make it easier to interact with 3rd-party repos, but if you're not already using them, it is a bit of a hassle to set them up for a single program and its dependencies.
There are several programs that make it easier to interact with 3rd-party repos, but if you're not already using them, it is a bit of a hassle to set them up for a single program and its dependencies.
Yes, that is true. It is a hassle to learn and configure a new program. However, once configured and learned it does make life a lot easier when it comes to automatically handle dependencies between packages from third party repositories.
During the years I have spent far too many hours tracking down recursive dependencies when installing additional software to Slackware. I even ended up writing my own tool to keep track of dependencies for software I usually added to each new version of Slackware and published that tool at http://makepack.sourceforge.net/
When I found that slpkg were able to do this work for all packages from slackbuilds.org it was really a big relief.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.