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" ]