Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GTK libraries not found for FreeBSD 13.2 build #20

Open
mmlmn opened this issue Jun 4, 2023 · 6 comments
Open

GTK libraries not found for FreeBSD 13.2 build #20

mmlmn opened this issue Jun 4, 2023 · 6 comments

Comments

@mmlmn
Copy link

mmlmn commented Jun 4, 2023

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=

@iadenisov
Copy link
Member

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.

@mmlmn
Copy link
Author

mmlmn commented Jun 4, 2023

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=

@iadenisov
Copy link
Member

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.

@mmlmn
Copy link
Author

mmlmn commented Jun 4, 2023

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)?

@adimetrius
Copy link
Member

adimetrius commented Jun 6, 2023

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.

@iadenisov
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants