bbcp
bbcp copied to clipboard
GTK libraries not found for FreeBSD 13.2 build
When built on the latest FreeBSD [0] with GUI support, some gtk libraries seem not to be linked correctly [1].
The library object files reported missing – libgtk-x11-2.0.so and libglib-2.0.so – are present on the filesystem under /usr/local/lib [2].
Has anyone tried troubleshooting this? (build dump [3])
[0] system details
$ uname -mrs
FreeBSD 13.2-RELEASE amd64
[1] exec error (after ./switch-target FreeBSD GUI && ./build) $ ./run-BlackBox
****
* BlackBox
* HostGui: can not load libgtk-x11-2.0.so
****
****
* Error 01
* libglib-2.0.so: code file not found
****
[2] libraries available $ find /usr/local/lib ( -type f -o -type l ) -a \ ( -name 'libglib-2.0.so' -o -name 'libgtk-x11-2.0.so' )
/usr/local/lib/libglib-2.0.so
/usr/local/lib/libgtk-x11-2.0.so
[3] build log https://zerobin.net/?523a20b374dcd98d#Jm44lm9+r2qi/4yjSKgHlHIR8LSIw9HIAxdcLm6s4V0=
Please, try to build BlackBox 2.0 from branch blackbox20
, with script build-fbsd
There is correct library there in module FbsdGui etc.
Then with working instance of BlackBox 2.0 you can edit and fix version of libraries in master
branch.
Actually master
is not supported well, I will replace it soon to blackbox20
content.
Hi, Ivan.
Thank you for the prompt reply. I actually tried building from
-b blackbox20
before. The build seems to succeed and link
properly [0].
The startup binary still reports: $ ./blackbox
****
* Error 01
* [FbsdInit] MODULE IMPORT libglib-2.0.so: file not found!
****
I tried greping to see if I can modify some paths, but I mostly see binaries like dev0fbsd and so I am at a loss.
[0] https://zerobin.net/?eaf69d399f351e23#5KQxKl7ZRAtNKZoM60/NrWerVT+wenucgrA0KRLO2ZA=
Thank you for your report, not very much users of FreeBSD reporting.
I fixed the libglib-2.0.so
to libglib-2.0.so.0
and add .0
to gtk and gdk libraries also.
Please, pull last commits, and try to build and run again.
Thank you for taking the time to look into this. Your changes did have the effect that the binary now tries to import the shared module with the ".0" suffix. It is still missing though.
$ ./blackbox
****
* Error 01
* [FbsdInit] MODULE IMPORT libglib-2.0.so.0: file not found!
****
For reference, these are the relevant contents of the /usr/local/lib path:
$ ls -lA /usr/local/lib/libglib-2.0.so*
lrwxr-xr-x 1 root wheel 16 25 Mai 18:17 /usr/local/lib/libglib-2.0.so -> libglib-2.0.so.0
lrwxr-xr-x 1 root wheel 23 25 Mai 18:17 /usr/local/lib/libglib-2.0.so.0 -> libglib-2.0.so.0.7600.3
-rwxr-xr-x 1 root wheel 1332872 25 Mai 18:17 /usr/local/lib/libglib-2.0.so.0.7600.3
So just symbolic link aliases to the specific version. I suppose more things would not work were the include path to be misspecified (e.g. GNU/Linux's /usr/lib vs FreeBSD's /usr/local/lib)?
As far as I remember, no import paths are written into blackbox binaries, neither into .ocf, nor into the startup executable. Just the module names. So I wonder if smth is wrong/different with how FBSD looks up paths as opposed to Linux.
I may be totally incorrect, but you showed amd64. Under Linux (on my computer), the imported binary library files are located in /lib/i386-linux-gnu, and I have to explicitly install the 386 files on my amd64 system. I wonder if the error message 'file not found' could actually be incorrect, and in fact the problem could be that 64-bit binaries are attempted to be linked into the i386 blackbox executable.
Sure, I just mentioned, that the version you are using is amd64
so i386
libraries need to be set up, or they can be located in some path. I will make some experiments soon with amd64
, and write, what you should do.