1# Copyright 2016 Google Inc. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14# 15################################################################################ 16 17FROM gcr.io/oss-fuzz-base/base-builder 18# enable source repos 19RUN sed -i -e '/^#\s*deb-src.*\smain\s\+restricted/s/^#//' /etc/apt/sources.list 20#build requirements 21RUN apt-get update && apt-get build-dep -y libreoffice 22RUN apt-get install -y wget yasm locales && locale-gen en_US.UTF-8 23#xenial gperf too old 24RUN sed -i -e 's/xenial/bionic/g' /etc/apt/sources.list 25RUN apt-get update && apt-get install gperf 26 27#cache build dependencies 28ADD https://dev-www.libreoffice.org/src/c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz \ 29 https://dev-www.libreoffice.org/src/e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip \ 30 https://dev-www.libreoffice.org/src/Amiri-0.111.zip \ 31 https://dev-www.libreoffice.org/src/ReemKufi-0.7.zip \ 32 https://dev-www.libreoffice.org/src/edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz \ 33 https://dev-www.libreoffice.org/src/907d6e99f241876695c19ff3db0b8923-source-code-pro-2.030R-ro-1.050R-it.tar.gz \ 34 https://dev-www.libreoffice.org/src/134d8262145fc793c6af494dcace3e71-liberation-fonts-ttf-1.07.4.tar.gz \ 35 https://dev-www.libreoffice.org/src/1725634df4bb3dcb1b2c91a6175f8789-GentiumBasic_1102.zip \ 36 https://dev-www.libreoffice.org/src/33e1e61fab06a547851ed308b4ffef42-dejavu-fonts-ttf-2.37.zip \ 37 https://dev-www.libreoffice.org/src/368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz \ 38 https://dev-www.libreoffice.org/src/5c781723a0d9ed6188960defba8e91cf-liberation-fonts-ttf-2.00.1.tar.gz \ 39 https://dev-www.libreoffice.org/extern/49a64f3bcf20a7909ba2751349231d6652ded9cd2840e961b5164d09de3ffa63-opens___.ttf \ 40 https://dev-www.libreoffice.org/src/noto-fonts-20171024.tar.gz \ 41 https://dev-www.libreoffice.org/src/amiri-0.109.zip \ 42 https://dev-www.libreoffice.org/src/ttf-kacst_2.01+mry.tar.gz \ 43 https://dev-www.libreoffice.org/src/ReemKufi-0.6.tar.gz \ 44 https://dev-www.libreoffice.org/src/Scheherazade-2.100.zip \ 45 https://dev-www.libreoffice.org/src/EmojiOneColor-SVGinOT-1.3.tar.gz \ 46 https://dev-www.libreoffice.org/src/culmus-0.131.tar.gz \ 47 https://dev-www.libreoffice.org/src/libre-hebrew-1.0.tar.gz \ 48 https://dev-www.libreoffice.org/src/alef-1.001.tar.gz \ 49 https://dev-www.libreoffice.org/src/a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz \ 50 https://dev-www.libreoffice.org/src/5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz \ 51 https://dev-www.libreoffice.org/src/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz \ 52 https://dev-www.libreoffice.org/src/boost_1_66_0.tar.bz2 \ 53 https://dev-www.libreoffice.org/src/expat-2.2.5.tar.bz2 \ 54 https://dev-www.libreoffice.org/src/libjpeg-turbo-1.5.2.tar.gz \ 55 https://dev-www.libreoffice.org/src/lcms2-2.8.tar.gz \ 56 https://dev-www.libreoffice.org/src/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz \ 57 https://dev-www.libreoffice.org/src/libexttextcat-3.4.5.tar.xz \ 58 https://dev-www.libreoffice.org/src/1f5def51ca0026cd192958ef07228b52-rasqal-0.9.33.tar.gz \ 59 https://dev-www.libreoffice.org/src/a39f6c07ddb20d7dd2ff1f95fa21e2cd-raptor2-2.0.15.tar.gz \ 60 https://dev-www.libreoffice.org/src/e5be03eda13ef68aabab6e42aa67715e-redland-1.0.17.tar.gz \ 61 https://dev-www.libreoffice.org/src/cppunit-1.14.0.tar.gz \ 62 https://dev-www.libreoffice.org/src/openldap-2.4.45.tgz \ 63 https://dev-www.libreoffice.org/src/neon-0.30.2.tar.gz \ 64 https://dev-www.libreoffice.org/src/e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz \ 65 https://dev-www.libreoffice.org/src/cairo-1.15.12.tar.xz \ 66 https://dev-www.libreoffice.org/src/curl-7.60.0.tar.gz \ 67 https://dev-www.libreoffice.org/src/xmlsec1-1.2.26.tar.gz \ 68 https://dev-www.libreoffice.org/src/liblangtag-0.6.2.tar.bz2 \ 69 https://dev-www.libreoffice.org/src/libabw-0.1.2.tar.xz \ 70 https://dev-www.libreoffice.org/src/libcdr-0.1.4.tar.xz \ 71 https://dev-www.libreoffice.org/src/libcmis-0.5.1.tar.gz \ 72 https://dev-www.libreoffice.org/src/libe-book-0.1.3.tar.xz \ 73 https://dev-www.libreoffice.org/src/libetonyek-0.1.8.tar.xz \ 74 https://dev-www.libreoffice.org/src/libfreehand-0.1.2.tar.xz \ 75 https://dev-www.libreoffice.org/src/libmspub-0.1.4.tar.xz \ 76 https://dev-www.libreoffice.org/src/libmwaw-0.3.14.tar.xz \ 77 https://dev-www.libreoffice.org/src/libodfgen-0.1.6.tar.bz2 \ 78 https://dev-www.libreoffice.org/src/liborcus-0.13.4.tar.gz \ 79 https://dev-www.libreoffice.org/src/libpagemaker-0.0.4.tar.xz \ 80 https://dev-www.libreoffice.org/src/libpng-1.6.34.tar.xz \ 81 https://dev-www.libreoffice.org/src/librevenge-0.0.4.tar.bz2 \ 82 https://dev-www.libreoffice.org/src/libstaroffice-0.0.6.tar.xz \ 83 https://dev-www.libreoffice.org/src/libvisio-0.1.6.tar.xz \ 84 https://dev-www.libreoffice.org/src/libwpd-0.10.2.tar.xz \ 85 https://dev-www.libreoffice.org/src/libwpg-0.3.2.tar.xz \ 86 https://dev-www.libreoffice.org/src/libwps-0.4.10.tar.xz \ 87 https://dev-www.libreoffice.org/src/libzmf-0.0.2.tar.xz \ 88 https://dev-www.libreoffice.org/src/zlib-1.2.11.tar.xz \ 89 https://dev-www.libreoffice.org/src/poppler-0.66.0.tar.xz \ 90 https://dev-www.libreoffice.org/src/mdds-1.3.1.tar.bz2 \ 91 https://dev-www.libreoffice.org/src/openssl-1.0.2o.tar.gz \ 92 https://dev-www.libreoffice.org/src/language-subtag-registry-2018-04-23.tar.bz2 \ 93 https://dev-www.libreoffice.org/src/graphite2-minimal-1.3.10.tgz \ 94 https://dev-www.libreoffice.org/src/harfbuzz-1.8.4.tar.bz2 \ 95 https://dev-www.libreoffice.org/src/bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip \ 96 https://dev-www.libreoffice.org/src/icu4c-62_1-src.tgz \ 97 https://dev-www.libreoffice.org/src/icu4c-62_1-data.zip \ 98 https://dev-www.libreoffice.org/src/libxml2-2.9.8.tar.gz \ 99 https://dev-www.libreoffice.org/src/libxslt-1.1.32.tar.gz \ 100 https://dev-www.libreoffice.org/src/hunspell-1.6.2.tar.gz \ 101 https://dev-www.libreoffice.org/src/lxml-4.1.1.tgz \ 102 https://dev-www.libreoffice.org/src/freetype-2.8.1.tar.bz2 \ 103 https://dev-www.libreoffice.org/src/fontconfig-2.12.6.tar.bz2 \ 104 https://dev-www.libreoffice.org/src/libepoxy-1.3.1.tar.bz2 \ 105 https://dev-www.libreoffice.org/src/gpgme-1.9.0.tar.bz2 \ 106 https://dev-www.libreoffice.org/src/libassuan-2.5.1.tar.bz2 \ 107 https://dev-www.libreoffice.org/src/libgpg-error-1.27.tar.bz2 \ 108 https://dev-www.libreoffice.org/src/libepubgen-0.1.1.tar.xz \ 109 https://dev-www.libreoffice.org/src/libnumbertext-1.0.4.tar.xz \ 110 https://dev-www.libreoffice.org/src/libqxp-0.0.1.tar.xz \ 111 https://dev-www.libreoffice.org/src/a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz $SRC/ 112#fuzzing dictionaries 113ADD https://raw.githubusercontent.com/rc0r/afl-fuzz/master/dictionaries/gif.dict \ 114 https://raw.githubusercontent.com/rc0r/afl-fuzz/master/dictionaries/jpeg.dict \ 115 https://raw.githubusercontent.com/rc0r/afl-fuzz/master/dictionaries/png.dict \ 116 https://raw.githubusercontent.com/rc0r/afl-fuzz/master/dictionaries/tiff.dict \ 117 https://raw.githubusercontent.com/rc0r/afl-fuzz/master/dictionaries/xml.dict \ 118 https://raw.githubusercontent.com/rc0r/afl-fuzz/master/dictionaries/html_tags.dict $SRC/ 119#fuzzing corpuses 120ADD https://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz $SRC/ 121RUN mkdir afl-testcases && cd afl-testcases/ && tar xf $SRC/afl_testcases.tgz && cd .. && \ 122 zip -q $SRC/jpgfuzzer_seed_corpus.zip afl-testcases/jpeg*/full/images/* && \ 123 zip -q $SRC/giffuzzer_seed_corpus.zip afl-testcases/gif*/full/images/* && \ 124 zip -q $SRC/bmpfuzzer_seed_corpus.zip afl-testcases/bmp*/full/images/* && \ 125 zip -q $SRC/pngfuzzer_seed_corpus.zip afl-testcases/png*/full/images/* 126RUN svn export https://github.com/khaledhosny/ots/trunk/tests/fonts $SRC/sample-sft-fonts/ots 127RUN svn export https://github.com/unicode-org/text-rendering-tests/trunk/fonts/ $SRC/sample-sft-fonts/unicode-org 128RUN svn export https://github.com/harfbuzz/harfbuzz/trunk/test/shaping/data/in-house/fonts $SRC/sample-sft-fonts/harfbuzz 129ADD https://github.com/adobe-fonts/adobe-variable-font-prototype/releases/download/1.001/AdobeVFPrototype.otf $SRC/sample-sft-fonts/adobe 130RUN zip -qr $SRC/sftfuzzer_seed_corpus.zip $SRC/sample-sft-fonts 131ADD https://dev-www.libreoffice.org/corpus/wmffuzzer_seed_corpus.zip \ 132 https://dev-www.libreoffice.org/corpus/xbmfuzzer_seed_corpus.zip \ 133 https://dev-www.libreoffice.org/corpus/xpmfuzzer_seed_corpus.zip \ 134 https://dev-www.libreoffice.org/corpus/svmfuzzer_seed_corpus.zip \ 135 https://dev-www.libreoffice.org/corpus/pcdfuzzer_seed_corpus.zip \ 136 https://dev-www.libreoffice.org/corpus/dxffuzzer_seed_corpus.zip \ 137 https://dev-www.libreoffice.org/corpus/metfuzzer_seed_corpus.zip \ 138 https://dev-www.libreoffice.org/corpus/ppmfuzzer_seed_corpus.zip \ 139 https://dev-www.libreoffice.org/corpus/psdfuzzer_seed_corpus.zip \ 140 https://dev-www.libreoffice.org/corpus/epsfuzzer_seed_corpus.zip \ 141 https://dev-www.libreoffice.org/corpus/pctfuzzer_seed_corpus.zip \ 142 https://dev-www.libreoffice.org/corpus/pcxfuzzer_seed_corpus.zip \ 143 https://dev-www.libreoffice.org/corpus/rasfuzzer_seed_corpus.zip \ 144 https://dev-www.libreoffice.org/corpus/tgafuzzer_seed_corpus.zip \ 145 https://dev-www.libreoffice.org/corpus/tiffuzzer_seed_corpus.zip \ 146 https://dev-www.libreoffice.org/corpus/hwpfuzzer_seed_corpus.zip \ 147 https://dev-www.libreoffice.org/corpus/602fuzzer_seed_corpus.zip \ 148 https://dev-www.libreoffice.org/corpus/lwpfuzzer_seed_corpus.zip \ 149 https://dev-www.libreoffice.org/corpus/pptfuzzer_seed_corpus.zip \ 150 https://dev-www.libreoffice.org/corpus/rtffuzzer_seed_corpus.zip \ 151 https://dev-www.libreoffice.org/corpus/olefuzzer_seed_corpus.zip \ 152 https://dev-www.libreoffice.org/corpus/cgmfuzzer_seed_corpus.zip \ 153 https://dev-www.libreoffice.org/corpus/ww2fuzzer_seed_corpus.zip \ 154 https://dev-www.libreoffice.org/corpus/ww6fuzzer_seed_corpus.zip \ 155 https://dev-www.libreoffice.org/corpus/ww8fuzzer_seed_corpus.zip \ 156 https://dev-www.libreoffice.org/corpus/qpwfuzzer_seed_corpus.zip \ 157 https://dev-www.libreoffice.org/corpus/slkfuzzer_seed_corpus.zip \ 158 https://dev-www.libreoffice.org/corpus/fodtfuzzer_seed_corpus.zip \ 159 https://dev-www.libreoffice.org/corpus/fodsfuzzer_seed_corpus.zip \ 160 https://dev-www.libreoffice.org/corpus/fodgfuzzer_seed_corpus.zip \ 161 https://dev-www.libreoffice.org/corpus/fodpfuzzer_seed_corpus.zip \ 162 https://dev-www.libreoffice.org/corpus/xlsfuzzer_seed_corpus.zip \ 163 https://dev-www.libreoffice.org/corpus/scrtffuzzer_seed_corpus.zip \ 164 https://dev-www.libreoffice.org/corpus/wksfuzzer_seed_corpus.zip \ 165 https://dev-www.libreoffice.org/corpus/diffuzzer_seed_corpus.zip \ 166 https://dev-www.libreoffice.org/corpus/docxfuzzer_seed_corpus.zip \ 167 https://dev-www.libreoffice.org/corpus/xlsxfuzzer_seed_corpus.zip \ 168 https://dev-www.libreoffice.org/corpus/pptxfuzzer_seed_corpus.zip \ 169 https://dev-www.libreoffice.org/corpus/mmlfuzzer_seed_corpus.zip \ 170 https://dev-www.libreoffice.org/corpus/mtpfuzzer_seed_corpus.zip \ 171 https://dev-www.libreoffice.org/corpus/htmlfuzzer_seed_corpus.zip $SRC/ 172#clone source 173RUN git clone --depth 1 git://anongit.freedesktop.org/libreoffice/core libreoffice 174WORKDIR libreoffice 175COPY build.sh $SRC/ 176