t-rex-tileserver / t-rex

t-rex is a vector tile server specialized on publishing MVT tiles from your own data
https://t-rex.tileserver.ch/
MIT License
545 stars 68 forks source link

[0.14.0] Debian Buster & Bullseye neither has libgdal.so.26 #259

Closed tobwen closed 2 years ago

tobwen commented 2 years ago

tl;dr

/usr/lib/libgdal.so.26 not found

analysis

The current build of t-rex v0.14, which has been packaged for Debian-based distributions, can't be run on Debian Buster or Debian Bullseye:

But the current build of t-rex is linked against /usr/lib/libgdal.so.26:

# ldd t_rex
        linux-vdso.so.1 (0x00007ffcdc5f9000)
        libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f91a6f5a000)
        libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f91a6c66000)
        libgdal.so.26 => not found
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f91a6c4c000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f91a6c2a000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f91a6ae6000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f91a6ade000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f91a6919000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f91a84b7000)
tobwen commented 2 years ago

I've just built it myself using the latest rust and stable packages from Bullseye. It works!

Details ``` ldd /usr/local/bin/t_rex linux-vdso.so.1 (0x00007ffe0db10000) libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f2ce623a000) libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f2ce5f46000) libgdal.so.28 => /lib/libgdal.so.28 (0x00007f2ce48f4000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f2ce48da000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2ce48b8000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2ce4774000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2ce476c000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2ce45a7000) /lib64/ld-linux-x86-64.so.2 (0x00007f2ce779a000) libheif.so.1 => /lib/x86_64-linux-gnu/libheif.so.1 (0x00007f2ce4513000) libarmadillo.so.10 => /lib/libarmadillo.so.10 (0x00007f2ce4501000) libpoppler.so.102 => /lib/x86_64-linux-gnu/libpoppler.so.102 (0x00007f2ce419a000) libjson-c.so.5 => /lib/x86_64-linux-gnu/libjson-c.so.5 (0x00007f2ce4187000) libfreexl.so.1 => /lib/x86_64-linux-gnu/libfreexl.so.1 (0x00007f2ce4179000) libqhull.so.8.0 => /lib/x86_64-linux-gnu/libqhull.so.8.0 (0x00007f2ce4104000) libgeos_c.so.1 => /lib/x86_64-linux-gnu/libgeos_c.so.1 (0x00007f2ce40c8000) libwebp.so.6 => /lib/x86_64-linux-gnu/libwebp.so.6 (0x00007f2ce405f000) libepsilon.so.1 => /lib/x86_64-linux-gnu/libepsilon.so.1 (0x00007f2ce4046000) libodbc.so.2 => /lib/x86_64-linux-gnu/libodbc.so.2 (0x00007f2ce3fd4000) libodbcinst.so.2 => /lib/x86_64-linux-gnu/libodbcinst.so.2 (0x00007f2ce3fba000) libkmlbase.so.1 => /lib/x86_64-linux-gnu/libkmlbase.so.1 (0x00007f2ce3f9d000) libkmldom.so.1 => /lib/x86_64-linux-gnu/libkmldom.so.1 (0x00007f2ce3efa000) libkmlengine.so.1 => /lib/x86_64-linux-gnu/libkmlengine.so.1 (0x00007f2ce3ec1000) libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f2ce3e92000) libxerces-c-3.2.so => /lib/x86_64-linux-gnu/libxerces-c-3.2.so (0x00007f2ce3af6000) libopenjp2.so.7 => /lib/x86_64-linux-gnu/libopenjp2.so.7 (0x00007f2ce3a97000) libnetcdf.so.18 => /lib/x86_64-linux-gnu/libnetcdf.so.18 (0x00007f2ce3966000) libhdf5_serial.so.103 => /lib/x86_64-linux-gnu/libhdf5_serial.so.103 (0x00007f2ce35e5000) libmfhdfalt.so.0 => /lib/libmfhdfalt.so.0 (0x00007f2ce35bb000) libdfalt.so.0 => /lib/libdfalt.so.0 (0x00007f2ce3512000) libogdi.so.4.1 => /lib/libogdi.so.4.1 (0x00007f2ce34f4000) libgif.so.7 => /lib/x86_64-linux-gnu/libgif.so.7 (0x00007f2ce34e7000) libcharls.so.2 => /lib/x86_64-linux-gnu/libcharls.so.2 (0x00007f2ce3495000) libjpeg.so.62 => /lib/x86_64-linux-gnu/libjpeg.so.62 (0x00007f2ce3411000) libgeotiff.so.5 => /lib/x86_64-linux-gnu/libgeotiff.so.5 (0x00007f2ce33db000) libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f2ce33a1000) libcfitsio.so.9 => /lib/x86_64-linux-gnu/libcfitsio.so.9 (0x00007f2ce3090000) libpq.so.5 => /lib/x86_64-linux-gnu/libpq.so.5 (0x00007f2ce303c000) libproj.so.19 => /lib/x86_64-linux-gnu/libproj.so.19 (0x00007f2ce2cc9000) libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f2ce2b86000) libtiff.so.5 => /lib/x86_64-linux-gnu/libtiff.so.5 (0x00007f2ce2b00000) libdeflate.so.0 => /lib/x86_64-linux-gnu/libdeflate.so.0 (0x00007f2ce2ae4000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2ce2ac7000) libspatialite.so.7 => /lib/x86_64-linux-gnu/libspatialite.so.7 (0x00007f2ce236b000) libdap.so.27 => /lib/x86_64-linux-gnu/libdap.so.27 (0x00007f2ce21c0000) libdapclient.so.6 => /lib/x86_64-linux-gnu/libdapclient.so.6 (0x00007f2ce2178000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f2ce2104000) libcurl-gnutls.so.4 => /lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f2ce206c000) libfyba.so.0 => /lib/x86_64-linux-gnu/libfyba.so.0 (0x00007f2ce2012000) libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f2ce1e68000) libmariadb.so.3 => /lib/x86_64-linux-gnu/libmariadb.so.3 (0x00007f2ce1e18000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f2ce1c4b000) libaom.so.0 => /lib/x86_64-linux-gnu/libaom.so.0 (0x00007f2ce17b3000) libde265.so.0 => /lib/x86_64-linux-gnu/libde265.so.0 (0x00007f2ce170b000) libx265.so.192 => /lib/x86_64-linux-gnu/libx265.so.192 (0x00007f2ce078c000) libdav1d.so.4 => /lib/x86_64-linux-gnu/libdav1d.so.4 (0x00007f2ce0658000) libblas.so.3 => /lib/x86_64-linux-gnu/libblas.so.3 (0x00007f2ce05eb000) liblapack.so.3 => /lib/x86_64-linux-gnu/liblapack.so.3 (0x00007f2cdff48000) libarpack.so.2 => /lib/x86_64-linux-gnu/libarpack.so.2 (0x00007f2cdfefe000) libsuperlu.so.5 => /lib/x86_64-linux-gnu/libsuperlu.so.5 (0x00007f2cdfe89000) libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f2cdfdc4000) libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f2cdfd7e000) liblcms2.so.2 => /lib/x86_64-linux-gnu/liblcms2.so.2 (0x00007f2cdfd1b000) libnss3.so => /lib/x86_64-linux-gnu/libnss3.so (0x00007f2cdfbc4000) libsmime3.so => /lib/x86_64-linux-gnu/libsmime3.so (0x00007f2cdfb95000) libnspr4.so => /lib/x86_64-linux-gnu/libnspr4.so (0x00007f2cdfb54000) libgeos-3.9.0.so => /lib/x86_64-linux-gnu/libgeos-3.9.0.so (0x00007f2cdf942000) libltdl.so.7 => /lib/x86_64-linux-gnu/libltdl.so.7 (0x00007f2cdf937000) libminizip.so.1 => /lib/x86_64-linux-gnu/libminizip.so.1 (0x00007f2cdf72b000) liburiparser.so.1 => /lib/x86_64-linux-gnu/liburiparser.so.1 (0x00007f2cdf70e000) libicuuc.so.67 => /lib/x86_64-linux-gnu/libicuuc.so.67 (0x00007f2cdf525000) libhdf5_serial_hl.so.100 => /lib/x86_64-linux-gnu/libhdf5_serial_hl.so.100 (0x00007f2cdf4fe000) libsz.so.2 => /lib/x86_64-linux-gnu/libsz.so.2 (0x00007f2cdf4f9000) libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f2cdf4e6000) libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f2cdf493000) libldap_r-2.4.so.2 => /lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f2cdf43d000) libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f2cdf360000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f2cdf338000) libjbig.so.0 => /lib/x86_64-linux-gnu/libjbig.so.0 (0x00007f2cdf12a000) librttopo.so.1 => /lib/x86_64-linux-gnu/librttopo.so.1 (0x00007f2cdf0b2000) libtirpc.so.3 => /lib/x86_64-linux-gnu/libtirpc.so.3 (0x00007f2cdf083000) libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f2cdf054000) libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f2cdf033000) librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f2cdf014000) libssh2.so.1 => /lib/x86_64-linux-gnu/libssh2.so.1 (0x00007f2cdefdf000) libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007f2cdefcb000) libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007f2cdef83000) libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f2cded81000) liblber-2.4.so.2 => /lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f2cded70000) libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f2cded62000) libfyut.so.0 => /lib/x86_64-linux-gnu/libfyut.so.0 (0x00007f2cded56000) libfygm.so.0 => /lib/x86_64-linux-gnu/libfygm.so.0 (0x00007f2cded4d000) libicui18n.so.65 => /lib/x86_64-linux-gnu/libicui18n.so.65 (0x00007f2cdea58000) libicuuc.so.65 => /lib/x86_64-linux-gnu/libicuuc.so.65 (0x00007f2cde875000) libicudata.so.65 => /lib/x86_64-linux-gnu/libicudata.so.65 (0x00007f2cdcdc2000) libnuma.so.1 => /lib/x86_64-linux-gnu/libnuma.so.1 (0x00007f2cdcdb4000) libgfortran.so.5 => /lib/x86_64-linux-gnu/libgfortran.so.5 (0x00007f2cdcafe000) libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f2cdcaf5000) libnssutil3.so => /lib/x86_64-linux-gnu/libnssutil3.so (0x00007f2cdcabf000) libplc4.so => /lib/x86_64-linux-gnu/libplc4.so (0x00007f2cdcab8000) libplds4.so => /lib/x86_64-linux-gnu/libplds4.so (0x00007f2cdcab3000) libicudata.so.67 => /lib/x86_64-linux-gnu/libicudata.so.67 (0x00007f2cdaf9a000) libaec.so.0 => /lib/x86_64-linux-gnu/libaec.so.0 (0x00007f2cdaf91000) libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f2cdaeb5000) libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f2cdae85000) libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f2cdae7f000) libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f2cdae70000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f2cdae56000) libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f2cdae39000) libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f2cdacb5000) libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007f2cdac6c000) libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f2cdabeb000) libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f2cdaacb000) libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f2cda997000) libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f2cda97f000) libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f2cda95c000) libquadmath.so.0 => /lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007f2cda913000) libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f2cda90c000) libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f2cda8e4000) libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007f2cda8d8000) ```
tobwen commented 2 years ago

This patch allows easier packaging for different Debian-based distributions:

https://github.com/t-rex-tileserver/t-rex/pull/261

pka commented 2 years ago

Thanks a lot for the PR! Will add it to the CI job.

pka commented 2 years ago

I've made a pre-release for testing, but it looks like uploading to Github replaced the ~ with .

tobwen commented 2 years ago

Sorry, it doesn't work that way. You need to build the Buster and Bullseye stuff under each distribution, not under Ubuntu Focal. I'll try to fix it for you ;)

tobwen commented 2 years ago

Sorry for the delay. My action works but doesn't include your changelog now. I might fix this in the next hours. Then it can replace your current release: https://github.com/tobwen/t-rex/commit/c715bc8024c7c59aae7e17fe30bb2afaadc96e7d#diff-53e0e1759d62bb2c60e86f9bf16cdcc99048213ea883af7900ffb7ddf2fd4655

The build of all three releases in parallel take about 10 minutens: Logs & artefacts: https://github.com/tobwen/t-rex/actions/runs/1250110887 Release: https://github.com/tobwen/t-rex/releases/tag/v0.14.1-pre6

I think of uploading some containers for cargo-deb, since it's really heavy to build on each run. But maybe it's way better to use normal packaging tools, based on a Debian control file. There are Github actions for this already. That would boost the whole process.

pka commented 2 years ago

I've adapted your CI work in f04ae2d. Thanks a lot!

New packages for testing are available: https://github.com/t-rex-tileserver/t-rex/releases/tag/v0.14.1-pre6

tobwen commented 2 years ago

Looks good. Thanks a lot.