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 ? -- 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} ;