Disable strict host key checking

Strict host key checking can cause scp to hang without
a useful error message.

Change-Id: I8f1907c87117746ce7e0a4e486890bbe4ba860d1
2 files changed
tree: 6f1ef4800d58a0f16aac6dcb3f3a2eaffa47886e
  1. fargo-test/
  2. src/
  3. .gitignore
  4. AUTHORS
  5. Cargo.lock
  6. Cargo.toml
  7. CONTRIBUTING.md
  8. LICENSE
  9. PATENTS
  10. README.md
README.md

fargo

Fargo is a prototype Fuchsia-specific wrapper around Cargo.

fargo v0.1.0

USAGE:
    fargo [FLAGS] [SUBCOMMAND]

FLAGS:
        --debug-os    Use debug user.bootfs and ssh keys
    -h, --help        Prints help information
    -V, --version     Prints version information
    -v                Print verbose output while performing commands

SUBCOMMANDS:
    build          Build binary targeting Fuchsia device or emulator
    build-tests    Build for Fuchsia device or emulator
    cargo          Run a cargo command for Fuchsia. Use -- to indicate that all following
                   arguments should be passed to cargo.
    help           Prints this message or the help of the given subcommand(s)
    restart        Stop all Fuchsia emulators and start a new one
    run            Run binary on Fuchsia device or emulator
    ssh            Open a shell on Fuchsia device or emulator
    start          Start a Fuchsia emulator
    stop           Stop all Fuchsia emulators
    test           Run unit tests on Fuchsia device or emulator

The fargo-test directory contains something one can use to test-drive.

Getting Started

Since at the moment fargo requires the FUCHSIA_ROOT environmental variable be set to the path to a Fuchsia release build, the first step is to build Fuchsia.

The Fuchsia Getting Started instruction are what you need. Since a release build is what fargo expects to find you‘ll want to pass --release to fset. The Rust components that fargo needs to cross compile are also not built by default, so you’ll have to select something other than the default modules.

If you are planning to use Qemu to run your Fuchsia Rust code, a good choice for modules is below, in env.sh form or underlying script as one prefers.

fset x86-64 --release --modules boot_headless,rust

or

packages/gn/gen.py -m boot_headless,rust --release

What boot_headless does in this instance is prevent the user shell from being launched after boot. Since the user shell requires Mozart, and Mozart has a hard dependency on the Vulkan graphics and compute API, and Qemu cannot support Vulkan, boot_headless is pretty much a requirement for Qemu.

Once this build is complete, clone and build fargo.

git clone https://fuchsia.googlesource.com/fargo
cd fargo
cargo install

Fargo uses ssh to communicate between your host computer and either Qemu or a real device to copy build results and execute them. For Qemu there is a bit of tricky set up to do.

Getting Help

For problems getting the Fuchsia build to complete, the #fuchsia IRC channel on freenode is the best bet.

For fargo itself, that IRC channel can also work of one of the more Rust-aware folks happens to be paying attention. More reliable is the rust-fuchsia Google group.

Fargo Roadmap

The goal is to transition fargo to using something like an SDK instead.

Currently fargo does not support building artifacts that need additional libraries.