1 # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 # file Copyright.txt or https://cmake.org/licensing for details.
4 # Produce an image with custom-built dependencies for portable CMake binaries.
5 # Build using the directory containing this file as its own build context.
7 ARG FROM_IMAGE_NAME=kitware/cmake:build-linux-x86_64-base-2019-08-09
8 ARG FROM_IMAGE_DIGEST=@sha256:d2c13617f01181a3143a069e4496d6b78eafffa19d181c42be196d5dfd588151
9 ARG FROM_IMAGE=$FROM_IMAGE_NAME$FROM_IMAGE_DIGEST
14 && source /opt/rh/rh-python36/enable \
15 && pip install sphinx==2.1.2 \
19 # Version 5.12.0 was the last to bundle xkbcommon.
20 COPY qt-install.patch /opt/qt/src/
22 && mkdir -p /opt/qt/src/qt-build \
24 && curl -OL https://download.qt.io/archive/qt/5.12/5.12.0/single/qt-everywhere-src-5.12.0.tar.xz \
25 && sha512sum qt-everywhere-src-5.12.0.tar.xz | grep -q 0dd03d2645fb6dac5b58c8caf92b4a0a6900131f1ccfb02443a0df4702b5da0458f4c45e758d1b929ec709b0f4b36900df2fd60a058af9cc8c1a0748b6d57aae \
26 && tar xJf qt-everywhere-src-5.12.0.tar.xz \
28 && source /opt/rh/devtoolset-6/enable \
29 && ../qt-everywhere-src-5.12.0/configure \
34 -opensource -confirm-license \
40 -qt-doubleconversion \
50 -no-compile-examples \
85 -skip qtconnectivity \
100 && make install -j $(nproc) \
102 && patch -p1 -i src/qt-install.patch \
104 && rm -rf /opt/qt/src \
109 && mkdir -p /opt/ncurses/src/ncurses-build \
110 && cd /opt/ncurses/src \
111 && curl -O https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.1.tar.gz \
112 && sha512sum ncurses-6.1.tar.gz | grep -q e308af43f8b7e01e98a55f4f6c4ee4d1c39ce09d95399fa555b3f0cdf5fd0db0f4c4d820b4af78a63f6cf6d8627587114a40af48cfc066134b600520808a77ee \
113 && tar xzf ncurses-6.1.tar.gz \
114 && cd ncurses-build \
115 && source /opt/rh/devtoolset-6/enable \
116 && ../ncurses-6.1/configure \
117 --prefix=/opt/ncurses \
118 --with-terminfo-dirs=/etc/terminfo:/lib/terminfo:/usr/share/terminfo \
119 --with-default-terminfo-dir=/usr/share/terminfo \
121 && make -j $(nproc) \
122 && make install.libs install.includes \
124 && rm -rf /opt/ncurses/src \
128 COPY openssl-source.patch /opt/openssl/src/
130 && mkdir -p /opt/openssl/src \
131 && cd /opt/openssl/src \
132 && curl -O https://www.openssl.org/source/openssl-1.1.1f.tar.gz \
133 && sha512sum openssl-1.1.1f.tar.gz | grep -q b00bd9b5ad5298fbceeec6bb19c1ab0c106ca5cfb31178497c58bf7e0e0cf30fcc19c20f84e23af31cc126bf2447d3e4f8461db97bafa7bd78f69561932f000c \
134 && tar xzf openssl-1.1.1f.tar.gz \
135 && cd openssl-1.1.1f \
136 && patch -p1 -i ../openssl-source.patch \
137 && source /opt/rh/devtoolset-6/enable \
138 && ./Configure --prefix=/opt/openssl linux-elf no-asm no-shared -D_POSIX_C_SOURCE=199506L -D_POSIX_SOURCE=1 -D_SVID_SOURCE=1 -D_BSD_SOURCE=1 \
139 && make install_dev -j $(nproc) \
141 && rm -rf /opt/openssl/src \