fdo-rs / fido-device-onboard-rs

An implementation of the FIDO Device Onboard (FDO) spec written in Rust.
BSD 3-Clause "New" or "Revised" License
62 stars 34 forks source link

Fatal error attempting to build FDO #481

Closed mgmillsa closed 1 year ago

mgmillsa commented 1 year ago

My system was a NUC with a fresh install of Fedora 36 desktop. I checked out tag v0.4.9 and followed the build instructions located at: https://github.com/fedora-iot/fido-device-onboard-rs/blob/v0.4.9/CONTRIBUTING.md

Per the instructions, I installed the listed pre-reqs and then executed the following build command: >$ cargo build --release

After a while, I received the following build error:

   ...
   Compiling chrono-tz v0.6.1
   Compiling is-terminal v0.4.5
   Compiling thread_local v1.1.4
error: failed to run custom build command for `devicemapper-sys v0.1.5`

Caused by:
  process didn't exit successfully: `/home/m*****/projects/fido-device-onboard-rs/target/release/build/devicemapper-sys-3043b94ff55de525/build-script-build` (exit status: 101)
  --- stderr
  dm.h:2:10: fatal error: 'libdevmapper.h' file not found
  thread 'main' panicked at 'Could not generate dm.h bindings: ClangDiagnostic("dm.h:2:10: fatal error: 'libdevmapper.h' file not found\n")', /home/mmillsap/.cargo/registry/src/github.com-1ecc6299db9ec823/devicemapper-sys-0.1.5/build.rs:24:10
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...

After some searching on 'libdevmapper.h', a recommended package in which to find that header file was 'device-mapper-devel'. I installed that package on my system and the build was able to successfully complete.

7flying commented 1 year ago

Hello Mike, thanks for opening this issue, the build dependencies are valid for Fedora 37, 38 and 39. I will update the CONTRIBUTING guide in order to make this clear.