summaryrefslogtreecommitdiff
path: root/keymanager
diff options
context:
space:
mode:
Diffstat (limited to 'keymanager')
-rw-r--r--keymanager/pkg/utils.py18
-rw-r--r--keymanager/setup.py18
2 files changed, 31 insertions, 5 deletions
diff --git a/keymanager/pkg/utils.py b/keymanager/pkg/utils.py
index dd3deaca..9c9211be 100644
--- a/keymanager/pkg/utils.py
+++ b/keymanager/pkg/utils.py
@@ -14,16 +14,30 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
"""
Utils to help in the setup process
"""
-
import os
import re
import sys
+def is_develop_mode():
+ """
+ Returns True if we're calling the setup script using the argument for
+ setuptools development mode.
+
+ This avoids messing up with dependency pinning and order, the
+ responsibility of installing the leap dependencies is left to the
+ developer.
+ """
+ args = sys.argv
+ devflags = "setup.py", "develop"
+ if (args[0], args[1]) == devflags:
+ return True
+ return False
+
+
def get_reqs_from_files(reqfiles):
"""
Returns the contents of the top requirement file listed as a
diff --git a/keymanager/setup.py b/keymanager/setup.py
index f554e09e..adca6e1f 100644
--- a/keymanager/setup.py
+++ b/keymanager/setup.py
@@ -107,9 +107,21 @@ cmdclass["freeze_debianver"] = freeze_debianver
# XXX add ref to docs
-requirements = (
- utils.parse_requirements() +
- utils.parse_requirements(reqfiles=["pkg/requirements-leap.pip"]))
+requirements = utils.parse_requirements()
+
+if utils.is_develop_mode():
+ print
+ print ("[WARNING] Skipping leap-specific dependencies "
+ "because development mode is detected.")
+ print ("[WARNING] You can install "
+ "the latest published versions with "
+ "'pip install -r pkg/requirements-leap.pip'")
+ print ("[WARNING] Or you can instead do 'python setup.py develop' "
+ "from the parent folder of each one of them.")
+ print
+else:
+ requirements += utils.parse_requirements(
+ reqfiles=["pkg/requirements-leap.pip"])
setup(
name='leap.keymanager',