[vlc-devel] [PATCH] [RFC]: rav1e/rust: handle rustup/cargo from contribs (to fixup)

Alexandre Janniaux ajanni at videolabs.io
Fri Aug 21 14:33:24 CEST 2020


Hi,

I like the idea much more than the previous iteration, but it
should probably mention what is installed in details and
pinpoint toolchain + std versions.

Regards,
--
Alexandre Janniaux
Videolabs

On Fri, Aug 21, 2020 at 02:16:46PM +0200, Thomas Guillem wrote:
> Instead of installing rustup from extra/tools and installing cargo with all
> common targets. Install only rustup and cargo with the correct target when
> needed by a contrib package.
>
> The rustup/cargo installation is in contrib/bin/.cargo. When a package requires
> cargo from a contrib (like ".rav1e: rav1e .cargo-c"), rustup will be installed
> if needed, and the correct target will be installed from cargo..
>
> For now, every archs use a common rustup/cargo installation but this can be
> easily changed (use contrib/bin/.$(ARCH)-cargo instead of contrib/bin/.cargo).
>
> This is a RFC. If this patch is accepted, the "Add rustup to extras/tools"
> commit be replaced by this one.
> ---
>  contrib/src/main.mak          |  6 ++++--
>  contrib/src/rav1e/rules.mak   |  5 ++---
>  contrib/src/rustup/SHA512SUMS |  1 +
>  contrib/src/rustup/rules.mak  | 27 +++++++++++++++++++++++++++
>  extras/tools/SHA512SUMS       |  1 -
>  extras/tools/bootstrap        |  1 -
>  extras/tools/packages.mak     |  3 ---
>  extras/tools/tools.mak        | 24 ------------------------
>  8 files changed, 34 insertions(+), 34 deletions(-)
>  create mode 100644 contrib/src/rustup/SHA512SUMS
>  create mode 100644 contrib/src/rustup/rules.mak
>
> diff --git a/contrib/src/main.mak b/contrib/src/main.mak
> index 8deff6c6b57..49458be848b 100644
> --- a/contrib/src/main.mak
> +++ b/contrib/src/main.mak
> @@ -453,8 +453,10 @@ else ifdef HAVE_LINUX
>  RUST_TARGET = $(ARCH)-unknown-linux-gnu
>  endif
>
> -CARGO = cargo cinstall --target=$(RUST_TARGET) --prefix=$(PREFIX) \
> -    --library-type staticlib --release
> +CARGO_HOME = $(BUILDBINDIR)/.cargo
> +CARGO = $(CARGO_HOME)/bin/cargo
> +CARGOC_INSTALL = $(CARGO) cinstall \
> +	--target=$(RUST_TARGET) --prefix=$(PREFIX) --library-type staticlib --release
>
>  ifdef GPL
>  REQUIRE_GPL =
> diff --git a/contrib/src/rav1e/rules.mak b/contrib/src/rav1e/rules.mak
> index b20ca17284c..a5d18c67976 100644
> --- a/contrib/src/rav1e/rules.mak
> +++ b/contrib/src/rav1e/rules.mak
> @@ -20,8 +20,7 @@ rav1e: rav1e-$(RAV1E_VERSION).tar.gz .sum-rav1e
>  	$(UNPACK)
>  	$(MOVE)
>
> -.rav1e: rav1e
> -	cd $< && RUSTFLAGS="-C lto -C panic=abort -C opt-level=z" $(CARGO) \
> +.rav1e: rav1e .cargo-c
> +	cd $< && RUSTFLAGS="-C lto -C panic=abort -C opt-level=z" $(CARGOC_INSTALL) \
>  	--no-default-features --features asm
>  	touch $@
> -
> diff --git a/contrib/src/rustup/SHA512SUMS b/contrib/src/rustup/SHA512SUMS
> new file mode 100644
> index 00000000000..6101c68ba6c
> --- /dev/null
> +++ b/contrib/src/rustup/SHA512SUMS
> @@ -0,0 +1 @@
> +14a978a3cf699956722d8443070b9f8a043f1252cc1a7ed300b14637a0e6d654f34088d4403790c676500cbab327e30fdb7f81be0b9bde29e552143f26912ac7  rustup-1.22.1.tar.gz
> diff --git a/contrib/src/rustup/rules.mak b/contrib/src/rustup/rules.mak
> new file mode 100644
> index 00000000000..b1d86c67cb2
> --- /dev/null
> +++ b/contrib/src/rustup/rules.mak
> @@ -0,0 +1,27 @@
> +# cargo/cargo-c installation via rustup
> +
> +RUSTUP_VERSION=1.22.1
> +RUSTUP_URL=https://github.com/rust-lang/rustup/archive/$(RUSTUP_VERSION).tar.gz
> +
> +$(TARBALLS)/rustup-$(RUSTUP_VERSION).tar.gz:
> +	$(call download_pkg,$(RUSTUP_URL),rustup)
> +
> +.sum-rustup: rustup-$(RUSTUP_VERSION).tar.gz
> +
> +rustup: rustup-$(RUSTUP_VERSION).tar.gz .sum-rustup
> +	$(UNPACK)
> +	$(MOVE)
> +
> +$(CARGO_HOME)/bin/rustup: rustup
> +	cd $< && RUSTUP_INIT_SKIP_PATH_CHECK=yes \
> +	  RUSTUP_HOME=$(CARGO_HOME) CARGO_HOME=$(CARGO_HOME) \
> +	  ./rustup-init.sh --no-modify-path -y
> +
> +.cargo: $(CARGO_HOME)/bin/rustup
> +	$(CARGO_HOME)/bin/rustup default stable
> +	$(CARGO_HOME)/bin/rustup target add $(RUST_TARGET)
> +	touch $@
> +
> +.cargo-c: .cargo
> +	$(CARGO) install cargo-c
> +	touch $@
> diff --git a/extras/tools/SHA512SUMS b/extras/tools/SHA512SUMS
> index 09456a7bf72..e3e02d8d3d0 100644
> --- a/extras/tools/SHA512SUMS
> +++ b/extras/tools/SHA512SUMS
> @@ -20,4 +20,3 @@ d24849b93de58b20f518c071687e7bfa653a96600382f36c4cf7fc1047656458f75f093b911b786b
>  8d23dde18525dccaa648ca01df40151e7f00cec4846bd611c8970dbcfc1fb57a453facfe4d41462e7c3c8bb548d44b961a04e4fc3073ab6b65063e53f42bf6fd  nasm-2.14.tar.gz
>  1650bf9e3eddeb0b0fbb415c2b8e0a7c094421e991fa8139fd77fae0f6ee7ee980b7cf5e98d883c3a884f99abcb06fa26e3980af3a3a5bb6dd655124755782c2  ninja-1.8.2.tar.gz
>  ad5ec826879d3d85088ca40d768599a4c8e66983f2a6a7ebe8ab12051cad18b4ade9a2afd30fe543b0a75900822992c8ef7161d369489e2211dd7a1a8ccc32ed  meson-0.54.2.tar.gz
> -14a978a3cf699956722d8443070b9f8a043f1252cc1a7ed300b14637a0e6d654f34088d4403790c676500cbab327e30fdb7f81be0b9bde29e552143f26912ac7  rustup-1.22.1.tar.gz
> diff --git a/extras/tools/bootstrap b/extras/tools/bootstrap
> index 9cd3425bbe2..8e3e0351239 100755
> --- a/extras/tools/bootstrap
> +++ b/extras/tools/bootstrap
> @@ -148,7 +148,6 @@ check gettext
>  check help2man
>  check meson 0.54.2
>  check ninja
> -check rustup
>
>  DEPS_ONLY="help2man"
>
> diff --git a/extras/tools/packages.mak b/extras/tools/packages.mak
> index 2206b3930d8..daad1ad2b2e 100644
> --- a/extras/tools/packages.mak
> +++ b/extras/tools/packages.mak
> @@ -65,6 +65,3 @@ MESON_URL=https://github.com/mesonbuild/meson/releases/download/$(MESON_VERSION)
>
>  NINJA_VERSION=1.8.2
>  NINJA_URL=https://github.com/ninja-build/ninja/archive/v$(NINJA_VERSION).tar.gz
> -
> -RUSTUP_VERSION=1.22.1
> -RUSTUP_URL=https://github.com/rust-lang/rustup/archive/$(RUSTUP_VERSION).tar.gz
> \ No newline at end of file
> diff --git a/extras/tools/tools.mak b/extras/tools/tools.mak
> index 31f40ceeaa2..c74e86bcf51 100644
> --- a/extras/tools/tools.mak
> +++ b/extras/tools/tools.mak
> @@ -439,30 +439,6 @@ CLEAN_PKG += ninja
>  DISTCLEAN_PKG += ninja-$(NINJA_VERSION).tar.gz
>  CLEAN_FILE += .buildninja
>
> -#
> -# rustup installation
> -#
> -
> -rustup-$(RUSTUP_VERSION).tar.gz:
> -	$(call download_pkg,$(RUSTUP_URL),rustup)
> -
> -rustup: rustup-$(RUSTUP_VERSION).tar.gz
> -	$(UNPACK)
> -	$(MOVE)
> -
> -.buildrustup: rustup
> -	cd $< && RUSTUP_HOME=$(PREFIX) CARGO_HOME=$(PREFIX) ./rustup-init.sh --no-modify-path -y
> -	rustup default stable
> -	rustup target add x86_64-pc-windows-gnu i686-pc-windows-gnu aarch64-linux-android\
> -		arm-linux-androideabi i686-linux-android x86_64-linux-android aarch64-apple-ios\
> -		x86_64-apple-ios x86_64-unknown-linux-gnu i686-unknown-linux-gnu
> -	cargo install cargo-c
> -	touch $@
> -
> -CLEAN_PKG += rustup
> -DISTCLEAN_PKG += rustup-$(RUSTUP_VERSION).tar.gz
> -CLEAN_FILE += .buildrustup
> -
>  #
>  #
>  #
> --
> 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