CesiumGS/cdb-to-3dtiles

Make executable more portable

lilleyse opened this issue · 0 comments

There's a couple things we should eventually fix to make the CDBConverter executable more portable.

  • The docker built executable uses GLIBC_2.29 which only works on newer distros. Do we need to downgrade to C++11?
  • GDAL is not statically linked so it needs to be installed on the user's system
  • OpenGL is required through OpenSceneGraph and also needs to be installed on the user's system. Is it safe to statically link OpenGL system libraries?

ldd of the docker built executable:

    linux-vdso.so.1 (0x00007ffef390a000)
    libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f1f934a8000)
    libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f1f93423000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1f9341d000)
    libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007f1f93395000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1f93372000)
    libgdal.so.26 => /lib/libgdal.so.26 (0x00007f1f91feb000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1f91e08000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1f91cb9000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1f91c9e000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1f91aac000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f1f91a90000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f1f93b1f000)
    libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f1f919d8000)
    libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f1f919a2000)
    libarmadillo.so.9 => /lib/libarmadillo.so.9 (0x00007f1f9198f000)
    libpoppler.so.97 => /lib/x86_64-linux-gnu/libpoppler.so.97 (0x00007f1f9164a000)
    libjson-c.so.4 => /lib/x86_64-linux-gnu/libjson-c.so.4 (0x00007f1f91638000)
    libfreexl.so.1 => /lib/x86_64-linux-gnu/libfreexl.so.1 (0x00007f1f9162d000)
    libqhull.so.7 => /lib/x86_64-linux-gnu/libqhull.so.7 (0x00007f1f913d3000)
    libgeos_c.so.1 => /lib/x86_64-linux-gnu/libgeos_c.so.1 (0x00007f1f9138e000)
    libwebp.so.6 => /lib/x86_64-linux-gnu/libwebp.so.6 (0x00007f1f91125000)
    libepsilon.so.1 => /lib/x86_64-linux-gnu/libepsilon.so.1 (0x00007f1f9110b000)
    libodbc.so.2 => /lib/x86_64-linux-gnu/libodbc.so.2 (0x00007f1f91099000)
    libodbcinst.so.2 => /lib/x86_64-linux-gnu/libodbcinst.so.2 (0x00007f1f91081000)
    libkmlbase.so.1 => /lib/x86_64-linux-gnu/libkmlbase.so.1 (0x00007f1f91064000)
    libkmldom.so.1 => /lib/x86_64-linux-gnu/libkmldom.so.1 (0x00007f1f90fc1000)
    libkmlengine.so.1 => /lib/x86_64-linux-gnu/libkmlengine.so.1 (0x00007f1f90f87000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f1f90f59000)
    libxerces-c-3.2.so => /lib/x86_64-linux-gnu/libxerces-c-3.2.so (0x00007f1f90bc6000)
    libopenjp2.so.7 => /lib/x86_64-linux-gnu/libopenjp2.so.7 (0x00007f1f90b70000)
    libnetcdf.so.15 => /lib/x86_64-linux-gnu/libnetcdf.so.15 (0x00007f1f90a4b000)
    libhdf5_serial.so.103 => /lib/x86_64-linux-gnu/libhdf5_serial.so.103 (0x00007f1f906cc000)
    libmfhdfalt.so.0 => /lib/libmfhdfalt.so.0 (0x00007f1f906a2000)
    libdfalt.so.0 => /lib/libdfalt.so.0 (0x00007f1f905fd000)
    libogdi.so.4.1 => /lib/libogdi.so.4.1 (0x00007f1f905e1000)
    libgif.so.7 => /lib/x86_64-linux-gnu/libgif.so.7 (0x00007f1f905d6000)
    libCharLS.so.2 => /lib/x86_64-linux-gnu/libCharLS.so.2 (0x00007f1f90587000)
    libgeotiff.so.5 => /lib/x86_64-linux-gnu/libgeotiff.so.5 (0x00007f1f90550000)
    libtiff.so.5 => /lib/x86_64-linux-gnu/libtiff.so.5 (0x00007f1f904cf000)
    libcfitsio.so.8 => /lib/x86_64-linux-gnu/libcfitsio.so.8 (0x00007f1f901d0000)
    libpq.so.5 => /lib/x86_64-linux-gnu/libpq.so.5 (0x00007f1f90180000)
    libproj.so.15 => /lib/x86_64-linux-gnu/libproj.so.15 (0x00007f1f8fe91000)
    libdapclient.so.6 => /lib/x86_64-linux-gnu/libdapclient.so.6 (0x00007f1f8fe49000)
    libdap.so.25 => /lib/x86_64-linux-gnu/libdap.so.25 (0x00007f1f8fca9000)
    libspatialite.so.7 => /lib/x86_64-linux-gnu/libspatialite.so.7 (0x00007f1f8f71a000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f1f8f6a7000)
    libcurl-gnutls.so.4 => /lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f1f8f618000)
    libfyba.so.0 => /lib/x86_64-linux-gnu/libfyba.so.0 (0x00007f1f8f5c0000)
    libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f1f8f406000)
    libmysqlclient.so.21 => /lib/x86_64-linux-gnu/libmysqlclient.so.21 (0x00007f1f8ed0f000)
    libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f1f8ea39000)
    libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f1f8e8fc000)
    libblas.so.3 => /lib/x86_64-linux-gnu/libblas.so.3 (0x00007f1f8e88f000)
    liblapack.so.3 => /lib/x86_64-linux-gnu/liblapack.so.3 (0x00007f1f8e1eb000)
    libarpack.so.2 => /lib/x86_64-linux-gnu/libarpack.so.2 (0x00007f1f8e1a1000)
    libsuperlu.so.5 => /lib/x86_64-linux-gnu/libsuperlu.so.5 (0x00007f1f8e131000)
    libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f1f8e072000)
    libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f1f8e02b000)
    liblcms2.so.2 => /lib/x86_64-linux-gnu/liblcms2.so.2 (0x00007f1f8dfd0000)
    libnss3.so => /lib/x86_64-linux-gnu/libnss3.so (0x00007f1f8de81000)
    libsmime3.so => /lib/x86_64-linux-gnu/libsmime3.so (0x00007f1f8de4f000)
    libnspr4.so => /lib/x86_64-linux-gnu/libnspr4.so (0x00007f1f8de0f000)
    libgeos-3.8.0.so => /lib/x86_64-linux-gnu/libgeos-3.8.0.so (0x00007f1f8dc46000)
    libltdl.so.7 => /lib/x86_64-linux-gnu/libltdl.so.7 (0x00007f1f8dc3b000)
    libminizip.so.1 => /lib/x86_64-linux-gnu/libminizip.so.1 (0x00007f1f8da30000)
    liburiparser.so.1 => /lib/x86_64-linux-gnu/liburiparser.so.1 (0x00007f1f8da0f000)
    libicuuc.so.66 => /lib/x86_64-linux-gnu/libicuuc.so.66 (0x00007f1f8d829000)
    libhdf5_serial_hl.so.100 => /lib/x86_64-linux-gnu/libhdf5_serial_hl.so.100 (0x00007f1f8d802000)
    libsz.so.2 => /lib/x86_64-linux-gnu/libsz.so.2 (0x00007f1f8d7fd000)
    libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f1f8d754000)
    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f1f8d729000)
    libjbig.so.0 => /lib/x86_64-linux-gnu/libjbig.so.0 (0x00007f1f8d51b000)
    libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f1f8d508000)
    libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f1f8d475000)
    libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f1f8d428000)
    libldap_r-2.4.so.2 => /lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f1f8d3d2000)
    libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f1f8d2a7000)
    libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f1f8d27e000)
    libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f1f8d25d000)
    librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f1f8d23d000)
    libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4 (0x00007f1f8d1cf000)
    libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007f1f8d1ba000)
    libnettle.so.7 => /lib/x86_64-linux-gnu/libnettle.so.7 (0x00007f1f8d180000)
    libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f1f8cfaa000)
    liblber-2.4.so.2 => /lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f1f8cf99000)
    libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f1f8cf8b000)
    libfyut.so.0 => /lib/x86_64-linux-gnu/libfyut.so.0 (0x00007f1f8cf7f000)
    libfygm.so.0 => /lib/x86_64-linux-gnu/libfygm.so.0 (0x00007f1f8cf74000)
    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f1f8cf58000)
    libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f1f8cf2e000)
    libgfortran.so.5 => /lib/x86_64-linux-gnu/libgfortran.so.5 (0x00007f1f8cc66000)
    libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f1f8cc5d000)
    libnssutil3.so => /lib/x86_64-linux-gnu/libnssutil3.so (0x00007f1f8cc28000)
    libplc4.so => /lib/x86_64-linux-gnu/libplc4.so (0x00007f1f8cc21000)
    libplds4.so => /lib/x86_64-linux-gnu/libplds4.so (0x00007f1f8cc1c000)
    libicudata.so.66 => /lib/x86_64-linux-gnu/libicudata.so.66 (0x00007f1f8b15b000)
    libaec.so.0 => /lib/x86_64-linux-gnu/libaec.so.0 (0x00007f1f8b152000)
    libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f1f8b073000)
    libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f1f8b042000)
    libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f1f8b03b000)
    libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f1f8b02c000)
    libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f1f8b00f000)
    libgssapi.so.3 => /lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007f1f8afca000)
    libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f1f8ae46000)
    libhogweed.so.5 => /lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007f1f8ae0e000)
    libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f1f8ad8a000)
    libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f1f8ac54000)
    libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f1f8ac3e000)
    libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f1f8ac19000)
    libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f1f8ac13000)
    libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f1f8ac0b000)
    libquadmath.so.0 => /lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007f1f8abc1000)
    libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f1f8abba000)
    libheimntlm.so.0 => /lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007f1f8abac000)
    libkrb5.so.26 => /lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007f1f8ab19000)
    libasn1.so.8 => /lib/x86_64-linux-gnu/libasn1.so.8 (0x00007f1f8aa72000)
    libhcrypto.so.4 => /lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007f1f8aa3a000)
    libroken.so.18 => /lib/x86_64-linux-gnu/libroken.so.18 (0x00007f1f8aa21000)
    libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007f1f8aa15000)
    libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f1f8a9f9000)
    libwind.so.0 => /lib/x86_64-linux-gnu/libwind.so.0 (0x00007f1f8a9cf000)
    libheimbase.so.1 => /lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007f1f8a9bd000)
    libhx509.so.5 => /lib/x86_64-linux-gnu/libhx509.so.5 (0x00007f1f8a96f000)
    libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f1f8a934000)