On 2019/12/11 09:51, Sebastien Marie wrote:
> Hi,
>
> The following diff to devel/cargo module introduces two things:
>
> - build rust crates using cargo --offline to enforce "no network" build. It
> means that if network would be necessary, cargo will abort with error
> instead of
> using (or trying to use) network.
>
> - provide proper MODCARGO_FEATURES functionality. currently the flags are
> passed
> only to build stage, resulting the install stage to rebuild things without
> the
> flags before installing.
>
> - add a MODCARGO_NO_DEFAULT_FEATURES knob to permit overriding completely
> features defined in Cargo.toml. Without it, features are added to default
> ones.
>
> Comments or OK ?
OK sthen@. I've done several full bulk builds with cargo --offline with
no fallout.
> Sebastien Marie
>
> diff 6deeda83e36cd06f0fc98a19fbf83dc54a799766
> /home/semarie/repos/openbsd/ports
> blob - 7e465f5957edcde8dfb487eb610b363a505ca700
> file + devel/cargo/cargo.port.mk
> --- devel/cargo/cargo.port.mk
> +++ devel/cargo/cargo.port.mk
> @@ -9,6 +9,9 @@ MODCARGO_CRATES ?=
> # List of features to build (space separated list).
> MODCARGO_FEATURES ?=
>
> +# Force using only MODCARGO_FEATURES if Yes
> +MODCARGO_NO_DEFAULT_FEATURES ?= No
> +
> # List of crates to update (no version).
> # Used to override a dependency with newer version.
> MODCARGO_CRATES_UPDATE ?=
> @@ -143,10 +146,17 @@ MODCARGO_TEST_ARGS ?=
>
> # Manage crate features.
> .if !empty(MODCARGO_FEATURES)
> -MODCARGO_BUILD_ARGS += --features='${MODCARGO_FEATURES}'
> -MODCARGO_TEST_ARGS +=--features='${MODCARGO_FEATURES}'
> +MODCARGO_BUILD_ARGS += --features='${MODCARGO_FEATURES}'
> +MODCARGO_INSTALL_ARGS += --features='${MODCARGO_FEATURES}'
> +MODCARGO_TEST_ARGS +=--features='${MODCARGO_FEATURES}'
> .endif
>
> +.if ${MODCARGO_NO_DEFAULT_FEATURES:L} == "yes"
> +MODCARGO_BUILD_ARGS += --no-default-features
> +MODCARGO_INSTALL_ARGS += --no-default-features
> +MODCARGO_TEST_ARGS +=--no-default-features
> +.endif
> +
> # Helper for updating a crate.
> MODCARGO_CARGO_UPDATE = \
> ${MODCARGO_CARGO_RUN} update \
> @@ -162,6 +172,7 @@ MODCARGO_TEST ?= Yes
> MODCARGO_BUILD_TARGET = \
> ${MODCARGO_CARGO_RUN} build \
> --manifest-path ${MODCARGO_CARGOTOML} \
> + --offline \
> --release \
> --verbose \
> ${MODCARGO_BUILD_ARGS} ;
> @@ -175,6 +186,7 @@ do-build:
> MODCARGO_INSTALL_TARGET = \
> ${MODCARGO_CARGO_RUN} install \
> --root="${PREFIX}" \
> + --offline \
> --verbose \
> ${MODCARGO_INSTALL_ARGS} ; \
> rm -- "${PREFIX}/.crates.toml" ;
> @@ -188,6 +200,7 @@ do-install:
> MODCARGO_TEST_TARGET = \
> ${MODCARGO_CARGO_RUN} test \
> --manifest-path ${MODCARGO_CARGOTOML} \
> + --offline \
> --release \
> --verbose \
> ${MODCARGO_TEST_ARGS} ;
>