Last active
April 22, 2018 13:09
-
-
Save cassinaj/8d87cb4a8ae68659f626 to your computer and use it in GitHub Desktop.
Docker file kf5-ubuntu:14.04 including KF5 and Kdevelop5.0.0 installed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM issac/qt5-ubuntu:14.04 | |
MAINTAINER Jan Issac <[email protected]> | |
# Use noninteractive debconf frontend | |
ENV DEBIAN_FRONTEND noninteractive | |
# install KF5 prerequisites | |
RUN apt-get -y install kubuntu-desktop | |
RUN apt-get -y build-dep qtbase5-dev | |
RUN apt-get -y install --no-install-recommends \ | |
libboost-dev \ | |
bzr \ | |
libjson-perl \ | |
libxml-parser-perl \ | |
cmake \ | |
libbz2-dev \ | |
libxslt-dev \ | |
libxml2-dev \ | |
shared-mime-info \ | |
oxygen-icon-theme \ | |
libgif-dev \ | |
libvlc-dev \ | |
libvlccore-dev \ | |
doxygen \ | |
gperf \ | |
libxapian-dev \ | |
fontforge \ | |
libgcrypt20-dev \ | |
libattr1-dev \ | |
network-manager-dev \ | |
libgtk-3-dev \ | |
xsltproc \ | |
xserver-xorg-dev \ | |
xserver-xorg-input-synaptics-dev \ | |
libpwquality-dev \ | |
modemmanager-dev \ | |
libxcb-keysyms1-dev \ | |
libepoxy-dev \ | |
libpolkit-agent-1-dev \ | |
libnm-util-dev \ | |
libnm-glib-dev \ | |
libxcb-xkb-dev \ | |
docbook-xml \ | |
docbook-xsl \ | |
liblmdb-dev \ | |
libgstreamer-plugins-base1.0-dev | |
RUN apt-get -y install --no-install-recommends \ | |
qtbase5-dev \ | |
qtbase5-private-dev \ | |
libqt5x11extras5-dev \ | |
qtscript5-dev \ | |
qttools5-dev \ | |
libqt5svg5-dev \ | |
libqt5xmlpatterns5-dev | |
RUN apt-get -y install --no-install-recommends \ | |
libjson-perl \ | |
libxml-parser-perl \ | |
qtdeclarative5-dev \ | |
libqt5webkit5-dev | |
# QT5 install prefix | |
ENV CMAKE_PREFIX_PATH /usr/local | |
# get kde source code | |
RUN cd /tmp \ | |
&& git clone git://anongit.kde.org/kdesrc-build | |
# write the kdesrc-buildrc | |
RUN cd /tmp/kdesrc-build && \ | |
printf "\n\ | |
global\n\ | |
\n\ | |
source-dir /tmp/kde/src\n\ | |
build-dir /tmp/kde/build\n\ | |
kdedir /usr/local\n\ | |
\n\ | |
git-repository-base kde-projects kde:\n\ | |
\n\ | |
cmake-options\ | |
-DCMAKE_BUILD_TYPE:STRING=release\ | |
-DKDE4_BUILD_TESTS=true\n\ | |
\n\ | |
make-options -j\n\ | |
\n\ | |
cxxflags\ | |
-std=c++11\ | |
-pipe\ | |
-DQT_STRICT_ITERATORS\ | |
-DQURL_NO_CAST_FROM_STRING\ | |
-DQT_NO_HTTP\ | |
-DQT_NO_FTP\ | |
-Wformat\ | |
-Werror=format-security\ | |
-Werror=return-type\ | |
-Wno-variadic-macros\ | |
-Wlogical-op\ | |
-Wmissing-include-dirs \n\ | |
\n\ | |
branch-group kf5-qt5\n\ | |
\n\ | |
end global\n\ | |
\n\ | |
include kf5-qt5-build-include\n"\ | |
> kdesrc-buildrc\ | |
&& sed -i 's/ *$//' kdesrc-buildrc | |
# build only kf5 frameworks | |
RUN cd /tmp/kdesrc-build \ | |
&& rm kf5-qt5-build-include \ | |
&& printf "\n \ | |
include kf5-frameworks-build-include\n \ | |
" > kf5-qt5-build-include \ | |
&& sed -i 's/ *$//' kf5-qt5-build-include | |
# Update and build KF5 frameworks | |
RUN cd /tmp/kdesrc-build \ | |
&& ./kdesrc-build --no-install \ | |
|| echo "workaround failure bug ..." | |
# Fix stupid baloo messed up CMakeLists.txt | |
RUN cd /tmp/kde/src/frameworks \ | |
&& cd baloo/tests/file \ | |
&& sed -i 's/\#\[\[//g' CMakeLists.txt \ | |
&& sed -i 's/\]\]//g' CMakeLists.txt | |
# Compilation KF5 frameworks | |
RUN cd /tmp/kdesrc-build \ | |
&& ./kdesrc-build --no-src \ | |
|| echo "just pass ..." | |
# build and install grantlee | |
RUN cd /tmp \ | |
&& mkdir grantlee \ | |
&& cd grantlee \ | |
&& wget \ | |
http://downloads.grantlee.org/grantlee-5.0.0.tar.gz \ | |
&& tar xvfz grantlee-5.0.0.tar.gz \ | |
&& cd grantlee-5.0.0 \ | |
&& mkdir build \ | |
&& cd build \ | |
&& cmake .. \ | |
&& make -j \ | |
&& make install | |
# build and install libkomparediff2 | |
RUN cd /tmp \ | |
&& mkdir libkomparediff2 \ | |
&& cd libkomparediff2 \ | |
&& git clone git://anongit.kde.org/libkomparediff2 src \ | |
&& mkdir build \ | |
&& cd build \ | |
&& cmake ../src \ | |
&& make -j \ | |
&& make install | |
# build and install kdevplatform | |
RUN cd /tmp \ | |
&& mkdir kdevplatform \ | |
&& cd kdevplatform \ | |
&& git clone git://anongit.kde.org/kdevplatform src \ | |
&& mkdir build \ | |
&& cd build \ | |
&& cmake ../src \ | |
&& make -j \ | |
&& make install | |
RUN echo "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty main" | tee -a /etc/apt/sources.list | |
RUN echo "deb-src http://llvm.org/apt/trusty/ llvm-toolchain-trusty main" | tee -a /etc/apt/sources.list | |
RUN echo "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.7 main" | tee -a /etc/apt/sources.list | |
RUN echo "deb-src http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.7 main" | tee -a /etc/apt/sources.list | |
# install llvm | |
RUN apt-get update | |
RUN apt-get -y --force-yes install \ | |
clang-3.5 "clang-3.5-*" "llvm-3.5-*" | |
# build and install kdevelop | |
RUN cd /tmp \ | |
&& mkdir kdevelop \ | |
&& cd kdevelop \ | |
&& git clone git://anongit.kde.org/kdevelop src \ | |
&& mkdir build \ | |
&& cd build \ | |
&& cmake ../src \ | |
&& make -j \ | |
&& make install | |
RUN echo "export KF5=/usr/local" | tee -a /etc/bash.bashrc | |
RUN echo "export QTDIR=/usr/local" | tee -a /etc/bash.bashrc | |
RUN echo "export QT_PLUGIN_PATH=\$KF5/lib/plugins:\$KF5/lib64/plugins:\$KF5/lib/x86_64-linux-gnu/plugins:\$QTDIR/plugins" | tee -a /etc/bash.bashrc | |
RUN echo "export XDG_DATA_DIRS=\$KF5/share:\$XDG_DATA_DIRS:/usr/share" | tee -a /etc/bash.bashrc | |
RUN echo "export XDG_CONFIG_DIRS=\$KF5/etc/xdg:\$XDG_CONFIG_DIRS:/etc/xdg" | tee -a /etc/bash.bashrc | |
RUN echo "export XDG_CONFIG_DIRS=\$KF5/etc/xdg:\$XDG_CONFIG_DIRS:/etc/xdg" | tee -a /etc/bash.bashrc | |
RUN echo "export QML_IMPORT_PATH=\$QML2_IMPORT_PATH" | tee -a /etc/bash.bashrc | |
RUN echo "export KDE_SESSION_VERSION=5" | tee -a /etc/bash.bashrc | |
RUN echo "export KDE_FULL_SESSION=true" | tee -a /etc/bash.bashrc | |
RUN echo "export CMAKE_PREFIX_PATH=\$KF5:\$CMAKE_PREFIX_PATH" | tee -a /etc/bash.bashrc | |
RUN echo "export QT_MESSAGE_PATTERN='%{appname}(%{pid})/%{category} %{function}: %{message}'" | tee -a /etc/bash.bashrc |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment