Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/cyrus-sasl/
Date: Wed, 01 Jun 2022 05:06:20
Message-Id: 1654059958.0b6f917fbb156370f36f38def0db2a04e569f07b.sam@gentoo
1 commit: 0b6f917fbb156370f36f38def0db2a04e569f07b
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Wed Jun 1 04:53:37 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Wed Jun 1 05:05:58 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0b6f917f
7
8 dev-libs/cyrus-sasl: backport OpenSSL 3 patches (+ small other fixes)
9
10 Also, throw in:
11 - upstream version of static build / PIC patch (same as we had before, just
12 with commit headers now)
13 - gdbm errno variable change (looks like a typo in the original fix)
14
15 Bug: https://bugs.gentoo.org/848831
16 Signed-off-by: Sam James <sam <AT> gentoo.org>
17
18 dev-libs/cyrus-sasl/Manifest | 1 +
19 dev-libs/cyrus-sasl/cyrus-sasl-2.1.28-r3.ebuild | 218 ++++++++++++++++++++++++
20 2 files changed, 219 insertions(+)
21
22 diff --git a/dev-libs/cyrus-sasl/Manifest b/dev-libs/cyrus-sasl/Manifest
23 index 0e61d579b4c1..bfa6547d559e 100644
24 --- a/dev-libs/cyrus-sasl/Manifest
25 +++ b/dev-libs/cyrus-sasl/Manifest
26 @@ -1,2 +1,3 @@
27 DIST cyrus-sasl-2.1.27-r6-patches.tar.bz2 5169 BLAKE2B 43a2f0db4a8589ec1cde7807b31a93459eacb04d27ba36751a69dd5f4e669d1b28342194b0e1a5382e281a52a35e88168877b54065cfba01b9bd33e87fbd23f1 SHA512 41c4ca7c8f7b79e03faf5d826a6ff0ed398137239b93fb0046ccbf385f6ddeab2b9fb2f51d7a263dc74626e5fdbefb28615a1ee22aabe57ed57f10a52d382797
28 +DIST cyrus-sasl-2.1.28-r3-patches.tar.xz 4244 BLAKE2B 113da9bb58cce3643269fca88ea8d700aa20226d9536427c9068ef7b43499c2b78cbcb233d8db2418d84136c7edd629cc05f52b31cdfddfcb529f9a9fcb4effb SHA512 0cccbb27646dc118fbeea64b0cb688f312df97b31fced8c18d5230764cd5e2f0d48806bd2f5524aeddd02e8933cd835fb6f67dd3fbc1b0abfd1a3e1f0f53cf8a
29 DIST cyrus-sasl-2.1.28.tar.gz 4034803 BLAKE2B 6cca8c26cebb9c2ee5d539c43797d30b6309a476ec4233225789978e1d7315c4ea5d2abbc7f5464be0f3c0de5fd9212706b43fbc92f40b76cd0b1013cc00f823 SHA512 db15af9079758a9f385457a79390c8a7cd7ea666573dace8bf4fb01bb4b49037538d67285727d6a70ad799d2e2318f265c9372e2427de9371d626a1959dd6f78
30
31 diff --git a/dev-libs/cyrus-sasl/cyrus-sasl-2.1.28-r3.ebuild b/dev-libs/cyrus-sasl/cyrus-sasl-2.1.28-r3.ebuild
32 new file mode 100644
33 index 000000000000..9bf5fc8ef2b0
34 --- /dev/null
35 +++ b/dev-libs/cyrus-sasl/cyrus-sasl-2.1.28-r3.ebuild
36 @@ -0,0 +1,218 @@
37 +# Copyright 1999-2022 Gentoo Authors
38 +# Distributed under the terms of the GNU General Public License v2
39 +
40 +EAPI=8
41 +
42 +inherit autotools edos2unix flag-o-matic multilib multilib-minimal pam db-use systemd toolchain-funcs tmpfiles
43 +
44 +SASLAUTHD_CONF_VER="2.1.26"
45 +MY_PATCH_VER="${PN}-2.1.28-r3-patches"
46 +DESCRIPTION="The Cyrus SASL (Simple Authentication and Security Layer)"
47 +HOMEPAGE="https://www.cyrusimap.org/sasl/"
48 +#SRC_URI="ftp://ftp.cyrusimap.org/cyrus-sasl/${P}.tar.gz"
49 +SRC_URI="https://github.com/cyrusimap/${PN}/releases/download/${P}/${P}.tar.gz"
50 +SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_PATCH_VER}.tar.xz"
51 +
52 +LICENSE="BSD-with-attribution"
53 +SLOT="2"
54 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
55 +IUSE="authdaemond berkdb gdbm kerberos ldapdb openldap mysql pam postgres sample selinux sqlite srp ssl static-libs urandom"
56 +REQUIRED_USE="ldapdb? ( openldap )"
57 +
58 +DEPEND="net-mail/mailbase
59 + virtual/libcrypt:=
60 + authdaemond? ( || ( net-mail/courier-imap mail-mta/courier ) )
61 + berkdb? ( >=sys-libs/db-4.8.30-r1:=[${MULTILIB_USEDEP}] )
62 + gdbm? ( >=sys-libs/gdbm-1.10-r1:=[${MULTILIB_USEDEP}] )
63 + kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )
64 + openldap? ( >=net-nds/openldap-2.4.38-r1:=[${MULTILIB_USEDEP}] )
65 + mysql? ( dev-db/mysql-connector-c:0=[${MULTILIB_USEDEP}] )
66 + pam? ( >=sys-libs/pam-0-r1[${MULTILIB_USEDEP}] )
67 + postgres? ( dev-db/postgresql:* )
68 + sqlite? ( >=dev-db/sqlite-3.8.2:3[${MULTILIB_USEDEP}] )
69 + ssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )"
70 +RDEPEND="${DEPEND}
71 + selinux? ( sec-policy/selinux-sasl )"
72 +
73 +MULTILIB_WRAPPED_HEADERS=(
74 + /usr/include/sasl/md5global.h
75 +)
76 +
77 +PATCHES=(
78 + "${WORKDIR}"/${MY_PATCH_VER}/
79 +)
80 +
81 +src_prepare() {
82 + default
83 +
84 + # Use plugindir for sasldir
85 + # https://github.com/cyrusimap/cyrus-sasl/issues/339 (I think)
86 + sed -i '/^sasldir =/s:=.*:= $(plugindir):' \
87 + "${S}"/plugins/Makefile.{am,in} || die "sed failed"
88 +
89 + # bug #486740 and bug #468556 (dropped AM_CONFIG_HEADER sed in 2.1.28)
90 + sed -i -e 's:AC_CONFIG_MACRO_DIR:AC_CONFIG_MACRO_DIRS:g' configure.ac || die
91 +
92 + eautoreconf
93 +}
94 +
95 +src_configure() {
96 + export CC_FOR_BUILD="$(tc-getBUILD_CC)"
97 +
98 + append-flags -fno-strict-aliasing
99 +
100 + if [[ ${CHOST} == *-solaris* ]] ; then
101 + # getpassphrase is defined in /usr/include/stdlib.h
102 + append-cppflags -DHAVE_GETPASSPHRASE
103 + else
104 + # this horrendously breaks things on Solaris
105 + append-cppflags -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE -DLDAP_DEPRECATED
106 + # replaces BSD_SOURCE (bug #579218)
107 + append-cppflags -D_DEFAULT_SOURCE
108 + fi
109 +
110 + multilib-minimal_src_configure
111 +}
112 +
113 +multilib_src_configure() {
114 + local myeconfargs=(
115 + --enable-login
116 + --enable-ntlm
117 + --enable-auth-sasldb
118 + --disable-cmulocal
119 + --disable-krb4
120 + --disable-macos-framework
121 + --enable-otp
122 + --without-sqlite
123 + --with-saslauthd="${EPREFIX}"/run/saslauthd
124 + --with-pwcheck="${EPREFIX}"/run/saslauthd
125 + --with-configdir="${EPREFIX}"/etc/sasl2
126 + --with-plugindir="${EPREFIX}/usr/$(get_libdir)/sasl2"
127 + --with-dbpath="${EPREFIX}"/etc/sasl2/sasldb2
128 + --with-sphinx-build=no
129 + $(use_with ssl openssl)
130 + $(use_with pam)
131 + $(use_with openldap ldap)
132 + $(use_enable ldapdb)
133 + $(multilib_native_use_enable sample)
134 + $(use_enable kerberos gssapi)
135 + $(multilib_native_use_with mysql mysql "${EPREFIX}"/usr)
136 + $(multilib_native_use_with postgres pgsql "${EPREFIX}/usr/$(get_libdir)/postgresql")
137 + $(use_with sqlite sqlite3 "${EPREFIX}/usr/$(get_libdir)")
138 + $(use_enable srp)
139 + $(use_enable static-libs static)
140 +
141 + # Add authdaemond support (bug #56523).
142 + $(usex authdaemond --with-authdaemond="${EPREFIX}"/var/lib/courier/authdaemon/socket '')
143 +
144 + # Fix for bug #59634.
145 + $(usex ssl '' --without-des)
146 +
147 + # Use /dev/urandom instead of /dev/random (bug #46038).
148 + $(usex urandom --with-devrandom=/dev/urandom '')
149 + )
150 +
151 + if use sqlite || { multilib_is_native_abi && { use mysql || use postgres; }; } ; then
152 + myeconfargs+=( --enable-sql )
153 + else
154 + myeconfargs+=( --disable-sql )
155 + fi
156 +
157 + # Default to GDBM if both 'gdbm' and 'berkdb' are present.
158 + if use gdbm ; then
159 + einfo "Building with GNU DB as database backend for your SASLdb"
160 + myeconfargs+=( --with-dblib=gdbm )
161 + elif use berkdb ; then
162 + einfo "Building with BerkeleyDB as database backend for your SASLdb"
163 + myeconfargs+=(
164 + --with-dblib=berkeley
165 + --with-bdb-incdir="$(db_includedir)"
166 + )
167 + else
168 + einfo "Building without SASLdb support"
169 + myeconfargs+=( --with-dblib=none )
170 + fi
171 +
172 + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
173 +}
174 +
175 +multilib_src_install() {
176 + default
177 +
178 + if multilib_is_native_abi; then
179 + if use sample ; then
180 + docinto sample
181 + dodoc "${S}"/sample/*.c
182 + exeinto /usr/share/doc/${P}/sample
183 + doexe sample/client sample/server
184 + fi
185 +
186 + dosbin saslauthd/testsaslauthd
187 + fi
188 +}
189 +
190 +multilib_src_install_all() {
191 + doman man/*
192 +
193 + keepdir /etc/sasl2
194 +
195 + # Reset docinto to default value (bug #674296)
196 + docinto
197 + dodoc AUTHORS ChangeLog doc/legacy/TODO
198 + newdoc pwcheck/README README.pwcheck
199 +
200 + newdoc docsrc/sasl/release-notes/$(ver_cut 1-2)/index.rst release-notes
201 + edos2unix "${ED}"/usr/share/doc/${PF}/release-notes
202 +
203 + docinto html
204 + dodoc doc/html/*.html
205 +
206 + if use pam; then
207 + newpamd "${FILESDIR}"/saslauthd.pam-include saslauthd
208 + fi
209 +
210 + newinitd "${FILESDIR}"/pwcheck.rc6 pwcheck
211 + systemd_dounit "${FILESDIR}"/pwcheck.service
212 +
213 + newinitd "${FILESDIR}"/saslauthd2.rc7 saslauthd
214 + newconfd "${FILESDIR}"/saslauthd-${SASLAUTHD_CONF_VER}.conf saslauthd
215 + systemd_dounit "${FILESDIR}"/saslauthd.service
216 + dotmpfiles "${FILESDIR}"/${PN}.conf
217 +
218 + # The get_modname bit is important: do not remove the .la files on
219 + # platforms where the lib isn't called .so for cyrus searches the .la to
220 + # figure out what the name is supposed to be instead
221 + if ! use static-libs && [[ $(get_modname) == .so ]] ; then
222 + find "${ED}" -name "*.la" -delete || die
223 + fi
224 +}
225 +
226 +pkg_postinst() {
227 + tmpfiles_process ${PN}.conf
228 +
229 + # Generate an empty sasldb2 with correct permissions.
230 + if ( use berkdb || use gdbm ) && [[ ! -f "${EROOT}/etc/sasl2/sasldb2" ]] ; then
231 + einfo "Generating an empty sasldb2 with correct permissions ..."
232 +
233 + echo "p" | "${EROOT}/usr/sbin/saslpasswd2" -f "${EROOT}/etc/sasl2/sasldb2" -p login \
234 + || die "Failed to generate sasldb2"
235 +
236 + "${EROOT}/usr/sbin/saslpasswd2" -f "${EROOT}/etc/sasl2/sasldb2" -d login \
237 + || die "Failed to delete temp user"
238 +
239 + chown root:mail "${EROOT}/etc/sasl2/sasldb2" \
240 + || die "Failed to chown ${EROOT}/etc/sasl2/sasldb2"
241 + chmod 0640 "${EROOT}/etc/sasl2/sasldb2" \
242 + || die "Failed to chmod ${EROOT}/etc/sasl2/sasldb2"
243 + fi
244 +
245 + if use authdaemond ; then
246 + elog "You need to add a user running a service using Courier's"
247 + elog "authdaemon to the 'mail' group. For example, do:"
248 + elog " gpasswd -a postfix mail"
249 + elog "to add the 'postfix' user to the 'mail' group."
250 + fi
251 +
252 + elog "pwcheck and saslauthd home directories have moved to:"
253 + elog " /run/saslauthd, using tmpfiles.d"
254 +}