summaryrefslogtreecommitdiff
path: root/Utilities/Release/linux/x86_64/deps/Dockerfile
blob: db5551c612dd147b4cf2036fd747f164cf82c7a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.

# Produce an image with custom-built dependencies for portable CMake binaries.
# Build using the directory containing this file as its own build context.

ARG FROM_IMAGE_NAME=kitware/cmake:build-linux-x86_64-base-2019-08-09
ARG FROM_IMAGE_DIGEST=@sha256:d2c13617f01181a3143a069e4496d6b78eafffa19d181c42be196d5dfd588151
ARG FROM_IMAGE=$FROM_IMAGE_NAME$FROM_IMAGE_DIGEST
FROM $FROM_IMAGE

# Sphinx
RUN : \
 && source /opt/rh/rh-python36/enable \
 && pip install sphinx==2.1.2 \
 && :

# Qt
# Version 5.12.0 was the last to bundle xkbcommon.
COPY qt-install.patch /opt/qt/src/
RUN : \
 && mkdir -p /opt/qt/src/qt-build \
 && cd /opt/qt/src \
 && curl -OL https://download.qt.io/archive/qt/5.12/5.12.0/single/qt-everywhere-src-5.12.0.tar.xz \
 && sha512sum qt-everywhere-src-5.12.0.tar.xz | grep -q 0dd03d2645fb6dac5b58c8caf92b4a0a6900131f1ccfb02443a0df4702b5da0458f4c45e758d1b929ec709b0f4b36900df2fd60a058af9cc8c1a0748b6d57aae \
 && tar xJf qt-everywhere-src-5.12.0.tar.xz \
 && cd qt-build \
 && source /opt/rh/devtoolset-6/enable \
 && ../qt-everywhere-src-5.12.0/configure \
      -prefix /opt/qt \
      -static \
      -release \
      -c++std c++11 \
      -opensource -confirm-license \
      -gui \
      -widgets \
      -xcb \
      -fontconfig \
      -sql-sqlite \
      -qt-doubleconversion \
      -qt-libjpeg \
      -qt-libpng \
      -qt-pcre \
      -qt-sqlite \
      -qt-xcb \
      -qt-xkbcommon \
      -qt-zlib \
      -system-freetype \
      -no-accessibility \
      -no-compile-examples \
      -no-cups \
      -no-dbus \
      -no-directfb \
      -no-egl \
      -no-eglfs \
      -no-evdev \
      -no-gbm \
      -no-gif \
      -no-glib \
      -no-gtk \
      -no-harfbuzz \
      -no-iconv \
      -no-icu \
      -no-journald \
      -no-kms \
      -no-libinput \
      -no-libproxy \
      -no-linuxfb \
      -no-ltcg \
      -no-mirclient \
      -no-mtdev \
      -no-opengl \
      -no-openssl \
      -no-pch \
      -no-sql-mysql \
      -no-sql-psql \
      -no-sql-sqlite2 \
      -no-syslog \
      -no-system-proxies \
      -no-tslib \
      -no-use-gold-linker \
      -skip declarative \
      -skip multimedia \
      -skip qtcanvas3d \
      -skip qtconnectivity \
      -skip qtdeclarative \
      -skip qtlocation \
      -skip qtmultimedia \
      -skip qtsensors \
      -skip qtserialport \
      -skip qtsvg \
      -skip qtwayland \
      -skip qtwebchannel \
      -skip qtwebengine \
      -skip qtwebsockets \
      -skip qtwinextras \
      -skip qtxmlpatterns \
      -nomake examples \
      -nomake tests \
 && make install -j $(nproc) \
 && cd /opt/qt \
 && patch -p1 -i src/qt-install.patch \
 && cd /opt \
 && rm -rf /opt/qt/src \
 && :

# Curses
RUN : \
 && mkdir -p /opt/ncurses/src/ncurses-build \
 && cd /opt/ncurses/src \
 && curl -O https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.1.tar.gz \
 && sha512sum ncurses-6.1.tar.gz | grep -q e308af43f8b7e01e98a55f4f6c4ee4d1c39ce09d95399fa555b3f0cdf5fd0db0f4c4d820b4af78a63f6cf6d8627587114a40af48cfc066134b600520808a77ee \
 && tar xzf ncurses-6.1.tar.gz \
 && cd ncurses-build \
 && source /opt/rh/devtoolset-6/enable \
 && ../ncurses-6.1/configure \
      --prefix=/opt/ncurses \
      --with-terminfo-dirs=/etc/terminfo:/lib/terminfo:/usr/share/terminfo \
      --with-default-terminfo-dir=/usr/share/terminfo \
      --without-shared \
 && make -j $(nproc) \
 && make install.libs install.includes \
 && cd /opt \
 && rm -rf /opt/ncurses/src \
 && :

# OpenSSL
COPY openssl-source.patch /opt/openssl/src/
RUN : \
 && mkdir -p /opt/openssl/src \
 && cd /opt/openssl/src \
 && curl -O https://www.openssl.org/source/openssl-1.1.1c.tar.gz \
 && sha512sum openssl-1.1.1c.tar.gz | grep -q 8e2c5cc11c120efbb7d7850980cb6eaa782d29b4996b3f3378d37613c1679f852d7cc08a90d62e78fcec3439f06bdbee70064579a8c2adaffd91532a97f646ff \
 && tar xzf openssl-1.1.1c.tar.gz \
 && cd openssl-1.1.1c \
 && patch -p1 -i ../openssl-source.patch \
 && source /opt/rh/devtoolset-6/enable \
 && ./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 \
 && make install_dev -j $(nproc) \
 && cd /opt \
 && rm -rf /opt/openssl/src \
 && :