Summary: | dev-lang/rust: Keyword request | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Marcus Comstedt <marcus> |
Component: | Keywording | Assignee: | Gentoo Rust Project <rust> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | amverweij, dschridde+gentoobugs, herrtimson, nemunaire, O01eg, robert, tsmksubc |
Priority: | Normal | Flags: | stable-bot:
sanity-check+
|
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: |
dev-lang/rust-1.40.0
dev-lang/rust-bin-1.40.0
virtual/cargo-1.40.0
virtual/rust-1.40.0
app-eselect/eselect-rust-20190311
|
Runtime testing required: | No |
Bug Depends on: | 629444 | ||
Bug Blocks: | |||
Attachments: |
Description
Marcus Comstedt
2017-02-17 17:44:40 UTC
The ebuild for dev-util/cargo is also missing bootstrap URLs for the other arches, and in addition has its own computation of "${CTARGET}" which only handles the x86 and amd64 cases (why doesn't it just use ${CHOST} instead?). (In reply to Marcus Comstedt from comment #1) > The ebuild for dev-util/cargo is also missing bootstrap URLs for the other > arches, and in addition has its own computation of "${CTARGET}" which only > handles the x86 and amd64 cases (why doesn't it just use ${CHOST} instead?). Because Gentoo's CHOST is not the same as the value for Rust. Feel free to open a PR with the necessary changes as I don't have any of the hardware arches you requested and will be on travel for the next few weeks. Ok, so you want a separate issue for cargo? Otherwise I can just add patches to this one. Created attachment 464894 [details, diff]
patch for dev-lang/rust ebuild using new eclass
Created attachment 464896 [details, diff]
patch for dev-lang/rust-bin ebuild using new eclass
Created attachment 464898 [details, diff]
patch for dev-util/cargo ebuild using new eclass
Created attachment 464900 [details]
new eclass used by the patched ebuilds
Ok, uploaded patches to all three ebuilds. I put all the nitty-gritty stuff in a new eclass so that it can be shared. Tested on arm64. (I didn't add the actual KEYWORD in the patches, but with this it is at least possible to build by accepting **.) An automated check of this bug failed - repoman reported dependency errors (45 lines truncated):
> dependency.bad dev-lang/rust/rust-1.19.0.ebuild: DEPEND: ~arm(default/linux/arm/13.0) ['sys-libs/libcxx']
> dependency.bad dev-lang/rust/rust-1.19.0.ebuild: PDEPEND: ~arm(default/linux/arm/13.0) ['>=app-eselect/eselect-rust-0.3_pre20150425', '>=dev-util/cargo-0.20.0']
> dependency.bad dev-lang/rust/rust-1.19.0.ebuild: RDEPEND: ~arm(default/linux/arm/13.0) ['sys-libs/libcxx']
The ebuild is not ready to be arch-tested without modifications. Does rust@ team want arch teams to apply the patches as-is? Nope, this isn't ready. I've removed the KEYWORDREQ keyword for now. Marcus, your patches look really interesting. I'm going to need some time however to get up to speed. Unfortunately I've been part of the Rust team without being on the alias, so I have some catching up to do. Sorry for ignoring this work so far! (In reply to Dirkjan Ochtman from comment #11) > Nope, this isn't ready. I've removed the KEYWORDREQ keyword for now. KEYWORDREQ isn't sufficient to stop the process; removing arches from CC is, or maybe moving it out of Keywording component. Building all targets support for the bundled llvm seems excessive for mips, arm and arm64 as well, and if that's still the case, I can't possibly test this on mips without taking a week or two once back at my mips machine physically, should it even fit into working memory needs. (In reply to Mart Raudsepp from comment #12) > (In reply to Dirkjan Ochtman from comment #11) > > Nope, this isn't ready. I've removed the KEYWORDREQ keyword for now. > > KEYWORDREQ isn't sufficient to stop the process; removing arches from CC is, > or maybe moving it out of Keywording component. But the current sanity-check- is mostly sufficient I suppose :D An automated check of this bug failed - repoman reported dependency errors (45 lines truncated):
> dependency.bad dev-lang/rust/rust-1.19.0.ebuild: DEPEND: ~arm(default/linux/arm/13.0) ['sys-libs/libcxx']
> dependency.bad dev-lang/rust/rust-1.19.0.ebuild: PDEPEND: ~arm(default/linux/arm/13.0) ['>=app-eselect/eselect-rust-0.3_pre20150425', '>=dev-util/cargo-0.20.0']
> dependency.bad dev-lang/rust/rust-1.19.0.ebuild: RDEPEND: ~arm(default/linux/arm/13.0) ['sys-libs/libcxx']
It would be great if you could start by adding keywords to the rust-bin package. #611756 has a patch suggestion for the ebuilds, this would be a good starting point in my opinion. Tried building on ppc64/32ul, but every incarnation fails. rust-1.15.1 and rust-1.16.0 fail 'cause of no local rust in build directory (?): which: no rustc in (/var/tmp/portage/dev-lang/rust-1.15.1/temp/python2.7/bin:/usr/lib/portage/python3.4/ebuild-helpers/xattr:/usr/lib/portage/python3.4/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/powerpc-unknown-linux-gnu/gcc-bin/6.4.0) configure: error: no local rust to use rust-1.19.0 fails 'cause not finding some file in the build dir: Traceback (most recent call last): File "x.py", line 20, in <module> bootstrap.main() File "/var/tmp/portage/dev-lang/rust-1.19.0/work/rustc-1.19.0-src/src/bootstrap/bootstrap.py", line 678, in main bootstrap() File "/var/tmp/portage/dev-lang/rust-1.19.0/work/rustc-1.19.0-src/src/bootstrap/bootstrap.py", line 660, in bootstrap rb.build_bootstrap() File "/var/tmp/portage/dev-lang/rust-1.19.0/work/rustc-1.19.0-src/src/bootstrap/bootstrap.py", line 413, in build_bootstrap run(args, env=env, verbose=self.verbose) File "/var/tmp/portage/dev-lang/rust-1.19.0/work/rustc-1.19.0-src/src/bootstrap/bootstrap.py", line 137, in run ret = subprocess.Popen(args, **kwargs) File "/usr/lib/python2.7/subprocess.py", line 711, in __init__ errread, errwrite) File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory (In reply to ernsteiswuerfel from comment #16) > Tried building on ppc64/32ul, but every incarnation fails. Did you apply the patch? I did not post one for 1.16.0 or 1.19.0... Did it download the correct bootstrap package(s)? Would be fun, but mips needs to sort out LLVM in general before this can happen. An automated check of this bug failed - repoman reported dependency errors (162 lines truncated):
> dependency.bad dev-lang/rust/rust-1.19.0.ebuild: DEPEND: ~arm(default/linux/arm/13.0) ['sys-libs/libcxx', 'sys-devel/clang']
> dependency.bad dev-lang/rust/rust-1.19.0.ebuild: PDEPEND: ~arm(default/linux/arm/13.0) ['>=app-eselect/eselect-rust-0.3_pre20150425', '>=dev-util/cargo-0.20.0']
> dependency.bad dev-lang/rust/rust-1.19.0.ebuild: RDEPEND: ~arm(default/linux/arm/13.0) ['sys-libs/libcxx']
dev-lang/rust has been keyworded ~arm64 since February An automated check of this bug failed - the following atom is unknown: dev-lang/rust-1.19.0 Please verify the atom list. An automated check of this bug failed - repoman reported dependency errors (126 lines truncated):
> dependency.bad dev-lang/rust/rust-1.27.1-r1.ebuild: DEPEND: ~arm(default/linux/arm/13.0) ['>=app-eselect/eselect-rust-0.3_pre20150425']
> dependency.bad dev-lang/rust/rust-1.27.1-r1.ebuild: PDEPEND: ~arm(default/linux/arm/13.0) ['>=dev-util/cargo-0.27.0']
> dependency.bad dev-lang/rust/rust-1.27.1-r1.ebuild: RDEPEND: ~arm(default/linux/arm/13.0) ['>=app-eselect/eselect-rust-0.3_pre20150425']
Created attachment 549192 [details]
New toolchain eclass by AxS
Unless I'm misstaken this would suggest to install a rustc built for armv6-unknown-linux-gnueabihf for an armv7-unknown-linux-gnueabihf chost, right? I think it would download the armv6 bootstrap binaries for an armv7 host, yes. But I'm happy to take your improvements to it! It's possible to use an arm-unknown-linux-gnueabi rust stage to bootstrap and compile an arm-unknown-linux-gnueabihf rustc; but from my understanding it would require cross compiling to use arm-unknown-linux-gnueabihf for armv7-unknown-linux-gnueabihf. I'd really like to improve it, but my level of ebuild hacking is certainly limited, let alone eclasses. The chost problem gets more problematic if you want to inherit both old 13.0 CHOST and new 17.0 CHOST values. Also I think that i*86* --> i686-unknown-linux-gnu is wrong, because of sse2 issues (#665660) Created attachment 549200 [details, diff]
patch for eclass in #23
13.0 has:
armv6j-softfloat-linux-gnueabi
armv6j-hardfloat-linux-gnueabi
armv7a-hardfloat-linux-gnueabi
17.0 has:
armv6j-unknown-linux-gnueabihf
armv7a-unknown-linux-gnueabihf
prefix has:
armv7a-softfloat-linux-gnueabi
now it may be possible to take advantage of the fact that all hardfloat CHOST have an h in them, but no s, and vice versa all softfloat CHOST have no h in them, but an s.
I tried to fiddle something, patch is attached.
Todo: i686
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aca73a89121af25876703d0ddcc5f08ddf277933 commit aca73a89121af25876703d0ddcc5f08ddf277933 Author: Dirkjan Ochtman <djc@gentoo.org> AuthorDate: 2018-10-18 09:02:33 +0000 Commit: Dirkjan Ochtman <djc@gentoo.org> CommitDate: 2018-10-18 09:05:13 +0000 dev-lang/rust: version bump to 1.29.2 with fixes Fixes: https://bugs.gentoo.org/667286 Fixes: https://bugs.gentoo.org/667966 Bug: https://bugs.gentoo.org/609654 Signed-off-by: Dirkjan Ochtman <djc@gentoo.org> Package-Manager: Portage-2.3.49, Repoman-2.3.11 dev-lang/rust/Manifest | 14 ++ dev-lang/rust/files/1.29.2-clippy-sysroot.patch | 62 +++++ dev-lang/rust/rust-1.29.2.ebuild | 289 ++++++++++++++++++++++++ 3 files changed, 365 insertions(+) Created attachment 553524 [details, diff]
Patch to fix rust-1.29.2.ebuild to work on any arch
Hi.
Here's a patch that lets the 1.29.2 ebuild of rust work on any arch supported by upstreams, instead of just three hardcoded ones. :-)
Tested on ppc64.
Created attachment 553526 [details, diff]
Patch to fix cargo-0.30.0.ebuild to work on any arch
... and the same for cargo.
Marcus, thanks for sticking with it! I've pushed your patches. Arches, please reconsider keywording per the package list. An automated check of this bug failed - repoman reported dependency errors (178 lines truncated):
> dependency.bad dev-lang/rust/rust-1.29.2.ebuild: DEPEND: ~arm(default/linux/arm/13.0) ['>=app-eselect/eselect-rust-0.3_pre20150425']
> dependency.bad dev-lang/rust/rust-1.29.2.ebuild: RDEPEND: ~arm(default/linux/arm/13.0) ['>=app-eselect/eselect-rust-0.3_pre20150425']
> dependency.bad dev-lang/rust/rust-1.29.2.ebuild: DEPEND: ~arm(default/linux/arm/17.0) ['>=app-eselect/eselect-rust-0.3_pre20150425']
> dependency.bad dev-lang/rust-bin/rust-bin-1.29.2.ebuild: DEPEND: ~arm(default/linux/arm/13.0) ['>=app-eselect/eselect-rust-0.3_pre20150425']
> dependency.bad dev-lang/rust-bin/rust-bin-1.29.2.ebuild: RDEPEND: ~arm(default/linux/arm/13.0) ['>=app-eselect/eselect-rust-0.3_pre20150425']
> dependency.bad dev-lang/rust-bin/rust-bin-1.29.2.ebuild: DEPEND: ~arm(default/linux/arm/17.0) ['>=app-eselect/eselect-rust-0.3_pre20150425']
An automated check of this bug succeeded - the previous repoman errors are now resolved. *** Bug 670108 has been marked as a duplicate of this bug. *** An automated check of this bug failed - repoman reported dependency errors (21 lines truncated):
> dependency.bad dev-lang/rust/rust-1.30.1-r1.ebuild: DEPEND: ~ppc(default/linux/powerpc/ppc32/17.0) ['>=sys-devel/llvm-6:=']
> dependency.bad dev-lang/rust/rust-1.30.1-r1.ebuild: RDEPEND: ~ppc(default/linux/powerpc/ppc32/17.0) ['>=sys-devel/llvm-6:=']
> dependency.bad dev-lang/rust/rust-1.30.1-r1.ebuild: DEPEND: ~ppc(default/linux/powerpc/ppc32/17.0/desktop) ['>=sys-devel/llvm-6:=']
I'll add arm64 and remove ppc/s390 as they don't have LLVM yet (and relying on the system LLVM is certainly desirable). *** Bug 657584 has been marked as a duplicate of this bug. *** An automated check of this bug succeeded - the previous repoman errors are now resolved. Created attachment 557036 [details]
build.log (ppc64, rust-1.30.1-r1)
rust-1.30.1-r1 builds fine and passes tests on ppc64. Perhaps it could be keyworded ~ppc64 as well? ;)
~ppc64 keyworded. Bootstraps file on ppc64 BE and LE. An automated check of this bug failed - the following atoms are unknown: dev-lang/rust-1.30.1-r1 dev-lang/rust-bin-1.30.1-r1 virtual/cargo-1.30.1 virtual/rust-1.30.1 Please verify the atom list. An automated check of this bug failed - the following atoms are unknown: dev-lang/rust-1.30.1-r1 dev-lang/rust-bin-1.30.1-r1 virtual/cargo-1.30.1 virtual/rust-1.30.1 Please verify the atom list. ~arm keyworded ~arm keyworded |