From aa6702aa1cb9a1f2a72446cd282dc607619539f8 Mon Sep 17 00:00:00 2001 From: James Ring Date: Tue, 30 Jul 2019 13:30:31 -0700 Subject: [PATCH] Place native libraries in the location expected by TF Java The Java loader now expects libtensorflow_framework.so to be named libtensorflow_framework.so.. This change alters the Maven release process to honor that expectation. PiperOrigin-RevId: 260783375 --- tensorflow/java/maven/run_inside_container.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tensorflow/java/maven/run_inside_container.sh b/tensorflow/java/maven/run_inside_container.sh index 27ae193900f..2598eb0e457 100644 --- a/tensorflow/java/maven/run_inside_container.sh +++ b/tensorflow/java/maven/run_inside_container.sh @@ -85,6 +85,21 @@ download_libtensorflow_jni() { curl -L "${RELEASE_URL_PREFIX}/libtensorflow_jni-cpu-darwin-x86_64-${TF_VERSION}.tar.gz" | tar -xvz -C darwin-x86_64 curl -L "${RELEASE_URL_PREFIX}/libtensorflow_jni-cpu-windows-x86_64-${TF_VERSION}.zip" -o /tmp/windows.zip + # Get rid of symlinks, those are not supported by jar. As of tensorflow 1.14, + # libtensorflow_jni.so expects to find + # libtensorflow_framework.so.. + MAJOR_VERSION="${TF_VERSION/\.*/}" + + FRAMEWORK_SO="$(readlink -f linux-x86_64/libtensorflow_framework.so)" + rm linux-x86_64/libtensorflow_framework.so + rm "linux-x86_64/libtensorflow_framework.so.${MAJOR_VERSION}" + mv "${FRAMEWORK_SO}" "linux-x86_64/libtensorflow_framework.so.${MAJOR_VERSION}" + + FRAMEWORK_DYLIB="$(readlink -f darwin-x86_64/libtensorflow_framework.dylib)" + rm darwin-x86_64/libtensorflow_framework.dylib + rm "darwin-x86_64/libtensorflow_framework.${MAJOR_VERSION}.dylib" + mv "${FRAMEWORK_DYLIB}" "darwin-x86_64/libtensorflow_framework.${MAJOR_VERSION}.dylib" + unzip /tmp/windows.zip -d windows-x86_64 rm -f /tmp/windows.zip # Updated timestamps seem to be required to get Maven to pick up the file.