unit icon indicating copy to clipboard operation
unit copied to clipboard

cargo/rust, off-line and reproduceable builds

Open ac000 opened this issue 11 months ago • 3 comments

          > * Re-do the last commit to keep BSD make working

This looks good to me, thank you.

Another issue is related to cargo build procedure. FreeBSD uses poudriere(8) package builder to build ports, and network connectivity is unavailable after the fetch phase (phases are: fetch -> patch -> configure -> build -> install, all have pre- and post- targets). I do believe we may follow a similar to unit-java module procedure for the case. I'm glad to hear your thoughts on that.

Thank you in advance.

Originally posted by @osokin in https://github.com/nginx/unit/issues/1527#issuecomment-2580446291

ac000 avatar Jan 10 '25 04:01 ac000

From @remicollet

and network connectivity is unavailable after the fetch

Same issue with RPM build (which are done offline, especially required for reproducible builds) A solution is to vendor cargo dependencies (not yet done for unit, but already used in some other packages)

ac000 avatar Jan 10 '25 04:01 ac000

From @osokin

From @remicollet

and network connectivity is unavailable after the fetch

Same issue with RPM build (which are done offline, especially required for reproducible builds) A solution is to vendor cargo dependencies (not yet done for unit, but already used in some other packages)

Yeah, so I've created a separate port specifically for the Unit's OTel, devel/unit-otel.

ac000 avatar Jan 10 '25 04:01 ac000

For your information RPM offline build with OTEL enabled is done using vendored cargo directory

Solution

1/ build sources tarball with dependencies

See https://git.remirepo.net/cgit/rpms/unit.git/tree/makedeps.sh

2/ add configuration to use vendored libraries

See https://git.remirepo.net/cgit/rpms/unit.git/tree/unit.spec#n94

P.S. BTW, this is a workaround, proper way is to follow the Fedora Rust Packaging Guidelines, but this requires that all libraries are available in the repository.

remicollet avatar Jan 13 '25 06:01 remicollet