message: rust: ensure the correct root path is looked up during build
  This makes `cargo package` to work.
diff: @@ -11,8 +11,22 @@ use std::env;
  use std::path::PathBuf;
  fn main() {
  - // This is the root directory.
  - let src = "../../";
  + // TODO: Improve this.
  + //
  + // Unfortunately there is no environment variable for the original (and not build-time)
  + // location of the manifest, and `env::current_dir()` points to the build-time directory.
  + //
  + // Tried also libgit2 to find the root, but that requires the root to begin with (unlike the commandline git command).
  + let current = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
  + let src = current.parent().unwrap().parent().unwrap();
  + let src = if !src.join("LICENSE").exists() {
  + // Assume this run is within `cargo package` which has an extra directory depth.
  + //
  + // TODO: this may be wrong.
  + src.parent().unwrap()
  + } else {
  + src
  + };
  let dst = Config::new(src).define("FIZZY_TESTING", "OFF").build();
  @@ -25,7 +39,7 @@ fn main() {
  }
  let bindings = bindgen::Builder::default()
  - .header(format!("{}/include/fizzy/fizzy.h", src))
  + .header(format!("{}/include/fizzy/fizzy.h", src.display()))
  // See https://github.com/rust-lang-nursery/rust-bindgen/issues/947
  .trust_clang_mangling(false)
  .generate_comments(true)
  