Update new_library.md

This commit is contained in:
Mike Aizatsky 2016-09-27 12:17:38 -07:00 committed by GitHub
parent fad78fca51
commit 902855f86a
1 changed files with 8 additions and 8 deletions

View File

@ -14,15 +14,15 @@ short, it requires building your library with a recent version of Clang
compiler and special compiler flags. An easy-to-use Docker image is compiler and special compiler flags. An easy-to-use Docker image is
provided to simplify tool distribution. provided to simplify tool distribution.
## Library directories ## Overview
A library directory requires 3 files: To add a new OSS project to oss-fuzz, 3 files have to be added to oss-fuzz source code repository:
* Dockerfile - defines an container environment with all the dependencies needed to build the library and the fuzzer. * <project_name>/Dockerfile - defines an container environment with all the dependencies needed to build the library and the fuzzer.
* build.sh - build script that will be executed inside the container. * <project_name>/build.sh - build script that will be executed inside the container.
* Jenkinsfile - will be needed to integrate fuzzers with ClusterFuzz build and distributed running system. * <project_name>/Jenkinsfile - will be needed to integrate fuzzers with ClusterFuzz build and distributed running system.
To create a new directory for a library and automatically generaete these 3 files: To create a new directory for a library and automatically generaete these 3 files a helper python script can be used:
```bash ```bash
$ cd /path/to/oss-fuzz $ cd /path/to/oss-fuzz
@ -31,7 +31,7 @@ $ python scripts/helper.py generate $LIB_NAME
``` ```
### Dockerfile ## Dockerfile
This is the definition for the Docker container that fuzzers will be built in. This is the definition for the Docker container that fuzzers will be built in.
This should be very similar for most libraries as well. This file requires just This should be very similar for most libraries as well. This file requires just
@ -56,7 +56,7 @@ RUN apt-get install -y make autoconf automake libtool docbook2x
CMD /src/oss-fuzz/expat/build.sh CMD /src/oss-fuzz/expat/build.sh
``` ```
### build.sh ## build.sh
This is where most of the work is done to build fuzzers for your library. This is where most of the work is done to build fuzzers for your library.