Warning, /pim/kdepim-docker/Dockerfile is written in an unsupported language. File is not indexed.
0001 FROM kdeneon/plasma:unstable
0002 MAINTAINER KDE PIM <kde-pim@kde.org>
0003 ARG QTVERSION
0004
0005 USER root
0006
0007 RUN apt-get update && apt-get dist-upgrade -y
0008
0009 # Setup environment for NVIDIA
0010 LABEL com.nvidia.volumes.needed="nvidia_driver"
0011 RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \
0012 echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf
0013 ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
0014 ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64:${LD_LIBRARY_PATH}
0015
0016 RUN apt install neon-settings-2
0017
0018 # uninstall the KDE PIM that ships in the base image
0019 RUN apt-get remove -y \
0020 kdesdk-devenv-dependencies \
0021 && apt autoremove -y
0022
0023 # Minimal dependencies
0024 RUN apt-get install -y --no-install-recommends \
0025 cmake extra-cmake-modules g++ gettext git libboost-all-dev \
0026 libfreetype6-dev make libyaml-perl libyaml-libyaml-perl
0027
0028 # requirements for clazy
0029 #RUN apt-get update && apt-get install -y --no-install-recommends \
0030 # clang llvm-dev libclang-dev
0031
0032 # build and install clazy
0033 #RUN git clone git://anongit.kde.org/clazy.git \
0034 # && cd clazy \
0035 # && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
0036 # && make install
0037 #RUN rm -rf clazy
0038
0039 # runtime dependencies (MariaDB, postgresql)
0040 RUN apt-get install -y --no-install-recommends \
0041 mariadb-server postgresql
0042
0043 # dependencies for development
0044 RUN apt-get install -y --no-install-recommends \
0045 cmake-curses-gui ccache icecc\
0046 less vim strace kdevelop valgrind gdb gammaray
0047
0048 # currently there is no QT6 documentation
0049 #RUN apt-get install -y --no-install-recommends \
0050 # qt5-doc qt*5-doc
0051
0052 # install KDE PIM dependencies
0053 RUN apt-get install -y --no-install-recommends \
0054 libassuan-dev bison libical3-dev liblzma-dev \
0055 libxslt-dev libsqlite3-dev libxapian-dev xsltproc \
0056 libsasl2-dev libldap2-dev libqrencode-dev libdmtx-dev \
0057 libpoppler-private-dev libzxing-dev \
0058 breeze-icon-theme flex gpgsm osmctools pinentry-qt xsdcxx
0059
0060 RUN if [ "$QTVERSION" = 6 ] ; \
0061 then apt-get install -y --no-install-recommends --allow-remove-essential \
0062 kio- libkf5*- plasma-desktop- neon-desktop- \
0063 libkf6archive-dev libkf6auth-dev libkf6bookmarks-dev libkf6calendarcore-dev libkf6codecs-dev \
0064 libkf6completion-dev libkf6config-dev libkf6configwidgets-dev libkf6contacts-dev \
0065 libkf6coreaddons-dev libkf6crash-dev libkf6dav-dev libkf6dbusaddons-dev libkf6declarative-dev \
0066 libkf6dnssd-dev libkf6doctools-dev \
0067 libkf6globalaccel-dev libkf6guiaddons-dev libkf6holidays-dev libkf6i18n-dev libkf6iconthemes-dev \
0068 libkf6itemmodels-dev libkf6itemviews-dev libkf6jobwidgets-dev libkf6kcmutils-dev \
0069 libkf6kio-dev libkf6newstuff-dev \
0070 libkf6notifications-dev libkf6notifyconfig-dev libkf6parts-dev libkf6prison-dev \
0071 libkf6qqc2desktopstyle-dev libkf6runner-dev \
0072 libkf6service-dev libkf6sonnet-dev libkf6syntaxhighlighting-dev libkf6syndication-dev \
0073 libkf6texteditor-dev libkf6textwidgets-dev libkf6wallet-dev libkf6widgetsaddons-dev \
0074 libkf6windowsystem-dev libkf6xmlgui-dev libkf6networkmanagerqt-dev \
0075 libkf6purpose-dev \
0076 libpoppler-qt6-dev \
0077 ; else apt-get install -y --no-install-recommends \
0078 qtbase5-private-dev qtwebengine5-dev libqt5x11extras5-dev qttools5-dev \
0079 libqt5svg5-dev libqt5texttospeech5-dev libqt5sql5-mysql libqt5sql5-psql \
0080 libqca-qt5-2-dev libqt5networkauth5-dev qt5keychain-dev qtlocation5-dev \
0081 qtmultimedia5-dev qtquickcontrols2-5-dev qtdeclarative5-private-dev \
0082 \
0083 libgrantlee5-dev libphonon4qt5-dev libgpgmepp-dev libgpgme-dev \
0084 libkaccounts-dev kirigami2-dev libkolabxml-dev kross-dev \
0085 kirigami-addons-dev \
0086 \
0087 libkf5archive-dev libkf5auth-dev libkf5bookmarks-dev libkf5calendarcore-dev libkf5codecs-dev \
0088 libkf5completion-dev libkf5config-dev libkf5configwidgets-dev libkf5contacts-dev \
0089 libkf5coreaddons-dev libkf5crash-dev libkf5dav-dev libkf5dbusaddons-dev libkf5declarative-dev \
0090 libkf5dnssd-dev libkf5doctools-dev libkf5emoticons-dev \
0091 libkf5globalaccel-dev libkf5guiaddons-dev libkf5holidays-dev libkf5i18n-dev libkf5iconthemes-dev \
0092 libkf5itemmodels-dev libkf5itemviews-dev libkf5jobwidgets-dev libkf5kcmutils-dev \
0093 libkf5kdelibs4support-dev libkf5kio-dev libkf5newstuff-dev \
0094 libkf5notifications-dev libkf5notifyconfig-dev libkf5parts-dev libkf5prison-dev \
0095 libkf5qqc2desktopstyle-dev libkf5runner-dev \
0096 libkf5service-dev libkf5sonnet-dev libkf5syntaxhighlighting-dev libkf5syndication-dev \
0097 libkf5texteditor-dev libkf5textwidgets-dev libkf5wallet-dev libkf5widgetsaddons-dev \
0098 libkf5windowsystem-dev libkf5xmlgui-dev libkf5xmlrpcclient-dev libkf5networkmanagerqt-dev \
0099 libkf5purpose-dev \
0100 libpoppler-qt5-dev \
0101 ; fi
0102
0103 # Make polkit-1 writable - kalarm installs its policy there because
0104 # that's where kauth frameworks expects it. This is a development
0105 # environment, so it's not a huge problem, but don't try this at
0106 # home, kids.
0107 RUN chmod a+w /usr/share/polkit-1/actions
0108
0109 # Configure pulseaudio to connect to host pulseaudio. Requires running
0110 # container with -v=/var/run/${USER_UID}/pulse:/run/user/1000/pulse:rw,z
0111 # Based on https://github.com/TheBiggerGuy/docker-pulseaudio-example
0112 COPY pulse-client.conf /etc/pulse/client.conf
0113
0114 # Add neon to audio group
0115 RUN usermod -a -G audio neon
0116
0117 # Make XDG_RUNTIME_DIR owned by the user
0118 RUN mkdir -p /run/user/1000 && chown -R neon:neon /run/user/1000/ && chmod 7700 /run/user/1000/
0119 RUN mkdir -p /var/run/dbus
0120 # Make cache dire owned by the user (needed for kdevelop)
0121 RUN mkdir -p /home/neon/.cache && chown -R neon: /home/neon/.cache
0122
0123
0124 ################# USER actions ####################
0125 USER neon
0126
0127 # Clone & setup kdesrc-build
0128
0129 RUN git clone https://invent.kde.org/sdk/kdesrc-build.git
0130 COPY kde-env /home/neon/.kde-env
0131 COPY kdepim-env /home/neon/.kdepim-env
0132 COPY start-iceccd.sh /home/neon/.start-iceccd.sh
0133 COPY setup-dbus.sh /home/neon/.setup-dbus.sh
0134
0135 # Enable the environment
0136 RUN echo '\n\nsource /home/neon/.kdepim-env' >> ~/.bashrc
0137 RUN echo 'source /home/neon/.kde-env' >> ~/.bashrc
0138 RUN echo 'source /home/neon/.setup-dbus.sh' >> ~/.bashrc
0139 RUN echo 'source /home/neon/.start-iceccd.sh' >> ~/.bashrc
0140
0141 RUN mkdir kdepim
0142 COPY kdesrc-buildrc-qt${QTVERSION} /home/neon/kdepim/config/kdesrc-buildrc
0143
0144 # Make the ccache bigger (the default 5G is not enough for PIM)
0145 RUN mkdir /home/neon/kdepim/.ccache \
0146 && echo 'max_size = 10.0G' > /home/neon/kdepim/.ccache/ccache.conf
0147
0148 # Copy init.sh and start it
0149 COPY init.sh /usr/local/bin/init.sh
0150 ENTRYPOINT [ "/bin/bash" ]