2014-12-01 18:01:33 -05:00
2014-12-01 11:06:00 -05:00
2014-10-25 12:50:28 -04:00
2014-10-25 12:50:28 -04:00
2014-12-01 18:00:27 -05:00
2014-11-10 17:25:43 -05:00
2014-10-25 12:50:28 -04:00
2014-12-01 15:36:45 -05:00

Introduction

This openembedded layer provides the rust compiler, tools for building packages (cargo), and a few example projects.

What works:

  • MACHINE="beaglebone" (TARGET_SYS=arm-poky-linux-gnueabi)
  • Building rust-native, rust-cross, rust-hello-world, cargo-native
  • Running/using all of these (including rust-hello-world)

What doesn't:

  • Probably some of the untested things

What's untested:

  • cargo, rust (built for target)
  • Other TARGETs

Common issues when packaging things using cargo

You may run into errors similar to:

| /home/cody/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.0.2/src/lib.rs:12:1: 12:35 error: can't find crate for `ffi`
| /home/cody/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.0.2/src/lib.rs:12 extern crate "openssl-sys" as ffi;
|                                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Where a "-sys" crate (or other crate) is not found. These are typically caused by a crate's Cargo.toml including triplet-specific dependencies and then using the crate based on a feature (most often, #[cfg(unix)]). Until cargo and it's ecosystem get their act together, you'll need to supply patches to the misbehaving packages. See recipies/cargo/cargo_*.bb for and example of how to do this.

TODO

  • Include downloaded stage0 snapshot in SRC_URI
  • -crosssdk and -buildsdk packages
  • -runtime? (install target libraries on target)
  • Add SRC_URI components so that cargo doesn't use the network
  • Convince cargo (via env vars or patching) not to use '$HOME/.cargo' for storing downloaded source code
  • Upstream local rustc patches for libdir and bindir support

Pitfalls

  • TARGET_SYS must be different from BUILD_SYS. This is due to the way configuration options are tracked for different targets.

Dependencies

On the host: unknown

On the target: unknown

Maintainer(s) & Patch policy

Open a Pull Request

MIT/Apache-2.0 - Same as rust

Description
OpenEmbedded/Yocto layer for Rust and Cargo
Readme 1.6 MiB
Languages
PHP 56.5%
BitBake 17%
Shell 9.1%
Python 7.5%
Pawn 5.3%
Other 4.6%