#!/usr/bin/env python
-# vim: set fileencoding=utf-8
+
from distutils.core import setup
import sys
-# CHECK dependencies
-# Python >= 2.6
-if sys.hexversion < 0x2060000:
- raise RuntimeError("Python version >= 2.6 required")
-# ipaddr >= 2.1.7
-try:
- import ipaddr
- l = ipaddr.__version__.split('.')
- l.reverse()
- if sum( int(l[i])*pow(10,i) for i in xrange(len(l))) < 217:
- raise RuntimeError("ipaddr >= 2.1.7 is required")
-except ImportError:
- raise RuntimeError("ipaddr >= 2.1.7 is required. You can download from http://ipaddr-py.googlecode.com/files/ipaddr-2.1.7.tar.gz")
+PY2 = sys.version_info[0] == 2
+
+with open('VERSION') as f:
+ version_tag = f.read().strip()
+with open("COPYING") as f:
+ license = f.read()
+with open("README") as f:
+ long_description = f.read()
+
+data_files = [ ('/etc/nepi', [ 'VERSION', 'COPYING', 'README' ] ) ]
+
+### requirements - used by pip install
+required_modules = [ ]
+ # we are now using six for a portable code
+required_modules.append('six')
+ # ipaddr in py2 used to be a separate lib
+ # within recent py3, it is now in standard library but named ipaddress
+if PY2:
+ required_modules.append('ipaddr')
+ # this is required regardless of the python version
+required_modules.append('networkx')
+ # refrain from mentioning these ones that are not exactly crucial
+ # and that have additional, non-python, dependencies
+ # that can easily break the whole install
+#required_modules.append('matplotlib')
+#required_modules.append('pygraphviz')
setup(
- name = "nepi",
- version = "0.2",
- description = "High-level abstraction for running network experiments",
- author = "Mathieu Lacage, Alina Quereilhac, MartÃn Ferrari and Claudio Freire",
- url = "http://yans.pl.sophia.inria.fr/code/hgwebdir.cgi/nepi/",
- license = "GPLv2",
- platforms = "Linux",
- packages = [
- "nepi",
- "nepi.testbeds",
- "nepi.testbeds.netns",
- "nepi.testbeds.ns3",
- "nepi.testbeds.planetlab",
- "nepi.core",
- "nepi.util.parser",
- "nepi.util.settools",
- "nepi.util.graphtools",
- "nepi.util" ],
- package_dir = {"": "src"},
- package_data = {"nepi.testbeds.planetlab" : [
- "scripts/*.py", "scripts/*.c", "scripts/*.patch",
- ],
- "nepi.util" : ["*.tpl"] },
- )
+ name = "nepi",
+ version = version_tag,
+ description = "Network Experiment Management Framework",
+ long_description = long_description,
+ license = license,
+ author = "Alina Quereilhac",
+ author_email = "alina.quereilhac@inria.fr",
+ download_url = "http://build.onelab.eu/nepi/nepi-{v}.tar.gz".format(v=version_tag),
+ url = "http://nepi.inria.fr/",
+ platforms = "Linux, OSX",
+ data_files = data_files,
+ package_dir = {"": "src"},
+ packages = [
+ "nepi",
+ "nepi.execution",
+ "nepi.resources",
+ "nepi.resources.all",
+ "nepi.resources.linux",
+ "nepi.resources.linux.ccn",
+ "nepi.resources.linux.ns3",
+ "nepi.resources.linux.ns3.ccn",
+ "nepi.resources.linux.netns",
+ "nepi.resources.netns",
+ "nepi.resources.ns3",
+ "nepi.resources.ns3.classes",
+ "nepi.resources.omf",
+ "nepi.resources.planetlab",
+ "nepi.resources.planetlab.ns3",
+ "nepi.resources.planetlab.openvswitch",
+ "nepi.util",
+ "nepi.util.parsers",
+ "nepi.data",
+ "nepi.data.processing",
+ "nepi.data.processing.ccn",
+ "nepi.data.processing.ping"],
+ package_data = {
+ "nepi.resources.planetlab" : [ "scripts/*.py" ],
+ "nepi.resources.linux" : [ "scripts/*.py" ],
+ "nepi.resources.linux.ns3" : [ "dependencies/*.tar.gz" ]
+ },
+ install_requires = required_modules,
+)