Sorry, I did miss those emails.

What do you see if you try (require taglib) after starting Racket with
logging for "ffi-lib"? For example:

  $ PLTSTDERR="debug@ffi-lib" racket
  .... unrelated logging ....
  > (require taglib)
  ???

If it lists the file you pointed to in your email and says "(exists)", then
the problem is probably that loading fails because libtag_c.so.0 depends on
another shared library, and the dependency couldn't be found. On Linux, I
would inspect shared library dependencies with the ldd command, but I don't
know what to use on OpenBSD.

---

I see that setting LD_LIBRARY_PATH worked for you. The difference between
Racket's search path (reported by get-lib-search-dirs) and the OS search
path (which LD_LIBRARY_PATH extends) is that Racket's search path only
applies to shared libraries loaded directly from Racket using ffi-lib; it
doesn't apply to any other shared libraries that they depend on.

Ryan


On Fri, May 7, 2021 at 5:03 PM [email protected] <[email protected]> wrote:

> Thanks for your help all!
> I think you didn't see my last 2 replies.
>
> I compiled taglib locally and set the library include path as seen in the
> racket REPL output.
> I shouldn't need to do the symlink because my version is now the exact
> same file name as the REPL says cant be found.
> (I it anyway, and it says same error file doesnt exist)
>
> Also I ran:
> (get-lib-search-dirs)
> '(#<path:/home/wise/.local/share/racket/7.9/lib>
>   #<path:/usr/local/lib/racket>
>   #<path:/home/wise/root/lib>)  <-- LOOK AT THE DIR
>
> The actaul file name that it says it cannot find is in that directory.
> wise@dug:/home/wise$ ls -1 /home/wise/root/lib/                       <--
> THIS IS IN MY "lib-search-dirs"
>
>
> libtag.a
> libtag.so.1
> libtag.so.1.18.0
> libtag_c.a
> libtag_c.so.0   <-- THIS IS THE FILE IT SAYS CANNOT BE FOUND
> libtag_c.so.0.0.0
> pkgconfig
>
>
> > (require taglib)
> ; ffi-lib: could not load foreign library
> ;   path: libtag_c.so.0   <-- SAYS IT CANNOT FIND THIS FILE
> ;   system error: File not found
>
>
>
> On Friday, May 7, 2021 at 10:29:21 AM UTC-4 [email protected] wrote:
>
>> It looks like there are two issues. One is the shared library's
>> directory, but the other is that the Racket library is looking for
>> "libtag_c.so.0", and you have "libtag_c.so.3.0". That is, it's looking for
>> a version suffix of "0", not "3.0" (see
>> https://github.com/takikawa/taglib-racket/blob/master/taglib/taglib.rkt#L83
>> ).
>>
>> One fix would be to change the Racket code to try "3.0" also. Maybe
>> conditioned on the OS, since on Ubuntu I also get the library with suffix
>> "0".
>>
>> An alternative would be to copy or link /usr/local/lib/libtag_c.so.3.0 to
>> Racket's lib directory with the file name the Racket code is trying to load:
>>
>>   ln -s /usr/local/lib/libtag_c.so.3.0
>> ~/.local/share/racket/7.9/lib/libtag_c.so.0
>>
>> Note: that assumes that the library versions are actually compatible;
>> otherwise, the Racket code is likely to misbehave, even if it loads the
>> library. Loading the shared library might still fail if the shared library
>> itself has dependencies that are not in the default OS search path. (In
>> that case, Nate's point about LD_LIBRARY_PATH might help.)
>>
>> Ryan
>>
>>
>> On Fri, May 7, 2021 at 3:12 PM [email protected] <[email protected]> wrote:
>>
>>> I know it sees my custom dir, I ran this in racket:
>>> > (require setup/dirs)
>>> > (get-lib-search-dirs)
>>> '(#<path:/home/wise/.local/share/racket/7.9/lib>
>>>   #<path:/usr/local/lib/racket>
>>>   #<path:/home/wise/root/lib>)
>>>
>>>
>>> On Friday, May 7, 2021 at 8:08:26 AM UTC-4 [email protected] wrote:
>>>
>>>> I'm so close :)
>>>>
>>>> I installed taglib locally to /home/wise/root/lib, so I *have* the file
>>>> exactly as racket is complaining about:
>>>> /home/wise/root/lib/libtag_c.so.0
>>>>
>>>> I used your config example to edit (as root) /etc/racket/config.rktd
>>>> I added the "lib-search-dirs" line, so it looks like:
>>>> ;; generated by unixstyle-install
>>>> #hash(
>>>>       (doc-dir . "/usr/local/share/doc/racket")
>>>>       (lib-dir . "/usr/local/lib/racket")
>>>>       (share-dir . "/usr/local/share/racket")
>>>>       (include-dir . "/usr/local/include/racket")
>>>>       (bin-dir . "/usr/local/bin")
>>>>       (apps-dir . "/usr/local/share/applications")
>>>>       (man-dir . "/usr/local/man")
>>>>       (absolute-installation? . #t)
>>>>       (build-stamp . "")
>>>>       (doc-search-url . "
>>>> https://download.racket-lang.org/releases/7.9/doc/local-redirect/index.html
>>>> ")
>>>>       (catalogs . ("
>>>> https://download.racket-lang.org/releases/7.9/catalog/";))
>>>>       (lib-search-dirs . (#f "/home/wise/root/lib"))
>>>> )
>>>>
>>>> I still get the error:
>>>> Welcome to Racket v7.9 [cs].
>>>>
>>>> > (require taglib)
>>>> ; ffi-lib: could not load foreign library
>>>> ;   path: libtag_c.so.0
>>>> ;   system error: File not found
>>>> ; [,bt for context]
>>>>
>>>> I'm still poking at it, thanks again for the help.
>>>>
>>>> On Thursday, May 6, 2021 at 11:41:03 PM UTC-4 [email protected] wrote:
>>>>
>>>>> Thanks for the help!
>>>>> I was sure that was going to be it but it's not :(
>>>>>
>>>>> This is what is on my system:
>>>>> /usr/local/lib/libtag_c.so.3.0
>>>>>
>>>>> racket is looking for libtag_c.so.0
>>>>>
>>>>> So i'm not sure what to do next.
>>>>>
>>>>> On Thursday, May 6, 2021 at 7:21:10 PM UTC-4 johnbclements wrote:
>>>>>
>>>>>> It looks to me like you probably need to edit your “config.rktd”
>>>>>> file:
>>>>>>
>>>>>>
>>>>>> https://docs.racket-lang.org/raco/config-file.html?q=config.rktd#%28idx._%28gentag._67._%28lib._scribblings%2Fraco%2Fraco..scrbl%29%29%29
>>>>>>
>>>>>> On my machine (macOS using macports), for instance I have do do this
>>>>>> for every new installation of drracket:
>>>>>>
>>>>>> - edit <config-dir>/config.rktd to contain
>>>>>> (lib-search-dirs . (#f "/opt/local/lib”))
>>>>>>
>>>>>> Let me know if I misunderstood your situation!
>>>>>>
>>>>>> John Clements
>>>>>>
>>>>>>
>>>>>> > On May 6, 2021, at 3:54 AM, [email protected] <[email protected]>
>>>>>> wrote:
>>>>>> >
>>>>>> >
>>>>>> > Hi!,
>>>>>> >
>>>>>> > I am doing: (require taglib) and I get:
>>>>>> > > (require taglib)
>>>>>> > ; ffi-lib: could not load foreign library
>>>>>> > ; path: libtag_c.so.0
>>>>>> > ; system error: File not found
>>>>>> > ; [,bt for context]
>>>>>> >
>>>>>> > I am on OpenBSD and that file is at:
>>>>>> > /usr/local/lib/libtag_c.so.3.0
>>>>>> >
>>>>>> > How can I change my search path for C libs to be /usr/local ?
>>>>>> >
>>>>>> > --
>>>>>> > You received this message because you are subscribed to the Google
>>>>>> Groups "Racket Users" group.
>>>>>> > To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> > To view this discussion on the web visit
>>>>>> https://groups.google.com/d/msgid/racket-users/b8425f0a-6d45-4954-9e32-df51aa5151cbn%40googlegroups.com.
>>>>>>
>>>>>>
>>>>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Racket Users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>>
>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/racket-users/59a44f94-5931-46cd-ba3b-039c02a47076n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/racket-users/59a44f94-5931-46cd-ba3b-039c02a47076n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/10b55153-60db-4249-96f3-8f34c91d98b9n%40googlegroups.com
> <https://groups.google.com/d/msgid/racket-users/10b55153-60db-4249-96f3-8f34c91d98b9n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CANy33qmoVqg0s%3DDbSxjOwPWE8js%2BfNX1v0RuEs61L2KWMAWdOA%40mail.gmail.com.

Reply via email to