diff --git a/docker/imap/Dockerfile b/docker/imap/Dockerfile index 2d4ca537..a3579e70 100644 --- a/docker/imap/Dockerfile +++ b/docker/imap/Dockerfile @@ -1,44 +1,44 @@ -FROM apheleia/almalinux8 +FROM apheleia/almalinux9 WORKDIR /root/ RUN dnf -y group install "Development Tools" && \ dnf -y install git autoconf automake bison cyrus-sasl-devel flex gcc gperf jansson-devel libbsd-devel libtool libicu-devel libuuid-devel openssl-devel pkgconfig sqlite-devel brotli-devel libical-devel libxml2-devel libnghttp2-devel shapelib zlib-devel pcre-devel perl-devel cyrus-imapd cyrus-sasl cyrus-sasl-plain rsync && \ dnf clean all ARG GIT_REF=dev/mollekopf ARG GIT_REMOTE=https://git.kolab.org/source/cyrus-imapd ADD build.sh /build.sh RUN /build.sh COPY /rootfs / VOLUME [ "/var/spool/imap" ] VOLUME [ "/var/lib/imap" ] RUN id default || (groupadd -g 1001 default && useradd -d /opt/app-root/ -u 1001 -g 1001 default) RUN mkdir -p /opt/app-root/src RUN PATHS=(/run /run/saslauthd /var/run /var/lib/imap /var/spool/imap /etc/pki/cyrus-imapd /opt/app-root/src /usr /usr/lib64 /usr/bin /usr/sbin) && \ mkdir -p ${PATHS[@]} && \ chmod 777 ${PATHS[@]} && \ chown -R 1001:0 ${PATHS[@]} && \ chmod -R g=u ${PATHS[@]} RUN PATHS=(/etc /etc/passwd /etc/saslauthd.conf /etc/cyrus.conf /etc/imapd.conf) && \ chown 1001:0 ${PATHS[@]} && \ chmod g=u ${PATHS[@]} USER 1001 WORKDIR /opt/app-root/src ENV SERVICES_PORT=8000 ENV IMAPD_CONF=/etc/imapd.conf ENV CYRUS_CONF=/etc/cyrus.conf # ENV APP_SERVICES_DOMAIN CMD ["/init.sh"] EXPOSE 11143/tcp 11993/tcp 11080/tcp 11443/tcp 11024/tcp 4190/tcp diff --git a/docker/imap/build.sh b/docker/imap/build.sh index 008ee057..f57a8786 100755 --- a/docker/imap/build.sh +++ b/docker/imap/build.sh @@ -1,20 +1,28 @@ #!/bin/bash +set -e + function checkout() { if [ ! -d "$1" ]; then git clone "$2" "$1" pushd "$1" git checkout "$3" popd fi } checkout cyrus-imapd $GIT_REMOTE $GIT_REF pushd cyrus-imapd autoreconf -i -./configure CFLAGS="-W -Wno-unused-parameter -g -O0 -Wall -Wextra -Werror -fPIC" --enable-murder --enable-http --enable-calalarmd --enable-autocreate --enable-idled --with-openssl=yes --enable-replication --prefix=/usr + +#-Wno-deprecated to work around the following: +#imap/http_h2.c:767:13: error: ‘MD5_Final’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] +# imap/ctl_mboxlist.c:997:21: error: ‘free’ called on pointer ‘entry’ with nonzero offset 2052 [-Werror=free-nonheap-object] +./configure CFLAGS="-W -Wno-unused-parameter -g -O0 -Wall -Wextra -Werror -Wno-error=deprecated-declarations -Wno-error=free-nonheap-object -fPIC" --enable-murder --enable-http --enable-calalarmd --enable-autocreate --enable-idled --with-openssl=yes --enable-replication --prefix=/usr + + make -j6 make install popd rm -rf cyrus-imapd