Skip to content

Commit 26fb47f

Browse files
committed
Compile Qt5.7 inside dockerfiles
1 parent 09a891d commit 26fb47f

File tree

4 files changed

+333
-83
lines changed

4 files changed

+333
-83
lines changed

tools/installer/Dockerfiles/centos7/Dockerfile

Lines changed: 59 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ RUN yum --enablerepo=extras install epel-release -y
1919
RUN yum update -y
2020

2121
# Install packages
22-
RUN yum install tk-devel lapack-devel cmake tcl tcl-devel expect tkinter openssh-server gcc gcc-c++ wget xz make vim openssl-devel openssh-clients rpm-build ruby-devel libpng libpng-devel sqlite-devel qt5-qtbase qt5-qtbase-devel qt5-qtdeclarative qt5-qtdeclarative-devel -y
22+
RUN yum install libxkbcommon tk-devel lapack-devel cmake tcl tcl-devel expect tkinter openssh-server gcc gcc-c++ wget xz make vim openssl-devel openssh-clients rpm-build ruby-devel libpng libpng-devel sqlite-devel freeglut-devel libxcb libxcb-devel xcb-util xcb-util-devel git -y
2323

2424
# Download python 2.7.11
2525
# For more information about the compilation of the Python: http://www.mathworks.com/help/matlab/matlab_external/system-requirements-for-matlab-engine-for-python.html?requestedDomain=www.mathworks.com
2626
WORKDIR /tmp
2727
RUN wget -q https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar.xz && \
2828
tar xJvf Python-2.7.11.tar.xz && \
29-
cd Python-2.7.11 && ./configure --enable-shared --enable-unicode=ucs4 --prefix=/opt/mlc-python-2.7.11 && \
30-
make && make install
29+
cd Python-2.7.11 && ./configure --enable-shared --enable-unicode=ucs4 --prefix=/opt/mlc-python-2.7.11 && make && make install && \
30+
rm -rf /tmp/Python-2.7.11*
3131

3232
# Create .sh who will load the desired enviroment to run python within it
3333
RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_python && \
@@ -44,17 +44,17 @@ RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_python && \
4444
echo "fi" >> /opt/mlc-python-2.7.11/bin/mlc_python && \
4545
chmod 755 /opt/mlc-python-2.7.11/bin/mlc_python
4646

47-
4847
# Install Python Setuptools
4948
RUN wget -q https://pypi.python.org/packages/source/s/setuptools/setuptools-20.1.1.tar.gz#md5=10a0f4feb9f2ea99acf634c8d7136d6d && \
5049
tar xzvf setuptools-20.1.1.tar.gz && \
51-
cd setuptools-20.1.1 && /opt/mlc-python-2.7.11/bin/mlc_python setup.py build && /opt/mlc-python-2.7.11/bin/mlc_python setup.py install
52-
50+
cd setuptools-20.1.1 && /opt/mlc-python-2.7.11/bin/mlc_python setup.py build && /opt/mlc-python-2.7.11/bin/mlc_python setup.py install && \
51+
rm -rf /tmp/setuptools-20.1.1*
5352

5453
# Idem with pip
5554
RUN wget -q https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb && \
5655
tar xzvf pip-8.0.2.tar.gz && \
57-
cd pip-8.0.2 && /opt/mlc-python-2.7.11/bin/mlc_python setup.py build && /opt/mlc-python-2.7.11/bin/mlc_python setup.py install
56+
cd pip-8.0.2 && /opt/mlc-python-2.7.11/bin/mlc_python setup.py build && /opt/mlc-python-2.7.11/bin/mlc_python setup.py install && \
57+
rm -rf /tmp/pip-8.0.2*
5858

5959
# Create .sh who will load the desired enviroment to run pip within it
6060
RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_pip && \
@@ -71,18 +71,66 @@ RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_pip && \
7171
echo "fi" >> /opt/mlc-python-2.7.11/bin/mlc_pip && \
7272
chmod 755 /opt/mlc-python-2.7.11/bin/mlc_pip
7373

74-
# Install PyQt5 Environment
74+
# Install Qt5.7
75+
RUN git clone git://code.qt.io/qt/qtbase.git && \
76+
cd qtbase && \
77+
git checkout 5.7 && \
78+
./configure --prefix=/opt/mlc-python-2.7.11/Qt-5.7.1 -xkb-config-root /usr/share/X11/xkb -no-gtk -nomake tests -nomake examples -qt-xcb --opensource --confirm-license && make -j4 && make install && \
79+
rm -rf /tmp/qtbase
80+
81+
RUN git clone git://code.qt.io/qt/qtcharts.git && \
82+
cd qtcharts && \
83+
git checkout 5.7 && \
84+
/opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake CONFIG+=release && make -j4 && make install && \
85+
rm -rf /tmp/qtcharts
86+
87+
RUN git clone git://code.qt.io/qt/qtdatavis3d.git && \
88+
cd qtdatavis3d && \
89+
git checkout 5.7 && \
90+
/opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake CONFIG+=release && make -j4 && make install && \
91+
rm -rf /tmp/qtdatavis3d
92+
93+
RUN git clone git://code.qt.io/qt/qtdeclarative.git && \
94+
cd qtdeclarative && \
95+
git checkout 5.7 && \
96+
/opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake CONFIG+=release && make -j4 && make install && \
97+
rm -rf /tmp/qtdeclarative
98+
99+
RUN git clone git://code.qt.io/qt/qtx11extras.git && \
100+
cd qtx11extras && \
101+
git checkout 5.7 && \
102+
/opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake CONFIG+=release && make -j4 && make install && \
103+
rm -rf /tmp/qtx11extras
104+
105+
# Add PyQt5 Support
75106
RUN wget https://sourceforge.net/projects/pyqt/files/sip/sip-4.19/sip-4.19.tar.gz && \
76107
tar xzvf sip-4.19.tar.gz && \
77108
cd sip-4.19 && \
78109
/opt/mlc-python-2.7.11/bin/mlc_python configure.py && \
79-
make && make install
110+
make -j4 && make install && \
111+
rm -rf /tmp/sip-4.19*
80112

81113
RUN wget https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.7.1/PyQt5_gpl-5.7.1.tar.gz && \
82114
tar xzvf PyQt5_gpl-5.7.1.tar.gz && \
83115
cd PyQt5_gpl-5.7.1 && \
84-
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /usr/bin/qmake-qt5 --confirm-license --sip /opt/mlc-python-2.7.11/bin/sip && \
85-
make && make install
116+
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake --confirm-license --sip /opt/mlc-python-2.7.11/bin/sip && \
117+
make -j4 && make install && \
118+
rm -rf /tmp/PyQt5_gpl-5.7.1*
119+
120+
# Add PyQt5 Charts
121+
RUN wget https://sourceforge.net/projects/pyqt/files/PyQtChart/PyQtChart-5.7.1/PyQtChart_gpl-5.7.1.tar.gz && \
122+
tar xzvf PyQtChart_gpl-5.7.1.tar.gz && \
123+
cd PyQtChart_gpl-5.7.1 && \
124+
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake --sip /opt/mlc-python-2.7.11/bin/sip && \
125+
make -j4 && make install && \
126+
rm -rf /tmp/PyQtChart_gpl-5.7.1*
127+
128+
RUN wget https://sourceforge.net/projects/pyqt/files/PyQtDataVisualization/PyQtDataVisualization-5.7.1/PyQtDataVisualization_gpl-5.7.1.tar.gz/download -O PyQtDataVisualization_gpl-5.7.1.tar.gz && \
129+
tar xzvf PyQtDataVisualization_gpl-5.7.1.tar.gz && \
130+
cd PyQtDataVisualization_gpl-5.7.1 && \
131+
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake --sip /opt/mlc-python-2.7.11/bin/sip && \
132+
make -j4 && make install && \
133+
rm -rf /tmp/PyQtDataVisualization_gpl-5.7.1*
86134

87135
# Create .sh who will load the desired enviroment to run pip within it
88136
RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_pyuic5 && \
@@ -99,30 +147,6 @@ RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_pyuic5 && \
99147
echo "fi" >> /opt/mlc-python-2.7.11/bin/mlc_pyuic5 && \
100148
chmod 755 /opt/mlc-python-2.7.11/bin/mlc_pyuic5
101149

102-
# Add PyQt5 Charts
103-
RUN yum update -y && yum install git -y
104-
RUN git clone git://code.qt.io/qt/qtcharts.git && \
105-
cd qtcharts && \
106-
git checkout release-2.1.0 && \
107-
/usr/bin/qmake-qt5 && make && make install
108-
109-
RUN wget https://sourceforge.net/projects/pyqt/files/PyQtChart/PyQtChart-5.7.1/PyQtChart_gpl-5.7.1.tar.gz && \
110-
tar xzvf PyQtChart_gpl-5.7.1.tar.gz && \
111-
cd PyQtChart_gpl-5.7.1 && \
112-
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /usr/bin/qmake-qt5 --qtchart-version=2.1.0 --sip /opt/mlc-python-2.7.11/bin/sip && \
113-
make && make install
114-
115-
RUN git clone git://code.qt.io/qt/qtdatavis3d.git && \
116-
cd qtdatavis3d && \
117-
git checkout 5.7 && \
118-
/usr/bin/qmake-qt5 && make && make install
119-
120-
RUN wget https://sourceforge.net/projects/pyqt/files/PyQtDataVisualization/PyQtDataVisualization-5.7.1/PyQtDataVisualization_gpl-5.7.1.tar.gz/download -O PyQtDataVisualization_gpl-5.7.1.tar.gz && \
121-
tar xzvf PyQtDataVisualization_gpl-5.7.1.tar.gz && \
122-
cd PyQtDataVisualization_gpl-5.7.1 && \
123-
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /usr/bin/qmake-qt5 --sip /opt/mlc-python-2.7.11/bin/sip && \
124-
make && make install
125-
126150
# Install mlc dependencies
127151
RUN /opt/mlc-python-2.7.11/bin/mlc_pip install pyserial numpy nose matplotlib scipy pyyaml flask requests
128152

tools/installer/Dockerfiles/fedora-20/Dockerfile

Lines changed: 61 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ RUN yum --enablerepo=updates-testing update -y
2121
RUN yum --enablerepo=updates-testing install openssl-devel -y
2222

2323
# Install packages
24-
RUN yum install tk-devel lapack-devel cmake tcl tcl-devel expect tkinter openssh-server gcc gcc-c++ wget xz make vim openssh-clients rpm-build ruby-devel libpng libpng-devel sqlite-devel qt5-qtbase qt5-qtbase-devel qt5-qtdeclarative qt5-qtdeclarative-devel -y
24+
RUN yum install tk-devel lapack-devel cmake tcl tcl-devel expect tkinter openssh-server gcc gcc-c++ wget xz make vim openssh-clients rpm-build ruby-devel libpng libpng-devel sqlite-devel libxkbcommon -y
2525

2626
WORKDIR /tmp
2727
# Compile Openssl from scratch. There are dependency problems with this packet in Fedora 20
@@ -31,10 +31,11 @@ WORKDIR /tmp
3131

3232
# Download python 2.7.11
3333
# For more information about the compilation of the Python: http://www.mathworks.com/help/matlab/matlab_external/system-requirements-for-matlab-engine-for-python.html?requestedDomain=www.mathworks.com
34+
WORKDIR /tmp
3435
RUN wget -q https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar.xz && \
3536
tar xJvf Python-2.7.11.tar.xz && \
36-
cd Python-2.7.11 && ./configure --enable-shared --enable-unicode=ucs4 --prefix=/opt/mlc-python-2.7.11 && \
37-
make && make install
37+
cd Python-2.7.11 && ./configure --enable-shared --enable-unicode=ucs4 --prefix=/opt/mlc-python-2.7.11 && make && make install && \
38+
rm -rf /tmp/Python-2.7.11*
3839

3940
# Create .sh who will load the desired enviroment to run python within it
4041
RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_python && \
@@ -51,17 +52,17 @@ RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_python && \
5152
echo "fi" >> /opt/mlc-python-2.7.11/bin/mlc_python && \
5253
chmod 755 /opt/mlc-python-2.7.11/bin/mlc_python
5354

54-
5555
# Install Python Setuptools
5656
RUN wget -q https://pypi.python.org/packages/source/s/setuptools/setuptools-20.1.1.tar.gz#md5=10a0f4feb9f2ea99acf634c8d7136d6d && \
5757
tar xzvf setuptools-20.1.1.tar.gz && \
58-
cd setuptools-20.1.1 && /opt/mlc-python-2.7.11/bin/mlc_python setup.py build && /opt/mlc-python-2.7.11/bin/mlc_python setup.py install
59-
58+
cd setuptools-20.1.1 && /opt/mlc-python-2.7.11/bin/mlc_python setup.py build && /opt/mlc-python-2.7.11/bin/mlc_python setup.py install && \
59+
rm -rf /tmp/setuptools-20.1.1*
6060

6161
# Idem with pip
6262
RUN wget -q https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb && \
6363
tar xzvf pip-8.0.2.tar.gz && \
64-
cd pip-8.0.2 && /opt/mlc-python-2.7.11/bin/mlc_python setup.py build && /opt/mlc-python-2.7.11/bin/mlc_python setup.py install
64+
cd pip-8.0.2 && /opt/mlc-python-2.7.11/bin/mlc_python setup.py build && /opt/mlc-python-2.7.11/bin/mlc_python setup.py install && \
65+
rm -rf /tmp/pip-8.0.2*
6566

6667
# Create .sh who will load the desired enviroment to run pip within it
6768
RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_pip && \
@@ -78,19 +79,68 @@ RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_pip && \
7879
echo "fi" >> /opt/mlc-python-2.7.11/bin/mlc_pip && \
7980
chmod 755 /opt/mlc-python-2.7.11/bin/mlc_pip
8081

82+
RUN yum install freeglut-devel libxcb libxcb-devel xcb-util xcb-util-devel git -y
83+
84+
# Install Qt5.7
85+
RUN git clone git://code.qt.io/qt/qtbase.git && \
86+
cd qtbase && \
87+
git checkout 5.7 && \
88+
./configure --prefix=/opt/mlc-python-2.7.11/Qt-5.7.1 -xkb-config-root /usr/share/X11/xkb -no-gtk -nomake tests -nomake examples -qt-xcb --opensource --confirm-license && make -j4 && make install && \
89+
rm -rf /tmp/qtbase
90+
91+
RUN git clone git://code.qt.io/qt/qtcharts.git && \
92+
cd qtcharts && \
93+
git checkout 5.7 && \
94+
/opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake CONFIG+=release && make -j4 && make install && \
95+
rm -rf /tmp/qtcharts
96+
97+
RUN git clone git://code.qt.io/qt/qtdatavis3d.git && \
98+
cd qtdatavis3d && \
99+
git checkout 5.7 && \
100+
/opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake CONFIG+=release && make -j4 && make install && \
101+
rm -rf /tmp/qtdatavis3d
102+
103+
RUN git clone git://code.qt.io/qt/qtdeclarative.git && \
104+
cd qtdeclarative && \
105+
git checkout 5.7 && \
106+
/opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake CONFIG+=release && make -j4 && make install && \
107+
rm -rf /tmp/qtdeclarative
108+
109+
RUN git clone git://code.qt.io/qt/qtx11extras.git && \
110+
cd qtx11extras && \
111+
git checkout 5.7 && \
112+
/opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake CONFIG+=release && make -j4 && make install && \
113+
rm -rf /tmp/qtx11extras
81114

82-
# Install PyQt5 Environment
115+
# Add PyQt5 Support
83116
RUN wget https://sourceforge.net/projects/pyqt/files/sip/sip-4.19/sip-4.19.tar.gz && \
84117
tar xzvf sip-4.19.tar.gz && \
85118
cd sip-4.19 && \
86119
/opt/mlc-python-2.7.11/bin/mlc_python configure.py && \
87-
make && make install
120+
make -j4 && make install && \
121+
rm -rf /tmp/sip-4.19*
88122

89123
RUN wget https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.7.1/PyQt5_gpl-5.7.1.tar.gz && \
90124
tar xzvf PyQt5_gpl-5.7.1.tar.gz && \
91125
cd PyQt5_gpl-5.7.1 && \
92-
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /usr/bin/qmake-qt5 --confirm-license --sip /opt/mlc-python-2.7.11/bin/sip && \
93-
make && make install
126+
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake --confirm-license --sip /opt/mlc-python-2.7.11/bin/sip && \
127+
make -j4 && make install && \
128+
rm -rf /tmp/PyQt5_gpl-5.7.1*
129+
130+
# Add PyQt5 Charts
131+
RUN wget https://sourceforge.net/projects/pyqt/files/PyQtChart/PyQtChart-5.7.1/PyQtChart_gpl-5.7.1.tar.gz && \
132+
tar xzvf PyQtChart_gpl-5.7.1.tar.gz && \
133+
cd PyQtChart_gpl-5.7.1 && \
134+
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake --sip /opt/mlc-python-2.7.11/bin/sip && \
135+
make -j4 && make install && \
136+
rm -rf /tmp/PyQtChart_gpl-5.7.1*
137+
138+
RUN wget https://sourceforge.net/projects/pyqt/files/PyQtDataVisualization/PyQtDataVisualization-5.7.1/PyQtDataVisualization_gpl-5.7.1.tar.gz/download -O PyQtDataVisualization_gpl-5.7.1.tar.gz && \
139+
tar xzvf PyQtDataVisualization_gpl-5.7.1.tar.gz && \
140+
cd PyQtDataVisualization_gpl-5.7.1 && \
141+
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /opt/mlc-python-2.7.11/Qt-5.7.1/bin/qmake --sip /opt/mlc-python-2.7.11/bin/sip && \
142+
make -j4 && make install && \
143+
rm -rf /tmp/PyQtDataVisualization_gpl-5.7.1*
94144

95145
# Create .sh who will load the desired enviroment to run pip within it
96146
RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_pyuic5 && \
@@ -107,31 +157,6 @@ RUN echo '#!/bin/bash' >> /opt/mlc-python-2.7.11/bin/mlc_pyuic5 && \
107157
echo "fi" >> /opt/mlc-python-2.7.11/bin/mlc_pyuic5 && \
108158
chmod 755 /opt/mlc-python-2.7.11/bin/mlc_pyuic5
109159

110-
# Add PyQt5 Charts
111-
RUN yum update -y && yum install git -y
112-
RUN git clone git://code.qt.io/qt/qtcharts.git && \
113-
cd qtcharts && \
114-
git checkout release-2.1.0 && \
115-
/usr/bin/qmake-qt5 && make && make install
116-
117-
RUN wget https://sourceforge.net/projects/pyqt/files/PyQtChart/PyQtChart-5.7.1/PyQtChart_gpl-5.7.1.tar.gz && \
118-
tar xzvf PyQtChart_gpl-5.7.1.tar.gz && \
119-
cd PyQtChart_gpl-5.7.1 && \
120-
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /usr/bin/qmake-qt5 --qtchart-version=2.1.0 --sip /opt/mlc-python-2.7.11/bin/sip && \
121-
make && make install
122-
123-
RUN git clone git://code.qt.io/qt/qtdatavis3d.git && \
124-
cd qtdatavis3d && \
125-
git checkout 5.7 && \
126-
/usr/bin/qmake-qt5 && make && make install
127-
128-
RUN wget https://sourceforge.net/projects/pyqt/files/PyQtDataVisualization/PyQtDataVisualization-5.7.1/PyQtDataVisualization_gpl-5.7.1.tar.gz/download -O PyQtDataVisualization_gpl-5.7.1.tar.gz && \
129-
tar xzvf PyQtDataVisualization_gpl-5.7.1.tar.gz && \
130-
cd PyQtDataVisualization_gpl-5.7.1 && \
131-
/opt/mlc-python-2.7.11/bin/mlc_python configure.py --qmake /usr/bin/qmake-qt5 --sip /opt/mlc-python-2.7.11/bin/sip && \
132-
make && make install
133-
134-
135160
# Install mlc dependencies
136161
RUN /opt/mlc-python-2.7.11/bin/mlc_pip install pyserial numpy nose matplotlib scipy pyyaml flask requests
137162

0 commit comments

Comments
 (0)