-
Notifications
You must be signed in to change notification settings - Fork 6.8k
[clojure-package] On modern Ubuntu, scala package cannot be loaded without legacy libcurl #12822
Comments
If you got a second, you can have a look at https://github.com/apache/incubator-mxnet/blob/c9a9db6ba04ecc1ee395e74524ccdcb82b528bc3/ci/docker/runtime_functions.sh#L774 https://github.com/apache/incubator-mxnet/blob/master/ci/docker/Dockerfile.build.ubuntu_cpu to see how we are building and running our CI environment. We should also be installing libcurl there. Maybe you can check which version we are using there and whether it suits your need. Please note that the CI and the distributed scala/clojure package are different. |
@kohr-h Thank you for posting your issue. We will look into the |
@marcoabreu I checked that file and also looked around a bit. Lots of scripts install |
Interesting analysis, thank you! @nswamy can you take it from here? |
Thanks for your question @kohr-h. One question, how do you build your package? From Maven or build from source? If you grab the package (Scala only) from Maven, we use the following configuration for publishing
@gigasquid for visibility 😄 |
For now I just let
Hm, that's the RPM name of the package, so does that mean that you build with CentOS or something? Depending on the distro version, that might refer to the legacy version of the |
Hi @kohr-h - trying to catch up here, are you using the clojure-mxnet jar on maven that has the native deps baked in https://search.maven.org/search?q=clojure-mxnet or are you building from source and then running (meaning doing |
@lanking520 I think this issue is related gigasquid/clojure-mxnet#2 - it lists libucurl3 as a dep needed
|
Hi @gigasquid, I used the prebuilt jar for everything, no custom builds were involved. |
To be precise, here's the relevant part of my [org.apache.mxnet.contrib.clojure/clojure-mxnet-linux-cpu "1.3.0"] Reminds me, the package spec on in the instructions seems to be outdated. I can file a PR. |
@kohr-h With the 1.4 release, we statically link the dependencies such as curl that are used by the maven scala package. You shouldn't have this problem with the new version |
Sounds good @zachgk. Unfortunately I don't have time to test it myself, so I'll just close the issue. |
Description
The Scala package as pulled in by the Clojure package has a dependency on legacy
libcurl
(on Ubuntu:libcurl3
) and doesn't work with the current version (on Ubuntu:libcurl4
).Environment info (Required)
Only relevant part:
Package used (Python/R/Scala/Julia): Clojure
For Scala user, please provide: (Okay, just in case)
Java version:
openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2, mixed mode)
Maven version: nil
Scala runtime if applicable: nil
Error Message:
Steps to reproduce
Follow the installation instructions in the clojure package README.
What have you tried to solve it?
For projects that use Leiningen, there's a workaround that nicely integrates with the CIDER REPL in Emacs:
clojure-mxnet
dependency.libcurl3
package:mkdir -p tmp && dpkg-deb -R libcurl3_7.58.0-2ubuntu2_amd64.deb tmp/
resources
, and remove the temporary directory:cp tmp/usr/lib/x86_64-linux-gnu/libcurl.so.4 resources && rm tmp -r
project.clj
file, add the following:This works better than
libcurl3
system-wide because it blockslibcurl4
, which is a dependency of thecurl
packageLD_LIBRARY_PATH
since it might break other packages that now find the wrong shared libraryHowever, it would be much better if this problem didn't exist in the first place. What would it take to use
libcurl4
instead? Maybe the Scala package Dockerfile needs an update?The text was updated successfully, but these errors were encountered: