[Qgis-user] Unable to open MrSID file in QGIS even if gdalinfo can read it

Even Rouault even.rouault at spatialys.com
Sat Sep 28 10:33:34 PDT 2024


Andrew,


> $ ldd /bin/qgis.bin | grep gdal
>
> libgdal.so.34 => /lib/x86_64-linux-gnu/libgdal.so.34 (0x00007a0581a00000)
>
> But I'm not sure what to do with that information.

/lib/x86_64-linux-gnu/libgdal.so.34 is the version of GDAL that comes 
with package manager, so 3.8.4 here

I'm not sure how you are familiar with the dynamic linking concepts and 
tools, but if you're not, reading 
https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux 
or related resources on dynamic linking might help you understand why 
those seemlingly "weird" behaviors are totally explainable. Takes time, 
and even with experience, mixing up several versions of a library on a 
system and being confused is not uncommon

I'm going to hate myself for the below suggestion, and you probably too 
when it will hit you back in the face (so forget I've told you about it 
;-),  ... but ... to quickly workaround your issue, you can do:

sudo ln -s /usr/lib/libgdal.so.35 /usr/lib/libgdal.so.34        # i'm 
already hating myself

sudo mv /lib/x86_64-linux-gnu/libgdal.so.34 
/lib/x86_64-linux-gnu/libgdal.so.34.disabled    # I'm hating myself even 
more...

And now launch QGIS.... As GDAL keeps a backwards compatible C ABI, this 
ugly substitution of the expected GDAL 3.8.4 version at build time is 
supposed to (mostly) work. That said, you might run in occasional bugs, 
where QGIS tries to workaround GDAL specific bug, based on the version 
of GDAL QGIS was built against...

OK, I believe you've been sufficienly warned this is *not* the normal 
way of proceeding, just a quick&dirty workaround

To undo the above mess:

sudo mv /lib/x86_64-linux-gnu/libgdal.so.34.disabled 
/lib/x86_64-linux-gnu/libgdal.so.34

sudo mv /usr/lib/libgdal.so.34 /usr/lib/libgdal.so.34.disabled (i'm 
always nervous doing a rm in /usr territory, so I tend to just rename ...)

The clean solution would be that you rebuild QGIS against your installed 
GDAL, but that would be for another episode. Another friendly advice 
would be that when doing a custom build you don't do 
CMAKE_INSTALL_PREFIX=/opt , but here something like 
CMAKE_INSTALL_PREFIX=/opt/gdal_3_10_master to avoid messing with /usr 
which should be only the territory of your package manager tool.


Another less ugly alternative would be that you download 
http://download.osgeo.org/gdal/3.8.4/gdal-3.8.4.tar.gz, build it with 
support of the MrSID driver as a plugin, with 
-DGDAL_ENABLE_DRIVER_MRSID_PLUGIN=ON, install it in /opt/gdal_3_8_4, and 
then just set the GDAL_DRIVER_PATH=/opt/gdal_3_8_4/lib/gdalplugins 
environment variable. That way you would use the system GDAL library 
with just the addition of the MrSID driver.

Actually that might not be terribly harder to do than my above hacks, so 
I'm definitely encouraging you to explore that way

And ... you should know that the company behind the MrSID SDK has 
declared they won't ever release any new binary version of it. This 
means that at most in a few years, this SDK will likely be totally 
unusable on modern systems. So everyone using SID files had better 
convert them to something else, like COG, when they still have a chance...

/me taking a passport to an undisclosed country without extradition 
agreement.

Even

-- 
http://www.spatialys.com
My software is free, but my time generally not.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20240928/bcf7f3ba/attachment.htm>


More information about the QGIS-User mailing list