hiran wrote: ↑Fri Jan 21, 2022 8:42 pm
[...]
Code: Select all
version `ZLIB_1.2.9' not found (required by /lib/x86_64-linux-gnu/libpng16.so.16)
Code: Select all
$ ldd oolite.app/oolite | grep "=> /lib"
[...]
libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fcc91a4e000)
[...]
[...]
That should need to be fixed by the "wrapper" script I was talking about.
Here's what I get in my local build environment:
Code: Select all
$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./Linux-deps ldd oolite | grep deps
libz.so.1 => ./Linux-deps/libz.so.1 (0x00007f07a7c2b000)
libvorbisfile.so.3 => ./Linux-deps/libvorbisfile.so.3 (0x00007f07a7a23000)
libpng14.so.14 => ./Linux-deps/libpng14.so.14 (0x00007f07a77ff000)
libespeak.so.1 => ./Linux-deps/libespeak.so.1 (0x00007f07a735d000)
libvorbis.so.0 => ./Linux-deps/libvorbis.so.0 (0x00007f07a3cc7000)
That is, you'd need to package the contents of the deps/Linux-deps/x86_64/lib folder in the tar.gz/tgz file (I'm using a Linux-deps folder, at the same level with Resources, under oolite.app; and don't forget the espeak-data in deps/Cross-platform-deps copied to the oolite.app/Resources folder), and issue at least a LD_LIBRARY_PATH pointing to the "lib deps" folder, and a ESPEAK_DATA_PATH pointing to the Resources folder before starting oolite binary (either in the command line, or by exporting them).
For the record, the original packaging script creates a Oolite folder under GNUstep/Applications, and our main concerns are addressed this way:
- LD_LIBRARY_PATH points to an oolite-deps/lib folder (included, and populated with the contents of the deps/Linux-deps/x86_64/lib folder)
- ESPEAK_DATA_PATH points to the oolite.app/Resources folder (espeak-data also pre-included in the package under Resources)
Both are exported in the wrapper before the binary is launched.
hiran wrote: ↑Fri Jan 21, 2022 7:39 pm
[...]
I will change the call to make into
Code: Select all
make -f Makefile release use_deps=yes
and my gut feeling tells me that
Code: Select all
deps/Linux-deps/x86_64/lib_linker/make_so_links.sh
has to be invoked before calling make.
[...]
Yes, before calling make, you'd need to run the "make_so_links.sh" script, and then make sure "use_deps=yes" is in your make command line.
I think some libraries are not captured in the make_so_links.sh file, some manual intervention (or patching of the script) might be needed (I usually go for manual).