Bug 1384158

Summary: cargo FTBFS on aarch64 epel7
Product: [Fedora] Fedora EPEL Reporter: D. Marlin <dmarlin>
Component: cargoAssignee: Josh Stone <jistone>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel7CC: jistone
Target Milestone: ---   
Target Release: ---   
Hardware: aarch64   
OS: Linux   
Whiteboard:
Fixed In Version: cargo-0.14.0-2.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-12-03 06:49:49 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1384156    
Bug Blocks: 1285484    
Attachments:
Description Flags
enable cargo for epel7 aarch64 none

Description D. Marlin 2016-10-12 16:56:32 UTC
Description of problem:

cargo fails to build from source for Fedora EPEL7 on RHELSA-7.2.


Version-Release number of selected component (if applicable):

cargo-0.13.0-2.el7.2


How reproducible:

consistently


Steps to Reproduce:
1.  On a RHELSA-7.2 host:
    mock rebuild cargo-0.13.0-2.el7.2.src.rpm
2.
3.

Actual results:

Error: No Package found for cargo
Error: No Package found for rust


Expected results:


Additional info:

The bootstrap version (cargo-0.12.0-3.el7.1) also fails to build due to dependencies (rust), and it does not include support for AArch64.

In Fedora, it appears that AArch64 was bootstrapped in cargo-0.13.0-2.

Would it be possible to either 1) move to the newer version of cargo (with AArch64 support) in EPEL7, or 2) backport AArch64 support to cargo-0.12.0 for EPEL7?

Comment 1 Josh Stone 2016-10-12 17:40:05 UTC
Once Rust is built, I expect Cargo should be easy.  We can stick to whatever version corresponds to the Rust release we get.  (1.11 + 0.12 or 1.12 + 0.13)
((it's slightly annoying that the minor versions are off by one...))

Comment 2 Josh Stone 2016-10-14 05:34:27 UTC
Created attachment 1210342 [details]
enable cargo for epel7 aarch64

This cargo.spec patch should hopefully be all that's necessary to bootstrap aarch64.  Assuming you can get rust working, I would appreciate if you could also try this build in your environment.  Thanks!

Comment 3 D. Marlin 2016-10-14 19:35:51 UTC
Using the patched version of rust in the buildroot, and above patch to cargo, I get the following error:


+ /usr/bin/make -j8 VERBOSE=1
/usr/bin/python /builddir/build/BUILD/cargo-0.12.0//src/etc/dl-snapshot.py aarch64-unknown-linux-gnu
no snapshot for the triple 'aarch64-unknown-linux-gnu'
hash will not be verified
running: curl -o target/dl/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz https://static.rust-lang.org/cargo-dist/2016-03-21/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz
Traceback (most recent call last):
  File "/builddir/build/BUILD/cargo-0.12.0//src/etc/dl-snapshot.py", line 96, in <module>
    raise Exception("failed to verify the checksum of the snapshot")
Exception: failed to verify the checksum of the snapshot
make: *** [target/snapshot/bin/cargo] Error 1

Comment 4 Josh Stone 2016-10-14 20:35:04 UTC
Ah, right, I changed how that was done in the next release.  For now, to keep this minimal, it probably just needs another small addition:

diff --git a/cargo.spec b/cargo.spec
index 8569d6f3ac3a..52864c8a9ba4 100644
--- a/cargo.spec
+++ b/cargo.spec
@@ -105,7 +105,7 @@ popd
 
 %if %with bootstrap
 mkdir -p target/dl/
-cp -t target/dl/ %{SOURCE10} %{SOURCE11} %{SOURCE12}
+cp -t target/dl/ %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13}
 %endif

Comment 5 D. Marlin 2016-10-14 21:58:35 UTC
With that additional change, cargo-0.12.0-3.el7.2 successfully builds.

Comment 6 Fedora Update System 2016-11-15 20:53:49 UTC
cargo-0.14.0-2.el7 rust-1.13.0-1.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-c96b50a580

Comment 7 Fedora Update System 2016-11-17 12:18:41 UTC
cargo-0.14.0-2.el7, rust-1.13.0-1.el7 has been pushed to the Fedora EPEL 7 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-c96b50a580

Comment 8 Fedora Update System 2016-12-03 06:49:49 UTC
cargo-0.14.0-2.el7, rust-1.13.0-1.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.