diff --git a/docker/Dockerfile b/docker/Dockerfile index 3038907c..f29765f6 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,73 +1,73 @@ -FROM fedora:28 +FROM fedora:30 RUN dnf -y update RUN dnf -y install gcc-c++ git doxygen cmake bzr vim tar make ninja-build clang procps-ng libcxx-devel sudo rsyslog llvm \ extra-cmake-modules qt5-qtbase-devel libgit2-devel lmdb-devel libcurl-devel xapian-core-devel flatbuffers-devel \ gdb xterm perf valgrind strace kcachegrind dbus-x11 gammaray heaptrack hotspot \ qt5-qtquickcontrols qt5-qtquickcontrols2-devel qt5-qtwebengine-devel qt5-qtxmlpatterns-devel \ kf5-ki18n-devel kf5-kcodecs-devel kf5-kcontacts-devel kf5-kmime-devel gpgme-devel kf5-kcalendarcore-devel \ cyrus-imapd cyrus-sasl cyrus-sasl-devel cyrus-sasl-plain gnupg2-smime pinentry-gtk \ google-noto-serif-fonts google-noto-sans-fonts \ xorg-x11-server-Xvfb qt5ct RUN useradd -d /home/developer -m developer ADD rsyslog.conf /etc/rsyslog.conf #Setup cyrus imap ADD imapd.conf /etc/imapd.conf RUN usermod -p `perl -e "print crypt("admin","Q4")"` cyrus RUN useradd -p `perl -e "print crypt("doe","Q4")"` doe RUN /usr/bin/sscg --package cyrus-imapd --cert-file /etc/pki/cyrus-imapd/cyrus-imapd.pem --cert-key-file /etc/pki/cyrus-imapd/cyrus-imapd-key.pem --ca-file /etc/pki/cyrus-imapd/cyrus-imapd-ca.pem RUN saslauthd -a shadow && /usr/libexec/cyrus-imapd/master -d && sleep 1 && echo "cm user.doe" | cyradm --auth PLAIN -u cyrus -w admin localhost #RUN echo "doe" | saslpasswd2 -p -u example.org doe #RUN chown cyrus:root /etc/sasldb2 #DBus For KCacheGrind RUN dbus-uuidgen --ensure # setup developer account RUN echo 'developer ALL=NOPASSWD: ALL' >> /etc/sudoers USER developer ENV HOME /home/developer WORKDIR /home/developer/ ENV QT_PLUGIN_PATH /install/lib64/plugins/ ENV LD_LIBRARY_PATH /install/lib64 ENV PATH /install/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ENV QML_IMPORT_PATH /install/lib64/qml ENV QML2_IMPORT_PATH /install/lib64/qml ENV XDG_CONFIG_DIRS /install/share/config ENV XDG_DATA_DIRS /install/share/:/usr/share RUN mkdir /tmp/runtime-developer ENV XDG_RUNTIME_DIR /tmp/runtime-developer ENV LANG en_US.UTF-8 ENV QT_QPA_PLATFORMTHEME qt5ct RUN git config --global url."git://anongit.kde.org/".insteadOf kde: && \ git config --global url."ssh://git@git.kde.org/".pushInsteadOf kde: ADD bashrc /home/developer/.bashrc ADD startimap.sh /home/developer/startimap.sh ADD setupkolabnowtest.sh /home/developer/setupkolabnowtest.sh ADD setupgoogletest.sh /home/developer/setupgoogletest.sh ADD kubeunlocked.sh /home/developer/kubeunlocked.sh ADD initrepositories.sh /home/developer/initrepositories.sh ADD keyconfig /home/developer/keyconfig ADD gpg-agent.conf /home/developer/.gnupg/gpg-agent.conf ADD gpg.conf /home/developer/.gnupg/gpg.conf ADD gdbinit /home/developer/.gdbinit ADD enableDebug.sh /home/developer/enableDebug.sh ADD private-key /home/developer/private-key ADD public-key /home/developer/public-key ADD qt5ct /home/developer/.config/qt5ct RUN sudo chown developer:developer /home/developer/* RUN sudo chown developer:developer /home/developer/.* -R RUN gpg2 --import /home/developer/public-key RUN gpg2 --batch --import /home/developer/private-key #Better qt support RUN git clone https://github.com/Lekensteyn/qt5printers.git ~/.gdb/qt5printers/ diff --git a/docker/imapd.conf b/docker/imapd.conf index 320cbd36..a12557ec 100644 --- a/docker/imapd.conf +++ b/docker/imapd.conf @@ -1,139 +1,139 @@ # Suggested minimal imapd.conf # See imapd.conf(5) for more information and more options # Space-separated users who have admin rights for all services. # NB: THIS MUST BE CONFIGURED admins: cyrus ################################################################### ## File, socket and DB location settings. ################################################################### # Configuration directory configdirectory: /var/lib/imap # Directories for proc and lock files proc_path: /run/cyrus/proc mboxname_lockpath: /run/cyrus/lock # Locations for DB files # The following DB are recreated upon initialization, so should live in # ephemeral storage for best performance. duplicate_db_path: /run/cyrus/db/deliver.db ptscache_db_path: /run/cyrus/db/ptscache.db statuscache_db_path: /run/cyrus/db/statuscache.db tls_sessions_db_path: /run/cyrus/db/tls_sessions.db # Which partition to use for default mailboxes defaultpartition: default partition-default: /var/spool/imap # If sieveusehomedir is false (the default), this directory is searched # for Sieve scripts. sievedir: /var/lib/imap/sieve ################################################################### ## Important: KEEP THESE IN SYNC WITH cyrus.conf ################################################################### lmtpsocket: /run/cyrus/socket/lmtp idlesocket: /run/cyrus/socket/idle notifysocket: /run/cyrus/socket/notify # Syslog prefix. Defaults to cyrus (so logging is done as cyrus/imap # etc.) syslog_prefix: cyrus ################################################################### ## Server behaviour settings ################################################################### # Space-separated list of HTTP modules that will be enabled in # httpd(8). This option has no effect on modules that are disabled at # compile time due to missing dependencies (e.g. libical). # Fedora default: enable all modules besides admin -httpmodules: caldav carddav domainkey freebusy ischedule jmap rss tzdist webdav +httpmodules: caldav carddav domainkey freebusy ischedule rss tzdist webdav # If enabled, the partitions will also be hashed, in addition to the # hashing done on configuration directories. This is recommended if one # partition has a very bushy mailbox tree. hashimapspool: true # Disable virtual domains by default virtdomains: off ################################################################### ## User experience settings ################################################################### # Minimum time between POP mail fetches in minutes popminpoll: 1 # Conversation support is required for jmap conversations: 1 conversations_db: twoskip # This will default to on in 3.1, and improves compatibility with some Apple # devices. Upstream https://github.com/cyrusimap/cyrus-imapd/issues/1556 specialusealways: 1 ################################################################### ## User Authentication settings ################################################################### # Allow plaintext logins by default (SASL PLAIN) allowplaintext: yes ################################################################### ## SASL library options (these are handled directly by the SASL ## libraries, refer to SASL documentation for an up-to-date list of ## these) ################################################################### # The mechanism(s) used by the server to verify plaintext passwords. # Possible values are "saslauthd", "auxprop", "pwcheck" and # "alwaystrue". They are tried in order, you can specify more than one, # separated by spaces. # * saslauthd works when started with the shadow mech # * auxprop should work when: # * setting default_domain: example.org # * creating a password with 'echo "doe" | saslpasswd2 -p -u example.org doe' (chown cyrus:root /etc/sasldb2) # * either login with doe@example.org, ensure the current hostname is example.org. # * We currently use the saslauthd option so we can login using just doe sasl_pwcheck_method: saslauthd # If enabled, the SASL library will automatically create authentication # secrets when given a plaintext password. Refer to SASL documentation sasl_auto_transition: no ################################################################### ## SSL/TLS Options ################################################################### # These three files will automatically be generated by the systemd unit when # the service starts for the first time. tls_server_cert: /etc/pki/cyrus-imapd/cyrus-imapd.pem tls_server_key: /etc/pki/cyrus-imapd/cyrus-imapd-key.pem tls_client_ca_file: /etc/pki/cyrus-imapd/cyrus-imapd-ca.pem # File containing the global certificate used for ALL services (imap, # pop3, lmtp, sieve) #tls_server_cert: /etc/ssl/certs/ssl-cert-snakeoil.pem # File containing the private key belonging to the global server # certificate. #tls_server_key: /etc/ssl/private/ssl-cert-snakeoil.key # File containing one or more Certificate Authority (CA) certificates. #tls_client_ca_file: /etc/ssl/certs/cyrus-imapd-ca.pem # Path to directory with certificates of CAs. tls_client_ca_dir: /etc/ssl/certs # The length of time (in minutes) that a TLS session will be cached for # later reuse. The maximum value is 1440 (24 hours), the default. A # value of 0 will disable session caching. tls_session_timeout: 1440 altnamespace: 0 unixhierarchysep: 0