Page MenuHomeFreeBSD

lang/rust, lang/rust-nightly: Update to 1.15.1 and 1.17.0 respectively
ClosedPublic

Authored by dumbbell on Jan 22 2017, 1:16 AM.
Tags
None
Referenced Files
F103765181: D9286.id24451.diff
Fri, Nov 29, 3:28 AM
F103759998: D9286.id24301.diff
Fri, Nov 29, 1:45 AM
F103759986: D9286.id24450.diff
Fri, Nov 29, 1:44 AM
F103759981: D9286.id25200.diff
Fri, Nov 29, 1:44 AM
F103759975: D9286.id24655.diff
Fri, Nov 29, 1:44 AM
F103759963: D9286.id25556.diff
Fri, Nov 29, 1:44 AM
F103759940: D9286.id24451.diff
Fri, Nov 29, 1:44 AM
F103759915: D9286.id.diff
Fri, Nov 29, 1:43 AM
Subscribers

Details

Summary

The ports required some changes to the master port (lang/rust) because the bootstrap process changes and requires rustc, rust-std and Cargo. And because it now uses Cargo, we also need to keep a snapshot of the registry ($HOME/.cargo).

lang/rust-nightly is enabled on i386.

Test Plan

Tested with Poudriere on HEAD/amd64 and 11.0/i386.

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 7470
Build 7632: arc lint + arc unit

Event Timeline

dumbbell retitled this revision from to lang/rust-nightly: Update to a recent snapshot of 1.16.0.
dumbbell updated this object.
dumbbell edited the test plan for this revision. (Show Details)
dumbbell added reviewers: antoine, bapt, riggs.

Why are you making it 2 separate plist and distinfo this is not the regular way of doing it

For a while now, the rust ports have continued becoming more convoluted to address the specifics of rusts build system. IMO it is time we get started on Mk/Uses/rust.mk to help us simplifying the rust ports themselves as well as depending ports.

In D9286#191982, @bapt wrote:

Why are you making it 2 separate plist and distinfo this is not the regular way of doing it

For distinfo, half of the fetched files are ${ARCH}-specific. in pkg-plist, nearly all of them contain a hash suffix which (unlike lang/rust) seems to be file- and ${ARCH}-specific. That's why I went with separate files.

What do you suggest to improve the port?

In D9286#191991, @riggs wrote:

For a while now, the rust ports have continued becoming more convoluted to address the specifics of rusts build system. IMO it is time we get started on Mk/Uses/rust.mk to help us simplifying the rust ports themselves as well as depending ports.

Yes, that's a good idea, because at least the Rust and Cargo ports share more and more code.

dumbbell edited edge metadata.

Put unversioned DISTFILES in a subdirectory of ${DISTDIR}

A similar change was committed to devel/cargo.

Uncomment CONFLICTS_*

I commentted them out while debugging, but forgot to restore them after...

In D9286#191982, @bapt wrote:

Why are you making it 2 separate plist and distinfo this is not the regular way of doing it

Both are the framework issues:

  • make makesum has no variant to update distinfo non-destructively. See update-distinfo in x11/nvidia-driver as a workaround.
  • automatic pkg-plist remains only partially implemented via PORTDATA, PORTEXAMPLES, PORTDOCS
lang/rust/Makefile
192โ€“193

make(1) can ignore exit status if you prepend commands with -

lang/rust/Makefile
192โ€“193

Do you say it's preferred to use - over testing? I don't mind either.

In D9286#191982, @bapt wrote:

Why are you making it 2 separate plist and distinfo this is not the regular way of doing it

For distinfo, half of the fetched files are ${ARCH}-specific. in pkg-plist, nearly all of them contain a hash suffix which (unlike lang/rust) seems to be file- and ${ARCH}-specific. That's why I went with separate files.

What do you suggest to improve the port?

I suggest that you concat both :)

Use a single lang/rust-nightly/distinfo for amd64 and i386

lang/rust/Makefile
48

This does not work. RUST_BOOTSTRAP_DIR and friends are defined only in the rust-nightly port, not here. Hence, "make makesum" in lang/rust tries to place the bootstrap compiler in /

50

Same with CARGO_BOOTSTRAP_DIR

Fix ${RUSTC_BOOTSTRAP_DIR} and ${CARGO_BOOTSTRAP_DIR} uses

... as reported by @riggs.

While here, update to an even newer snapshot of Rust. This one includes the bits for FreeBSD/aarch64. The port will be enabled on aarch64 after this first patch is committed.

dumbbell retitled this revision from lang/rust-nightly: Update to a recent snapshot of 1.16.0 to lang/rust-nightly: Update to a recent snapshot of 1.17.0.Feb 13 2017, 2:21 PM

I'm updating the patch to update lang/rust to 1.15.1 and lang/rust-nightly to 1.17.0 because they both have about the same changes to their build system.

At the same time, all ${DISTFILES} will be moved to ${DISTDIR}/rust to avoid further mess in ${DISTDIR}.

Poudriere testports are running currently. I'll submit the revised patch after that.

Merge lang/rust and lang/rust-nightly updates

lang/rust is updated to 1.15.1 and lang/rust-nightly is updated to 1.17.0 (it was already the case). They require about the same changes because of their build system.

All ${DISTFILES} go to ${DISTDIR}/rust now, to avoid more mess.

Poudriere testport for both ports and on amd64+i386 were fine.

There is no bootstrap for DragonFlyBSD so the port will be broken there.

dumbbell retitled this revision from lang/rust-nightly: Update to a recent snapshot of 1.17.0 to lang/rust, lang/rust-nightly: Update to 1.15.1 and 1.17.0 respectively.Feb 15 2017, 9:41 AM
dumbbell updated this object.
riggs edited edge metadata.
This revision is now accepted and ready to land.Feb 15 2017, 10:16 PM
lang/rust/Makefile
57

I didn't check this yet since the 9.x EOL. Possibly no longer needed. But we can remove it afterwards.

Any reason mentor approval is stalled? lang/rust{,-nightly} and www/firefox + RUST=on built fine here on 10.3 i386/amd64.

Firefox 54 (scheduled on 2017-06-13) will require Rust 1.15.1, mainly to help recently merged WebRender and Stylo. I haven't tested runtime much but it shouldn't crash.

bapt edited edge metadata.
antoine edited edge metadata.
This revision was automatically updated to reflect the committed changes.