diff --git a/LICENSE b/LICENSE.txt
similarity index 100%
rename from LICENSE
rename to LICENSE.txt
diff --git a/requirements.txt b/requirements.txt
deleted file mode 100644
index 26477fba50c9e09dc548a5a5f506ef80ca2b3b49..0000000000000000000000000000000000000000
--- a/requirements.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# https://caremad.io/posts/2013/07/setup-vs-requirement/
-# The '.' specifies to get dependencies from `install_requires` of
-# setup.py
-.
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..95ece99663d9c9ce55da540d9110aab1388b3080
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,42 @@
+[metadata]
+name = enoslib
+version = 1.1.0
+keywords = evaluation, reproducible research, Grid5000
+license_file = LICENSE.txt
+url = https://github.com/beyondtheclouds/enoslib
+author = Matthieu Simonin
+author_email = matthieu.simonin@inria.fr
+long_description = file: README.md
+classifier =
+    Development Status :: 4 - Beta
+    Intended Audience :: System Administrators
+    Intended Audience :: Science/Research
+    License :: OSI Approved :: GNU General Public License v3 (GPLv3)
+    Operating System :: POSIX :: Linux
+    Programming Language :: Python :: 2.7
+
+[options]
+include_package_data = True
+packages = find:
+setup_requires =
+    setuptools>=39.0.1
+    wheel>=0.31.0
+install_requires =
+    ansible>=2.5.0,<2.6.0
+    jsonschema >= 2.6.0, < 2.7
+    execo >= 2.6.2, < 2.7
+    requests>=2.18.0, <2.19
+    python-vagrant>=0.5.15
+    netaddr>=0.7,<0.8
+    python-openstackclient>=3.0.0,<=4.0.0
+    python-novaclient<10
+    python-neutronclient==6.3.0
+    python-blazarclient==1.0.1
+
+
+[options.packages.find]
+exclude =
+    docs
+
+[bdist_wheel]
+python-tag = py27
diff --git a/setup.py b/setup.py
index 56895b30151821e7c6ac25eb5e19460d6bcb327e..f56ef20cde39eeb1cc8ab617242d33196f8e0526 100644
--- a/setup.py
+++ b/setup.py
@@ -1,43 +1,4 @@
 # -*- coding: utf-8 -
-import os
-from setuptools import setup, find_packages
+from setuptools import setup
 
-
-def read(fname):
-    return open(os.path.join(os.path.dirname(__file__), fname)).read()
-
-
-setup(
-    name="enoslib",
-    version="1.1.0",
-    description="",
-    url="https://github.com/beyondtheclouds/enoslib",
-    author="msimonin",
-    author_email="matthieu.simonin@inria.fr",
-    license="GPL-3.0",
-    classifiers=[
-        "Development Status :: 4 - Beta",
-        "Intended Audience :: System Administrators",
-        "Intended Audience :: Science/Research",
-        "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
-        "Operating System :: POSIX :: Linux",
-        "Programming Language :: Python :: 2.7",
-        ],
-    keywords="Evaluation, Reproducible Research, Grid5000",
-    long_description=read("README.rst"),
-    packages=find_packages(),
-    install_requires=[
-        "ansible>=2.5.0,<2.6.0",
-        "jsonschema >= 2.6.0, < 2.7",
-        "execo >= 2.6.2, < 2.7",
-        "requests>=2.18.0, <2.19",
-        "python-vagrant>=0.5.15",
-        "netaddr>=0.7,<0.8",
-        # Chameleon provider
-        "python-openstackclient>=3.0.0,<=4.0.0",
-        "python-novaclient<10",
-        "python-neutronclient==6.3.0",
-        "python-blazarclient==1.0.1",
-    ],
-    include_package_data=True
-)
+setup()