VCityTeam / UD-Reproducibility

An Ubuntu based scafolding tool for deployment
2 stars 2 forks source link

3dCitydb-importer-exporter docker container no longer builds #32

Closed EricBoix closed 2 years ago

EricBoix commented 3 years ago

The problem

All the UD-SV project pipelines that compute 3DTiles tile-sets use (under the hood) a python wrapper of a docker containerized version of 3dCityDB-Importer-exporter, that in turn uses an ad-hoc Docker context. Alas this container of 3dCityDB-Importer-export is pretty unstable (and let's be fair with the TumGis folks, they do a hard and very useful job). We already had to fix it for Importer-exporter version 4.2.2 and hoped that this pinned version would stabilize things.

Alas again, as of June 2021, the gradle wrapper that builds the (java based) importer-exporter now fails with the message:

./gradlew installDist                                                                                                                                                                                   
#8 0.459 Downloading https://services.gradle.org/distributions/gradle-6.5.1-bin.zip                                                                                                                                
#8 1.471 .........10%..........20%..........30%..........40%.........50%..........60%..........70%..........80%.........90%..........100%
#8 7.213 Welcome to Gradle 6.5.1!
#8 7.213 [...snip...]
#8 50.06 FAILURE: Build failed with an exception.
#8 50.06 
#8 50.06 * Where:
#8 50.06 Build file '/build_tmp/impexp-client/build.gradle' line: 73
#8 50.06 
#8 50.06 * What went wrong:
#8 50.06 A problem occurred evaluating project ':impexp-client'.
#8 50.06 > Could not resolve all files for configuration ':impexp-client:runtimeClasspath'.
#8 50.06    > Could not resolve java3d:j3d-core:1.5.2.
#8 50.16      Required by:
#8 50.16          project :impexp-client > project :impexp-kml-collada-plugin
#8 50.16       > Could not resolve java3d:j3d-core:1.5.2.
#8 50.16          > Could not get resource 'https://dl.bintray.com/3dcitydb/maven/java3d/j3d-core/1.5.2/j3d-core-1.5.2.pom'.
#8 50.16             > Could not GET 'https://dl.bintray.com/3dcitydb/maven/java3d/j3d-core/1.5.2/j3d-core-1.5.2.pom'. Received status code 403 from server: Forbidden
#8 50.16    > Could not resolve java3d:j3d-core-utils:1.5.2.
#8 50.16      Required by:
#8 50.16          project :impexp-client > project :impexp-kml-collada-plugin
#8 50.16       > Could not resolve java3d:j3d-core-utils:1.5.2.
#8 50.16          > Could not get resource 'https://dl.bintray.com/3dcitydb/maven/java3d/j3d-core-utils/1.5.2/j3d-core-utils-1.5.2.pom'.
#8 50.16             > Could not GET 'https://dl.bintray.com/3dcitydb/maven/java3d/j3d-core-utils/1.5.2/j3d-core-utils-1.5.2.pom'. Received status code 403 from server: Forbidden

This is because maven cannot access resources like https://dl.bintray.com/3dcitydb/maven/java3d/j3d-core/1.5.2/j3d-core-1.5.2.pom' that were serviced by bintray.com, a service that was "sunset" (in order to migrate to another company: TANSTAAFL!).

Using "our" pinned version 4.2.2 of Importer-exporter is thus now a dead end. Oh well, even pinned versions of dependencies within docker containers is not bullet-proof specially when sub-dependencies rely on artifacts hosted somewhere in the fog/cloud...

What is the way out of this mess ?

Hummm, probably the solution is to catch up with the TumGis updates and switch to version 4.3.3 and hope for the best (that is that their usage use cases match with ours). And according to the first line caveat emptor of 3dcitydb-importer-exporter-docker

This is a pre-release. The image has not jet been tested and this documentation
 is incomplete and possibly wrong!

implying that robust hope might need the backup of black magic...

Be humble, cross fingers and jump...

CorentinGaut commented 2 years ago

Done, patched !