#!/usr/bin/env python ############################################################################### # # # Peekaboo Extended Email Attachment Behavior Observation Owl # # # # setup.py # ############################################################################### # # # Copyright (C) 2016-2019 science + computing ag # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or (at # # your option) any later version. # # # # This program is distributed in the hope that it will be useful, but # # WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # # General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program. If not, see . # # # ############################################################################### from codecs import open from os import path from sys import path as pythonpath from setuptools import setup, find_packages # Add peekaboo to PYTHONPATH pythonpath.append(path.dirname(path.dirname(path.abspath(__file__)))) from peekaboo import __version__, __author__, __license__, __description__ here = path.abspath(path.dirname(__file__)) # Get the long description from the README file with open(path.join(here, 'README.md'), encoding='utf-8') as f: long_description = f.read() # get the dependencies and installs with open(path.join(here, 'requirements.txt'), encoding='utf-8') as f: all_reqs = f.read().split('\n') install_requires = [x.strip() for x in all_reqs if 'git+' not in x] dependency_links = [x.strip().replace('git+', '') for x in all_reqs if 'git+' not in x] setup( name='PeekabooAV', version=__version__, description=__description__, long_description=long_description, url='https://github.com/scVENUS/PeekabooAV.git', download_url='https://github.com/scVENUS/PeekabooAV/archive/master.zip', license=__license__, classifiers=[ 'Development Status :: 4 - Beta', 'Operating System :: POSIX', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 3', 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)', 'Natural Language :: English', 'Natural Language :: German', 'Topic :: Communications :: Email :: Filters', ], keywords='Cuckoo, Amavis', packages=find_packages(exclude=['docs', 'tests*']), include_package_data=True, # package_files augments MANIFEST.in in what is packaged into a # distribution. Files to add must be inside a package. Thus files in the # root of our source directory cannot be packaged with this. Files inside # packages will stay there, totally obscured to the user. Meant for default # configuration or other package-internal data. # package_files=[...], # # data_files is another way to augment what is installed from the # distribution. Allows paths outside packages for both sources and targets. # Absolute paths are strongly discouraged because they exhibit confusing if # not downright broken behaviour. Relative paths are added to the # distribution and then installed into # site-packages/-.egg/ (setup.py) or / (pip). The latter works well with venvs and # distribution-provided pip (e.g. /usr/local/). # We go this route for providing sample files because using setup.py # directly is discouraged anyway and "only" tucks the files away in the egg # directory, providing the most consistent option. data_files=[ ("share/doc/peekaboo", [ "README.md", "CHANGELOG.md", "peekaboo.conf.sample", "ruleset.conf.sample", ]), ("share/doc/peekaboo/systemd", [ "systemd/peekaboo.service", ]), ("share/doc/peekaboo/amavis", [ "amavis/10-ask_peekaboo", ]), ], # overriding the whole install_data command allows for arbitrary # installation mechanics but does not solve the problem of adding files to # a binary distribution (e.g. wheel, which pip uses internally always) in # such a way that they will later be put at the correct location. Thus they # would go around pip entirely, be missing from any actual wheel # distribution package, pollute the system directly and not be removed upon # uninstall or upgrade. # cmdclass={ # 'install_data': OffsetDataInstall, # }, author=__author__, install_requires=install_requires, dependency_links=dependency_links, author_email='felix.bauer@atos.net', entry_points={ 'console_scripts': [ 'peekaboo = peekaboo.daemon:run', ], } )