[v9_10] more python2/3 compatibility fixes; use setup.py to install

This commit is contained in:
Evan Hunt
2016-04-29 14:38:11 -07:00
parent 6bfb11b25e
commit 9e9cc8f04e
9 changed files with 24 additions and 41 deletions

View File

@@ -53,9 +53,11 @@ install:: ${TARGETS} installdirs
${INSTALL_SCRIPT} dnssec-coverage ${DESTDIR}${sbindir}
${INSTALL_DATA} ${srcdir}/dnssec-checkds.8 ${DESTDIR}${mandir}/man8
${INSTALL_DATA} ${srcdir}/dnssec-coverage.8 ${DESTDIR}${mandir}/man8
test -z "${PYTHON}" || ${PYTHON} setup.py install --prefix=${DESTDIR}${prefix}
clean distclean::
rm -f ${TARGETS}
rm -rf build
distclean::
rm -f dnssec-checkds.py dnssec-coverage.py

View File

@@ -24,36 +24,17 @@ PYTHON = @PYTHON@
PYSRCS = __init__.py dnskey.py eventlist.py keydict.py \
keyevent.py keyzone.py
__init__.pyc dnskey.pyc eventlist.py keydict.py \
keyevent.pyc keyzone.pyc
@BIND9_MAKE_RULES@
.SUFFIXES: .py .pyc
.py.pyc:
all:
$(PYTHON) -m compileall .
installdirs:
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${libdir}/isc
install:: ${PYSRCS} installdirs
${INSTALL_SCRIPT} __init__.py ${DESTDIR}${libdir}
${INSTALL_SCRIPT} __init__.pyc ${DESTDIR}${libdir}
${INSTALL_SCRIPT} dnskey.py ${DESTDIR}${libdir}
${INSTALL_SCRIPT} dnskey.pyc ${DESTDIR}${libdir}
${INSTALL_SCRIPT} eventlist.py ${DESTDIR}${libdir}
${INSTALL_SCRIPT} eventlist.pyc ${DESTDIR}${libdir}
${INSTALL_SCRIPT} keydict.py ${DESTDIR}${libdir}
${INSTALL_SCRIPT} keydict.pyc ${DESTDIR}${libdir}
${INSTALL_SCRIPT} keyevent.py ${DESTDIR}${libdir}
${INSTALL_SCRIPT} keyevent.pyc ${DESTDIR}${libdir}
${INSTALL_SCRIPT} keyzone.py ${DESTDIR}${libdir}
${INSTALL_SCRIPT} keyzone.pyc ${DESTDIR}${libdir}
check test: subdirs
clean distclean::
rm -f *.pyc
rm -rf __pycache__ build
distclean::
rm -Rf utils.py

View File

@@ -14,8 +14,9 @@
# PERFORMANCE OF THIS SOFTWARE.
############################################################################
__all__ = ['dnskey', 'eventlist', 'keydict', 'keyevent',
'keyzone', 'utils']
__all__ = ['checkds', 'coverage', 'dnskey', 'eventlist',
'keydict', 'keyevent', 'keyzone', 'utils']
from isc.dnskey import *
from isc.eventlist import *
from isc.keydict import *

View File

@@ -42,7 +42,7 @@ class SECRR:
if not rrtext:
raise Exception
fields = rrtext.split()
fields = rrtext.decode('ascii').split()
if len(fields) < 7:
raise Exception
@@ -75,7 +75,8 @@ class SECRR:
fields = fields[2:]
if fields[0].upper() != self.rrtype:
raise Exception
raise Exception('%s does not match %s' %
(fields[0].upper(), self.rrtype))
self.keyid, self.keyalg, self.hashalg = map(int, fields[1:4])
self.digest = ''.join(fields[4:]).upper()

View File

@@ -27,9 +27,7 @@ from collections import defaultdict
prog = 'dnssec-coverage'
from isc import *
from isc.utils import prefix
from isc import dnskey, eventlist, keydict, keyevent, keyzone, utils
############################################################################
# print a fatal error and exit
@@ -139,7 +137,8 @@ def set_path(command, default=None):
def parse_args():
"""Read command line arguments, set global 'args' structure"""
compilezone = set_path('named-compilezone',
os.path.join(prefix('sbin'), 'named-compilezone'))
os.path.join(utils.prefix('sbin'),
'named-compilezone'))
parser = argparse.ArgumentParser(description=prog + ': checks future ' +
'DNSKEY coverage for a zone')

View File

@@ -48,7 +48,7 @@ class dnskey:
self.fromtuple(name, alg, keyid, keyttl)
self._dir = directory or os.path.dirname(key) or '.'
key = os.path.basename(key).decode('ascii')
key = os.path.basename(key)
(name, alg, keyid) = key.split('+')
name = name[1:-1]
alg = int(alg)
@@ -204,11 +204,11 @@ class dnskey:
raise Exception('unable to generate key: ' + str(stderr))
try:
keystr = stdout.splitlines()[0]
keystr = stdout.splitlines()[0].decode('ascii')
newkey = dnskey(keystr, keys_dir, ttl)
return newkey
except Exception as e:
raise Exception('unable to generate key: %s' % str(e))
raise Exception('unable to parse generated key: %s' % str(e))
def generate_successor(self, keygen_bin, **kwargs):
quiet = kwargs.get('quiet', False)

8
bin/python/setup.py Normal file
View File

@@ -0,0 +1,8 @@
from distutils.core import setup
setup(name='isc',
version='1.0',
description='Python functions to support BIND utilities',
url='https://www.isc.org/bind',
author='Internet Systems Consortium, Inc',
license='ISC',
packages=['isc'])