git-restack/setup.py
Pete Zaitcev 06a036ac91 Jeremy's manpath workaround breaks on Fedora
In Fedora, /usr/man and /usr/local/man do not exist. So far, so good,
100% LSB compliant, etc. But in such case Jeremy's workaround tries
to install into /usr/man, so builds fail.

Suggestion: keep 'share/man' as the normal path and only invoke the
workaround when it's needed.

Ironically, if you look at Jeremy's original review patch 1, it worked
properly: it detected if something was symlinked and expanded those.
But then some kind of ridiculously involved problem with package
upgrades in Debian popped up and the condition was quietly inverted.
 See https://review.openstack.org/15146

Bug: 1073766
Change-Id: I78c2d2a0456ac2aa921b4d0720634622569d145d
2013-03-21 14:43:36 -06:00

65 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python
# Copyright (c) 2010-2011 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
#
# 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.
from setuptools import setup
from distutils.command.install import install as du_install
from setuptools.command.install import install
import os.path
import sys
# version comes from git-review.
savename = __name__
__name__ = "not-main"
exec(open("git-review").read())
__name__ = savename
class git_review_install(install):
# Force single-version-externally-managed
# This puts the manpage in the right location (instead of buried
# in an egg)
def run(self):
return du_install.run(self)
git_review_cmdclass = {'install': git_review_install}
manpath = 'share/man'
if os.path.exists(os.path.join(sys.prefix, 'man')):
# This works around a bug with install where it expects every node
# in the relative data directory to be an actual directory, since at
# least Debian derivatives (and probably other platforms as well)
# like to symlink Unixish /usr/local/man to /usr/local/share/man.
manpath = 'man'
setup(
name='git-review',
version=version,
cmdclass=git_review_cmdclass,
description="Tool to submit code to Gerrit",
license='Apache License (2.0)',
classifiers=[
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 3",
],
keywords='git gerrit review',
author='OpenStack, LLC.',
author_email='openstack@lists.launchpad.net',
url='https://launchpad.net/git-review',
scripts=['git-review'],
data_files=[(os.path.join(manpath, 'man1'), ['git-review.1'])],
install_requires=['argparse'],
)