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.

