summaryrefslogtreecommitdiff
blob: bfbfa4870715009cfc86c7f939b0dff62f826072 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

PATCHSET=4
WANT_AUTOMAKE=none

inherit autotools

DESCRIPTION="Extremely simple MTA to get mail off the system to a Mailhub"
HOMEPAGE="ftp://ftp.debian.org/debian/pool/main/s/ssmtp/"
SRC_URI="
	mirror://debian/pool/main/s/ssmtp/${P/-/_}.orig.tar.bz2
	https://dev.gentoo.org/~pinkbyte/distfiles/patches/${P}-patches-${PATCHSET}.tar.xz
"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="ipv6 +ssl gnutls +mta"

DEPEND="
	!prefix? ( acct-group/ssmtp )
	ssl? (
		gnutls? ( net-libs/gnutls[openssl] )
		!gnutls? (
			dev-libs/openssl:0=
		)
	)
"
RDEPEND="
	${DEPEND}
	net-mail/mailbase
	mta? (
		!mail-mta/courier
		!mail-mta/esmtp
		!mail-mta/exim
		!mail-mta/mini-qmail
		!mail-mta/msmtp[mta]
		!mail-mta/netqmail
		!mail-mta/nullmailer
		!mail-mta/postfix
		!mail-mta/qmail-ldap
		!mail-mta/sendmail
		!mail-mta/opensmtpd
	)
"

REQUIRED_USE="gnutls? ( ssl )"

src_prepare() {
	default

	eapply "${WORKDIR}"/patches/0010_all_maxsysuid.patch
	eapply "${WORKDIR}"/patches/0020_all_from-format-fix.patch
	eapply "${WORKDIR}"/patches/0030_all_authpass.patch
	eapply "${WORKDIR}"/patches/0040_all_darwin7.patch
	eapply "${WORKDIR}"/patches/0050_all_strndup.patch
	eapply "${WORKDIR}"/patches/0060_all_opessl_crypto.patch
	eapply "${WORKDIR}"/patches/0070_all_solaris-basename.patch
	eapply "${WORKDIR}"/patches/0080_all_gnutls.patch
	eapply "${WORKDIR}"/patches/0090_all_debian-remote-addr.patch
	eapply "${WORKDIR}"/patches/0100_all_ldflags.patch
	eapply "${WORKDIR}"/patches/0110_all_stdint.patch
	eapply "${WORKDIR}"/patches/0120_all_aliases.patch
	eapply -p0 "${WORKDIR}"/patches/0130_all_garbage-writes.patch

	# let's start by not using configure.in anymore as future autoconf
	# versions will not support it.
	mv configure.in configure.ac || die

	eautoconf
}

src_configure() {
	local myeconfargs=(
		--sysconfdir="${EPREFIX}"/etc/ssmtp
		$(use_enable ssl) $(use_with gnutls)
		$(use_enable ipv6 inet6)
		--enable-md5auth
	)

	econf "${myeconfargs[@]}"
}

src_compile() {
	emake etcdir="${EPREFIX}"/etc
}

src_install() {
	dosbin ssmtp

	doman ssmtp.8 ssmtp.conf.5
	dodoc ChangeLog CHANGELOG_OLD INSTALL README TLS
	newdoc ssmtp.lsm DESC

	insinto /etc/ssmtp
	doins ssmtp.conf revaliases

	local conffile="${ED}/etc/ssmtp/ssmtp.conf"

	# Sorry about the weird indentation, I couldn't figure out a cleverer way
	# to do this without having horribly >80 char lines.
	sed -i -e "s:^hostname=:\n# Gentoo bug #47562\\
	# Commenting the following line will force ssmtp to figure\\
	# out the hostname itself.\n\\
	# hostname=:" \
	"${conffile}" || die "sed failed"

	# Comment rewriteDomain (bug #243364)
	sed -i -e "s:^rewriteDomain=:#rewriteDomain=:" "${conffile}"

	# Set restrictive perms on ssmtp.conf as per #187841, #239197
	# Protect the ssmtp configfile from being readable by regular users as it
	# may contain login/password data to auth against a the mailhub used.
	if ! use prefix; then
		fowners root:ssmtp /etc/ssmtp/ssmtp.conf
		fperms 640 /etc/ssmtp/ssmtp.conf
		fowners root:ssmtp /usr/sbin/ssmtp
		fperms 2711 /usr/sbin/ssmtp
	fi

	if use mta; then
		dosym ../sbin/ssmtp /usr/lib/sendmail
		dosym ../sbin/ssmtp /usr/bin/sendmail
		dosym ssmtp /usr/sbin/sendmail
		dosym ../sbin/ssmtp /usr/bin/mailq
		dosym ../sbin/ssmtp /usr/bin/newaliases
	fi
}