From ca5453672be43168bd7a53e1b4d63c2c53ca7365 Mon Sep 17 00:00:00 2001 From: Flavio Percoco Date: Tue, 10 Dec 2013 00:32:48 +0100 Subject: [PATCH] Make pbr only a build-time dependency. This lets you build python-marconiclient packages that don't require pbr to be installed at all. You would need pbr on the machine running rpmbuild / debuild, but not on the machines that install the packages. Unfortunately, this does not make python-marconiclient able to be installed via pip 0.3.1 on Lucid; you'll need to uninstall the system python-pip package and install a new pip some other way. Given that pip < 1.3 doesn't perform SSL certificate validation for pypi (trivial MITM attack, anyone?), you'd probably want to get a new pip anyway. Change-Id: I2fb160b6dd446f1fc72eed2371db1afcb00b9e52 --- marconiclient/version.py | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/marconiclient/version.py b/marconiclient/version.py index 38a5c8bd..a82e5a14 100644 --- a/marconiclient/version.py +++ b/marconiclient/version.py @@ -1,18 +1,29 @@ # Copyright (c) 2013 Red Hat, Inc. +# Copyright 2012 OpenStack LLC # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. -import pbr.version +import pkg_resources -version_info = pbr.version.VersionInfo('marconi') +try: + # First, try to get our version out of PKG-INFO. If we're installed, + # this'll let us find our version without pulling in pbr. After all, if + # we're installed on a system, we're not in a Git-managed source tree, so + # pbr doesn't really buy us anything. + version_string = pkg_resources.get_provider( + pkg_resources.Requirement.parse('python-marconiclient')).version +except pkg_resources.DistributionNotFound: + # No PKG-INFO? We're probably running from a checkout, then. Let pbr do + # its thing to figure out a version number. + import pbr.version + version_string = str(pbr.version.VersionInfo('python-marconiclient'))