Warning, /sdk/codevis/packaging/centos7/Dockerfile is written in an unsupported language. File is not indexed.
0001 FROM centos:7 AS base
0002
0003 ENV LLVM_VERSION=17.0.1 \
0004 CMAKE_VERSION=3.25.2 \
0005 OPENSSL_VERSION=1.1.1k \
0006 QT_VERSION=5.15.7
0007
0008 RUN yum install -y centos-release-scl \
0009 && yum install -y devtoolset-9
0010 RUN echo "source /opt/rh/devtoolset-9/enable" >> /etc/bashrc
0011 SHELL ["/bin/bash", "--login", "-c"]
0012 RUN yum -y install epel-release \
0013 && yum -y makecache \
0014 && yum -y update && yum -y install wget gnupg git wheel python3-pip bash ninja zlib-devel
0015
0016 WORKDIR /codevis
0017
0018 # Openssl
0019 RUN echo "Downloading OpenSSL" \
0020 && wget https://ftp.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
0021 && tar -xf openssl-${OPENSSL_VERSION}.tar.gz \
0022 && rm openssl-${OPENSSL_VERSION}.tar.gz \
0023 && cd openssl-${OPENSSL_VERSION} \
0024 && ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib no-shared zlib-dynamic \
0025 && make -j$(nproc) \
0026 && make install \
0027 && cd /codevis \
0028 && rm -rf /codevis/openssl-${OPENSSL_VERSION}
0029
0030 # CMake
0031 RUN echo "Downloading CMake" \
0032 && wget "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz" \
0033 && tar -xf cmake-${CMAKE_VERSION}.tar.gz \
0034 && rm cmake-${CMAKE_VERSION}.tar.gz \
0035 && cd cmake-${CMAKE_VERSION} \
0036 && ./bootstrap --prefix=/usr/ \
0037 && make -j$(nproc) \
0038 && make install \
0039 && cd /codevis \
0040 && rm -rf /codevis/cmake-${CMAKE_VERSION}
0041
0042 # LLVM
0043 RUN echo "Downloading LLVM" \
0044 && wget "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/llvm-project-${LLVM_VERSION}.src.tar.xz" \
0045 && tar -xf llvm-project-${LLVM_VERSION}.src.tar.xz \
0046 && rm llvm-project-${LLVM_VERSION}.src.tar.xz \
0047 && mkdir build \
0048 && mkdir build/llvm-project
0049 RUN cd build/llvm-project \
0050 && cmake -DBUILD_SHARED_LIBS=Off \
0051 -DCMAKE_BUILD_TYPE=Release \
0052 -DCMAKE_INSTALL_PREFIX=/usr \
0053 -DLIBOMP_INSTALL_ALIASES=OFF \
0054 -DLLDB_ENABLE_LUA=OFF \
0055 -DLLDB_ENABLE_LZMA=ON \
0056 -DLLDB_ENABLE_PYTHON=OFF \
0057 -DLLDB_INCLUDE_TESTS=OFF \
0058 -DLLDB_USE_SYSTEM_DEBUGSERVER=OFF \
0059 -DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \
0060 -DLLVM_BUILD_LLVM_C_DYLIB=OFF \
0061 -DLLVM_ENABLE_DIA_SDK=1 \
0062 -DLLVM_ENABLE_EH=ON \
0063 -DLLVM_ENABLE_FFI=OFF \
0064 -DLLVM_ENABLE_LIBCXX=ON \
0065 -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" \
0066 -DLLVM_ENABLE_RTTI=ON \
0067 -DLLVM_ENABLE_RUNTIMES="compiler-rt" \
0068 -DLLVM_ENABLE_Z3_SOLVER=OFF \
0069 -DLLVM_INCLUDE_DOCS=OFF \
0070 -DLLVM_INCLUDE_TESTS=OFF \
0071 -DLLVM_INSTALL_UTILS=ON \
0072 -DLLVM_LINK_LLVM_DYLIB=ON \
0073 -DLLVM_OPTIMIZED_TABLEGEN=ON \
0074 -DLLVM_POLLY_LINK_INTO_TOOLS=ON \
0075 -DLLVM_TARGETS_TO_BUILD="X86" \
0076 -B /codevis/build/llvm-${LLVM_VERSION} \
0077 -S /codevis/llvm-project-${LLVM_VERSION}.src/llvm
0078 RUN cmake --build /codevis/build/llvm-${LLVM_VERSION} --parallel $(nproc) --config Release \
0079 && cmake --install /codevis/build/llvm-${LLVM_VERSION} \
0080 && rm -rf /codevis/build/llvm-${LLVM_VERSION} \
0081 && rm -rf /codevis/llvm-project-${LLVM_VERSION}.src
0082
0083 # QT
0084 RUN yum -y install \
0085 libXScrnSaver-devel \
0086 libXaw-devel \
0087 libXcomposite-devel \
0088 libXcursor-devel \
0089 libXdmcp-devel \
0090 libXinerama-devel \
0091 libXrandr-devel \
0092 libXres-devel \
0093 libXtst-devel \
0094 libXv-devel \
0095 libXvMC-devel \
0096 libfontenc-devel \
0097 libglvnd-devel \
0098 libuuid-devel \
0099 libxcb \
0100 libxcb-devel \
0101 libxkbcommon-devel \
0102 libxkbcommon-x11-devel \
0103 libxkbfile-devel \
0104 mesa-libGL-devel \
0105 sqlite-devel \
0106 xcb-util \
0107 xcb-util-devel \
0108 xcb-util-image-devel \
0109 xcb-util-keysyms-devel \
0110 xcb-util-renderutil-devel \
0111 xcb-util-wm-devel \
0112 xkeyboard-config-devel
0113 RUN cd /codevis \
0114 && wget https://download.qt.io/archive/qt/5.15/${QT_VERSION}/single/qt-everywhere-opensource-src-${QT_VERSION}.tar.xz \
0115 && tar -xf qt-everywhere-opensource-src-${QT_VERSION}.tar.xz \
0116 && rm qt-everywhere-opensource-src-${QT_VERSION}.tar.xz
0117 RUN mkdir /codevis/build/qt5 \
0118 && cd /codevis/build/qt5 \
0119 && ../../qt-everywhere-src-${QT_VERSION}/configure -opensource -confirm-license -xcb -xcb-xlib -bundled-xcb-xinput \
0120 -nomake examples -nomake tests --prefix=/usr
0121 RUN cd /codevis/build/qt5 \
0122 && make -j$(nproc) \
0123 && make install \
0124 && rm -rf /codevis/build/qt5 \
0125 && rm -rf /codevis/qt-everywhere-opensource-src-${QT_VERSION}
0126
0127 # Catch2 (For testing only)
0128 RUN git clone https://github.com/catchorg/Catch2.git \
0129 && cd Catch2 \
0130 && cmake -Bbuild -H. -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=/usr \
0131 && cmake --build build/ --target install
0132
0133 RUN yum -y install python-devel
0134
0135 RUN rm -rf /codevis/
0136
0137 # KDE / KF5 libraries (Old work, kept for reference)
0138 #RUN wget https://www.cpan.org/src/5.0/perl-5.38.2.tar.gz
0139 #RUN tar -xvf perl-5.38.2.tar.gz && cd perl-5.38.2
0140 #RUN ./Configure -d -e
0141 #RUN make && make install
0142 #RUN mv /usr/local/bin/perl /usr/local/bin/perl.old
0143 #RUN ln -s /usr/local/bin/perl5.38.2 /usr/local/bin/perl
0144 #RUN mv /usr/bin/perl /usr/bin/perl.old
0145 #RUN ln -s /usr/local/bin/perl5.38.2 /usr/bin/perl
0146 #RUN mkdir /root/kde/src
0147 #WORKDIR /root/kde/src/
0148 #RUN git clone https://invent.kde.org/sdk/kdesrc-build.git
0149 #WORKDIR /root/kde/src/kdesrc-build/
0150 #RUN yum install -y dnf
0151 # NOTE: kdesrc-build fails due to not-found packages.
0152 # The solution was to avoid using kdesrc-build.
0153 #RUN yes | ./kdesrc-build --initial-setup
0154
0155 # ECM
0156 WORKDIR /
0157 RUN git clone https://github.com/KDE/extra-cmake-modules.git
0158 RUN cd /extra-cmake-modules/ \
0159 && mkdir -p build \
0160 && cd build/ \
0161 && cmake .. \
0162 && make \
0163 && make install
0164
0165 # KArchive
0166 WORKDIR /
0167 RUN git clone https://github.com/KDE/karchive.git
0168 RUN cd /karchive/ \
0169 && git checkout kf5\
0170 && mkdir -p build \
0171 && cd build/ \
0172 && cmake .. \
0173 && make \
0174 && make install
0175
0176 WORKDIR /
0177 ADD deploy.sh /
0178 RUN chmod +x /deploy.sh
0179 CMD ["/bin/bash", "/deploy.sh"]