- Use install_requires and extras_requires to document external

dependencies for dkimpy (LP: #1227526)
This commit is contained in:
Scott Kitterman
2018-03-27 01:23:00 -04:00
parent 7efe59e907
commit 3020b0e6d6
3 changed files with 33 additions and 12 deletions
+2
View File
@@ -1,6 +1,8 @@
Unreleased Version 0.8.0 Unreleased Version 0.8.0
- Change from distutils to setuptools with entry points because it's the - Change from distutils to setuptools with entry points because it's the
future future
- Use install_requires and extras_requires to document external
dependencies for dkimpy (LP: #1227526)
2018-02-17 Version 0.7.1 2018-02-17 Version 0.7.1
- Update ed25519 tests, including using sample keys from RFC 8032 Section - Update ed25519 tests, including using sample keys from RFC 8032 Section
+17 -11
View File
@@ -15,13 +15,19 @@ This is dkimpy 0.8.0.
REQUIREMENTS REQUIREMENTS
- Python 2.x >= 2.7, or Python 3.x >= 3.4. Recent versions have not been Dependencies will be automatically included for normal DKIM usage. The
tested on python < 2.7 or python3 < 3.4, but may still work on python2.6 extras_requires feature 'ed25519' will add the dependencies needed for signing
and verifying using the new DCRUP ed25519-sha256 algorithm. The
extras_requires feature 'ARC' will add the extra dependencies needed for ARC.
- Python 2.x >= 2.7, or Python 3.x >= 3.5. Recent versions have not been
tested on python < 2.7 or python3 < 3.5, but may still work on python2.6
and python 3.1 - 3.3. and python 3.1 - 3.3.
- dnspython or pydns. dnspython is preferred if both are present. - dnspython or pydns. dnspython is preferred if both are present and
installed to satisfy the DNS module requirement if neither are installed.
- argparse. Standard library in python2.7 and later. - argparse. Standard library in python2.7 and later.
- authres. Needed for ARC. - authres. Needed for ARC.
- nacl. Needed for use of experimental ed25519 capability. - PyNaCl. Needed for use of experimental ed25519 capability.
INSTALLATION INSTALLATION
@@ -106,22 +112,22 @@ The dkimpy 0.7 implementation matches the -08 revision of the draft, except it
uses Ed25519 vice Ed25519ph (a change to Ed25519 is planned for -09, but that uses Ed25519 vice Ed25519ph (a change to Ed25519 is planned for -09, but that
had not been published yet as of the release of dkimpy 0.7). had not been published yet as of the release of dkimpy 0.7).
Three helper programs are also supplied: dknewkey.py, dkimsign.py and Three helper programs are also supplied: dknewkey, dkimsign and
dkimverify.py. dkimverify
dknewkey.py is s script that produces private and public key pairs suitable dknewkey is s script that produces private and public key pairs suitable
for use with DKIM. Note that the private key file format used for ed25519 is for use with DKIM. Note that the private key file format used for ed25519 is
not standardized (there is no standard) and is unique to dkimpy. not standardized (there is no standard) and is unique to dkimpy.
dkimsign.py is a filter that reads an RFC822 message on standard input, and dkimsign is a filter that reads an RFC822 message on standard input, and
writes the same message on standard output with a DKIM-Signature line writes the same message on standard output with a DKIM-Signature line
prepended. The signing options are specified on the command line: prepended. The signing options are specified on the command line:
dkimsign.py selector domain privatekeyfile [identity] dkimsign selector domain privatekeyfile [identity]
The identity is optional and defaults to "@domain". The identity is optional and defaults to "@domain".
dkimverify.py reads an RFC822 message on standard input, and returns with exit dkimverify reads an RFC822 message on standard input, and returns with exit
code 0 if the signature verifies successfully. Otherwise, it returns with exit code 0 if the signature verifies successfully. Otherwise, it returns with exit
code 1. code 1.
@@ -134,7 +140,7 @@ This new functionality is marked experimental because the protocol is still
under development. There are no guarantees about API stability or under development. There are no guarantees about API stability or
compatibility. compatibility.
In addition to arcsign.py and arcverify.py, the dkim module now provides In addition to arcsign and arcverify, the dkim module now provides
arc_sign and arc_verify functions as well as an ARC class. arc_sign and arc_verify functions as well as an ARC class.
FEEDBACK FEEDBACK
+14 -1
View File
@@ -26,6 +26,13 @@ import os
version = "0.8.0" version = "0.8.0"
kw = {} # Work-around for lack of 'or' requires in setuptools.
try:
import DNS
kw['install_requires'] = ['PyDNS']
except ImportError: # If PyDNS is not installed, prefer dnspython
kw['install_requires'] = ['dnspython']
setup( setup(
name = "dkimpy", name = "dkimpy",
version = version, version = version,
@@ -67,7 +74,13 @@ verification.""",
'Topic :: Communications :: Email :: Filters', 'Topic :: Communications :: Email :: Filters',
'Topic :: Internet :: Name Service (DNS)', 'Topic :: Internet :: Name Service (DNS)',
'Topic :: Software Development :: Libraries :: Python Modules' 'Topic :: Software Development :: Libraries :: Python Modules'
] ],
zip_safe = False,
extras_require={
'ed25519': ['PyNaCl'],
'ARC': ['authres']
},
**kw
) )
if os.name != 'posix': if os.name != 'posix':