1- FROM amazonlinux:2018.03
1+ FROM amazonlinux:2
22
33SHELL ["/bin/bash" , "-c" ]
44
55ENV BUILD_DIR="/tmp/build"
66ENV INSTALL_DIR="/opt"
77
8- # Lock To Proper Release
9-
10- RUN sed -i 's/releasever=latest/releaserver=2018.03/' /etc/yum.conf
11-
128# Create All The Necessary Build Directories
139
1410RUN mkdir -p ${BUILD_DIR} \
@@ -28,30 +24,67 @@ WORKDIR /tmp
2824RUN set -xe \
2925 && yum makecache \
3026 && yum groupinstall -y "Development Tools" --setopt=group_package_types=mandatory,default \
31- && yum install -y libuuid -devel openssl-devel gcc72 gcc72 -c++
27+ && yum install -y python3 -devel openssl-devel gcc10 gcc10 -c++
3228
3329# Install CMake
3430
3531RUN set -xe \
3632 && mkdir -p /tmp/cmake \
3733 && cd /tmp/cmake \
38- && curl -Ls https://github.com/Kitware/CMake/releases/download/ v3.16.3 /cmake-3.16.3 .tar.gz \
34+ && curl -Ls https://cmake.org/files/ v3.26 /cmake-3.26.4 .tar.gz \
3935 | tar xzC /tmp/cmake --strip-components=1 \
4036 && sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake \
4137 && ./bootstrap \
42- --prefix=/usr/local \
38+ --prefix=/usr/local \
4339 --no-system-jsoncpp \
4440 --no-system-librhash \
4541 --no-system-curl \
4642 && make \
4743 && make install
4844
49- # Install NASM
45+ # Install GObject Introspection
5046
5147RUN set -xe \
48+ && mkdir -p /tmp/gobject-introspection \
49+ && cd /tmp/gobject-introspection \
50+ && curl -Ls https://download.gnome.org/sources/gobject-introspection/1.76/gobject-introspection-1.76.1.tar.xz \
51+ | tar xJvC /tmp/gobject-introspection --strip-components=1 \
52+ && mkdir build \
53+ && cd build \
54+ && pip3 install ninja meson \
55+ && meson setup \
56+ --prefix=/usr/local \
57+ --buildtype=release \
58+ .. \
59+ && ninja \
60+ && ninja install
61+
62+ # Install Boost (https://github.com/boostorg/boost)
63+
64+ RUN set -xe \
65+ && mkdir -p /tmp/boost \
66+ && cd /tmp/boost \
67+ && curl -Ls https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.tar.gz \
68+ | tar xzC /tmp/boost --strip-components=1 \
69+ && sed -i '/#include.*phoenix.*tuple.hpp.*/d' boost/phoenix/stl.hpp \
70+ && ./bootstrap.sh \
71+ --prefix=/usr/local \
72+ --with-python=python3 \
73+ && ./b2 stage -j8 \
74+ threading=multi \
75+ link=shared \
76+ && ./b2 install \
77+ threading=multi \
78+ link=shared
79+
80+ # Install NASM (https://www.nasm.us)
81+
82+ ENV VERSION_NASM=2.16.01
83+
84+ RUN set -xe \
5285 && mkdir -p /tmp/nasm \
5386 && cd /tmp/nasm \
54- && curl -Ls http ://www.nasm.us/pub/nasm/releasebuilds/2.14.02 /nasm-2.14.02 .tar.xz \
87+ && curl -Ls https ://www.nasm.us/pub/nasm/releasebuilds/${VERSION_NASM} /nasm-${VERSION_NASM} .tar.xz \
5588 | tar xJvC /tmp/nasm --strip-components=1 \
5689 && ./configure --prefix=/usr/local \
5790 && make \
@@ -67,7 +100,7 @@ ENV LD_LIBRARY_PATH="${INSTALL_DIR}/lib64:${INSTALL_DIR}/lib"
67100
68101# Build LibXML2 (https://github.com/GNOME/libxml2/releases)
69102
70- ENV VERSION_XML2=2.9.10
103+ ENV VERSION_XML2=2.9.12
71104ENV XML2_BUILD_DIR=${BUILD_DIR}/xml2
72105
73106RUN set -xe; \
@@ -79,6 +112,8 @@ WORKDIR ${XML2_BUILD_DIR}/
79112
80113RUN set -xe; \
81114 CFLAGS="" \
115+ CC="/usr/bin/gcc10-gcc" \
116+ CXX="/usr/bin/gcc10-c++" \
82117 CPPFLAGS="-I${INSTALL_DIR}/include -I/usr/include" \
83118 LDFLAGS="-L${INSTALL_DIR}/lib64 -L${INSTALL_DIR}/lib" \
84119 ./configure \
@@ -99,7 +134,7 @@ RUN set -xe; \
99134
100135# Install FreeType2 (https://github.com/aseprite/freetype2/releases)
101136
102- ENV VERSION_FREETYPE2=2.10.1
137+ ENV VERSION_FREETYPE2=2.13.0
103138ENV FREETYPE2_BUILD_DIR=${BUILD_DIR}/freetype2
104139
105140RUN set -xe; \
@@ -118,13 +153,15 @@ RUN set -xe; \
118153
119154RUN set -xe; \
120155 CFLAGS="" \
156+ CC="/usr/bin/gcc10-gcc" \
157+ CXX="/usr/bin/gcc10-c++" \
121158 CPPFLAGS="-I${INSTALL_DIR}/include -I/usr/include" \
122159 LDFLAGS="-L${INSTALL_DIR}/lib64 -L${INSTALL_DIR}/lib" \
123160 ./configure \
124161 --prefix=${INSTALL_DIR} \
125162 --with-sysroot=${INSTALL_DIR} \
126163 --enable-freetype-config \
127- --disable-static \
164+ --disable-static \
128165 && make \
129166 && make install
130167
@@ -142,6 +179,8 @@ WORKDIR ${GPERF_BUILD_DIR}/
142179
143180RUN set -xe; \
144181 CFLAGS="" \
182+ CC="/usr/bin/gcc10-gcc" \
183+ CXX="/usr/bin/gcc10-c++" \
145184 CPPFLAGS="-I${INSTALL_DIR}/include -I/usr/include" \
146185 LDFLAGS="-L${INSTALL_DIR}/lib64 -L${INSTALL_DIR}/lib" \
147186 ./configure \
@@ -151,7 +190,7 @@ RUN set -xe; \
151190
152191# Install Fontconfig (https://github.com/freedesktop/fontconfig/releases)
153192
154- ENV VERSION_FONTCONFIG=2.13.92
193+ ENV VERSION_FONTCONFIG=2.14.2
155194ENV FONTCONFIG_BUILD_DIR=${BUILD_DIR}/fontconfig
156195
157196RUN set -xe; \
@@ -166,6 +205,8 @@ RUN set -xe; \
166205
167206RUN set -xe; \
168207 CFLAGS="" \
208+ CC="/usr/bin/gcc10-gcc" \
209+ CXX="/usr/bin/gcc10-c++" \
169210 CPPFLAGS="-I${INSTALL_DIR}/include -I/usr/include" \
170211 LDFLAGS="-L${INSTALL_DIR}/lib64 -L${INSTALL_DIR}/lib" \
171212 FONTCONFIG_PATH=${INSTALL_DIR} \
@@ -180,7 +221,7 @@ RUN set -xe; \
180221
181222# Install Libjpeg-Turbo (https://github.com/libjpeg-turbo/libjpeg-turbo/releases)
182223
183- ENV VERSION_LIBJPEG=2.0.6
224+ ENV VERSION_LIBJPEG=2.1.5.1
184225ENV LIBJPEG_BUILD_DIR=${BUILD_DIR}/libjpeg
185226
186227RUN set -xe; \
@@ -192,66 +233,72 @@ WORKDIR ${LIBJPEG_BUILD_DIR}/bin/
192233
193234RUN set -xe; \
194235 CFLAGS="" \
236+ CC="/usr/bin/gcc10-gcc" \
237+ CXX="/usr/bin/gcc10-c++" \
195238 CPPFLAGS="-I${INSTALL_DIR}/include -I/usr/include" \
196239 LDFLAGS="-L${INSTALL_DIR}/lib64 -L${INSTALL_DIR}/lib" \
197240 cmake .. \
198241 -DCMAKE_BUILD_TYPE=RELEASE \
199242 -DENABLE_STATIC=FALSE \
200243 -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
201- -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib \
244+ -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib \
202245 -DCMAKE_PREFIX_PATH=${INSTALL_DIR} \
203246 && make \
204247 && make install
205248
206249# Install OpenJPEG (https://github.com/uclouvain/openjpeg/releases)
207250
208- ENV VERSION_OPENJPEG2=2.3.1
251+ ENV VERSION_OPENJPEG2=2.5.0
209252ENV OPENJPEG2_BUILD_DIR=${BUILD_DIR}/openjpeg2
210253
211254RUN set -xe; \
212255 mkdir -p ${OPENJPEG2_BUILD_DIR}/bin; \
213- curl -Ls https://github.com/uclouvain/openjpeg/archive/v${VERSION_OPENJPEG2}/openjpeg- ${VERSION_OPENJPEG2}.tar.gz \
256+ curl -Ls https://github.com/uclouvain/openjpeg/archive/refs/tags/v ${VERSION_OPENJPEG2}.tar.gz \
214257 | tar xzC ${OPENJPEG2_BUILD_DIR} --strip-components=1
215258
216259WORKDIR ${OPENJPEG2_BUILD_DIR}/bin/
217260
218261RUN set -xe; \
219262 CFLAGS="" \
263+ CC="/usr/bin/gcc10-gcc" \
264+ CXX="/usr/bin/gcc10-c++" \
220265 CPPFLAGS="-I${INSTALL_DIR}/include -I/usr/include" \
221266 LDFLAGS="-L${INSTALL_DIR}/lib64 -L${INSTALL_DIR}/lib" \
222267 cmake .. \
223268 -DCMAKE_BUILD_TYPE=RELEASE \
224269 -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
225- -DBUILD_STATIC_LIBS=OFF \
270+ -DBUILD_STATIC_LIBS=OFF \
226271 -DCMAKE_PREFIX_PATH=${INSTALL_DIR} \
227272 && make \
228273 && make install
229274
230275# Install Libpng (https://github.com/glennrp/libpng/releases)
231276
232- ENV VERSION_OPENPNG =1.6.37
233- ENV OPENPNG_BUILD_DIR =${BUILD_DIR}/libpng
277+ ENV VERSION_LIBPNG =1.6.39
278+ ENV LIBPNG_BUILD_DIR =${BUILD_DIR}/libpng
234279
235280RUN set -xe; \
236- mkdir -p ${OPENPNG_BUILD_DIR }; \
237- curl -Ls https://downloads.sourceforge.net/libpng/libpng-${VERSION_OPENPNG }.tar.xz \
238- | tar xJvC ${OPENPNG_BUILD_DIR } --strip-components=1
281+ mkdir -p ${LIBPNG_BUILD_DIR }; \
282+ curl -Ls https://downloads.sourceforge.net/libpng/libpng-${VERSION_LIBPNG }.tar.xz \
283+ | tar xJvC ${LIBPNG_BUILD_DIR } --strip-components=1
239284
240- WORKDIR ${OPENPNG_BUILD_DIR }/
285+ WORKDIR ${LIBPNG_BUILD_DIR }/
241286
242287RUN set -xe; \
243288 CFLAGS="" \
289+ CC="/usr/bin/gcc10-gcc" \
290+ CXX="/usr/bin/gcc10-c++" \
244291 CPPFLAGS="-I${INSTALL_DIR}/include -I/usr/include" \
245292 LDFLAGS="-L${INSTALL_DIR}/lib64 -L${INSTALL_DIR}/lib" \
246293 ./configure \
247294 --prefix=${INSTALL_DIR} \
248- --disable-static \
295+ --disable-static \
249296 && make \
250297 && make install
251298
252299# Install LibTIFF (http://download.osgeo.org/libtiff)
253300
254- ENV VERSION_LIBTIFF=4.1.0
301+ ENV VERSION_LIBTIFF=4.5.1
255302ENV LIBTIFF_BUILD_DIR=${BUILD_DIR}/tiff
256303
257304RUN set -xe; \
@@ -263,17 +310,19 @@ WORKDIR ${LIBTIFF_BUILD_DIR}/
263310
264311RUN set -xe; \
265312 CFLAGS="" \
313+ CC="/usr/bin/gcc10-gcc" \
314+ CXX="/usr/bin/gcc10-c++" \
266315 CPPFLAGS="-I${INSTALL_DIR}/include -I/usr/include" \
267316 LDFLAGS="-L${INSTALL_DIR}/lib64 -L${INSTALL_DIR}/lib" \
268317 ./configure \
269318 --prefix=${INSTALL_DIR} \
270- --disable-static \
319+ --disable-static \
271320 && make \
272321 && make install
273322
274323# Install Pixman (https://www.cairographics.org/releases)
275324
276- ENV VERSION_PIXMAN=0.40.0
325+ ENV VERSION_PIXMAN=0.42.2
277326ENV PIXMAN_BUILD_DIR=${BUILD_DIR}/pixman
278327
279328RUN set -xe; \
@@ -288,17 +337,19 @@ RUN set -xe; \
288337
289338RUN set -xe; \
290339 CFLAGS="" \
340+ CC="/usr/bin/gcc10-gcc" \
341+ CXX="/usr/bin/gcc10-c++" \
291342 CPPFLAGS="-I${INSTALL_DIR}/include -I/usr/include" \
292343 LDFLAGS="-L${INSTALL_DIR}/lib64 -L${INSTALL_DIR}/lib" \
293344 ./configure \
294345 --prefix=${INSTALL_DIR} \
295- --disable-static \
346+ --disable-static \
296347 && make \
297348 && make install
298349
299350# Install Cairo (http://www.linuxfromscratch.org/blfs/view/svn/x/cairo.html)
300351
301- ENV VERSION_CAIRO=1.16.0
352+ ENV VERSION_CAIRO=1.17.6
302353ENV CAIRO_BUILD_DIR=${BUILD_DIR}/cairo
303354
304355RUN set -xe; \
@@ -310,18 +361,20 @@ WORKDIR ${CAIRO_BUILD_DIR}/
310361
311362RUN set -xe; \
312363 CFLAGS="" \
364+ CC="/usr/bin/gcc10-gcc" \
365+ CXX="/usr/bin/gcc10-c++" \
313366 CPPFLAGS="-I${INSTALL_DIR}/include -I/usr/include" \
314367 LDFLAGS="-L${INSTALL_DIR}/lib64 -L${INSTALL_DIR}/lib" \
315368 ./configure \
316369 --prefix=${INSTALL_DIR} \
317- --disable-static \
318- --enable-tee \
370+ --disable-static \
371+ --enable-tee \
319372 && make \
320373 && make install
321374
322375# Install Little CMS (https://downloads.sourceforge.net/lcms)
323376
324- ENV VERSION_LCMS=2-2.11
377+ ENV VERSION_LCMS=2-2.15
325378ENV LCMS_BUILD_DIR=${BUILD_DIR}/lcms
326379
327380RUN set -xe; \
@@ -333,17 +386,19 @@ WORKDIR ${LCMS_BUILD_DIR}/
333386
334387RUN set -xe; \
335388 CFLAGS="" \
389+ CC="/usr/bin/gcc10-gcc" \
390+ CXX="/usr/bin/gcc10-c++" \
336391 CPPFLAGS="-I${INSTALL_DIR}/include -I/usr/include" \
337392 LDFLAGS="-L${INSTALL_DIR}/lib64 -L${INSTALL_DIR}/lib" \
338393 ./configure \
339394 --prefix=${INSTALL_DIR} \
340- --disable-static \
395+ --disable-static \
341396 && make \
342397 && make install
343398
344399# Install Poppler (https://gitlab.freedesktop.org/poppler/poppler/-/tags)
345400
346- ENV VERSION_POPPLER=21.04 .0
401+ ENV VERSION_POPPLER=23.06 .0
347402ENV POPPLER_BUILD_DIR=${BUILD_DIR}/poppler
348403ENV POPPLER_TEST_DIR=${BUILD_DIR}/poppler-test
349404
@@ -356,18 +411,20 @@ RUN set -xe; \
356411 curl -Ls https://poppler.freedesktop.org/poppler-${VERSION_POPPLER}.tar.xz \
357412 | tar xJvC ${POPPLER_BUILD_DIR} --strip-components=1
358413
359- WORKDIR ${POPPLER_BUILD_DIR}/bin/
414+ WORKDIR ${POPPLER_BUILD_DIR}/bin/
360415
361416RUN set -xe; \
362417 CFLAGS="" \
418+ CC="/usr/bin/gcc10-gcc" \
419+ CXX="/usr/bin/gcc10-c++" \
363420 CPPFLAGS="-I${INSTALL_DIR}/include -I/usr/include" \
364421 LDFLAGS="-L${INSTALL_DIR}/lib64 -L${INSTALL_DIR}/lib" \
365422 cmake .. \
366423 -DCMAKE_BUILD_TYPE=Release \
367- -DTESTDATADIR=${POPPLER_TEST_DIR} \
368- -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
369- -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
424+ -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
370425 -DCMAKE_PREFIX_PATH=${INSTALL_DIR} \
426+ -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
427+ -DTESTDATADIR=${POPPLER_TEST_DIR} \
371428 && make \
372429 && make install
373430
0 commit comments