A custom build of fwtools sounds like the perfect solution, here. Then my bootstrap procedure consists of downloading my FWTools build, opening it up, running ./install.sh and adding the directory to the path (to allow access to the libraries).<div>

<br></div><div>Thanks, Even, this is great!<br><div><br><div class="gmail_quote">On Fri, Feb 25, 2011 at 3:11 PM, Even Rouault <span dir="ltr">&lt;<a href="mailto:even.rouault@mines-paris.org">even.rouault@mines-paris.org</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Le vendredi 25 février 2011 21:02:06, Sam Ritchie a écrit :<br>
<div class="im">&gt; Even,<br>
&gt;<br>
&gt; Thanks for the response, and sorry for my late reply, here.<br>
&gt;<br>
&gt; What you write makes sense, especially after processing this problem a bit<br>
&gt; further. As you mentioned, libgdal1-XXXX was installed by apt-get... the<br>
&gt; problem here is that apt-get has libgdal1-1.5.0, and I was building java<br>
&gt; bindings for 1.8.0.<br>
<br>
</div>Yes, Java bindings for 1.8.0 require GDAL 1.8.0 lib.<br>
<div class="im"><br>
&gt;<br>
&gt; What would it take to upgrade these packages? The issue for my workflow now<br>
&gt; is that I need access to 1.8.0, so I&#39;ll currently have to keep a custom<br>
&gt; AMI, with gdal built from source. I&#39;d be happy to do the work to upgrade<br>
&gt; these packages to 1.8.0. Any thoughts?<br>
<br>
</div>Well, there&#39;s the UbuntuGIS PPA that ships with GDAL 1.7.3. I guess that they<br>
will end up updating to 1.8.0 in some time. You could ask to the osgeo<br>
&#39;ubuntu&#39; list what their plan is.<br>
<br>
If you want to be your own master and not depend on distro packages, you could<br>
also follow the cookbook made by Frank Warmerdam to build the latest FWTools<br>
3.0.X for Linux and add Java bindings support in it. See the &quot;How FWTools is<br>
Built&quot; section in <a href="http://fwtools.maptools.org/linux-experimental.html" target="_blank">http://fwtools.maptools.org/linux-experimental.html</a><br>
<div><div></div><div class="h5"><br>
&gt;<br>
&gt; Best,<br>
&gt; Sam<br>
&gt;<br>
&gt; On Thu, Feb 24, 2011 at 1:56 PM, Even Rouault<br>
&gt;<br>
&gt; &lt;<a href="mailto:even.rouault@mines-paris.org">even.rouault@mines-paris.org</a>&gt;wrote:<br>
&gt; &gt; Le jeudi 24 février 2011 16:51:12, Sam Ritchie a écrit :<br>
&gt; &gt; &gt; Hey all,<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; QUICK VERSION:<br>
&gt; &gt; &gt; When I build the java bindings for gdal, what native dependencies do I<br>
&gt; &gt;<br>
&gt; &gt; need<br>
&gt; &gt;<br>
&gt; &gt; &gt; to transfer over to another machine (with an identical install<br>
&gt; &gt; &gt; location)<br>
&gt; &gt;<br>
&gt; &gt; to<br>
&gt; &gt;<br>
&gt; &gt; &gt; get them to run?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; LONG VERSION:<br>
&gt; &gt; &gt; I&#39;m working on an application that requires the java bindings for gdal<br>
&gt; &gt; &gt; 1.8.0 to be packaged up with the app, along with the native libraries.<br>
&gt; &gt; &gt; Now! I&#39;ve actually accomplished this on Mac OS X -- rather than<br>
&gt; &gt; &gt; building from source on each machine, I was able to pull the macports<br>
&gt; &gt; &gt; version of gdal using<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; sudo port install gdal +hdf4 +universal<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; then build from source, with --prefix=/opt/local, or the location of<br>
&gt; &gt; &gt; that macports variant. Once the bindings had the proper location, I<br>
&gt; &gt; &gt; was able<br>
&gt; &gt;<br>
&gt; &gt; to<br>
&gt; &gt;<br>
&gt; &gt; &gt; bundle them up inside my jar file and distribute them to other<br>
&gt; &gt; &gt; machines. (As long as the *.dylib files are on java&#39;s library path,<br>
&gt; &gt; &gt; all is well.)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; My issue is, I&#39;m having a bit of trouble doing the same thing with<br>
&gt; &gt; &gt; linux. I&#39;ve installed gdal-bin with<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; sudo apt-get gdal-bin<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; And can verify that gdalinfo works, for one of the HDF files I need to<br>
&gt; &gt; &gt; process. Good news there.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I then built the java bindings from source using<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; ./configure --prefix=/usr --with-threads --disable-netcdf<br>
&gt; &gt;<br>
&gt; &gt; --disable-fortran<br>
&gt; &gt;<br>
&gt; &gt; &gt; --with-hdf4=/usr<br>
&gt; &gt; &gt; make<br>
&gt; &gt; &gt; cd swig/java<br>
&gt; &gt; &gt; make<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; (After modifiying swig/java/java.opt to point to my native java<br>
&gt; &gt; &gt; install.)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; To make these bindings work on some other machine, I know that I need<br>
&gt; &gt; &gt; the four *.so files -- after I run &quot;make&quot; inside gdal/swig/java,<br>
&gt; &gt; &gt; though, I<br>
&gt; &gt;<br>
&gt; &gt; end<br>
&gt; &gt;<br>
&gt; &gt; &gt; up with three versions of each file:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; libgdalconstjni.so<br>
&gt; &gt; &gt; libgdalconstjni.so.1.15.0<br>
&gt; &gt; &gt; libgdalconstjni.so.1<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; etc.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Now, it looks like the first two (.so and .so.1.15.0) are symlinked to<br>
&gt; &gt;<br>
&gt; &gt; the<br>
&gt; &gt;<br>
&gt; &gt; &gt; *.so.1 file -- if I try to bundle either of these and run my project on<br>
&gt; &gt; &gt; a fresh machine (without the built source, but after running &quot;sudo<br>
&gt; &gt; &gt; apt-get gdal-bin&quot;) and use them, I get<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; java.lang.UnsatisfiedLinkError:<br>
&gt; &gt; &gt; /root/forma-hadoop/lib/native/libgdaljni.so: libgdal.so.1: cannot open<br>
&gt; &gt; &gt; shared object file: No such file or directory<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I&#39;m stuck, here. I don&#39;t know what libgdal.so.1 is<br>
&gt; &gt;<br>
&gt; &gt; well, I thought that would have been pretty obvious ;-). This is the GDAL<br>
&gt; &gt; shared object used by language bindings and gdal command line utilities<br>
&gt; &gt; (and<br>
&gt; &gt; all other programs relying on GDAL).<br>
&gt; &gt;<br>
&gt; &gt; &gt; , or where it sits.<br>
&gt; &gt;<br>
&gt; &gt; You should likely found it in /usr/lib. It should be installed there by<br>
&gt; &gt; the libgdal1-XXXX (XXXX being the GDAL version of your Debian/Ubuntu<br>
&gt; &gt; install) package, which is itself a dependency that should be installed<br>
&gt; &gt; when installing<br>
&gt; &gt; gdal-bin.<br>
&gt; &gt;<br>
&gt; &gt; So if I have understood well your process, what you have done should<br>
&gt; &gt; work...<br>
&gt; &gt;<br>
&gt; &gt; One way to check is to &#39;ldd libgdaljni.so&#39; and do what is necessary to<br>
&gt; &gt; remove<br>
&gt; &gt; any &quot;not found&quot; dependency.<br>
&gt; &gt;<br>
&gt; &gt; &gt; Do I<br>
&gt; &gt; &gt; need to bundle this up as well?<br>
&gt; &gt;<br>
&gt; &gt; libgdal.so.1 definitely needs to be available for the bindings to work.<br>
&gt; &gt; Then it<br>
&gt; &gt; depends on the context if you suppose that the user has it installed<br>
&gt; &gt; through<br>
&gt; &gt; the package manager, or if you must bundle it yourself ala FWTools for<br>
&gt; &gt; Linux.<br>
&gt; &gt;<br>
&gt; &gt; &gt; More generally, what files do the bindings<br>
&gt; &gt; &gt; depend on to actually link to the gdal binaries?<br>
&gt; &gt;<br>
&gt; &gt; libgdaljni.so, libogrjni.so and etc.. will link to libgdal and its<br>
&gt; &gt; library dependencies (which depend on the exact GDAL build)<br>
&gt; &gt;<br>
&gt; &gt; &gt; (My final step, hopefully the working step, is to bundle up the<br>
&gt; &gt; &gt; (*.so.1) files, clean, and try again. This worked with OS X, but on OS<br>
&gt; &gt; &gt; X I never<br>
&gt; &gt;<br>
&gt; &gt; saw<br>
&gt; &gt;<br>
&gt; &gt; &gt; a reference to &quot;libgdal&quot;, without the jni extension.)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Sorry for such a long email. I plan on doing a blog post detailing all<br>
&gt; &gt; &gt; of this work, and putting the final jar file, with OS X and linux<br>
&gt; &gt;<br>
&gt; &gt; dependencies<br>
&gt; &gt;<br>
&gt; &gt; &gt; for 1.8, up in a maven repository after this all works out.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Best,<br>
&gt; &gt; &gt; Sam<br>
</div></div></blockquote></div><br></div></div>