Skip to content

Instantly share code, notes, and snippets.

@cassinaj
Last active April 22, 2018 13:09
Show Gist options
  • Save cassinaj/8d87cb4a8ae68659f626 to your computer and use it in GitHub Desktop.
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
FROM issac/qt5-ubuntu:14.04
MAINTAINER Jan Issac <jan.issac@gmail.com>
# 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