aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Caolán McNamara <caolan@skynet.ie>2016-12-21 22:05:33 +0000
committerGravatar Mike Aizatsky <mike.aizatsky@gmail.com>2016-12-21 14:05:33 -0800
commitaba6616a665329af7cd7b63c8c7c55d8a41ce392 (patch)
treee1b8622b13198237b569f03ed9d43aba6a149b96
parentb57371a098f40634950b9a939ab3e58144a62a95 (diff)
Integrate libreoffice (#213)
-rw-r--r--projects/libreoffice/Dockerfile94
-rwxr-xr-xprojects/libreoffice/build.sh27
2 files changed, 121 insertions, 0 deletions
diff --git a/projects/libreoffice/Dockerfile b/projects/libreoffice/Dockerfile
new file mode 100644
index 00000000..f0bae0cc
--- /dev/null
+++ b/projects/libreoffice/Dockerfile
@@ -0,0 +1,94 @@
+# Copyright 2016 Google Inc.
+#
+# 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 ossfuzz/base-libfuzzer
+MAINTAINER security@documentfoundation.org
+#build requirements
+RUN apt-get -y build-dep libreoffice
+RUN apt-get -y install wget
+#cache build dependencies
+RUN wget http://dev-www.libreoffice.org/src/c3c1a8ba7452950636e871d25020ce0d-pt-serif-font-1.0000W.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip
+RUN wget http://dev-www.libreoffice.org/src/edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/907d6e99f241876695c19ff3db0b8923-source-code-pro-2.030R-ro-1.050R-it.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/134d8262145fc793c6af494dcace3e71-liberation-fonts-ttf-1.07.4.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/1725634df4bb3dcb1b2c91a6175f8789-GentiumBasic_1102.zip
+RUN wget http://dev-www.libreoffice.org/src/33e1e61fab06a547851ed308b4ffef42-dejavu-fonts-ttf-2.37.zip
+RUN wget http://dev-www.libreoffice.org/src/368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/5c781723a0d9ed6188960defba8e91cf-liberation-fonts-ttf-2.00.1.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/7a15edea7d415ac5150ea403e27401fd-open-sans-font-ttf-1.10.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/EmojiOneColor-SVGinOT-1.3.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/boost_1_60_0.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/expat-2.2.0.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/jpegsrc.v9a.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/lcms2-2.6.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/10d61fbaa6a06348823651b1bd7940fe-libexttextcat-3.4.4.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/1f5def51ca0026cd192958ef07228b52-rasqal-0.9.33.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/a39f6c07ddb20d7dd2ff1f95fa21e2cd-raptor2-2.0.15.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/e5be03eda13ef68aabab6e42aa67715e-redland-1.0.17.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/openldap-2.4.44.tgz
+RUN wget http://dev-www.libreoffice.org/src/231adebe5c2f78fded3e3df6e958878e-neon-0.30.1.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/23a0b2f0235431d35238df1d3a517fdb-cairo-1.14.6.tar.xz
+RUN wget http://dev-www.libreoffice.org/src/curl-7.51.0.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/86b1daaa438f5a7bea9a52d7b9799ac0-xmlsec1-1.2.23.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/liblangtag-0.6.2.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libabw-0.1.1.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libcdr-0.1.3.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libcmis-0.5.1.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/libe-book-0.1.2.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libetonyek-0.1.6.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libfreehand-0.1.1.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libmspub-0.1.2.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libmwaw-0.3.9.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libodfgen-0.1.6.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/liborcus-0.12.1.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/libpagemaker-0.0.3.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libpng-1.6.24.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/librevenge-0.0.4.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libstaroffice-0.0.2.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libvisio-0.1.5.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libwpd-0.10.1.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libwpg-0.3.1.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libwps-0.4.4.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/libzmf-0.0.1.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/zlib-1.2.8.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/poppler-0.50.0.tar.xz
+RUN wget http://dev-www.libreoffice.org/src/mdds-1.2.2.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/openssl-1.0.2h.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/language-subtag-registry-2016-07-19.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/3069842a88b8f40c6b83ad2850cda293-graphite2-minimal-1.3.9.tgz
+RUN wget http://dev-www.libreoffice.org/src/harfbuzz-1.3.2.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip
+RUN wget http://dev-www.libreoffice.org/src/1901302aaff1c1633ef81862663d2917-icu4c-58_1-src.tgz
+RUN wget http://dev-www.libreoffice.org/src/ae249165c173b1ff386ee8ad676815f5-libxml2-2.9.4.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/a129d3c44c022de3b9dcf6d6f288d72e-libxslt-1.1.29.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/9849a2381bacbeb2714034ad825bede8-hunspell-1.5.4.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/dbf2caca1d3afd410a29217a9809d397-freetype-2.4.8.tar.bz2
+RUN wget http://dev-www.libreoffice.org/src/77e15a92006ddc2adbb06f840d591c0e-fontconfig-2.8.0.tar.gz
+RUN wget http://dev-www.libreoffice.org/src/libepoxy-1.3.1.tar.bz2
+#fuzzing corpuses
+RUN wget http://dev-www.libreoffice.org/corpus/wmffuzzer_seed_corpus.zip
+#clone source
+RUN git clone --depth 1 git://anongit.freedesktop.org/libreoffice/core libreoffice
+WORKDIR libreoffice
+COPY build.sh $SRC/
diff --git a/projects/libreoffice/build.sh b/projects/libreoffice/build.sh
new file mode 100755
index 00000000..4bd027d9
--- /dev/null
+++ b/projects/libreoffice/build.sh
@@ -0,0 +1,27 @@
+#!/bin/bash -eu
+
+#shuffle CXXFLAGS -stdlib=libc++ arg into CXX as well because we use
+#the CXX as the linker and need to pass -stdlib=libc++ to build
+export CXX="$CXX -stdlib=libc++"
+#similarly force the -fsanitize etc args in as well as pthread to get
+#things to link successfully during the build
+export LDFLAGS="$CFLAGS -lpthread"
+
+cd $WORK
+$SRC/libreoffice/autogen.sh --with-distro=LibreOfficeOssFuzz --with-external-tar=$SRC
+
+#build-time rsc tool leaks a titch
+export ASAN_OPTIONS="detect_leaks=0"
+
+make fuzzers
+
+#some minimal fonts required
+cp $SRC/libreoffice/extras/source/truetype/symbol/opens___.ttf instdir/share/fonts/truetype/Liberation* $OUT
+#minimal runtime requirements
+mkdir $OUT/services $OUT/types
+pushd instdir/program
+cp wmffuzzer *rc *rdb */*rdb $OUT
+popd
+
+#starting corpuses
+cp $SRC/*_seed_corpus.zip $OUT