Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 59f8c39e60 | |||
| 6913fd3e66 | |||
| 780ac63ebe | |||
| b51c08ba3a | |||
| 2e7805e531 | |||
| b1eae98453 | |||
| 9118364164 |
+4
-2
@@ -142,8 +142,10 @@ def connectcallback(ctx,hostname,family,hostaddr):
|
|||||||
def closecallback(ctx):
|
def closecallback(ctx):
|
||||||
m = ctx.getpriv()
|
m = ctx.getpriv()
|
||||||
if not m: return CONTINUE
|
if not m: return CONTINUE
|
||||||
rc = m.close()
|
try:
|
||||||
m._setctx(None) # release milterContext
|
rc = m.close()
|
||||||
|
finally:
|
||||||
|
m._setctx(None) # release milterContext
|
||||||
return rc
|
return rc
|
||||||
|
|
||||||
def dictfromlist(args):
|
def dictfromlist(args):
|
||||||
|
|||||||
+9
-3
@@ -35,6 +35,12 @@ $ python setup.py help
|
|||||||
libraries=["milter","smutil","resolv"]
|
libraries=["milter","smutil","resolv"]
|
||||||
|
|
||||||
* $Log$
|
* $Log$
|
||||||
|
* Revision 1.16 2008/12/16 04:21:05 customdesigned
|
||||||
|
* Fedora release
|
||||||
|
*
|
||||||
|
* Revision 1.15 2008/12/13 20:29:56 customdesigned
|
||||||
|
* Split off milter applications.
|
||||||
|
*
|
||||||
* Revision 1.14 2008/12/04 19:43:00 customdesigned
|
* Revision 1.14 2008/12/04 19:43:00 customdesigned
|
||||||
* Doc updates.
|
* Doc updates.
|
||||||
*
|
*
|
||||||
@@ -1094,7 +1100,7 @@ milter_addrcpt(PyObject *self, PyObject *args) {
|
|||||||
PyThreadState *t;
|
PyThreadState *t;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
if (!PyArg_ParseTuple(args, "s|z:addrcpt", &rcpt)) return NULL;
|
if (!PyArg_ParseTuple(args, "s|z:addrcpt", &rcpt, ¶ms)) return NULL;
|
||||||
ctx = _find_context(self);
|
ctx = _find_context(self);
|
||||||
if (ctx == NULL) return NULL;
|
if (ctx == NULL) return NULL;
|
||||||
t = PyEval_SaveThread();
|
t = PyEval_SaveThread();
|
||||||
@@ -1146,8 +1152,8 @@ milter_replacebody(PyObject *self, PyObject *args) {
|
|||||||
ctx = _find_context(self);
|
ctx = _find_context(self);
|
||||||
if (ctx == NULL) return NULL;
|
if (ctx == NULL) return NULL;
|
||||||
t = PyEval_SaveThread();
|
t = PyEval_SaveThread();
|
||||||
return _thread_return(t,smfi_replacebody(ctx, bodyp, bodylen),
|
return _thread_return(t,smfi_replacebody(ctx,
|
||||||
"cannot replace message body");
|
(unsigned char *)bodyp, bodylen), "cannot replace message body");
|
||||||
}
|
}
|
||||||
|
|
||||||
static char milter_setpriv__doc__[] =
|
static char milter_setpriv__doc__[] =
|
||||||
|
|||||||
+63
-38
@@ -1,23 +1,33 @@
|
|||||||
|
# EL 3,4,5 supported, set to 0 for Fedora
|
||||||
|
|
||||||
|
%if 0%{?el3} || 0%{?el4}
|
||||||
%define __python python2.4
|
%define __python python2.4
|
||||||
%define version 0.9.0
|
%endif
|
||||||
%define release 1.el4
|
|
||||||
%define libdir %{_libdir}/pymilter
|
%define libdir %{_libdir}/pymilter
|
||||||
%define name pymilter
|
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
|
||||||
%define redhat7 0
|
%define pythonbase %(basename %{__python})
|
||||||
|
|
||||||
Summary: Python interface to sendmail milter API
|
Summary: Python interface to sendmail milter API
|
||||||
Name: %{name}
|
Name: pymilter
|
||||||
Version: %{version}
|
Version: 0.9.1
|
||||||
Release: %{release}
|
Release: 1%{dist}
|
||||||
Source: %{name}-%{version}.tar.gz
|
Source: http://downloads.sourceforge.net/pymilter/%{name}-%{version}.tar.gz
|
||||||
#Patch: %{name}-%{version}.patch
|
Patch: %{name}-smutil.patch
|
||||||
|
Patch1: %{name}-start.patch
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
BuildRoot: %{_tmppath}/%{name}-buildroot
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
Vendor: Stuart D. Gathman <stuart@bmsi.com>
|
|
||||||
Url: http://www.bmsi.com/python/milter.html
|
Url: http://www.bmsi.com/python/milter.html
|
||||||
Requires: %{__python} >= 2.4, sendmail >= 8.13
|
Requires: %{pythonbase} >= 2.4, sendmail >= 8.13
|
||||||
BuildRequires: %{__python}-devel >= 2.4, sendmail-devel >= 8.13
|
%if 0%{?el3} || 0%{?el4}
|
||||||
|
# Need python2.4 specific pydns, not the version for system python
|
||||||
|
Requires: pydns
|
||||||
|
%else
|
||||||
|
# Needed for callbacks, not a core function but highly useful for milters
|
||||||
|
Requires: python-pydns
|
||||||
|
%endif
|
||||||
|
BuildRequires: ed, %{pythonbase}-devel >= 2.4, sendmail-devel >= 8.13
|
||||||
|
|
||||||
%description
|
%description
|
||||||
This is a python extension module to enable python scripts to
|
This is a python extension module to enable python scripts to
|
||||||
@@ -27,30 +37,32 @@ DSNs, and doing CBV.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
#patch -p0 -b .bms
|
%patch -p0 -b .smutil
|
||||||
|
%patch1 -p0 -b .start
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %{redhat7}
|
env CFLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build
|
||||||
LDFLAGS="-s"
|
|
||||||
%else # Redhat builds debug packages after 7.3
|
|
||||||
LDFLAGS="-g"
|
|
||||||
%endif
|
|
||||||
env CFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$LDFLAGS" %{__python} setup.py build
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
%{__python} setup.py install --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES
|
%{__python} setup.py install --root=$RPM_BUILD_ROOT
|
||||||
mkdir -p $RPM_BUILD_ROOT/var/run/milter
|
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/milter
|
||||||
|
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/milter
|
||||||
mkdir -p $RPM_BUILD_ROOT%{libdir}
|
mkdir -p $RPM_BUILD_ROOT%{libdir}
|
||||||
%ifos aix4.1
|
|
||||||
cat >$RPM_BUILD_ROOT%{libdir}/start.sh <<'EOF'
|
|
||||||
#!/bin/sh
|
|
||||||
cd /var/log/milter
|
|
||||||
exec /usr/local/bin/python bms.py >>milter.log 2>&1
|
|
||||||
EOF
|
|
||||||
%else # not aix4.1
|
|
||||||
cp start.sh $RPM_BUILD_ROOT%{libdir}
|
cp start.sh $RPM_BUILD_ROOT%{libdir}
|
||||||
ed $RPM_BUILD_ROOT%{libdir}/start.sh <<'EOF'
|
ed $RPM_BUILD_ROOT%{libdir}/start.sh <<'EOF'
|
||||||
|
/^datadir=/
|
||||||
|
c
|
||||||
|
datadir="%{_localstatedir}/log/milter"
|
||||||
|
.
|
||||||
|
/^piddir=/
|
||||||
|
c
|
||||||
|
piddir="%{_localstatedir}/run/milter"
|
||||||
|
.
|
||||||
|
/^libdir=/
|
||||||
|
c
|
||||||
|
libdir="%{libdir}"
|
||||||
|
.
|
||||||
/^python=/
|
/^python=/
|
||||||
c
|
c
|
||||||
python="%{__python}"
|
python="%{__python}"
|
||||||
@@ -58,43 +70,56 @@ python="%{__python}"
|
|||||||
w
|
w
|
||||||
q
|
q
|
||||||
EOF
|
EOF
|
||||||
%endif
|
|
||||||
chmod a+x $RPM_BUILD_ROOT%{libdir}/start.sh
|
chmod a+x $RPM_BUILD_ROOT%{libdir}/start.sh
|
||||||
%if !%{redhat7}
|
|
||||||
#grep '.pyc$' INSTALLED_FILES | sed -e 's/c$/o/' >>INSTALLED_FILES
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# start.sh is used by spfmilter and milter, and could be used by
|
# start.sh is used by spfmilter and milter, and could be used by
|
||||||
# other milters running on redhat
|
# other milters using pymilter.
|
||||||
%files -f INSTALLED_FILES
|
%files
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root,-)
|
||||||
%doc README ChangeLog NEWS TODO CREDITS sample.py milter-template.py
|
%doc README ChangeLog NEWS TODO CREDITS sample.py milter-template.py
|
||||||
%config %{libdir}/start.sh
|
%{python_sitearch}/*
|
||||||
%dir %attr(0755,mail,mail) /var/run/milter
|
%{libdir}
|
||||||
|
%dir %attr(0755,mail,mail) %{_localstatedir}/run/milter
|
||||||
|
%dir %attr(0755,mail,mail) %{_localstatedir}/log/milter
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jan 07 2009 Stuart Gathman <stuart@bmsi.com> 0.9.0-4
|
||||||
|
- Stop using INSTALLED_FILES to make Fedora happy
|
||||||
|
- Remove config flag from start.sh glue
|
||||||
|
- Own /var/log/milter
|
||||||
|
- Use _localstatedir
|
||||||
|
|
||||||
|
* Wed Jan 07 2009 Stuart Gathman <stuart@bmsi.com> 0.9.0-2
|
||||||
|
- Changes to meet Fedora standards
|
||||||
|
|
||||||
* Mon Nov 24 2008 Stuart Gathman <stuart@bmsi.com> 0.9.0-1
|
* Mon Nov 24 2008 Stuart Gathman <stuart@bmsi.com> 0.9.0-1
|
||||||
- Split pymilter into its own CVS module
|
- Split pymilter into its own CVS module
|
||||||
- Support chgfrom and addrcpt_par
|
- Support chgfrom and addrcpt_par
|
||||||
- Support NS records in Milter.dns
|
- Support NS records in Milter.dns
|
||||||
|
|
||||||
* Mon Aug 25 2008 Stuart Gathman <stuart@bmsi.com> 0.8.10-2
|
* Mon Aug 25 2008 Stuart Gathman <stuart@bmsi.com> 0.8.10-2
|
||||||
- /var/run/milter directory must be owned by mail
|
- /var/run/milter directory must be owned by mail
|
||||||
|
|
||||||
* Mon Aug 25 2008 Stuart Gathman <stuart@bmsi.com> 0.8.10-1
|
* Mon Aug 25 2008 Stuart Gathman <stuart@bmsi.com> 0.8.10-1
|
||||||
- improved parsing into email and fullname (still 2 self test failures)
|
- improved parsing into email and fullname (still 2 self test failures)
|
||||||
- implement no-DSN CBV, reduce full DSNs
|
- implement no-DSN CBV, reduce full DSNs
|
||||||
|
|
||||||
* Mon Sep 24 2007 Stuart Gathman <stuart@bmsi.com> 0.8.9-1
|
* Mon Sep 24 2007 Stuart Gathman <stuart@bmsi.com> 0.8.9-1
|
||||||
- Use ifarch hack to build milter and milter-spf packages as noarch
|
- Use ifarch hack to build milter and milter-spf packages as noarch
|
||||||
- Remove spf dependency from dsn.py, add dns.py
|
- Remove spf dependency from dsn.py, add dns.py
|
||||||
|
|
||||||
* Fri Jan 05 2007 Stuart Gathman <stuart@bmsi.com> 0.8.8-1
|
* Fri Jan 05 2007 Stuart Gathman <stuart@bmsi.com> 0.8.8-1
|
||||||
- move AddrCache, parse_addr, iniplist to Milter package
|
- move AddrCache, parse_addr, iniplist to Milter package
|
||||||
- move parse_header to Milter.utils
|
- move parse_header to Milter.utils
|
||||||
- fix plock for missing source and can't change owner/group
|
- fix plock for missing source and can't change owner/group
|
||||||
- split out pymilter and pymilter-spf packages
|
- split out pymilter and pymilter-spf packages
|
||||||
- move milter apps to /usr/lib/pymilter
|
- move milter apps to /usr/lib/pymilter
|
||||||
|
|
||||||
* Sat Nov 04 2006 Stuart Gathman <stuart@bmsi.com> 0.8.7-1
|
* Sat Nov 04 2006 Stuart Gathman <stuart@bmsi.com> 0.8.7-1
|
||||||
- SPF moved to pyspf RPM
|
- SPF moved to pyspf RPM
|
||||||
|
|
||||||
* Tue May 23 2006 Stuart Gathman <stuart@bmsi.com> 0.8.6-2
|
* Tue May 23 2006 Stuart Gathman <stuart@bmsi.com> 0.8.6-2
|
||||||
- Support CBV timeout
|
- Support CBV timeout
|
||||||
|
|||||||
@@ -2,10 +2,11 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
from distutils.core import setup, Extension
|
from distutils.core import setup, Extension
|
||||||
|
|
||||||
# FIXME: on some versions of sendmail, smutil is renamed to sm
|
# FIXME: on some versions of sendmail, smutil is renamed to sm.
|
||||||
# on slackware and debian, leave it out entirely. It depends
|
# On slackware and debian, leave it out entirely. It depends
|
||||||
# on how libmilter was built by the sendmail package.
|
# on how libmilter was built by the sendmail package.
|
||||||
libs = ["milter", "smutil"]
|
#libs = ["milter", "smutil"]
|
||||||
|
libs = ["milter"]
|
||||||
libdirs = ["/usr/lib/libmilter"] # needed for Debian
|
libdirs = ["/usr/lib/libmilter"] # needed for Debian
|
||||||
|
|
||||||
# patch distutils if it can't cope with the "classifiers" or
|
# patch distutils if it can't cope with the "classifiers" or
|
||||||
@@ -16,7 +17,7 @@ if sys.version < '2.2.3':
|
|||||||
DistributionMetadata.download_url = None
|
DistributionMetadata.download_url = None
|
||||||
|
|
||||||
# NOTE: importing Milter to obtain version fails when milter.so not built
|
# NOTE: importing Milter to obtain version fails when milter.so not built
|
||||||
setup(name = "pymilter", version = '0.9.0',
|
setup(name = "pymilter", version = '0.9.1',
|
||||||
description="Python interface to sendmail milter API",
|
description="Python interface to sendmail milter API",
|
||||||
long_description="""\
|
long_description="""\
|
||||||
This is a python extension module to enable python scripts to
|
This is a python extension module to enable python scripts to
|
||||||
|
|||||||
@@ -1,14 +1,16 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
appname="$1"
|
appname="$1"
|
||||||
script="${2:-${appname}}"
|
script="${2:-${appname}}"
|
||||||
datadir=/var/log/milter
|
datadir="/var/log/milter"
|
||||||
|
piddir="/var/run/milter"
|
||||||
|
libdir="/usr/lib/pymilter"
|
||||||
python="python2.4"
|
python="python2.4"
|
||||||
exec >>${datadir}/${appname}.log 2>&1
|
exec >>${datadir}/${appname}.log 2>&1
|
||||||
if test -s ${datadir}/${script}.py; then
|
if test -s ${datadir}/${script}.py; then
|
||||||
cd ${datadir} # use version in log dir if it exists for debugging
|
cd ${datadir} # use version in log dir if it exists for debugging
|
||||||
else
|
else
|
||||||
cd /usr/lib/pymilter
|
cd ${libdir}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${python} ${script}.py &
|
${python} ${script}.py &
|
||||||
echo $! >/var/run/milter/${appname}.pid
|
echo $! >${piddir}/${appname}.pid
|
||||||
|
|||||||
Reference in New Issue
Block a user