-
-
Notifications
You must be signed in to change notification settings - Fork 307
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
lib/imagery: fix missing SONAME #2363
Conversation
The change implemented in OSGeo#2269 actually didn't fix the SONAME problem: ``` readelf -d /usr/lib64/grass80/lib/libgrass_imagery.so Dynamic section at offset 0x16860 contains 31 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000001d (RUNPATH) Library runpath: [/usr/lib64/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x11e8c 0x0000000000000019 (INIT_ARRAY) 0x17848 ... ``` ==> The SONAME is still missing which means that OSGeo#2269 did not solve it (tested on Fedora). With this PR the SONAME appears: ``` readelf -d /home/mneteler/software/grass80/dist.x86_64-pc-linux-gnu/lib/libgrass_imagery.so Dynamic section at offset 0x14db8 contains 30 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000000e (SONAME) Library soname: [libgrass_imagery.8.0.so] 0x000000000000001d (RUNPATH) Library runpath: [/usr/local/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x10864 0x0000000000000019 (INIT_ARRAY) 0x15da0 ... ``` which is a requirement to compile, install and run the GDAL-GRASS driver (https://github.com/OSGeo/gdal-grass).
@neteler thanks for asking. On gentoo this patch has been introduced on top of grass-8.0.1 I since then I get this and output and gdal compiles fine $ readelf -d /usr/lib64/grass80/lib/libgrass_imagery.so
Dynamic section at offset 0x14dc8 contains 29 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so]
0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000e (SONAME) Library soname: [libgrass_imagery.8.0.so]
... also with current master as of now I get readelf -d /var/tmp/portage/sci-geosciences/grass-9999/image/usr/lib64/grass83/lib/libgrass_imagery.so
Dynamic section at offset 0x14db8 contains 30 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.3.so]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.3.so]
0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.3.so]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000e (SONAME) Library soname: [libgrass_imagery.8.3.so]
0x000000000000001d (RUNPATH) Library runpath: [/usr/grass83/lib]
... |
I just tested this PR and AFAICT it won't hurt neither. Result is still the same 👍 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is no SONAME involved in Mac dylibs. This PR doesn't make any difference in either direction, so if needed on some platforms I will not object.
It's not obvious to me with a quick look, what part of Vars.make that make it work on Fedora though. On the other hand, quite a few of the other libs are also including this file.
The change implemented in #2269 actually didn't fix the SONAME problem (see issue #2268), at least on Fedora: ``` # status after PR 2269: readelf -d /usr/lib64/grass80/lib/libgrass_imagery.so Dynamic section at offset 0x16860 contains 31 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000001d (RUNPATH) Library runpath: [/usr/lib64/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x11e8c 0x0000000000000019 (INIT_ARRAY) 0x17848 ... ``` ==> The SONAME is still missing which means that #2269 did not solve it (tested on Fedora). With this PR (see e.g. also `lib/display/Makefile`) the SONAME appears: ``` readelf -d /home/mneteler/software/grass80/dist.x86_64-pc-linux-gnu/lib/libgrass_imagery.so Dynamic section at offset 0x14db8 contains 30 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000000e (SONAME) Library soname: [libgrass_imagery.8.0.so] 0x000000000000001d (RUNPATH) Library runpath: [/usr/local/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x10864 0x0000000000000019 (INIT_ARRAY) 0x15da0 ... ``` which is a requirement to compile, install and run the GDAL-GRASS driver (https://github.com/OSGeo/gdal-grass).
The change implemented in #2269 actually didn't fix the SONAME problem (see issue #2268), at least on Fedora: ``` # status after PR 2269: readelf -d /usr/lib64/grass80/lib/libgrass_imagery.so Dynamic section at offset 0x16860 contains 31 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000001d (RUNPATH) Library runpath: [/usr/lib64/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x11e8c 0x0000000000000019 (INIT_ARRAY) 0x17848 ... ``` ==> The SONAME is still missing which means that #2269 did not solve it (tested on Fedora). With this PR (see e.g. also `lib/display/Makefile`) the SONAME appears: ``` readelf -d /home/mneteler/software/grass80/dist.x86_64-pc-linux-gnu/lib/libgrass_imagery.so Dynamic section at offset 0x14db8 contains 30 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000000e (SONAME) Library soname: [libgrass_imagery.8.0.so] 0x000000000000001d (RUNPATH) Library runpath: [/usr/local/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x10864 0x0000000000000019 (INIT_ARRAY) 0x15da0 ... ``` which is a requirement to compile, install and run the GDAL-GRASS driver (https://github.com/OSGeo/gdal-grass).
The change implemented in #2269 actually didn't fix the SONAME problem (see issue #2268), at least on Fedora: ``` # status after PR 2269: readelf -d /usr/lib64/grass80/lib/libgrass_imagery.so Dynamic section at offset 0x16860 contains 31 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000001d (RUNPATH) Library runpath: [/usr/lib64/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x11e8c 0x0000000000000019 (INIT_ARRAY) 0x17848 ... ``` ==> The SONAME is still missing which means that #2269 did not solve it (tested on Fedora). With this PR (see e.g. also `lib/display/Makefile`) the SONAME appears: ``` readelf -d /home/mneteler/software/grass80/dist.x86_64-pc-linux-gnu/lib/libgrass_imagery.so Dynamic section at offset 0x14db8 contains 30 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000000e (SONAME) Library soname: [libgrass_imagery.8.0.so] 0x000000000000001d (RUNPATH) Library runpath: [/usr/local/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x10864 0x0000000000000019 (INIT_ARRAY) 0x15da0 ... ``` which is a requirement to compile, install and run the GDAL-GRASS driver (https://github.com/OSGeo/gdal-grass).
The change implemented in OSGeo#2269 actually didn't fix the SONAME problem (see issue OSGeo#2268), at least on Fedora: ``` # status after PR 2269: readelf -d /usr/lib64/grass80/lib/libgrass_imagery.so Dynamic section at offset 0x16860 contains 31 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000001d (RUNPATH) Library runpath: [/usr/lib64/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x11e8c 0x0000000000000019 (INIT_ARRAY) 0x17848 ... ``` ==> The SONAME is still missing which means that OSGeo#2269 did not solve it (tested on Fedora). With this PR (see e.g. also `lib/display/Makefile`) the SONAME appears: ``` readelf -d /home/mneteler/software/grass80/dist.x86_64-pc-linux-gnu/lib/libgrass_imagery.so Dynamic section at offset 0x14db8 contains 30 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000000e (SONAME) Library soname: [libgrass_imagery.8.0.so] 0x000000000000001d (RUNPATH) Library runpath: [/usr/local/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x10864 0x0000000000000019 (INIT_ARRAY) 0x15da0 ... ``` which is a requirement to compile, install and run the GDAL-GRASS driver (https://github.com/OSGeo/gdal-grass).
The change implemented in OSGeo#2269 actually didn't fix the SONAME problem (see issue OSGeo#2268), at least on Fedora: ``` # status after PR 2269: readelf -d /usr/lib64/grass80/lib/libgrass_imagery.so Dynamic section at offset 0x16860 contains 31 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000001d (RUNPATH) Library runpath: [/usr/lib64/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x11e8c 0x0000000000000019 (INIT_ARRAY) 0x17848 ... ``` ==> The SONAME is still missing which means that OSGeo#2269 did not solve it (tested on Fedora). With this PR (see e.g. also `lib/display/Makefile`) the SONAME appears: ``` readelf -d /home/mneteler/software/grass80/dist.x86_64-pc-linux-gnu/lib/libgrass_imagery.so Dynamic section at offset 0x14db8 contains 30 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000000e (SONAME) Library soname: [libgrass_imagery.8.0.so] 0x000000000000001d (RUNPATH) Library runpath: [/usr/local/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x10864 0x0000000000000019 (INIT_ARRAY) 0x15da0 ... ``` which is a requirement to compile, install and run the GDAL-GRASS driver (https://github.com/OSGeo/gdal-grass).
The change implemented in OSGeo#2269 actually didn't fix the SONAME problem (see issue OSGeo#2268), at least on Fedora: ``` # status after PR 2269: readelf -d /usr/lib64/grass80/lib/libgrass_imagery.so Dynamic section at offset 0x16860 contains 31 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000001d (RUNPATH) Library runpath: [/usr/lib64/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x11e8c 0x0000000000000019 (INIT_ARRAY) 0x17848 ... ``` ==> The SONAME is still missing which means that OSGeo#2269 did not solve it (tested on Fedora). With this PR (see e.g. also `lib/display/Makefile`) the SONAME appears: ``` readelf -d /home/mneteler/software/grass80/dist.x86_64-pc-linux-gnu/lib/libgrass_imagery.so Dynamic section at offset 0x14db8 contains 30 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgrass_gis.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgrass_raster.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libgrass_vector.8.0.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000000e (SONAME) Library soname: [libgrass_imagery.8.0.so] 0x000000000000001d (RUNPATH) Library runpath: [/usr/local/grass80/lib] 0x000000000000000c (INIT) 0x5000 0x000000000000000d (FINI) 0x10864 0x0000000000000019 (INIT_ARRAY) 0x15da0 ... ``` which is a requirement to compile, install and run the GDAL-GRASS driver (https://github.com/OSGeo/gdal-grass).
The change implemented in #2269 actually didn't fix the SONAME problem (see issue #2268), at least on Fedora:
==> The SONAME is still missing which means that #2269 did not solve it (tested on Fedora).
With this PR (see e.g. also
lib/display/Makefile
) the SONAME appears:which is a requirement to compile, install and run the GDAL-GRASS driver (https://github.com/OSGeo/gdal-grass).
Can @t0b3 please check if this works on Gentoo as well?