Error on cargo install
mathiaHT opened this issue · comments
Hi I am unable to install a package whith Cargo.toml:
[features]
bundled = ["jq-sys/bundled"]
[dependencies]
amqp_worker = "0.9"
futures = "^0.1"
jq-rs = "0.4.1"
jq-sys = "0.2.2"
lapin-futures = "^0.28"
log = "^0.4"
semver = "^0.9"
serde = "^1.0"
serde_json = "^1.0"
simple_logger = "1.0.1"
[build-dependencies]
built = "0.4"
And Dockerfile:
FROM rust:1.41-stretch as builder
ADD . /src
WORKDIR /src
RUN apt-get update && apt install -y \
gcc \
make \
autotools-dev \
dh-autoreconf \
libjq1 \
libjq-dev \
libonig4 \
libonig-dev
ENV JQ_LIB_DIR=/usr/bin/jq
RUN cargo build --verbose --release --features "bundled" && \
cargo install --path .
I obtain:
error: linking with `cc` failed: exit code: 1
|
= note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.0.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.1.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.10.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.11.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.12.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.13.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.14.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.15.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.2.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.3.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.4.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.5.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.6.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.7.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.8.rcgu.o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.rs_json_transform_worker.1jydm9k0-cgu.9.rcgu.o" "-o" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec" "/src/target/release/deps/rs_json_transform_worker-f712a19b63284dec.149c2c2sbvffvqyp.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/src/target/release/deps" "-L" "/src/target/release/build/backtrace-sys-f92faf99cb28a25f/out" "-L" "/usr/bin/jq" "-L" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/src/target/release/deps/libjq_rs-dd7c52394aafb36c.rlib" "/src/target/release/deps/libjq_sys-22927a2912bf7ec0.rlib" "/src/target/release/deps/libamqp_worker-a6cb4dda25160905.rlib" "/src/target/release/deps/libtokio-e77bb073669fd0b8.rlib" "/src/target/release/deps/libtokio_uds-662a37ccaf04eeb0.rlib" "/src/target/release/deps/libmio_uds-c57404f377e19456.rlib" "/src/target/release/deps/libtokio_udp-5fd3f1736590ed72.rlib" "/src/target/release/deps/libtokio_timer-d059c45c3208e5fa.rlib" "/src/target/release/deps/libtokio_tcp-7f70d01b49689829.rlib" "/src/target/release/deps/libtokio_reactor-4b82bc7a381aa5ad.rlib" "/src/target/release/deps/libtokio_sync-d49e6a3eb28f921d.rlib" "/src/target/release/deps/libparking_lot-ce1df662a1a6e187.rlib" "/src/target/release/deps/libparking_lot_core-cc2d12b99ed42c31.rlib" "/src/target/release/deps/libsmallvec-7dcc9e93533da7f9.rlib" "/src/target/release/deps/libtokio_fs-95233b03a028aee5.rlib" "/src/target/release/deps/libtokio_threadpool-bf2e10058ec7c880.rlib" "/src/target/release/deps/libcrossbeam_queue-465e4d7595cc18f9.rlib" "/src/target/release/deps/libcrossbeam_deque-b331439678d01e7b.rlib" "/src/target/release/deps/libcrossbeam_epoch-2cd00806931b2197.rlib" "/src/target/release/deps/libmemoffset-228704e32cc1753f.rlib" "/src/target/release/deps/libtokio_current_thread-807a2b6efa727625.rlib" "/src/target/release/deps/libtokio_executor-46a35b2c80c10b47.rlib" "/src/target/release/deps/libtokio_codec-bbdf4291362d10b7.rlib" "/src/target/release/deps/libtokio_io-bd9466d775891b6b.rlib" "/src/target/release/deps/libbytes-d43d830d2c2f91a3.rlib" "/src/target/release/deps/libbyteorder-5d1e68bc5920c95e.rlib" "/src/target/release/deps/libfailure-a5def34786af8ecc.rlib" "/src/target/release/deps/libbacktrace-ebd9bffb745ea963.rlib" "/src/target/release/deps/libbacktrace_sys-8b240ac2db2432e9.rlib" "/src/target/release/deps/librustc_demangle-ee4b41a62d54630a.rlib" "/src/target/release/deps/libenv_logger-ea7d12c7978c29c3.rlib" "/src/target/release/deps/libtermcolor-f87b4ee5cf2bcbc4.rlib" "/src/target/release/deps/libatty-bef9781a4d2a91bb.rlib" "/src/target/release/deps/libhumantime-ae7c39e05c332ad6.rlib" "/src/target/release/deps/libquick_error-14ca865cf2de8a6f.rlib" "/src/target/release/deps/libregex-03a6d5412a528a0c.rlib" "/src/target/release/deps/libthread_local-14bb3527a6820ec7.rlib" "/src/target/release/deps/libregex_syntax-d5167046a7254ebb.rlib" "/src/target/release/deps/libaho_corasick-9450a501e1007bda.rlib" "/src/target/release/deps/libsemver-00211a92a23e5cdc.rlib" "/src/target/release/deps/libsemver_parser-5c3bc1b074685133.rlib" "/src/target/release/deps/liblapin_futures-8033c194b90f841b.rlib" "/src/target/release/deps/libfutures-bfffe0db8dae843c.rlib" "/src/target/release/deps/liblapin-64e084e383b8e363.rlib" "/src/target/release/deps/libparking_lot-f92b69deb426c359.rlib" "/src/target/release/deps/libparking_lot_core-68864aef65fe9a98.rlib" "/src/target/release/deps/liblock_api-9a76f2ea8b4afdd1.rlib" "/src/target/release/deps/libscopeguard-8b6570b7835569fc.rlib" "/src/target/release/deps/libcrossbeam_channel-f5d2a4d535c978e6.rlib" "/src/target/release/deps/libmaybe_uninit-c9ef8bacf1c3e069.rlib" "/src/target/release/deps/libcrossbeam_utils-f0e7bd7ffb5edb55.rlib" "/src/target/release/deps/libamq_protocol-842cf96c4f7fe693.rlib" "/src/target/release/deps/libamq_protocol_tcp-2c51e2e59dd4e4fc.rlib" "/src/target/release/deps/libtcp_stream-a6bd894d591e9bf4.rlib" "/src/target/release/deps/libamq_protocol_uri-9872dbe7e0823259.rlib" "/src/target/release/deps/libamq_protocol_types-8990ff9ef3cf3f4b.rlib" "/src/target/release/deps/libnom-83c4d91a15a7230a.rlib" "/src/target/release/deps/liblexical_core-8745eefe299fbc03.rlib" "/src/target/release/deps/libarrayvec-077c8253ce4bf0d2.rlib" "/src/target/release/deps/libnodrop-a4c4fd02022a10c4.rlib" "/src/target/release/deps/libstatic_assertions-2fe579936a49a34a.rlib" "/src/target/release/deps/libcookie_factory-11143f29f3408287.rlib" "/src/target/release/deps/libreqwest-1447413bae78dd8a.rlib" "/src/target/release/deps/libhyper_tls-ca828d9717d00a68.rlib" "/src/target/release/deps/libtokio_tls-ffb0677950bdfa09.rlib" "/src/target/release/deps/libencoding_rs-be9f225e0e58d95e.rlib" "/src/target/release/deps/libserde_urlencoded-9aabdeab4b893584.rlib" "/src/target/release/deps/libdtoa-d83f4519c8f1b001.rlib" "/src/target/release/deps/libbase64-1c327e83dfdfb863.rlib" "/src/target/release/deps/libmime_guess-51ee593c4f721f3e.rlib" "/src/target/release/deps/libunicase-524880f49fad8fc9.rlib" "/src/target/release/deps/libmime-a3be6936ebcb0eb2.rlib" "/src/target/release/deps/libnative_tls-b1f85f34f63c8637.rlib" "/src/target/release/deps/libopenssl_probe-cb5197c229dd2feb.rlib" "/src/target/release/deps/libopenssl-4869ea7fb473ec65.rlib" "/src/target/release/deps/libopenssl_sys-6b31baf8c6cdeb4c.rlib" "/src/target/release/deps/libforeign_types-71d106b1f1b05b6c.rlib" "/src/target/release/deps/libforeign_types_shared-7b8f5865fa38e6f9.rlib" "/src/target/release/deps/libbitflags-9cba7406c419bacc.rlib" "/src/target/release/deps/libhyper-90a2806b1334aa56.rlib" "/src/target/release/deps/libhttparse-fa4747cbf123900f.rlib" "/src/target/release/deps/libwant-c1b8b0f1128e8a32.rlib" "/src/target/release/deps/libtry_lock-13d5aa9a7218fa3f.rlib" "/src/target/release/deps/libh2-713cef7a5c8e5331.rlib" "/src/target/release/deps/libindexmap-ef05c42572671c43.rlib" "/src/target/release/deps/libtokio_util-3247f3460f595b5c.rlib" "/src/target/release/deps/libfutures_sink-d8d9fccf6142c9d7.rlib" "/src/target/release/deps/libtower_service-73fa8fdee71cdc37.rlib" "/src/target/release/deps/libfutures_channel-5da7674068f520b4.rlib" "/src/target/release/deps/libpin_project-c4b0ecbad9be91ca.rlib" "/src/target/release/deps/libtokio-04532cf64cd857fc.rlib" "/src/target/release/deps/libnum_cpus-bd3bab01073a3f61.rlib" "/src/target/release/deps/libmio-dd5d063d71ec10d8.rlib" "/src/target/release/deps/libiovec-b29563ec5ae2c38e.rlib" "/src/target/release/deps/libnet2-ed9e7be51048dc08.rlib" "/src/target/release/deps/libpin_project_lite-79ca06bef4a9a925.rlib" "/src/target/release/deps/libhttp_body-f2630f4e3731a812.rlib" "/src/target/release/deps/libfutures_util-18ac229d95c9044a.rlib" "/src/target/release/deps/libmemchr-72945e78606c0ce0.rlib" "/src/target/release/deps/libfutures_io-9342c110b75514e4.rlib" "/src/target/release/deps/libslab-d2a8043b090d2c3f.rlib" "/src/target/release/deps/libfutures_task-3c1fec4f10726177.rlib" "/src/target/release/deps/libpin_utils-0cd21be241ac83e0.rlib" "/src/target/release/deps/libfutures_core-991b7d2843c13ca4.rlib" "/src/target/release/deps/liblazy_static-8c813c0ac9c45d96.rlib" "/src/target/release/deps/liburl-5c1764b6739e2c41.rlib" "/src/target/release/deps/libpercent_encoding-1ebb2c24584d2044.rlib" "/src/target/release/deps/libidna-a726e0e650f9351a.rlib" "/src/target/release/deps/libunicode_normalization-4350ebdf51cd8247.rlib" "/src/target/release/deps/libsmallvec-890ee301c8521741.rlib" "/src/target/release/deps/libunicode_bidi-b94e4feae7d68733.rlib" "/src/target/release/deps/libmatches-0457502822b8add9.rlib" "/src/target/release/deps/libhttp-e9776be99c613602.rlib" "/src/target/release/deps/libbytes-b3b4c496c3cefe8c.rlib" "/src/target/release/deps/libfnv-157b9523e78005ac.rlib" "/src/target/release/deps/libchrono-e87ae4b89da6aa58.rlib" "/src/target/release/deps/libnum_integer-652fff7946c46509.rlib" "/src/target/release/deps/libnum_traits-ddc02fece70745ab.rlib" "/src/target/release/deps/libtime-a792785bf5d10a0c.rlib" "/src/target/release/deps/liblibc-16fe6977835b6a49.rlib" "/src/target/release/deps/libserde_json-69e4511c1f5473b7.rlib" "/src/target/release/deps/libryu-25e926e594a16581.rlib" "/src/target/release/deps/libitoa-9fc6e21f244352be.rlib" "/src/target/release/deps/libserde-beff96cfc1afc390.rlib" "/src/target/release/deps/liblog-f748d92ef4cc4c38.rlib" "/src/target/release/deps/libcfg_if-4b77ea5a5880ba83.rlib" "-Wl,--start-group" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-a2a766dac798f7cf.rlib" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-a85f7d74095723ea.rlib" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-4ed27bd07d52ec56.rlib" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-4c323f23cb5b2482.rlib" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-2e6de4a7e177acee.rlib" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-80571e4a1921bf51.rlib" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-1772b65d0f093257.rlib" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-37ebc98487d077f2.rlib" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-fa7cce2e70cf53f1.rlib" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-a60fcf932d3053cd.rlib" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-da705bf7dd482e5a.rlib" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-8a2e90edf20d7f0b.rlib" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-4888dfadf2ff3780.rlib" "-Wl,--end-group" "/usr/local/rustup/toolchains/1.41.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-a0ee5f37b860b20a.rlib" "-Wl,-Bdynamic" "-ljq" "-lonig" "-lssl" "-lcrypto" "-lutil" "-ldl" "-lutil" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
= note: /src/target/release/deps/libjq_rs-dd7c52394aafb36c.rlib(jq_rs-dd7c52394aafb36c.jq_rs.e15hqyoz-cgu.0.rcgu.o): In function `jq_rs::jq::Jq::execute':
jq_rs.e15hqyoz-cgu.0:(.text._ZN5jq_rs2jq2Jq7execute17hd1819f2293bf4eb2E+0x4b4): undefined reference to `jq_halted'
jq_rs.e15hqyoz-cgu.0:(.text._ZN5jq_rs2jq2Jq7execute17hd1819f2293bf4eb2E+0x4c1): undefined reference to `jq_get_exit_code'
collect2: error: ld returned 1 exit status
error: aborting due to previous error
error: failed to compile `rs_json_transform_worker v0.1.0 (/src)`, intermediate artifacts can be found at `/src/target`
Caused by:
could not compile `rs_json_transform_worker`.
To learn more, run the command again with --verbose.
I am new in rust, using correctly the feature did the job ^^
I'll try and reproduce/debug this a bit over the next couple days, but off the top of my head: it looks like you're using the "bundled" feature which should mean you shouldn't need to specify the JQ_LIB_DIR
var since libjq should be statically linked to your program.
From the error output, it looks like there's a library mismatch somehow somewhere - it's complaining about symbols that were introduced in v1.6, but were missing in v1.5.
Now I import jq-sys with:
jq-rs = {version = "0.4.1", features = ["bundled"]}
But yes, if I intend to use the JQ_LIB_DIR I definitively going to use jq 1.6
Glad you're unblocked.
I filed #25 and will aim to show some examples of how to configure/depend on this crate. I think Dockerfile
examples should be a part of it too.
Perhaps non-obvious, we get good results compiling jq from source ourselves in our Dockerfile (caching the result), and linking to it statically for our production deploys, and dynamically during development. That's probably an advanced pattern worth demonstrating.