svn commit: r470417 - in head/mail/py-milter: . files
Martin Wilke
miwi at FreeBSD.org
Sat May 19 16:25:17 UTC 2018
Author: miwi
Date: Sat May 19 16:25:15 2018
New Revision: 470417
URL: https://svnweb.freebsd.org/changeset/ports/470417
Log:
- Update to 1.0.2
- Use Github
PR: 226857
Submitted by: Peter Wullinger
Approved by: maintainer
Sponsored by: iXsystems Inc.
Added:
head/mail/py-milter/files/extra-patch-miltermodule.c (contents, props changed)
head/mail/py-milter/files/patch-Milter-dns.py (contents, props changed)
head/mail/py-milter/files/patch-Milter-dsn.py (contents, props changed)
Deleted:
head/mail/py-milter/files/patch-miltermodule.c
Modified:
head/mail/py-milter/Makefile
head/mail/py-milter/distinfo
Modified: head/mail/py-milter/Makefile
==============================================================================
--- head/mail/py-milter/Makefile Sat May 19 16:21:14 2018 (r470416)
+++ head/mail/py-milter/Makefile Sat May 19 16:25:15 2018 (r470417)
@@ -2,13 +2,11 @@
# $FreeBSD$
PORTNAME= milter
-PORTVERSION= 1.0
-PORTREVISION= 4
+PORTVERSION= 1.0.2
CATEGORIES= mail python
-MASTER_SITES= SF/${PYPORTNAME}/${PYPORTNAME}/${DISTNAME}
+MASTER_SITES= GH
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
DISTNAME= ${PYPORTNAME}-${PORTVERSION}
-DIST_SUBDIR= python
MAINTAINER= estartu at augusta.de
COMMENT= Python interface to Sendmail milter API
@@ -22,11 +20,22 @@ CFLAGS+= -I${LOCALBASE}/include
.endif
PYPORTNAME= ${PKGNAMEPREFIX:C/[0-9]+-//}${PORTNAME}
+GH_ACCOUNT= sdgathman
+GH_PROJECT= ${PYPORTNAME}
+GH_TAGNAME= ${GH_PROJECT}-${PORTVERSION}
-USES= python:2.7
-USE_PYTHON= distutils autoplist
+USES= python
+USE_GITHUB= yes
+USE_PYTHON= distutils autoplist flavors
+
post-install:
${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/milter.so
-.include <bsd.port.mk>
+.include <bsd.port.pre.mk>
+
+.if ${FLAVOR:Upy27:Mpy3*}
+EXTRA_PATCHES= ${PATCHDIR}/extra-patch-miltermodule.c
+.endif
+
+.include <bsd.port.post.mk>
Modified: head/mail/py-milter/distinfo
==============================================================================
--- head/mail/py-milter/distinfo Sat May 19 16:21:14 2018 (r470416)
+++ head/mail/py-milter/distinfo Sat May 19 16:25:15 2018 (r470417)
@@ -1,2 +1,3 @@
-SHA256 (python/pymilter-1.0.tar.gz) = 93a8f31b06c4a7f04e6f9b69f8d7357ba750819e6348177536b23255616e8937
-SIZE (python/pymilter-1.0.tar.gz) = 1014442
+TIMESTAMP = 1521752301
+SHA256 (pymilter-1.0.2_GH0.tar.gz) = f513053f5fc9b0c31d886d8412a411bdc958786a673d7071b1bd521498b01153
+SIZE (pymilter-1.0.2_GH0.tar.gz) = 1022535
Added: head/mail/py-milter/files/extra-patch-miltermodule.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/mail/py-milter/files/extra-patch-miltermodule.c Sat May 19 16:25:15 2018 (r470417)
@@ -0,0 +1,172 @@
+--- miltermodule.c.orig 2016-12-13 19:17:34 UTC
++++ miltermodule.c
+@@ -343,7 +343,7 @@ static struct MilterCallback {
+ { NULL , NULL }
+ };
+
+-staticforward struct smfiDesc description; /* forward declaration */
++static struct smfiDesc description; /* forward declaration */
+
+ static PyObject *MilterError;
+ /* The interpreter instance that called milter.main */
+@@ -355,7 +355,7 @@ typedef struct {
+
+ static milter_Diag diag;
+
+-staticforward PyTypeObject milter_ContextType;
++static PyTypeObject milter_ContextType;
+
+ typedef struct {
+ PyObject_HEAD
+@@ -700,7 +700,7 @@ _generic_wrapper(milter_ContextObject *s
+ result = PyEval_CallObject(cb, arglist);
+ Py_DECREF(arglist);
+ if (result == NULL) return _report_exception(self);
+- if (!PyInt_Check(result)) {
++ if (!PyLong_Check(result)) {
+ const struct MilterCallback *p;
+ const char *cbname = "milter";
+ char buf[40];
+@@ -715,7 +715,7 @@ _generic_wrapper(milter_ContextObject *s
+ PyErr_SetString(MilterError,buf);
+ return _report_exception(self);
+ }
+- retval = PyInt_AS_LONG(result);
++ retval = PyLong_AS_LONG(result);
+ Py_DECREF(result);
+ _release_thread(self->t);
+ return retval;
+@@ -732,7 +732,7 @@ makeipaddr(struct sockaddr_in *addr) {
+ sprintf(buf, "%d.%d.%d.%d",
+ (int) (x>>24) & 0xff, (int) (x>>16) & 0xff,
+ (int) (x>> 8) & 0xff, (int) (x>> 0) & 0xff);
+- return PyString_FromString(buf);
++ return PyUnicode_FromString(buf);
+ }
+
+ #ifdef HAVE_IPV6_SUPPORT
+@@ -740,8 +740,8 @@ static PyObject *
+ makeip6addr(struct sockaddr_in6 *addr) {
+ char buf[100]; /* must be at least INET6_ADDRSTRLEN + 1 */
+ const char *s = inet_ntop(AF_INET6, &addr->sin6_addr, buf, sizeof buf);
+- if (s) return PyString_FromString(s);
+- return PyString_FromString("inet6:unknown");
++ if (s) return PyUnicode_FromString(s);
++ return PyUnicode_FromString("inet6:unknown");
+ }
+ #endif
+
+@@ -832,7 +832,7 @@ generic_env_wrapper(SMFICTX *ctx, PyObje
+ for (i=0;i<count;i++) {
+ /* There's some error checking performed in do_mkvalue() for a string */
+ /* that's not currently done here - it probably should be */
+- PyObject *o = PyString_FromStringAndSize(argv[i], strlen(argv[i]));
++ PyObject *o = PyUnicode_FromStringAndSize(argv[i], strlen(argv[i]));
+ if (o == NULL) { /* out of memory */
+ Py_DECREF(arglist);
+ return _report_exception(self);
+@@ -889,7 +889,7 @@ milter_wrap_body(SMFICTX *ctx, u_char *b
+ c = _get_context(ctx);
+ if (!c) return SMFIS_TEMPFAIL;
+ /* Unclear whether this should be s#, z#, or t# */
+- arglist = Py_BuildValue("(Os#)", c, bodyp, bodylen);
++ arglist = Py_BuildValue("(Oy#)", c, bodyp, bodylen);
+ return _generic_wrapper(c, body_callback, arglist);
+ }
+
+@@ -963,7 +963,7 @@ milter_wrap_negotiate(SMFICTX *ctx,
+ int i;
+ for (i = 0; i < 4; ++i) {
+ *pa[i] = (i <= len)
+- ? PyInt_AsUnsignedLongMask(PyList_GET_ITEM(optlist,i))
++ ? PyLong_AsUnsignedLongMask(PyList_GET_ITEM(optlist,i))
+ : fa[i];
+ }
+ if (PyErr_Occurred()) {
+@@ -1551,11 +1551,6 @@ static PyMethodDef context_methods[] = {
+ { NULL, NULL }
+ };
+
+-static PyObject *
+-milter_Context_getattr(PyObject *self, char *name) {
+- return Py_FindMethod(context_methods, self, name);
+-}
+-
+ static struct smfiDesc description = { /* Set some reasonable defaults */
+ "pythonfilter",
+ SMFI_VERSION,
+@@ -1604,14 +1599,13 @@ static PyMethodDef milter_methods[] = {
+ };
+
+ static PyTypeObject milter_ContextType = {
+- PyObject_HEAD_INIT(&PyType_Type)
+- 0,
+- "milterContext",
++ PyVarObject_HEAD_INIT(&PyType_Type,0)
++ "milter.Context",
+ sizeof(milter_ContextObject),
+ 0,
+ milter_Context_dealloc, /* tp_dealloc */
+ 0, /* tp_print */
+- milter_Context_getattr, /* tp_getattr */
++ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_compare */
+ 0, /* tp_repr */
+@@ -1625,6 +1619,13 @@ static PyTypeObject milter_ContextType =
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
++ NULL, /* Documentation string */
++ 0, /* call function for all accessible objects */
++ 0, /* delete references to contained objects */
++ 0, /* rich comparisons */
++ 0, /* weak reference enabler */
++ 0, 0, /* Iterators */
++ context_methods, /* Attribute descriptor and subclassing stuff */
+ };
+
+ static const char milter_documentation[] =
+@@ -1634,17 +1635,31 @@ Libmilter is currently marked FFR, and n
+ See <sendmailsource>/libmilter/README for details on setting it up.\n";
+
+ static void setitem(PyObject *d,const char *name,long val) {
+- PyObject *v = PyInt_FromLong(val);
++ PyObject *v = PyLong_FromLong(val);
+ PyDict_SetItemString(d,name,v);
+ Py_DECREF(v);
+ }
+
+-void
+-initmilter(void) {
++static struct PyModuleDef moduledef = {
++ PyModuleDef_HEAD_INIT,
++ "milter", /* m_name */
++ milter_documentation,/* m_doc */
++ -1, /* m_size */
++ milter_methods, /* m_methods */
++ NULL, /* m_reload */
++ NULL, /* m_traverse */
++ NULL, /* m_clear */
++ NULL, /* m_free */
++};
++
++PyMODINIT_FUNC PyInit_milter(void) {
+ PyObject *m, *d;
+
+- m = Py_InitModule4("milter", milter_methods, milter_documentation,
+- (PyObject*)NULL, PYTHON_API_VERSION);
++ if (PyType_Ready(&milter_ContextType) < 0)
++ return NULL;
++
++ m = PyModule_Create(&moduledef);
++ if (m == NULL) return NULL;
+ d = PyModule_GetDict(m);
+ MilterError = PyErr_NewException("milter.error", NULL, NULL);
+ PyDict_SetItemString(d,"error", MilterError);
+@@ -1710,4 +1725,5 @@ initmilter(void) {
+ setitem(d,"DISCARD", SMFIS_DISCARD);
+ setitem(d,"ACCEPT", SMFIS_ACCEPT);
+ setitem(d,"TEMPFAIL", SMFIS_TEMPFAIL);
++ return m;
+ }
Added: head/mail/py-milter/files/patch-Milter-dns.py
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/mail/py-milter/files/patch-Milter-dns.py Sat May 19 16:25:15 2018 (r470417)
@@ -0,0 +1,13 @@
+--- Milter/dns.py.orig 2016-12-13 19:17:34 UTC
++++ Milter/dns.py
+@@ -26,8 +26,8 @@ def DNSLookup(name, qtype):
+ # A RR as dotted quad. For consistency, this driver should
+ # return both as binary string.
+ return [((a['name'], a['typename']), a['data']) for a in resp.answers]
+- except IOError, x:
+- raise DNSError, str(x)
++ except IOError as x:
++ raise DNSError(str(x))
+
+ class Session(object):
+ """A Session object has a simple cache with no TTL that is valid
Added: head/mail/py-milter/files/patch-Milter-dsn.py
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/mail/py-milter/files/patch-Milter-dsn.py Sat May 19 16:25:15 2018 (r470417)
@@ -0,0 +1,19 @@
+--- Milter/dsn.py.orig 2016-12-13 19:17:34 UTC
++++ Milter/dsn.py
+@@ -142,13 +142,13 @@ def send_dsn(mailfrom,receiver,msg=None,
+ if badrcpts:
+ return badrcpts
+ return None # success
+- except smtplib.SMTPRecipientsRefused,x:
++ except smtplib.SMTPRecipientsRefused as x:
+ if len(x.recipients) == 1:
+ return x.recipients.values()[0] # permanent error
+ return x.recipients
+- except smtplib.SMTPSenderRefused,x:
++ except smtplib.SMTPSenderRefused as x:
+ return x.args[:2] # does not accept DSN
+- except smtplib.SMTPDataError,x:
++ except smtplib.SMTPDataError as x:
+ return x.args # permanent error
+ except smtplib.SMTPException:
+ pass # any other error, try next MX
More information about the svn-ports-head
mailing list