diff --git a/projects/rauc/Dockerfile b/projects/rauc/Dockerfile new file mode 100644 index 000000000000..1f144adb4f15 --- /dev/null +++ b/projects/rauc/Dockerfile @@ -0,0 +1,22 @@ +# Copyright 2023 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 python3-pip +RUN unset CFLAGS CXXFLAGS && pip3 install -U meson ninja +RUN git clone --depth 1 https://github.com/rauc/rauc.git rauc +WORKDIR rauc +COPY build.sh $SRC/ diff --git a/projects/rauc/build.sh b/projects/rauc/build.sh new file mode 100755 index 000000000000..e3571df017d6 --- /dev/null +++ b/projects/rauc/build.sh @@ -0,0 +1,48 @@ +#!/bin/bash -eu +# Copyright 2023 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. +# +################################################################################ + +BUILD=$WORK/build + +rm -rf $BUILD + +# build project + +meson setup $BUILD \ + -Ddefault_library=static \ + -Db_lundef=false \ + -Dfuzzing=true \ + -Dglib:libmount=disabled \ + -Dglib:selinux=disabled \ + -Dgpt=disabled \ + -Djson=disabled \ + -Dnetwork=false \ + -Dservice=false \ + -Dstreaming=false \ + --wrap-mode=forcefallback + +ninja -C $BUILD + +# collect fuzzers and data + +find $BUILD/fuzz -maxdepth 1 -executable -type f -exec cp "{}" $OUT \; + +find fuzz -type f -name "*.dict" -exec cp "{}" $OUT \; + +for CORPUS in $(find fuzz -type f -name "*.corpus"); do + BASENAME=${CORPUS##*/} + zip $OUT/${BASENAME%%.*}_seed_corpus.zip . -ws -r -i@$CORPUS +done diff --git a/projects/rauc/project.yaml b/projects/rauc/project.yaml new file mode 100644 index 000000000000..ef0877318542 --- /dev/null +++ b/projects/rauc/project.yaml @@ -0,0 +1,7 @@ +homepage: "https://rauc.io/" +language: c +primary_contact: "jlu@pengutronix.de" +auto_ccs: +- jluebbe@lasnet.de +- ejoerns89@gmail.com +main_repo: "https://github.com/rauc/rauc.git"