[vlc-devel] [PATCHv3 4/7] contrib: add cargo

Thomas Guillem thomas at gllm.fr
Fri Sep 4 17:02:51 CEST 2020


Hello,

"$(CARGO) install cargo-c" is failing on lot of CIs, and could possibly fail on dev systems because of a missing libssl-dev (on HOST). Indeed, cargo-c build depends on cargo that depends on libssl-dev.

So, we have 3 solutions:

 - Ask upstream cargo to have a way to build a vendor-only cargo that does not require openssl.
But I'm not sure if it will be accepted and it won't be available soon.

 - Update all videolan dockers images to install libssl-dev. In that case, we ignore users without ssl-dev and not using docker.

 - Use binaries from the github release page (deployed on each release) https://github.com/lu-zero/cargo-c/releases/tag/v0.6.12 There is one binary for windows, mac and linux. I don't think it is an issue to not compile this tool, this is like download a toolchain, no?

Input very welcome,

Best,
Thomas


On Thu, Aug 27, 2020, at 16:44, Thomas Guillem wrote:
> From: Kartik Ohri <kartikohri13 at gmail.com>
> 
> This will install rustup, cargo, and cargo-c into contrib/bin/.cargo
> This installation will be used by default for all rust contrib builds.
> 
> The correct cargo target will be automatically installed when needed.
> ---
>  contrib/src/cargo/SHA512SUMS |  1 +
>  contrib/src/cargo/rules.mak  | 26 ++++++++++++++++++++++++++
>  2 files changed, 27 insertions(+)
>  create mode 100644 contrib/src/cargo/SHA512SUMS
>  create mode 100644 contrib/src/cargo/rules.mak
> 
> diff --git a/contrib/src/cargo/SHA512SUMS b/contrib/src/cargo/SHA512SUMS
> new file mode 100644
> index 00000000000..6101c68ba6c
> --- /dev/null
> +++ b/contrib/src/cargo/SHA512SUMS
> @@ -0,0 +1 @@
> +14a978a3cf699956722d8443070b9f8a043f1252cc1a7ed300b14637a0e6d654f34088d4403790c676500cbab327e30fdb7f81be0b9bde29e552143f26912ac7  rustup-1.22.1.tar.gz
> diff --git a/contrib/src/cargo/rules.mak b/contrib/src/cargo/rules.mak
> new file mode 100644
> index 00000000000..00060356a22
> --- /dev/null
> +++ b/contrib/src/cargo/rules.mak
> @@ -0,0 +1,26 @@
> +# cargo/cargo-c installation via rustup
> +
> +RUSTUP_VERSION=1.22.1
> +RUSTUP_URL=https://github.com/rust-lang/rustup/archive/$(RUSTUP_VERSION).tar.gz
> +
> +RUSTUP = RUSTUP_HOME=$(CARGO_HOME) $(CARGO_HOME)/bin/rustup
> +
> +$(TARBALLS)/rustup-$(RUSTUP_VERSION).tar.gz:
> +	$(call download_pkg,$(RUSTUP_URL),rustup)
> +
> +.sum-cargo: rustup-$(RUSTUP_VERSION).tar.gz
> +
> +rustup: rustup-$(RUSTUP_VERSION).tar.gz .sum-cargo
> +	$(UNPACK)
> +	$(MOVE)
> +
> +# When needed (when we have a Rust dependency not using cargo-c), the 
> cargo-c
> +# installation should go in a different package
> +.cargo: rustup
> +	cd $< && RUSTUP_INIT_SKIP_PATH_CHECK=yes \
> +	  RUSTUP_HOME=$(CARGO_HOME) CARGO_HOME=$(CARGO_HOME) \
> +	  ./rustup-init.sh --no-modify-path -y
> +	$(RUSTUP) target add $(RUST_TARGET)
> +	$(RUSTUP) default stable
> +	$(CARGO) install cargo-c
> +	touch $@
> -- 
> 2.28.0
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list