Part of: #3511
User Story
As someone building OpenShell via rpmbuild/mock (Fedora's build path), I want %build to actually invoke cargo build, so the package can build in a network-isolated Fedora build environment.
Problem Statement
openshell.spec's %build section only runs test -x "${OPENSHELL_PREBUILT_BINARIES_DIR}/openshell" (and the same for openshell-gateway/openshell-prover), then %install copies binaries from that externally-populated directory. No compilation happens inside the RPM build itself.
Impact / Why This Matters
This is disqualifying for Fedora submission — Koji requires packages to build from source inside the sandboxed, network-isolated build root. The current workaround (populating OPENSHELL_PREBUILT_BINARIES_DIR from an external CI step) works for OpenShell's own release pipeline but has no equivalent in Fedora's infrastructure, so there is no way to work around this short of fixing the spec itself.
Acceptance Criteria
Reproduction Steps
rpmbuild -bb openshell.spec (or build the SRPM in mock) without pre-populating OPENSHELL_PREBUILT_BINARIES_DIR.
%build's test -x assertions fail immediately since nothing built the binaries.
Environment
- Any Fedora/RHEL
mock chroot
- Koji build environment (no network access after
%prep, no ability to inject external artifacts)
Part of: #3511
User Story
As someone building OpenShell via
rpmbuild/mock(Fedora's build path), I want%buildto actually invokecargo build, so the package can build in a network-isolated Fedora build environment.Problem Statement
openshell.spec's%buildsection only runstest -x "${OPENSHELL_PREBUILT_BINARIES_DIR}/openshell"(and the same foropenshell-gateway/openshell-prover), then%installcopies binaries from that externally-populated directory. No compilation happens inside the RPM build itself.Impact / Why This Matters
This is disqualifying for Fedora submission — Koji requires packages to build from source inside the sandboxed, network-isolated build root. The current workaround (populating
OPENSHELL_PREBUILT_BINARIES_DIRfrom an external CI step) works for OpenShell's own release pipeline but has no equivalent in Fedora's infrastructure, so there is no way to work around this short of fixing the spec itself.Acceptance Criteria
%buildcallscargo build --release --offline --lockedforopenshell,openshell-gateway, andopenshell-prover, using the vendored crate sources set up by%cargo_prepmockchroot with networking disabledOPENSHELL_PREBUILT_BINARIES_DIRor any other externally-populated path remains in the specReproduction Steps
rpmbuild -bb openshell.spec(or build the SRPM inmock) without pre-populatingOPENSHELL_PREBUILT_BINARIES_DIR.%build'stest -xassertions fail immediately since nothing built the binaries.Environment
mockchroot%prep, no ability to inject external artifacts)