• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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