cargo/rust, off-line and reproduceable builds
> * 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
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)
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.
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.