pkgsrc/mail/qmail/options.mk

114 lines
4.4 KiB
Makefile
Raw Normal View History

Update to notqmail 1.08 (as qmail-1.03nb49). From the changelog: ## Fix bugs - Vulnerabilities we've inherited from qmail 1.03, reported by Qualys. - CVE-2005-1515: fix signedness wraparound in `substdio_{put,bput}()`. - CVE-2005-1514: fix possible signed integer overflow in `commands()`. - CVE-2005-1513: fix integer overflow in `stralloc_readyplus()`. - Fix several other places where variables could overflow. - `qmail-pop3d`: instead of running as root if root authenticates (and being a vector for a dictionary attack on the root password), exit 1 to look just like a failed `checkpassword` login. - `qmail-inject`: do not parse header recipients if `-a` is given. - Correctly detect multiple IP addresses on the same interface. - Remove workaround for ancient DNS servers that do not properly support CNAME. - Fix possible integer overflow in `alloc()`. ## Reduce bug likelihood - Remove `dnscname` and `dnsmxip` programs that were being built but not installed. - Remove `systype` and related platform detection. - Remove unused variable in `maildir.c`. - Reduce variable scope in `tcpto.c`. - Avoid local variables shadowing same-named globals. - Avoid needing `exit.h` in named-pipe bug check. - Add a `test` target and some unit tests, using Check. - Add missing function declarations in `cdbmss.h`, `scan.h`. - Add missing return types to `main()`. - Add `hier.h` for inclusion in `instcheck.c`, `instchown.c`, `instpackage.c`. - Use system headers and types instead of the `HASSHORTSETGROUPS` check. - Use system headers instead of redeclaring `exit()`, `read()`, `write()`, `malloc()`, `free()`, `fork()`, `uint32_t`. - Use C89 function signatures for code we've touched so far. - Automated builds: - TravisCI: move setting `MAKEFLAGS` out of the script and into the matrix. - Add FreeBSD builds with CirrusCI. - Add a GitHub Actions build. ## Other changes - Remove DJB's TODO. - Replace many `pobox.com` URLs. - Acknowledge Erik Sjölund's `qmail-local.c` bugfix that we've inherited from netqmail. - Avoid generating catted manpages by building with `NROFF=true`. - Optionally create a `systemd` service file. - Run an alternate `qmail-remote` by setting `QMAILREMOTE` in `qmail-send`'s environment. ## Intent to remove In the course of developing this release, we found programs that we intend to remove in the next release. We believe none of these remains necessary or useful enough to be worth the cost of maintaining. If you disagree, please let us know! - Remove `qsmhook`, long since replaced by `preline`. - Remove inefficient `maildirwatch`. - Remove obsolete mail client wrappers. - Remove `qmail-pop3d`, since Maildir is well supported by actively maintained POP3 servers.
2020-05-23 22:50:02 +02:00
# $NetBSD: options.mk,v 1.69 2020/05/23 20:50:02 schmonz Exp $
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
PKG_OPTIONS_VAR= PKG_OPTIONS.qmail
PKG_SUPPORTED_OPTIONS+= eai inet6 pam syncdir tai-system-clock tls
PKG_SUPPORTED_OPTIONS+= qmail-customerror qmail-srs
PKG_SUGGESTED_OPTIONS+= eai syncdir tls
PKG_SUGGESTED_OPTIONS+= qmail-customerror qmail-srs
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
.include "../../mk/bsd.options.mk"
.if !empty(PKG_OPTIONS:Meai)
. include "../../devel/libidn2/buildlink3.mk"
QMAILPATCHES+= eai:${EAI_PATCH}
EAI_PATCH= netqmail-1.06-tls-20160918-onlyremote-20181107-spp-20181109-smtputf8-20181109.patch
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
PATCHFILES+= ${EAI_PATCH}
SITES.${EAI_PATCH}= https://schmonz.com/qmail/eai/
CPPFLAGS+= -DEHLO=1
.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:Mqmail-customerror)
QMAILPATCHES+= customerror:${CUSTOMERROR_PATCH}
CUSTOMERROR_PATCH= qmail-queue-custom-error-v2.netqmail-1.05.patch
PATCHFILES+= ${CUSTOMERROR_PATCH}
SITES.${CUSTOMERROR_PATCH}= https://notes.sagredo.eu/files/qmail/patches/
PATCH_DIST_STRIP.${CUSTOMERROR_PATCH}= -p1
PATCH_DIST_CAT.${CUSTOMERROR_PATCH}= ${SED} -e 's|vfork|fork|g' < ${CUSTOMERROR_PATCH}
.endif
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
PLIST_VARS+= srs
.if !empty(PKG_OPTIONS:Mqmail-srs)
PLIST.srs= yes
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
. include "../../mail/libsrs2/buildlink3.mk"
QMAILPATCHES+= srs:${SRS_PATCH}
SRS_PATCH= notqmail-1.07-tls-20190517-qmailremote-20190819-srs-20190819.patch
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
PATCHFILES+= ${SRS_PATCH}
SITES.${SRS_PATCH}= https://schmonz.com/qmail/srs/
Update to notqmail 1.08 (as qmail-1.03nb49). From the changelog: ## Fix bugs - Vulnerabilities we've inherited from qmail 1.03, reported by Qualys. - CVE-2005-1515: fix signedness wraparound in `substdio_{put,bput}()`. - CVE-2005-1514: fix possible signed integer overflow in `commands()`. - CVE-2005-1513: fix integer overflow in `stralloc_readyplus()`. - Fix several other places where variables could overflow. - `qmail-pop3d`: instead of running as root if root authenticates (and being a vector for a dictionary attack on the root password), exit 1 to look just like a failed `checkpassword` login. - `qmail-inject`: do not parse header recipients if `-a` is given. - Correctly detect multiple IP addresses on the same interface. - Remove workaround for ancient DNS servers that do not properly support CNAME. - Fix possible integer overflow in `alloc()`. ## Reduce bug likelihood - Remove `dnscname` and `dnsmxip` programs that were being built but not installed. - Remove `systype` and related platform detection. - Remove unused variable in `maildir.c`. - Reduce variable scope in `tcpto.c`. - Avoid local variables shadowing same-named globals. - Avoid needing `exit.h` in named-pipe bug check. - Add a `test` target and some unit tests, using Check. - Add missing function declarations in `cdbmss.h`, `scan.h`. - Add missing return types to `main()`. - Add `hier.h` for inclusion in `instcheck.c`, `instchown.c`, `instpackage.c`. - Use system headers and types instead of the `HASSHORTSETGROUPS` check. - Use system headers instead of redeclaring `exit()`, `read()`, `write()`, `malloc()`, `free()`, `fork()`, `uint32_t`. - Use C89 function signatures for code we've touched so far. - Automated builds: - TravisCI: move setting `MAKEFLAGS` out of the script and into the matrix. - Add FreeBSD builds with CirrusCI. - Add a GitHub Actions build. ## Other changes - Remove DJB's TODO. - Replace many `pobox.com` URLs. - Acknowledge Erik Sjölund's `qmail-local.c` bugfix that we've inherited from netqmail. - Avoid generating catted manpages by building with `NROFF=true`. - Optionally create a `systemd` service file. - Run an alternate `qmail-remote` by setting `QMAILREMOTE` in `qmail-send`'s environment. ## Intent to remove In the course of developing this release, we found programs that we intend to remove in the next release. We believe none of these remains necessary or useful enough to be worth the cost of maintaining. If you disagree, please let us know! - Remove `qsmhook`, long since replaced by `preline`. - Remove inefficient `maildirwatch`. - Remove obsolete mail client wrappers. - Remove `qmail-pop3d`, since Maildir is well supported by actively maintained POP3 servers.
2020-05-23 22:50:02 +02:00
PATCH_DIST_CAT.${SRS_PATCH}= ${SED} -e 's|compile forward.c sig.h readwrite.h exit.h env.h qmail.h substdio.h|compile forward.c sig.h readwrite.h env.h qmail.h substdio.h|g' < ${SRS_PATCH}
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
SUBST_CLASSES+= srsinclude
SUBST_STAGE.srsinclude= do-configure
SUBST_FILES.srsinclude= srs.c
SUBST_SED.srsinclude= -e 's|/usr/local/include/srs2.h|srs2.h|'
SUBST_CLASSES+= srsreadme
SUBST_STAGE.srsreadme= do-configure
SUBST_FILES.srsreadme= README.srs
2017-07-27 04:18:05 +02:00
SUBST_VARS.srsreadme= PKG_SYSCONFDIR
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
READMES+= README.srs
.endif
.if !empty(PKG_OPTIONS:Msyncdir)
. include "../../devel/syncdir/buildlink3.mk"
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
SYNCDIR_DISTFILES_cmd= ( cd ../../devel/syncdir && ${MAKE} show-var VARNAME=DISTFILES )
QMAILPATCHES+= syncdir:${SYNCDIR_DISTFILES_cmd:sh}
SUBST_CLASSES+= load
SUBST_STAGE.load= do-configure
SUBST_FILES.load= make-load.sh
SUBST_SED.load= -e '$$s|$$| ${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.syncdir}/lib -L${BUILDLINK_PREFIX.syncdir}/lib \-lsyncdir|'
. if ${OPSYS} == "Darwin"
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
SUBST_SED.load+= -e '$$s|$$| -bind_at_load|'
. endif
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
SUBST_MESSAGE.load= Setting linker flags for syncdir.
.endif
.if !empty(PKG_OPTIONS:Mtai-system-clock)
QMAILPATCHES+= taileapsecs:${TAILEAPSECS_PATCH}
TAILEAPSECS_PATCH= netqmail-1.05-TAI-leapsecs.patch
PATCHFILES+= ${TAILEAPSECS_PATCH}
SITES.${TAILEAPSECS_PATCH}= https://su.bze.ro/software/
PATCH_DIST_STRIP.${TAILEAPSECS_PATCH}= -p1
PATCH_DIST_CAT.${TAILEAPSECS_PATCH}= \
${SED} -e 's|"/etc/leapsecs.dat"|"@PKG_SYSCONFDIR@/leapsecs.dat"|' \
Update to notqmail 1.08 (as qmail-1.03nb49). From the changelog: ## Fix bugs - Vulnerabilities we've inherited from qmail 1.03, reported by Qualys. - CVE-2005-1515: fix signedness wraparound in `substdio_{put,bput}()`. - CVE-2005-1514: fix possible signed integer overflow in `commands()`. - CVE-2005-1513: fix integer overflow in `stralloc_readyplus()`. - Fix several other places where variables could overflow. - `qmail-pop3d`: instead of running as root if root authenticates (and being a vector for a dictionary attack on the root password), exit 1 to look just like a failed `checkpassword` login. - `qmail-inject`: do not parse header recipients if `-a` is given. - Correctly detect multiple IP addresses on the same interface. - Remove workaround for ancient DNS servers that do not properly support CNAME. - Fix possible integer overflow in `alloc()`. ## Reduce bug likelihood - Remove `dnscname` and `dnsmxip` programs that were being built but not installed. - Remove `systype` and related platform detection. - Remove unused variable in `maildir.c`. - Reduce variable scope in `tcpto.c`. - Avoid local variables shadowing same-named globals. - Avoid needing `exit.h` in named-pipe bug check. - Add a `test` target and some unit tests, using Check. - Add missing function declarations in `cdbmss.h`, `scan.h`. - Add missing return types to `main()`. - Add `hier.h` for inclusion in `instcheck.c`, `instchown.c`, `instpackage.c`. - Use system headers and types instead of the `HASSHORTSETGROUPS` check. - Use system headers instead of redeclaring `exit()`, `read()`, `write()`, `malloc()`, `free()`, `fork()`, `uint32_t`. - Use C89 function signatures for code we've touched so far. - Automated builds: - TravisCI: move setting `MAKEFLAGS` out of the script and into the matrix. - Add FreeBSD builds with CirrusCI. - Add a GitHub Actions build. ## Other changes - Remove DJB's TODO. - Replace many `pobox.com` URLs. - Acknowledge Erik Sjölund's `qmail-local.c` bugfix that we've inherited from netqmail. - Avoid generating catted manpages by building with `NROFF=true`. - Optionally create a `systemd` service file. - Run an alternate `qmail-remote` by setting `QMAILREMOTE` in `qmail-send`'s environment. ## Intent to remove In the course of developing this release, we found programs that we intend to remove in the next release. We believe none of these remains necessary or useful enough to be worth the cost of maintaining. If you disagree, please let us know! - Remove `qsmhook`, long since replaced by `preline`. - Remove inefficient `maildirwatch`. - Remove obsolete mail client wrappers. - Remove `qmail-pop3d`, since Maildir is well supported by actively maintained POP3 servers.
2020-05-23 22:50:02 +02:00
-e 's|.*\./tryulong32.*| uid.o: \\\\|' \
-e 's|.*cat uint32.*| compile uid.c uidgid.h subfd.h substdio.h exit.h|' \
-e 's|.*rm -f tryulong32.*| ./compile uid.c|' \
< ${TAILEAPSECS_PATCH}
SUBST_CLASSES+= libtai
SUBST_STAGE.libtai= do-configure
SUBST_FILES.libtai= leapsecs_read.c
SUBST_SED.libtai= -e 's|@PKG_SYSCONFDIR@|${PKG_SYSCONFDIR.libtai}|g'
DEPENDS+= libtai>=0.60nb5:../../devel/libtai
.endif
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
PLIST_VARS+= tls
.if !empty(PKG_OPTIONS:Mtls)
PLIST.tls= yes
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
. include "../../security/openssl/buildlink3.mk"
CPPFLAGS+= -DTLS=20200107 # NOTE: match what's _in_ the patch
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
USE_TOOLS+= openssl
SUBST_CLASSES+= tmprsadh
SUBST_STAGE.tmprsadh= do-configure
SUBST_FILES.tmprsadh= update_tmprsadh.sh
SUBST_SED.tmprsadh= -e 's|^export PATH=.*||'
SUBST_SED.tmprsadh+= -e 's|^openssl |${OPENSSL} |'
READMES+= README.tls
SUBST_VARS.paths+= OPENSSL QMAIL_DAEMON_USER QMAIL_QMAIL_GROUP
SUBST_VARS.paths+= OPENSSL SERVERCERT CLIENTCERT
SUBST_SED.paths+= -e 's|@SERVERCERT@|${PKG_SYSCONFDIR:Q}/control/servercert.pem|g'
SUBST_SED.paths+= -e 's|@CLIENTCERT@|${PKG_SYSCONFDIR:Q}/control/clientcert.pem|g'
DEPENDS+= ucspi-ssl>=0.999.10.11nb2:../../net/ucspi-ssl
.else
Update to 1.03nb29. pkgsrc changes: Remove unneeded options: - Unconditionally apply netqmail (which includes a local patch; remove it) - Unconditionally apply bigdns, maildiruniq, outgoingip, rcptcheck, remote - Unconditionally apply the TLS + SMTP AUTH _patch_ (not the options) - Record all applied patches (mandatory and optional) in QMAILPATCHES - Remove badrcptto, qregex, realrcptto, viruscan (moved to rejectutils) Simplify packaging: - Extract a standalone patch <https://schmonz.com/qmail/rejectutils> to repackage the mutually conflicting recipient- and content-checking patches as separate programs, along with wrappers for running checks in sequence - Extract a standalone patch <https://schmonz.com/qmail/destdir> to build to a staging area, as non-root, without hardcoded IDs - Run the destdir patch's `install-destdir` to make or repair the queue and set special file permissions, obviating the need for a dependency on mail/queue-fix and handcrafted SPECIAL_PERMS - While here, run `instcheck` to ensure we've installed just like `make setup check` as root would have - Install INSTALL and SENDMAIL docs under their original names, even on Darwin - Avoid building catpages, since we don't install them, and remove nroff from USE_TOOLS Default-enable more useful options: - "eai" (new) permits UTF-8 almost everywhere in email - "qmail-rejectutils" (new) adds several tools for selectively rejecting messages - "syncdir" forces synchronous link() and related syscalls - "tls" and "sasl", instead of causing patch conflicts, cause the TLS and SMTP AUTH code to be included (!)
2017-07-21 06:07:01 +02:00
BUILDLINK_TRANSFORM+= rm:-lssl
BUILDLINK_TRANSFORM+= rm:-lcrypto
. 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
.endif