Lines 13-81
MASTER_SITES= http://ftp.porcupine.org/mirrors/postfix-release/ \
Link Here
|
13 |
ftp://postfix.mirrors.pair.com/ |
13 |
ftp://postfix.mirrors.pair.com/ |
14 |
MASTER_SITES:= ${MASTER_SITES:S|$|experimental/|} |
14 |
MASTER_SITES:= ${MASTER_SITES:S|$|experimental/|} |
15 |
#MASTER_SITES:= ${MASTER_SITES:S|$|official/|} |
15 |
#MASTER_SITES:= ${MASTER_SITES:S|$|official/|} |
16 |
PKGNAMESUFFIX?= -current |
16 |
PKGNAMESUFFIX= -current |
17 |
DIST_SUBDIR= ${PORTNAME} |
17 |
DIST_SUBDIR= ${PORTNAME} |
18 |
|
18 |
|
19 |
MAINTAINER= otis@FreeBSD.org |
19 |
MAINTAINER= otis@FreeBSD.org |
20 |
COMMENT= Experimental Postfix version |
20 |
COMMENT= Experimental Postfix version ${COMMENT_${FLAVOR}} |
21 |
|
21 |
|
22 |
LICENSE= IPL10 EPL |
22 |
LICENSE= EPL IPL10 |
23 |
LICENSE_COMB= multi |
23 |
LICENSE_COMB= multi |
24 |
LICENSE_FILE= ${WRKSRC}/LICENSE |
|
|
25 |
LICENSE_NAME_IPL10= IBM PUBLIC LICENSE VERSION 1.0 |
24 |
LICENSE_NAME_IPL10= IBM PUBLIC LICENSE VERSION 1.0 |
|
|
25 |
LICENSE_FILE= ${WRKSRC}/LICENSE |
26 |
LICENSE_PERMS_IPL10= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept |
26 |
LICENSE_PERMS_IPL10= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept |
27 |
|
27 |
|
28 |
CONFLICTS_INSTALL?= courier-0.* opensmtpd-[0-9]* sendmail-8.* sendmail+*-8.* \ |
28 |
FLAVORS= default ldap_sasl sasl |
29 |
postfix35-* postfix-3.* postfix-base-3.* postfix-sasl-3.* |
29 |
default_CONFLICTS_INSTALL= postfix-current-base-ldap-sasl-* \ |
|
|
30 |
postfix-current-base-sasl-* \ |
31 |
postfix-current-ldap-sasl-* \ |
32 |
postfix-current-sasl-* |
33 |
ldap_sasl_PKGNAMESUFFIX= -current-ldap-sasl |
34 |
ldap_sasl_CONFLICTS_INSTALL= postfix-current-[0-9]* \ |
35 |
postfix-current-base-[0-9] \ |
36 |
postfix-current-base-sasl-* \ |
37 |
postfix-current-sasl-* |
38 |
sasl_PKGNAMESUFFIX= -current-sasl |
39 |
sasl_CONFLICTS_INSTALL= postfix-current-[0-9]* \ |
40 |
postfix-current-base-[0-9] \ |
41 |
postfix-current-base-ldap-sasl-* \ |
42 |
postfix-current-ldap-sasl-* |
43 |
|
44 |
COMMENT_ldap_sasl= (with OpenLDAP and Cyrus SASL support) |
45 |
COMMENT_sasl= (with Cyrus SASL support) |
46 |
|
47 |
USES= cpe shebangfix ssl |
48 |
USE_RC_SUBR= postfix |
49 |
USE_SUBMAKE= yes |
30 |
|
50 |
|
31 |
USERS= postfix |
|
|
32 |
GROUPS= mail maildrop postfix |
33 |
USES= shebangfix cpe ssl |
34 |
SHEBANG_FILES= auxiliary/qshape/qshape.pl |
51 |
SHEBANG_FILES= auxiliary/qshape/qshape.pl |
35 |
|
52 |
|
36 |
USE_RC_SUBR= postfix |
|
|
37 |
USE_SUBMAKE= yes |
38 |
SCRIPTS_ENV+= POSTFIX_DEFAULT_MTA="${POSTFIX_DEFAULT_MTA}" |
53 |
SCRIPTS_ENV+= POSTFIX_DEFAULT_MTA="${POSTFIX_DEFAULT_MTA}" |
39 |
|
54 |
|
40 |
OPTIONS_SUB= yes |
55 |
CONFLICTS_INSTALL= courier-0.* opensmtpd-[0-9]* opensmtpd-devel-* \ |
41 |
OPTIONS_DEFINE= BDB BLACKLISTD CDB DOCS EAI INST_BASE LDAP LDAP_SASL \ |
56 |
postfix-[0-9]* postfix-base-* postfix-ldap-sasl-* \ |
42 |
LMDB MYSQL NIS PCRE PGSQL SASL SQLITE TEST TLS |
57 |
postfix-sasl-* postfix35-* sendmail-[0-9]* \ |
|
|
58 |
sendmail-devel-* |
43 |
|
59 |
|
44 |
OPTIONS_RADIO= RG1 |
60 |
USERS= postfix |
45 |
OPTIONS_RADIO_RG1= SASLKRB5 SASLKMIT |
61 |
GROUPS= mail maildrop postfix |
|
|
62 |
|
63 |
OPTIONS_DEFINE= BDB BLACKLISTD CDB DOCS EAI INST_BASE LDAP LDAP_SASL \ |
64 |
LMDB MYSQL NIS PCRE PGSQL SASL SQLITE TEST TLS |
46 |
OPTIONS_DEFAULT?= BLACKLISTD EAI PCRE TLS |
65 |
OPTIONS_DEFAULT?= BLACKLISTD EAI PCRE TLS |
|
|
66 |
OPTIONS_RADIO= RG1 |
67 |
OPTIONS_RADIO_RG1= SASLKMIT SASLKRB5 |
68 |
.if ${FLAVOR:U} == ldap_sasl |
69 |
OPTIONS_SLAVE= LDAP LDAP_SASL SASL |
70 |
.elif ${FLAVOR:U} == sasl |
71 |
OPTIONS_SLAVE= SASL |
72 |
.endif |
73 |
OPTIONS_SUB= yes |
47 |
|
74 |
|
48 |
BDB_USES= bdb |
75 |
.if !empty(FLAVOR) && ${FLAVOR:U} != default |
49 |
BLACKLISTD_EXTRA_PATCHES= ${FILESDIR}/extra-patch-blacklistd |
76 |
OPTIONS_FILE= ${PORT_DBDIR}/${OPTIONS_NAME}/${FLAVOR}-options |
50 |
CDB_LIB_DEPENDS= libcdb.so:databases/tinycdb |
77 |
.endif |
51 |
EAI_LIB_DEPENDS= libicuuc.so:devel/icu |
|
|
52 |
LDAP_USE= OPENLDAP=yes |
53 |
LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb |
54 |
MYSQL_USES?= mysql |
55 |
PCRE_LIB_DEPENDS= libpcre.so:devel/pcre |
56 |
PGSQL_USES= pgsql |
57 |
SASLKMIT_LIB_DEPENDS= libkrb5.so:security/krb5 |
58 |
SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 |
59 |
SQLITE_USES= sqlite |
60 |
|
78 |
|
61 |
BLACKLISTD_DESC= Enable blacklistd support (FreeBSD 11.0 and later only) |
79 |
BLACKLISTD_DESC= Enable blacklistd support (FreeBSD 11.0 and later only) |
62 |
CDB_DESC= CDB maps lookups |
80 |
CDB_DESC= CDB maps lookups |
63 |
EAI_DESC= Email Address Internationalization (SMTPUTF8) support |
81 |
EAI_DESC= Email Address Internationalization (SMTPUTF8) support |
64 |
INST_BASE_DESC= Install into /usr and /etc/postfix |
82 |
INST_BASE_DESC= Install into /usr and /etc/postfix |
65 |
LDAP_DESC= LDAP maps (uses WITH_OPENLDAP_VER) |
83 |
LDAP_DESC= LDAP maps (uses WITH_OPENLDAP_VER) |
66 |
LDAP_SASL_DESC= LDAP client-to-server SASL auth |
84 |
LDAP_SASL_DESC= LDAP client-to-server SASL auth |
67 |
LMDB_DESC= LMDB maps |
85 |
LMDB_DESC= LMDB maps |
68 |
TEST_DESC= SMTP/LMTP test server and generator |
86 |
RG1_DESC= Kerberos network authentication protocol type |
69 |
|
87 |
SASLKMIT_DESC= If your SASL req. MIT Kerberos5, select this |
70 |
SASL_DESC= Cyrus SASL support (Dovecot SASL is always built in) |
88 |
SASLKRB5_DESC= If your SASL req. Kerberos5, select this |
71 |
RG1_DESC= Kerberos network authentication protocol type |
89 |
SASL_DESC= Cyrus SASL support (Dovecot SASL is always built in) |
72 |
SASLKRB5_DESC= If your SASL req. Kerberos5, select this |
90 |
TEST_DESC= SMTP/LMTP test server and generator |
73 |
SASLKMIT_DESC= If your SASL req. MIT Kerberos5, select this |
91 |
|
|
|
92 |
BDB_USES= bdb |
93 |
BLACKLISTD_EXTRA_PATCHES= ${FILESDIR}/extra-patch-blacklistd |
94 |
CDB_LIB_DEPENDS= libcdb.so:databases/tinycdb |
95 |
EAI_LIB_DEPENDS= libicuuc.so:devel/icu |
96 |
LDAP_USE= OPENLDAP=yes |
97 |
LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb |
98 |
MYSQL_USES?= mysql |
99 |
PCRE_LIB_DEPENDS= libpcre.so:devel/pcre |
100 |
PGSQL_USES= pgsql |
101 |
SASLKMIT_LIB_DEPENDS= libkrb5.so:security/krb5 |
102 |
SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 |
103 |
SQLITE_USES= sqlite |
74 |
|
104 |
|
75 |
.include <bsd.port.options.mk> |
105 |
.include <bsd.port.options.mk> |
76 |
|
106 |
|
77 |
HTML1= body_checks.5.html bounce.5.html postfix-power.png \ |
107 |
HTML1= body_checks.5.html bounce.5.html postfix-power.png \ |
78 |
scache.8.html tlsmgr.8.html |
108 |
scache.8.html tlsmgr.8.html |
79 |
|
109 |
|
80 |
STRIP_LIBEXEC= anvil bounce cleanup discard dnsblog error flush lmtp local \ |
110 |
STRIP_LIBEXEC= anvil bounce cleanup discard dnsblog error flush lmtp local \ |
81 |
master nqmgr oqmgr pickup pipe postlogd postscreen proxymap \ |
111 |
master nqmgr oqmgr pickup pipe postlogd postscreen proxymap \ |
Lines 93-100
BROKEN_FreeBSD_11= error: OpenSSL-1.1.1 is the minimum supported version
Link Here
|
93 |
.endif |
123 |
.endif |
94 |
|
124 |
|
95 |
.if ${PORT_OPTIONS:MINST_BASE} |
125 |
.if ${PORT_OPTIONS:MINST_BASE} |
96 |
.if defined(SASL_SLAVE) |
126 |
.if ${FLAVOR:U} == ldap_sasl |
97 |
PKGNAMESUFFIX= -current-base-sasl |
127 |
PKGNAMESUFFIX= -current-base-ldap-sasl2 |
|
|
128 |
.elif ${FLAVOR:U} == sasl |
129 |
PKGNAMESUFFIX= -current-base-sasl2 |
98 |
.else |
130 |
.else |
99 |
PKGNAMESUFFIX= -current-base |
131 |
PKGNAMESUFFIX= -current-base |
100 |
.endif |
132 |
.endif |
Lines 109-117
PLIST_SUB+= PFETC=${ETCDIR}
Link Here
|
109 |
|
141 |
|
110 |
# check if mailwrapper supports $LOCALBASE |
142 |
# check if mailwrapper supports $LOCALBASE |
111 |
.if ${OPSYS} == FreeBSD |
143 |
.if ${OPSYS} == FreeBSD |
112 |
SUB_LIST+= USE_LOCALBASE_MAILER_CONF="yes" MC_PREFIX="${LOCALBASE}" |
144 |
SUB_LIST+= MC_PREFIX="${LOCALBASE}" \ |
|
|
145 |
USE_LOCALBASE_MAILER_CONF="yes" |
113 |
.else |
146 |
.else |
114 |
SUB_LIST+= USE_LOCALBASE_MAILER_CONF="no" MC_PREFIX="" |
147 |
SUB_LIST+= MC_PREFIX="" \ |
|
|
148 |
USE_LOCALBASE_MAILER_CONF="no" |
115 |
.endif |
149 |
.endif |
116 |
|
150 |
|
117 |
.if ${PORT_OPTIONS:MDOCS} |
151 |
.if ${PORT_OPTIONS:MDOCS} |
Lines 122-155
READMEDIR= no
Link Here
|
122 |
.endif |
156 |
.endif |
123 |
|
157 |
|
124 |
# dynamic direcory location |
158 |
# dynamic direcory location |
125 |
DAEMONDIR= ${PREFIX}/libexec/postfix |
159 |
DAEMONDIR= ${PREFIX}/libexec/postfix |
126 |
SHLIB_DIRECTORY=${PREFIX}/lib/postfix |
160 |
SHLIB_DIRECTORY= ${PREFIX}/lib/postfix |
127 |
# new proposed location is ETCDIR (see README_FILES/INSTALL) |
161 |
# new proposed location is ETCDIR (see README_FILES/INSTALL) |
128 |
# keep compatiblity with Postfix 2.6 .. 2.11 and use DAEMOMDIR |
162 |
# keep compatiblity with Postfix 2.6 .. 2.11 and use DAEMOMDIR |
129 |
META_DIRECTORY= ${DAEMONDIR} |
163 |
META_DIRECTORY= ${DAEMONDIR} |
130 |
|
164 |
|
131 |
SUB_LIST+= REQUIRE="${_REQUIRE}" READMEDIR="${READMEDIR}" \ |
165 |
SUB_LIST+= DAEMONDIR="${DAEMONDIR}" \ |
132 |
DAEMONDIR="${DAEMONDIR}" META_DIRECTORY="${META_DIRECTORY}" |
166 |
META_DIRECTORY="${META_DIRECTORY}" \ |
133 |
SUB_FILES+= pkg-install pkg-message mailer.conf.postfix |
167 |
READMEDIR="${READMEDIR}" \ |
134 |
|
168 |
REQUIRE="${_REQUIRE}" |
135 |
POSTFIX_CCARGS+= -DDEF_CONFIG_DIR=\\\"${ETCDIR}\\\" \ |
169 |
SUB_FILES+= mailer.conf.postfix pkg-install pkg-message |
136 |
-DDEF_DAEMON_DIR=\\\"${DAEMONDIR}\\\" \ |
170 |
|
137 |
-DDEF_META_DIR=\\\"${META_DIRECTORY}\\\" \ |
171 |
POSTFIX_CCARGS+= -DDEF_CONFIG_DIR=\\\"${ETCDIR}\\\" -DDEF_DAEMON_DIR=\\\"${DAEMONDIR}\\\" -DDEF_META_DIR=\\\"${META_DIRECTORY}\\\" -DDEF_COMMAND_DIR=\\\"${PREFIX}/sbin\\\" -DDEF_SENDMAIL_PATH=\\\"${PREFIX}/sbin/sendmail\\\" -DDEF_NEWALIAS_PATH=\\\"${PREFIX}/bin/newaliases\\\" -DDEF_MAILQ_PATH=\\\"${PREFIX}/bin/mailq\\\" -DDEF_MANPAGE_DIR=\\\"${MANPREFIX}/man\\\" -DDEF_README_DIR=\\\"${READMEDIR}\\\" -DDEF_HTML_DIR=\\\"${READMEDIR}\\\" -DDEF_QUEUE_DIR=\\\"/var/spool/postfix\\\" -DDEF_DATA_DIR=\\\"/var/db/postfix\\\" -DDEF_MAIL_OWNER=\\\"postfix\\\" -DDEF_SGID_GROUP=\\\"maildrop\\\" -Wmissing-prototypes -Wformat -Wno-comment |
138 |
-DDEF_COMMAND_DIR=\\\"${PREFIX}/sbin\\\" \ |
|
|
139 |
-DDEF_SENDMAIL_PATH=\\\"${PREFIX}/sbin/sendmail\\\" \ |
140 |
-DDEF_NEWALIAS_PATH=\\\"${PREFIX}/bin/newaliases\\\" \ |
141 |
-DDEF_MAILQ_PATH=\\\"${PREFIX}/bin/mailq\\\" \ |
142 |
-DDEF_MANPAGE_DIR=\\\"${MANPREFIX}/man\\\" \ |
143 |
-DDEF_README_DIR=\\\"${READMEDIR}\\\" \ |
144 |
-DDEF_HTML_DIR=\\\"${READMEDIR}\\\" \ |
145 |
-DDEF_QUEUE_DIR=\\\"/var/spool/postfix\\\" \ |
146 |
-DDEF_DATA_DIR=\\\"/var/db/postfix\\\" \ |
147 |
-DDEF_MAIL_OWNER=\\\"postfix\\\" \ |
148 |
-DDEF_SGID_GROUP=\\\"maildrop\\\" \ |
149 |
-Wmissing-prototypes -Wformat -Wno-comment |
150 |
|
172 |
|
151 |
# Default requirement for postfix rc script |
173 |
# Default requirement for postfix rc script |
152 |
_REQUIRE= LOGIN cleanvar dovecot |
174 |
_REQUIRE= LOGIN cleanvar dovecot |
153 |
|
175 |
|
154 |
# always build with Dovecot SASL support, Cyrus is optional |
176 |
# always build with Dovecot SASL support, Cyrus is optional |
155 |
# see Postfix HISTORY 20051222 |
177 |
# see Postfix HISTORY 20051222 |
Lines 172-189
POSTFIX_CCARGS+= -DNO_PCRE
Link Here
|
172 |
.endif |
194 |
.endif |
173 |
|
195 |
|
174 |
.if ${PORT_OPTIONS:MSASL} |
196 |
.if ${PORT_OPTIONS:MSASL} |
175 |
POSTFIX_CCARGS+= -DUSE_CYRUS_SASL -I${LOCALBASE}/include -I${LOCALBASE}/include/sasl |
197 |
POSTFIX_CCARGS+= -DUSE_CYRUS_SASL -I${LOCALBASE}/include \ |
|
|
198 |
-I${LOCALBASE}/include/sasl |
176 |
POSTFIX_AUXLIBS+= -L${LOCALBASE}/lib -lsasl2 -lpam -lcrypt |
199 |
POSTFIX_AUXLIBS+= -L${LOCALBASE}/lib -lsasl2 -lpam -lcrypt |
177 |
.else |
200 |
.else |
178 |
POSTFIX_CCARGS+= -DDEF_SERVER_SASL_TYPE=\\\"dovecot\\\" |
201 |
POSTFIX_CCARGS+= -DDEF_SERVER_SASL_TYPE=\\\"dovecot\\\" |
179 |
.endif |
202 |
.endif |
180 |
|
203 |
|
181 |
.if ${PORT_OPTIONS:MSASLKRB5} |
204 |
.if ${PORT_OPTIONS:MSASLKRB5} |
182 |
POSTFIX_AUXLIBS+= -lkrb5 -lhx509 -lcrypto -lcrypt -lcom_err -lasn1 -lroken |
205 |
POSTFIX_AUXLIBS+= -lkrb5 -lhx509 -lcrypto -lcrypt -lcom_err -lasn1 \ |
|
|
206 |
-lroken |
183 |
.endif |
207 |
.endif |
184 |
|
208 |
|
185 |
.if ${PORT_OPTIONS:MSASLKMIT} |
209 |
.if ${PORT_OPTIONS:MSASLKMIT} |
186 |
POSTFIX_AUXLIBS+= -Wl,--rpath,$${KRB5_HOME:-${LOCALBASE}}/lib -lkrb5 -lcrypto -lcrypt -lcom_err |
210 |
POSTFIX_AUXLIBS+= -Wl,--rpath,$${KRB5_HOME:-${LOCALBASE}}/lib -lkrb5 \ |
|
|
211 |
-lcrypto -lcrypt -lcom_err |
187 |
.endif |
212 |
.endif |
188 |
|
213 |
|
189 |
.if ${PORT_OPTIONS:MTLS} |
214 |
.if ${PORT_OPTIONS:MTLS} |
Lines 203-209
POSTFIX_AUXLIBS+= -L${BDB_LIB_DIR} -l${BDB_LIB_NAME}
Link Here
|
203 |
. if ${OPSYS} == FreeBSD |
228 |
. if ${OPSYS} == FreeBSD |
204 |
POSTFIX_AUXLIBS+= -lblacklist |
229 |
POSTFIX_AUXLIBS+= -lblacklist |
205 |
. else |
230 |
. else |
206 |
IGNORE= blacklistd is only supported on FreeBSD >= 11.0 |
231 |
IGNORE= blacklistd is only supported on FreeBSD >= 11.0 |
207 |
. endif |
232 |
. endif |
208 |
.endif |
233 |
.endif |
209 |
|
234 |
|
Lines 267-286
POSTFIX_DYN_AUXLIBS+= "AUXLIBS_LMDB=-L${LOCALBASE}/lib -llmdb"
Link Here
|
267 |
.endif |
292 |
.endif |
268 |
|
293 |
|
269 |
# sed script for files in ${WRKSRC}/README_FILES ${WRKSRC}/conf ${WRKSRC}/man |
294 |
# sed script for files in ${WRKSRC}/README_FILES ${WRKSRC}/conf ${WRKSRC}/man |
270 |
REINPLACE= s!^PATH=.*!PATH=/bin:/sbin:/usr/bin:/usr/sbin:${PREFIX}/bin:${PREFIX}/sbin!;\ |
295 |
REINPLACE= s!^PATH=.*!PATH=/bin:/sbin:/usr/bin:/usr/sbin:${PREFIX}/bin:${PREFIX}/sbin!; \ |
271 |
s!(_directory = )/usr/!\1${PREFIX}/!g;\ |
296 |
s!(_directory = )/usr/!\1${PREFIX}/!g; s!^(data_directory = \ |
272 |
s!^(data_directory = /var/)lib/!\1db/!g;\ |
297 |
/var/)lib/!\1db/!g; s!^\#(mynetworks_style = host)!\1!g; \ |
273 |
s!^\#(mynetworks_style = host)!\1!g;\ |
298 |
s!^(sendmail_path =)!\1 ${PREFIX}/sbin/sendmail!g; \ |
274 |
s!^(sendmail_path =)!\1 ${PREFIX}/sbin/sendmail!g;\ |
299 |
s!^(newaliases_path =)!\1 ${PREFIX}/bin/newaliases!g; \ |
275 |
s!^(newaliases_path =)!\1 ${PREFIX}/bin/newaliases!g;\ |
300 |
s!^(mailq_path =)!\1 ${PREFIX}/bin/mailq!g; s!^(setgid_group \ |
276 |
s!^(mailq_path =)!\1 ${PREFIX}/bin/mailq!g;\ |
301 |
=)!\1 maildrop!g; s!^(manpage_directory =)!\1 \ |
277 |
s!^(setgid_group =)!\1 maildrop!g;\ |
302 |
${MANPREFIX}/man!g; s!^((html|readme)_directory =)!\1 \ |
278 |
s!^(manpage_directory =)!\1 ${MANPREFIX}/man!g;\ |
303 |
${READMEDIR}!g; \!^\#alias_database = \ |
279 |
s!^((html|readme)_directory =)!\1 ${READMEDIR}!g;\ |
304 |
dbm:/etc/mail/aliases$$!d; s!(:|= \ |
280 |
\!^\#alias_database = dbm:/etc/mail/aliases$$!d;\ |
305 |
)/etc/postfix!\1$$config_directory!g; \ |
281 |
s!(:|= )/etc/postfix!\1$$config_directory!g;\ |
306 |
s!/etc/postfix!${ETCDIR}!g; s!^(sample_directory =)!\1 \ |
282 |
s!/etc/postfix!${ETCDIR}!g;\ |
307 |
${ETCDIR}!g; \ |
283 |
s!^(sample_directory =)!\1 ${ETCDIR}!g;\ |
|
|
284 |
s!($config_directory/(access|aliases|canonical|generic|header_checks|relocated|transport|virtual):f:root:-:644:)p1!\1o!; |
308 |
s!($config_directory/(access|aliases|canonical|generic|header_checks|relocated|transport|virtual):f:root:-:644:)p1!\1o!; |
285 |
|
309 |
|
286 |
pre-patch: |
310 |
pre-patch: |
287 |
- |
|
|