commit 7afd9b06e7ac6a8c0cebb96212705f9d6ab390fa Author: Marcin Krol <h...@tld-linux.org> Date: Sun May 29 14:27:33 2022 +0200
- fix paths, init script, allow only python 2 or 3 not both, still NFY dkimpy-milter.init | 100 ++++++++++++++++++++++++++++++++++++++++++++++ paths.patch | 94 +++++++++++++++++++++++++++++++++++++++++++ python-dkimpy-milter.spec | 41 ++++++++++++++++++- 3 files changed, 233 insertions(+), 2 deletions(-) --- diff --git a/python-dkimpy-milter.spec b/python-dkimpy-milter.spec index 2d5dfe6..394f21d 100644 --- a/python-dkimpy-milter.spec +++ b/python-dkimpy-milter.spec @@ -1,9 +1,13 @@ # # Conditional build: %bcond_with tests # unit tests -%bcond_without python2 # CPython 2.x module +%bcond_with python2 # CPython 2.x module %bcond_without python3 # CPython 3.x module +%if %{with python3} +%undefine with_python2 +%endif + # NOTES: # - 'module' should match the Python import path (first component?) # - 'egg_name' should equal to Python egg name @@ -12,11 +16,13 @@ Summary: DKIM signing and verification milter Name: python-%{module} Version: 1.2.2 -Release: 0.1 +Release: 0.2 License: BSD-like Group: Libraries/Python Source0: https://files.pythonhosted.org/packages/source/d/dkimpy-milter/%{module}-%{version}.tar.gz # Source0-md5: dc0f054bc7dc6178eb31f20d93b73cca +Source1: dkimpy-milter.init +Patch0: paths.patch URL: https://launchpad.net/dkimpy-milter %if %{with python2} BuildRequires: python-modules >= 1:2.5 @@ -44,6 +50,7 @@ BuildRequires: rpm-pythonprov BuildRequires: rpmbuild(macros) >= 1.714 Requires: python-modules >= 1:2.5 Requires: python-setuptools +Conflicts: python3-dkimpy-milter BuildArch: noarch BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) @@ -55,12 +62,14 @@ Summary: DKIM signing and verification milter Group: Libraries/Python Requires: python3-modules >= 1:3.2 Requires: python3-setuptools +Conflicts: python-dkimpy-milter %description -n python3-%{module} DKIM signing and verification milter %prep %setup -q -n %{module}-%{version} +%patch0 -p1 %build %if %{with python2} @@ -74,6 +83,9 @@ DKIM signing and verification milter %install rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT/etc/{dkimpy-milter,rc.d/init.d} +install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/dkimpy-milter + %if %{with python2} %py_install @@ -89,10 +101,34 @@ rm -rf $RPM_BUILD_ROOT %clean rm -rf $RPM_BUILD_ROOT +%post +/sbin/chkconfig --add dkimpy-milter +%service dkimpy-milter restart + +%preun +if [ "$1" = "0" ]; then + %service dkimpy-milter stop + /sbin/chkconfig --del dkimpy-milter +fi + +%post -n python3-%{module} +/sbin/chkconfig --add dkimpy-milter +%service dkimpy-milter restart + +%preun -n python3-%{module} +if [ "$1" = "0" ]; then + %service dkimpy-milter stop + /sbin/chkconfig --del dkimpy-milter +fi + %if %{with python2} %files %defattr(644,root,root,755) %doc README.md +%attr(754,root,root) /etc/rc.d/init.d/dkimpy-milter +%attr(755,root,root) %{_bindir}/dkimpy-milter +%{_mandir}/man5/dkimpy-milter.conf.5* +%{_mandir}/man8/dkimpy-milter.8* %{py_sitescriptdir}/dkimpy_milter %{py_sitescriptdir}/dkimpy_milter-%{version}-py*.egg-info %endif @@ -101,6 +137,7 @@ rm -rf $RPM_BUILD_ROOT %files -n python3-%{module} %defattr(644,root,root,755) %doc README.md +%attr(754,root,root) /etc/rc.d/init.d/dkimpy-milter %attr(755,root,root) %{_bindir}/dkimpy-milter %{_mandir}/man5/dkimpy-milter.conf.5* %{_mandir}/man8/dkimpy-milter.8* diff --git a/dkimpy-milter.init b/dkimpy-milter.init new file mode 100644 index 0000000..ce24462 --- /dev/null +++ b/dkimpy-milter.init @@ -0,0 +1,100 @@ +#!/bin/sh +# +# dkimpy-milter This shell script takes care of starting and stopping +# dkimpy-milter. +# +# chkconfig: 345 80 30 +# +# description: dkimpy-milter is a daemon that hooks into sendmail and \ +# routes email messages for DKIM signing and validation +# +# processname: dkimpy-milter +# config: +# pidfile: /var/run/dkimpy-milter.pid +# +# $Id$ + +# Source function library +. /etc/rc.d/init.d/functions + +# Get network config +. /etc/sysconfig/network + +# Check that networking is up. +if is_yes "${NETWORKING}"; then + if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then + msg_network_down "DKIM Milter" + exit 1 + fi +else + exit 0 +fi + +# Get service config - may override defaults +[ -f /etc/sysconfig/dkimpy-milter ] && . /etc/sysconfig/dkimpy-milter + +start() { + # Check if the service is already running? + if [ -f /var/lock/subsys/dkimpy-milter ]; then + msg_already_running "DKIM Milter" + return + fi + + msg_starting "DKIM Milter" + daemon /usr/sbin/dkimpy-milter + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dkimpy-milter +} + +stop() { + if [ ! -f /var/lock/subsys/dkimpy-milter ]; then + msg_not_running "DKIM Milter" + return + fi + + # Stop daemons. + msg_stopping "DKIM Milter" + killproc dkimpy-milter + rm -f /var/lock/subsys/dkimpy-milter +} + +condrestart() { + if [ ! -f /var/lock/subsys/dkimpy-milter ]; then + msg_not_running "DKIM Milter" + RETVAL=$1 + return + fi + + stop + start +} + +RETVAL=0 +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + try-restart) + condrestart 0 + ;; + force-reload) + condrestart 7 + ;; + status) + status dkimpy-milter + RETVAL=$? + ;; + *) + msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}" + exit 3 +esac + +exit $RETVAL diff --git a/paths.patch b/paths.patch new file mode 100644 index 0000000..a2fa0d4 --- /dev/null +++ b/paths.patch @@ -0,0 +1,94 @@ +diff -ur dkimpy-milter-1.2.2.orig/dkimpy_milter/__init__.py dkimpy-milter-1.2.2/dkimpy_milter/__init__.py +--- dkimpy-milter-1.2.2.orig/dkimpy_milter/__init__.py 2020-08-09 20:15:48.000000000 +0200 ++++ dkimpy-milter-1.2.2/dkimpy_milter/__init__.py 2022-05-29 13:50:24.310772566 +0200 +@@ -451,7 +451,7 @@ + def main(): + # Ugh, but there's no easy way around this. + global milterconfig +- configFile = '/usr/local/etc/dkimpy-milter.conf' ++ configFile = '/etc/dkimpy-milter/dkimpy-milter.conf' + if len(sys.argv) > 1: + if (sys.argv[1] in ('-?', '--help', '-h')) or len(sys.argv) == 3 or \ + (len(sys.argv) == 4 and sys.argv[2] != '-P'): +@@ -484,7 +484,7 @@ + else: + socketname = 'fd:3' + if socketname is None: +- socketname = 'local:/var/run/dkimpy-milter/dkimpy-milter.sock' ++ socketname = 'local:/var/spool/postfix/dkimpy-milter/dkimpy-milter.sock' + sys.stdout.flush() + if milterconfig.get('Syslog'): + syslog.syslog('dkimpy-milter starting:{0} user:{1}' +diff -ur dkimpy-milter-1.2.2.orig/etc/dkimpy-milter.conf dkimpy-milter-1.2.2/etc/dkimpy-milter.conf +--- dkimpy-milter-1.2.2.orig/etc/dkimpy-milter.conf 2020-04-09 04:49:44.000000000 +0200 ++++ dkimpy-milter-1.2.2/etc/dkimpy-milter.conf 2022-05-29 13:51:41.948946914 +0200 +@@ -8,10 +8,10 @@ + # privileged user (e.g. Postfix) + UMask 007 + +-# Sign for example.com with key in /usr/local/etc/dkimkeys/dkim.key using ++# Sign for example.com with key in /etc/dkimpy-milter/dkim.key using + # selector '2007' (e.g. 2007._domainkey.example.com) + #Domain example.com +-#KeyFile /usr/local/etc/mail/dkim.key ++#KeyFile /etc/dkimpy-milter/example.com.key + #Selector default + + # Commonly-used options; the commented-out versions show the defaults. +@@ -27,17 +27,18 @@ + # ## inet:port to listen on all interfaces + # ## local:/path/to/socket to listen on a UNIX domain socket + # +-#Socket local:/run/dkimpy-milter/dkimpy-milter.sock ++#Socket local:/var/spool/postfix/dkimpy-milter/dkimpy-milter.sock + # + #Socket inet:8892@localhost ++Socket local:/var/spool/postfix/dkimpy-milter/dkimpy-milter.sock + + ## PidFile filename +-### default /run/dkimpy-milter/dkimpy-milter.pid ++### default /var/run/dkimpy-milter.pid + ### + ### Name of the file where the filter should write its pid before beginning + ### normal operations. + # +-PidFile /run/dkimpy-milter/dkimpy-milter.pid ++PidFile /var/run/dkimpy-milter.pid + + ## Userid userid + ### default dkimpy-milter +@@ -45,4 +46,4 @@ + ### Change to user "userid" before starting normal operation? May include + ### a group ID as well, separated from the userid by a colon. + # +-UserID dkimpy-milter ++UserID root:postfix +diff -ur dkimpy-milter-1.2.2.orig/setup.py dkimpy-milter-1.2.2/setup.py +--- dkimpy-milter-1.2.2.orig/setup.py 2020-08-09 20:16:23.000000000 +0200 ++++ dkimpy-milter-1.2.2/setup.py 2022-05-29 13:28:25.815906789 +0200 +@@ -32,17 +32,17 @@ + class FileMacroExpand(distutils.cmd.Command): + description = "Expand @@ variables in input files, simlar to make macros." + user_options = [ +- ('sysconfigdir=', 'e', 'Specify system configuration directory. [/usr/local/etc]'), +- ('sbindir=', 's', 'Specify system binary directory. [/usr/local/sbin]'), +- ('bindir=', 'b', 'Specify binary directory. [/usr/loca/bin]'), +- ('rundir=', 'r', 'Specify run state directory. [/run]'), ++ ('sysconfigdir=', 'e', 'Specify system configuration directory. [/etc]'), ++ ('sbindir=', 's', 'Specify system binary directory. [/usr/sbin]'), ++ ('bindir=', 'b', 'Specify binary directory. [/usr/bin]'), ++ ('rundir=', 'r', 'Specify run state directory. [/var/run]'), + ] + + def initialize_options(self): +- self.sysconfigdir = '/usr/local/etc' +- self.sbindir = '/usr/local/sbin' +- self.bindir = '/usr/local/bin' +- self.rundir = '/run' ++ self.sysconfigdir = '/etc' ++ self.sbindir = '/usr/sbin' ++ self.bindir = '/usr/bin' ++ self.rundir = '/var/run' + + def finalize_options(self): + self.configdir = self.sysconfigdir + '/dkimpy-milter' ================================================================ ---- gitweb: http://git.pld-linux.org/gitweb.cgi/packages/python-dkimpy-milter.git/commitdiff/7afd9b06e7ac6a8c0cebb96212705f9d6ab390fa _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit