falconre / falcon

Binary Analysis Framework in Rust
Apache License 2.0
549 stars 47 forks source link

Remove docker network dependency #73

Closed anon8675309 closed 4 years ago

anon8675309 commented 4 years ago

Building off my previous pull request, and following the intent of making it easier for people to get started with Falcon, I've added a docker.sh script which will get the dependencies needed for Docker, install Docker, then build and run the container.

Because Docker doesn't seem to have networking available to the containers by default, I modified the Dockerfile.stretch to no longer attempt to reach out to the internet. Instead, the llvm snapshot key is downloaded on the host (in docker.sh) and Dockerfile.stretch just copies it into the container.

In testing this, I also found that the dependencies.sh was not compatible with Debian (which doesn't have sudo installed by default), so I also updated that script as well as setup.sh. The dependencies.sh script isn't run automatically, but the first thing I did when I went into the container was to run that so I would have everything I needed to run cargo build.

endeav0r commented 4 years ago

I see the amazing number of PRs. I will set time aside this weekend to get to them.

endeav0r commented 4 years ago

Getting around to merging things... This now conflicts :(

anon8675309 commented 4 years ago

Verified to work as expected on Stretch, in a Docker container. Exact commands:

Also verified to work on Stretch without Docker. Exact commands:

anon8675309 commented 4 years ago

I went ahead and added support for Buster as well at Stretch. Verified both work using vagrant (and the CI tests pass, which means there weren't any regressions in Docker).

endeav0r commented 4 years ago

I'm bringing these in now because I want to clear up the MRs. Thank you for this as well btw. Please don't be surprised if all these top-level scripts get moved into a subdirectory to organize a bit.