From 9cac273d79158ad5786b63e6a08def63cccbe0af Mon Sep 17 00:00:00 2001 From: DavidKorczynski Date: Tue, 8 Dec 2020 07:37:40 +0000 Subject: [PATCH] [RocksDB] [Draft: waiting for upstream] Initial integration (#4642) * Initial integration of rocksdb. * Remove fuzz_db from OSS-Fuzz as we want it upstream. * rocksdb: update initial integration set up. * Removed unneeded line. --- projects/rocksdb/Dockerfile | 26 ++++++++++++++++++++++++++ projects/rocksdb/build.sh | 27 +++++++++++++++++++++++++++ projects/rocksdb/project.yaml | 8 ++++++++ 3 files changed, 61 insertions(+) create mode 100644 projects/rocksdb/Dockerfile create mode 100755 projects/rocksdb/build.sh create mode 100644 projects/rocksdb/project.yaml diff --git a/projects/rocksdb/Dockerfile b/projects/rocksdb/Dockerfile new file mode 100644 index 000000000..f81d27647 --- /dev/null +++ b/projects/rocksdb/Dockerfile @@ -0,0 +1,26 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +FROM gcr.io/oss-fuzz-base/base-builder +RUN apt-get update && apt-get install -y make autoconf automake libtool gettext pkg-config build-essential zlib1g-dev libbz2-dev cmake ninja-build liblzma-dev libtool autoconf +RUN git clone --depth 1 https://github.com/facebook/rocksdb + +WORKDIR $SRC/ + +RUN git clone --depth 1 https://github.com/google/libprotobuf-mutator.git +RUN (mkdir LPM && cd LPM && cmake ../libprotobuf-mutator -GNinja -DLIB_PROTO_MUTATOR_DOWNLOAD_PROTOBUF=ON -DLIB_PROTO_MUTATOR_TESTING=OFF -DCMAKE_BUILD_TYPE=Release && ninja && ninja install) + +COPY build.sh $SRC/ diff --git a/projects/rocksdb/build.sh b/projects/rocksdb/build.sh new file mode 100755 index 000000000..9861f45da --- /dev/null +++ b/projects/rocksdb/build.sh @@ -0,0 +1,27 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +cd $SRC/LPM +export PKG_CONFIG_PATH=$PWD:$PWD/external.protobuf/lib/pkgconfig/ +export PATH=$PWD/external.protobuf/bin:$PATH + +cd $SRC/rocksdb/fuzz +export FUZZ_ENV=ossfuzz +export CC=$CXX +make db_fuzzer +make sst_file_writer_fuzzer + +cp *_fuzzer $OUT/ diff --git a/projects/rocksdb/project.yaml b/projects/rocksdb/project.yaml new file mode 100644 index 000000000..ef61f2e3c --- /dev/null +++ b/projects/rocksdb/project.yaml @@ -0,0 +1,8 @@ +homepage: "https://github.com/facebook/rocksdb" +primary_contact: "rocksdb.dev@gmail.com" +language: c++ +vendor_ccs: + - "oss-fuzz@fb.com" +auto_ccs: + - "david@adalogics.com" + - "mhl@fb.com"