pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/mail/bincimap Add bincimap, an IMAP server for Maildir.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/4b41e07aef4d
branches:  trunk
changeset: 444987:4b41e07aef4d
user:      schmonz <schmonz%pkgsrc.org@localhost>
date:      Fri Jan 15 19:50:25 2021 +0000

description:
Add bincimap, an IMAP server for Maildir.

Binc IMAP strives to be stable, fast, flexible, and RFC compliant. Like
qmail-pop3d, it authenticates via a checkpassword program.

diffstat:

 mail/bincimap/DESCR                                |   3 +
 mail/bincimap/Makefile                             |  46 ++++++++++++++++++
 mail/bincimap/PLIST                                |  17 ++++++
 mail/bincimap/distinfo                             |  12 ++++
 mail/bincimap/files/bincimapd.sh                   |  56 ++++++++++++++++++++++
 mail/bincimap/options.mk                           |  30 +++++++++++
 mail/bincimap/patches/patch-Makefile.in            |  15 +++++
 mail/bincimap/patches/patch-conf_Makefile.in       |  17 ++++++
 mail/bincimap/patches/patch-conf_bincimap.conf.in  |  43 ++++++++++++++++
 mail/bincimap/patches/patch-doc_manual_Makefile.in |  14 +++++
 mail/bincimap/patches/patch-man_bincimap-up.1      |  15 +++++
 mail/bincimap/patches/patch-src_convert.h          |  15 +++++
 12 files changed, 283 insertions(+), 0 deletions(-)

diffs (truncated from 331 to 300 lines):

diff -r 5691a7b28a75 -r 4b41e07aef4d mail/bincimap/DESCR
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/bincimap/DESCR       Fri Jan 15 19:50:25 2021 +0000
@@ -0,0 +1,3 @@
+Binc IMAP is an IMAP4rev1 server for Maildir. It strives to be stable,
+fast, flexible, and RFC compliant. Like qmail-pop3d, it authenticates
+via a checkpassword program.
diff -r 5691a7b28a75 -r 4b41e07aef4d mail/bincimap/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/bincimap/Makefile    Fri Jan 15 19:50:25 2021 +0000
@@ -0,0 +1,46 @@
+# $NetBSD: Makefile,v 1.1 2021/01/15 19:50:25 schmonz Exp $
+
+DISTNAME=              bincimap-1.2.13final
+PKGNAME=               ${DISTNAME:S/final$//}
+CATEGORIES=            mail
+MASTER_SITES=          ${MASTER_SITE_SOURCEFORGE:=bincimap/}
+
+MAINTAINER=            schmonz%NetBSD.org@localhost
+HOMEPAGE=              https://sourceforge.net/projects/bincimap/
+COMMENT=               IMAP server for Maildir using checkpassword
+LICENSE=               gnu-gpl-v2
+
+DEPENDS+=              daemontools-[0-9]*:../../sysutils/daemontools
+DEPENDS+=              pkg_alternatives-[0-9]*:../../pkgtools/pkg_alternatives
+DEPENDS+=              qmail-acceptutils-[0-9]*:../../mail/qmail-acceptutils
+
+USE_LANGUAGES=         c c++
+
+GNU_CONFIGURE=         yes
+CONFIGURE_ARGS+=       --libexecdir=${PREFIX:Q}/${EGDIR:Q}
+CONFIGURE_ARGS+=       --sysconfdir=${PKG_SYSCONFDIR:Q}
+INSTALL_MAKE_FLAGS=    sysconfdir=${PREFIX:Q}/${EGDIR:Q}
+
+REPLACE_PERL=          conf/checkpassword.pl conf/toimapdir conf/tomaildir++
+
+SUBST_CLASSES+=                nobody
+SUBST_STAGE.nobody=    pre-configure
+SUBST_FILES.nobody=    conf/bincimap.conf.in
+SUBST_VARS.nobody=     BINCIMAP_USER BINCIMAP_GROUP
+
+PKG_USERS_VARS+=       BINCIMAP_USER
+PKG_GROUPS_VARS+=      BINCIMAP_GROUP
+PKG_GROUPS+=           ${BINCIMAP_GROUP}
+PKG_USERS+=            ${BINCIMAP_USER}:${BINCIMAP_GROUP}
+
+EGDIR=                 share/examples/${PKGBASE}
+CONF_FILES+=           ${PREFIX}/${EGDIR}/${PKGBASE}.conf \
+                       ${PKG_SYSCONFDIR}/${PKGBASE}.conf
+RCD_SCRIPTS=           bincimapd
+
+INSTALLATION_DIRS=     bin ${PKGMANDIR}/man1 ${PKGMANDIR}/man5
+INSTALLATION_DIRS+=    ${EGDIR}
+
+.include "options.mk"
+
+.include "../../mk/bsd.pkg.mk"
diff -r 5691a7b28a75 -r 4b41e07aef4d mail/bincimap/PLIST
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/bincimap/PLIST       Fri Jan 15 19:50:25 2021 +0000
@@ -0,0 +1,17 @@
+@comment $NetBSD: PLIST,v 1.1 2021/01/15 19:50:25 schmonz Exp $
+bin/bincimap-up
+bin/bincimapd
+man/man1/bincimap-up.1
+man/man1/bincimapd.1
+man/man5/bincimap.conf.5
+share/doc/bincimap/README
+share/doc/bincimap/bincimap-faq.html
+share/doc/bincimap/bincimap-goals.html
+share/doc/bincimap/bincimap-imapdir.html
+share/doc/bincimap/bincimap-manual.ps
+share/doc/bincimap/bincimap-tech.html
+share/doc/bincimap/bincimap.css
+share/examples/bincimap/bincimap.conf
+share/examples/bincimap/checkpassword.pl
+share/examples/bincimap/toimapdir
+share/examples/bincimap/tomaildir++
diff -r 5691a7b28a75 -r 4b41e07aef4d mail/bincimap/distinfo
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/bincimap/distinfo    Fri Jan 15 19:50:25 2021 +0000
@@ -0,0 +1,12 @@
+$NetBSD: distinfo,v 1.1 2021/01/15 19:50:25 schmonz Exp $
+
+SHA1 (bincimap-1.2.13final.tar.gz) = 76e9e96125ef683c7ca3474363723162569e5ec3
+RMD160 (bincimap-1.2.13final.tar.gz) = 454bc8d34c52b5cc1af68e55bfdc82ac0f36ced3
+SHA512 (bincimap-1.2.13final.tar.gz) = 53c4df3b46a433fae5dd441f1613dd1a0f73de43c25a56e1aa210f45b9d0b0201a0fdeb050f0b37646ce3b571d835b06cd6b1a566078aab8a61f352fc718e584
+Size (bincimap-1.2.13final.tar.gz) = 511059 bytes
+SHA1 (patch-Makefile.in) = ddcf628576a3c62c4eecda48899a5820fed912c5
+SHA1 (patch-conf_Makefile.in) = 8a979b150aff3c08a9be255be893cbe28094f7f7
+SHA1 (patch-conf_bincimap.conf.in) = d1083ebf2b12704545de8797d07c02c309f1ddfa
+SHA1 (patch-doc_manual_Makefile.in) = 713308a43bfdfc408de368692ae50b159a7db298
+SHA1 (patch-man_bincimap-up.1) = e052a7575754a6df7904d61718ad433d2d00eb0f
+SHA1 (patch-src_convert.h) = 387c56e49ded666f32680ff6983e1f155024bfde
diff -r 5691a7b28a75 -r 4b41e07aef4d mail/bincimap/files/bincimapd.sh
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/bincimap/files/bincimapd.sh  Fri Jan 15 19:50:25 2021 +0000
@@ -0,0 +1,56 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: bincimapd.sh,v 1.1 2021/01/15 19:50:25 schmonz Exp $
+#
+
+# PROVIDE: bincimapd mail
+
+name="bincimapd"
+
+# User-settable rc.conf variables and their default values:
+: ${bincimapd_postenv:=""}
+: ${bincimapd_datalimit:="180000000"}
+: ${bincimapd_pretcpserver:=""}
+: ${bincimapd_tcpserver:="@PREFIX@/bin/tcpserver"}
+: ${bincimapd_tcpflags:="-R -H"}
+: ${bincimapd_tcphost:=":0"}
+: ${bincimapd_tcpport:="143"}
+: ${bincimapd_precheckpassword:="@PREFIX@/bin/bincimap-up --conf=@PKG_SYSCONFDIR@/bincimap.conf --"}
+: ${bincimapd_checkpassword:="@PREFIX@/bin/nbcheckpassword"}
+: ${bincimapd_preimapd:="@PREFIX@/bin/checknotroot"}
+: ${bincimapd_imapdcmd:="@PREFIX@/bin/bincimapd"}
+: ${bincimapd_postimapd:=""}
+
+if [ -f /etc/rc.subr ]; then
+       . /etc/rc.subr
+fi
+
+rcvar=${name}
+required_files="@PKG_SYSCONFDIR@/bincimap.conf"
+command="${bincimapd_tcpserver}"
+procname=nb${name}
+start_precmd="bincimapd_precmd"
+
+bincimapd_precmd() {
+       # tcpserver(1) is akin to inetd(8), but runs one service per process.
+       # We want to signal only the tcpserver process responsible for this
+       # service. Use argv0(1) to set procname to "nbbincimapd".
+       command="@PREFIX@/bin/pgrphack @SETENV@ - ${bincimapd_postenv} \
+@PREFIX@/bin/softlimit -m ${bincimapd_datalimit} ${bincimapd_pretcpserver} \
+@PREFIX@/bin/argv0 ${bincimapd_tcpserver} ${procname} \
+${bincimapd_tcpflags} \
+${bincimapd_tcphost} ${bincimapd_tcpport} \
+${bincimapd_precheckpassword} ${bincimapd_checkpassword} \
+${bincimapd_preimapd} ${bincimapd_imapdcmd} ${bincimapd_postimapd}"
+       command_args="&"
+       rc_flags=""
+}
+
+if [ -f /etc/rc.subr ]; then
+       load_rc_config $name
+       run_rc_command "$1"
+else
+       @ECHO_N@ " ${name}"
+       bincimapd_precmd
+       eval ${command} ${bincimapd_flags} ${command_args}
+fi
diff -r 5691a7b28a75 -r 4b41e07aef4d mail/bincimap/options.mk
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/bincimap/options.mk  Fri Jan 15 19:50:25 2021 +0000
@@ -0,0 +1,30 @@
+# $NetBSD: options.mk,v 1.1 2021/01/15 19:50:25 schmonz Exp $
+
+PKG_OPTIONS_VAR=               PKG_OPTIONS.bincimap
+PKG_SUPPORTED_OPTIONS+=                inet6 pam tls
+PKG_SUGGESTED_OPTIONS+=                inet6 tls
+
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Minet6)
+DEPENDS+=                      ucspi-tcp6>=1.10.7nb1:../../net/ucspi-tcp6
+.else
+DEPENDS+=                      {ucspi-tcp6>=1.10.7nb1,ucspi-tcp-[0-9]*}:../../net/ucspi-tcp
+.endif
+
+.if !empty(PKG_OPTIONS:Mpam)
+DEPENDS+=                      checkpassword-pam>=0.99nb1:../../sysutils/checkpassword-pam
+.else
+DEPENDS+=                      checkpassword>=0.90nb1:../../sysutils/checkpassword
+.endif
+
+.if !empty(PKG_OPTIONS:Mtls)
+.  include "../../security/openssl/buildlink3.mk"
+SUBST_CLASSES+=                paths
+SUBST_STAGE.paths=     pre-configure
+SUBST_FILES.paths=     src/io-ssl.cc doc/bincimap-faq.html \
+                       doc/manual/bincimap-manual.ps conf/bincimap.conf.in
+SUBST_SED.paths=       -e 's|/usr/share/ssl/certs|${SSLDIR}/certs|g'
+.else
+CONFIGURE_ARGS+=       --without-ssl
+.endif
diff -r 5691a7b28a75 -r 4b41e07aef4d mail/bincimap/patches/patch-Makefile.in
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/bincimap/patches/patch-Makefile.in   Fri Jan 15 19:50:25 2021 +0000
@@ -0,0 +1,15 @@
+$NetBSD: patch-Makefile.in,v 1.1 2021/01/15 19:50:25 schmonz Exp $
+
+Don't install daemontools service definitions.
+
+--- Makefile.in.orig   2005-07-21 10:02:30.000000000 +0000
++++ Makefile.in
+@@ -87,7 +87,7 @@ datadir = @datadir@
+ prefix = @prefix@
+ sysconfdir = @sysconfdir@
+ 
+-SUBDIRS = conf contrib doc man service src
++SUBDIRS = conf contrib doc man src
+ 
+ #--------------------------------------------------------------------------
+ EXTRA_DIST = bincimap.spec config.h COPYING.OpenSSL config.h.in README.SSL
diff -r 5691a7b28a75 -r 4b41e07aef4d mail/bincimap/patches/patch-conf_Makefile.in
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/bincimap/patches/patch-conf_Makefile.in      Fri Jan 15 19:50:25 2021 +0000
@@ -0,0 +1,17 @@
+$NetBSD: patch-conf_Makefile.in,v 1.1 2021/01/15 19:50:25 schmonz Exp $
+
+Don't install xinetd service definitions.
+
+--- conf/Makefile.in.orig      2005-07-21 10:02:30.000000000 +0000
++++ conf/Makefile.in
+@@ -201,10 +201,6 @@ install-exec-hook:
+       @rm -f $(srcdir)/../install.log
+       @$(mkinstalldirs) -m 755 $(DESTDIR)$(sysconfdir)
+       @if [ ! -e $(DESTDIR)$(sysconfdir)/bincimap.conf ]; then $(INSTALL_DATA) $(srcdir)/bincimap.conf $(DESTDIR)$(sysconfdir);  else $(INSTALL_DATA) $(srcdir)/bincimap.conf 
$(DESTDIR)$(sysconfdir)/bincimap.conf.new; echo "- New conf file saved as $(DESTDIR)$(sysconfdir)/bincimap.conf.new" >> $(srcdir)/../install.log; fi;
+-      @$(mkinstalldirs) -m 755 $(DESTDIR)$(sysconfdir)/xinetd
+-
+-      @if [ ! -e $(DESTDIR)$(sysconfdir)/xinetd/bincimap ]; then $(INSTALL_DATA) $(srcdir)/xinetd-bincimap $(DESTDIR)$(sysconfdir)/xinetd/bincimap;  else $(INSTALL_DATA) $(srcdir)/xinetd-bincimap 
$(DESTDIR)$(sysconfdir)/xinetd/bincimap.new; echo "- New xinetd/bincimap file saved as $(DESTDIR)$(sysconfdir)/xinetd/bincimap.new" >> $(srcdir)/../install.log; fi;
+-      @if [ ! -e $(DESTDIR)$(sysconfdir)/xinetd/bincimaps ]; then $(INSTALL_DATA) $(srcdir)/xinetd-bincimaps $(DESTDIR)$(sysconfdir)/xinetd/bincimaps;  else $(INSTALL_DATA) 
$(srcdir)/xinetd-bincimaps $(DESTDIR)$(sysconfdir)/xinetd/bincimaps.new; echo "- New xinetd/bincimaps file saved as $(DESTDIR)$(sysconfdir)/xinetd/bincimaps.new" >> $(srcdir)/../install.log; fi;
+ 
+       @$(mkinstalldirs) -m 755 $(DESTDIR)$(libexecdir)/
+       @if [ ! -e $(DESTDIR)$(libexecdir)/checkpassword.pl ]; then $(INSTALL_DATA) -m 0755 $(srcdir)/checkpassword.pl $(DESTDIR)$(libexecdir)/checkpassword.pl; else $(INSTALL_DATA) -m 0755 
$(srcdir)/checkpassword.pl $(DESTDIR)$(libexecdir)/checkpassword.pl.new; echo "- New file saved as $(DESTDIR)$(libexecdir)/checkpassword.pl.new" >> $(srcdir)/../install.log; fi;
diff -r 5691a7b28a75 -r 4b41e07aef4d mail/bincimap/patches/patch-conf_bincimap.conf.in
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/bincimap/patches/patch-conf_bincimap.conf.in Fri Jan 15 19:50:25 2021 +0000
@@ -0,0 +1,43 @@
+$NetBSD: patch-conf_bincimap.conf.in,v 1.1 2021/01/15 19:50:25 schmonz Exp $
+
+By default, don't specify a cipher list, taking the OpenSSL defaults.
+Leave a decent commented-out list from ssl-config.mozilla.org.
+
+Let SUBST fix up users, groups, and paths.
+
+--- conf/bincimap.conf.in.orig 2005-01-05 15:53:46.000000000 +0000
++++ conf/bincimap.conf.in
+@@ -34,8 +34,8 @@ Authentication {
+ //----------------------------------------------------------------------------
+ Security {
+     jail path = "@prefix@/bin",
+-    jail user = "nobody",
+-    jail group = "nobody"
++    jail user = "@BINCIMAP_USER@",
++    jail group = "@BINCIMAP_GROUP@"
+ }
+ 
+ //----------------------------------------------------------------------------
+@@ -100,7 +100,7 @@ Session {
+ 
+ //----------------------------------------------------------------------------
+ SSL {
+-    pem file = "@sysconfdir@/bincimap.pem",        /* private key and
++    pem file = "/usr/share/ssl/certs/bincimap.pem",/* private key and
+                                                       certificate
+                                                       chain PEM file
+                                                       name */
+@@ -108,11 +108,11 @@ SSL {
+     ca file = "",                                  /* file to use as
+                                                       certificate
+                                                       authority */
+-    ca path = "",                                  /* path to search
++    ca path = "/usr/share/ssl/certs",              /* path to search
+                                                       for more certificate
+                                                       authorities */
+ 
+-    cipher list = "!ADH:RC4+RSA:HIGH:MEDIUM:LOW:EXP:+SSLv2:+EXP",
++    //cipher list = 
"ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384",
+ 
+     verify peer = "no"
+ }
diff -r 5691a7b28a75 -r 4b41e07aef4d mail/bincimap/patches/patch-doc_manual_Makefile.in
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/bincimap/patches/patch-doc_manual_Makefile.in        Fri Jan 15 19:50:25 2021 +0000
@@ -0,0 +1,14 @@
+$NetBSD: patch-doc_manual_Makefile.in,v 1.1 2021/01/15 19:50:25 schmonz Exp $
+
+Don't install the .dvi manual.
+
+--- doc/manual/Makefile.in.orig        2005-07-21 10:02:31.000000000 +0000
++++ doc/manual/Makefile.in
+@@ -205,7 +205,6 @@ bincimap-manual.dvi: bincimap-manual.tex
+ install-exec-hook:
+       $(mkinstalldirs) $(DESTDIR)$(datadir)/doc/bincimap
+       $(INSTALL_DATA) $(srcdir)/bincimap-manual.ps $(DESTDIR)$(datadir)/doc/bincimap
+-      $(INSTALL_DATA) $(srcdir)/bincimap-manual.dvi $(DESTDIR)$(datadir)/doc/bincimap
+ 
+ #--------------------------------------------------------------------------
+ uninstall-hook:
diff -r 5691a7b28a75 -r 4b41e07aef4d mail/bincimap/patches/patch-man_bincimap-up.1
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/bincimap/patches/patch-man_bincimap-up.1     Fri Jan 15 19:50:25 2021 +0000
@@ -0,0 +1,15 @@
+$NetBSD: patch-man_bincimap-up.1,v 1.1 2021/01/15 19:50:25 schmonz Exp $
+
+Fix markup.



Home | Main Index | Thread Index | Old Index