Opened 10 years ago

Closed 9 years ago

#43678 closed enhancement (fixed)

ECW support in gdal

Reported by: jsm@… Owned by: Veence (Vincent)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: cooljeanius (Eric Gallager), petrrr
Port: gdal

Description

I have modified the gdal port to allow the use of the ECW SDK of Intergraph. A new variant called ecw is added. The version of gdal was also updated to 1.11.0. The patches patch-gdalwarpkernel_opencl_c_2.diff and patch-port-cpl_spawn.cpp.diff are not needed any more.

The upstream version of gdal supports the SDK 5.1 which is located at /Intergraph/ERDASEcwJpeg2000SDK5.1. The new version of the SDK, 5.1.1, is located at /Intergraph/ERDASEcwJpeg2000SDK5.1.1/Desktop_Read-Only and a couple of symbolic links can be used to override the problem with the paths. If this version of the SDK is present and the links are not created, the port install process displays a message of how to do that (only if the variant ecwis set). This is probably not an ideal solution but it works.

Attachments (1)

gdal.diff (4.0 KB) - added by jsm@… 10 years ago.

Download all attachments as: .zip

Change History (13)

Changed 10 years ago by jsm@…

Attachment: gdal.diff added

comment:1 Changed 10 years ago by mf2k (Frank Schima)

Cc: seanasy@… removed
Owner: changed from macports-tickets@… to seanasy@…
Version: 2.2.1

Note that when increasing the version, the revision goes to 0, not 1. Since this is the default, the revision line should simply be deleted.

comment:2 Changed 10 years ago by mf2k (Frank Schima)

Owner: changed from seanasy@… to macports-tickets@…

This port is no longer maintained. See #44038.

comment:3 Changed 10 years ago by Veence (Vincent)

I'll try to apply it and commit it tomorrow. Thanks for the effort. However, I see that the ECW SDK installs in a non-standard directory. Is there a means to configure this?

comment:4 Changed 10 years ago by Veence (Vincent)

It is possible to customize the installation of the ECW library. I hate the possibility of having it in /Intergraph/… which is really ugly. Shall we choose ${prefix}/lib/ECW or /opt/local/lib/ECW?

comment:5 Changed 10 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:6 Changed 10 years ago by Veence (Vincent)

I've committed the new version 1.11.0 with ECW support (tested this afternoon). The SDK should be installed in ${prefix}/lib/ECW, but I hope a simple soft link will suffice for those who have installed it under /Intergraph and do not want to reinstall it again. There are still other things to fix, especially enabling options that are currently disabled by default.

Please test and report any problem!

comment:7 Changed 10 years ago by jsm@…

Finally I had some time to test the new port. After using the recommended command: sudo ln -s /Intergraph/ERDASEcwJpeg2000SDK5.1.1/Desktop_Read-Only /opt/local/lib/ECW everything seems to compile all right.

Just out of curiosity, how could you install the SDK directly in /opt/local/lib/ECW?

comment:8 Changed 9 years ago by petrrr

I see this was actually implemented (but the reference is missing) by vince@ in r121188.

However, I would argue that this solution is not ideal. I'd expect that in general (with very few exceptions) below /opt/local or more exactly ${prefix} files are manipulated and tracked by Macports, as macports in general would not touch anything outside ${prefix}.

So we would rather (1) create a port for the ECW library, so that it can be easily removed again. If the distfile cannot be fetched automatically for technical or license reasons, the distfile will need to be placed by the user, just like (py-nio or ncarg). (2) As an alternative, we could ask users to install it in some well-known location outside the Macports tree, for example /opt/lib/ECW or /opt/ECW/lib. But I'd prefer (1) if this is feasible.

comment:9 Changed 9 years ago by petrrr

Cc: petr@… added

Cc Me!

comment:10 Changed 9 years ago by petrrr

Owner: changed from macports-tickets@… to vince@…

comment:11 Changed 9 years ago by Veence (Vincent)

There is no way to fetch the necessary ECW library automatically, because it is furnished under a .dmg and not a .tgz or other UNIX archive format. Therefore, interaction with the user is mandatory. By default, the library is installed at the root under the Intergraph directory, which seems a very bad idea (/Intergraph/…). Any other option needs the user to manually alter the path during the installation process. If you consider that installing under /opt/local is a bad idea, I can easily manage with whatever other location.

comment:12 Changed 9 years ago by Veence (Vincent)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.