[SOLVED] Odd experience with geeqie and curl: I just want an explanation
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.
Odd experience with geeqie and curl: I just want an explanation
As some of you know, I don't have a complete Slackware installation. I have what I need, add stuff if the need arises, and do my own dependency checking.
I use geeqie as my all-purpose image viewer. The other day, I found a need for curl so I installed it. It didn't run the first time I tried it because it was missing one of its dependencies, a library called libcares/c-ares (which does dns processing apparently). So I thought "OK, I'll install that in a minute. I'm busy now.". Then I launched geeqie to look at something I happened to be working on at the time, and suddenly that didn't work either. When I launched it from a terminal (which is how I always investigate this sort of problem), I found it wanted libcares too. So I installed c-ares and then they both worked.
What I want to know is why geeqie worked before without libcares. It's now bound to libcurl, which is bound to libcares, so that explains the dependency, but how did it work before I installed curl/libcurl? And why would an image viewer want to do DNS checking anyway?
So it's libexiv2 that requires curl.
Exiv2 itself is able to parse images from a website, eg:
Quote:
exiv2 [ option [ arg ] ]+ [ action ] file ...
Where file is one or more files containing image metadata. These can optionally be specified using a URL (http, https, ftp, sftp, data and file supported) or a wildcard pattern (e.g., image1.tiff image2.jpg, https://www.exiv2.org/Stonehenge.jpg or *.jpg)
In geeqie source i don't see explicit calls to libcurl, but there is a download_web_file function in src/ui-fileops.cc that is used in some dialogs. Perhaps curl is invoked there under the hood using the glib interface, and it wasn't before.
You should have aaa_libraries installed. It is a small collection of shared libraries programs need. For example, it has both libcares and libcurl. That's why the c-ares and curl packages are not needed to run for example geeqie.
I wrote a little script a few days ago to find similar info. Unfortunately, I called it "lddtree", too... It's here: https://www.linuxquestions.org/quest...2/#post6490128. It shows separately the direct and indirect dependencies of a program or library. The output is different from your example.
You should have aaa_libraries installed. It is a small collection of shared libraries programs need. For example, it has both libcares and libcurl. That's why the c-ares and curl packages are not needed to run for example geeqie.
I was planning to install aaa-libraries this morning in my "free" period (pre-8.00 AM) as it's quite a bulky download, but then I saw that I could install c-ares by itself and it's only a few kb, so I did that instead.
PS: I must be going senile. Of course I already had aaa_libraries; it's that package that used to be called aaa_elflibs. But I must have had an earlier version with less in it.
A lot of programs with big dependencies uses dlopen or a library that mask the use of dlopen. The library the program want is tested and if it exists it is used. Here maybe libcurl has been tested as ok after been added, and then aborted due to the lack of libcares.
In geeqie, there seems to be libs that encapsulate dlopen.
A lot of programs with big dependencies uses dlopen or a library that mask the use of dlopen. The library the program want is tested and if it exists it is used. Here maybe libcurl has been tested as ok after been added, and then aborted due to the lack of libcares.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.