You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
5.7 KiB
164 lines
5.7 KiB
--- a/setup.py
|
|
+++ b/setup.py
|
|
@@ -23,7 +23,7 @@
|
|
#
|
|
|
|
'''
|
|
-Gramps distutils module.
|
|
+Gramps setuptools module.
|
|
'''
|
|
|
|
#check python version first
|
|
@@ -32,11 +32,11 @@
|
|
if sys.version_info < (3, 2):
|
|
raise SystemExit("Gramps requires Python 3.2 or later.")
|
|
|
|
-from distutils import log
|
|
-from distutils.core import setup, Command
|
|
-from distutils.util import convert_path, newer
|
|
-from distutils.command.build import build as _build
|
|
-from distutils.command.install import install as _install
|
|
+from setuptools import setup, Command
|
|
+try:
|
|
+ from setuptools.command.build import build as _build
|
|
+except ImportError:
|
|
+ from distutils.command.build import build as _build
|
|
import os
|
|
import glob
|
|
import codecs
|
|
@@ -45,6 +45,9 @@
|
|
from gramps.version import VERSION
|
|
import unittest
|
|
import argparse
|
|
+import logging
|
|
+
|
|
+_LOG = logging.getLogger(".setup")
|
|
|
|
# this list MUST be a subset of _LOCALE_NAMES in gen/utils/grampslocale.py
|
|
# (that is, if you add a new language here, be sure it's in _LOCALE_NAMES too)
|
|
@@ -75,6 +78,17 @@
|
|
packaging = True
|
|
sys.argv = [sys.argv[0]] + passthrough
|
|
|
|
+def newer(source, target):
|
|
+ '''
|
|
+ Determines if a target file needs to be rebuilt.
|
|
+
|
|
+ Returns True if the target file doesn't exist or if the source file is
|
|
+ newer than the target file.
|
|
+ '''
|
|
+ if not os.path.exists(target):
|
|
+ return True
|
|
+ return os.path.getmtime(source) > os.path.getmtime(target)
|
|
+
|
|
def intltool_version():
|
|
'''
|
|
Return the version of intltool as a tuple.
|
|
@@ -140,7 +154,7 @@
|
|
reply = input(ask)
|
|
if reply in ['n', 'N']:
|
|
raise SystemExit(msg)
|
|
- log.info('Compiling %s >> %s', po_file, mo_file)
|
|
+ _LOG.info('Compiling %s >> %s', po_file, mo_file)
|
|
|
|
#linux specific piece:
|
|
target = 'share/locale/' + lang + '/LC_MESSAGES'
|
|
@@ -179,7 +193,7 @@
|
|
with open(newfile, 'rb') as f_in,\
|
|
gzip.open(man_file_gz, 'wb') as f_out:
|
|
f_out.writelines(f_in)
|
|
- log.info('Compiling %s >> %s', filename, man_file_gz)
|
|
+ _LOG.info('Compiling %s >> %s', filename, man_file_gz)
|
|
|
|
os.remove(newfile)
|
|
filename = False
|
|
@@ -193,30 +207,26 @@
|
|
'''
|
|
Merge translation files into desktop and mime files
|
|
'''
|
|
- for filename in _FILES:
|
|
- filename = convert_path(filename)
|
|
- strip_files(filename + '.in', filename, ['_tip', '_name'])
|
|
-
|
|
i_v = intltool_version()
|
|
if i_v is None or i_v < (0, 25, 0):
|
|
- log.info('No intltool or version < 0.25.0, build_intl is aborting')
|
|
+ _LOG.info('No intltool or version < 0.25.0, build_intl is aborting')
|
|
return
|
|
data_files = build_cmd.distribution.data_files
|
|
base = build_cmd.build_base
|
|
|
|
- merge_files = (('data/gramps.desktop', 'share/applications', '-d'),
|
|
- ('data/gramps.keys', 'share/mime-info', '-k'),
|
|
- ('data/gramps.xml', 'share/mime/packages', '-x'),
|
|
- ('data/gramps.appdata.xml', 'share/metainfo', '-x'))
|
|
+ merge_files = (('gramps.desktop', 'share/applications', '-d'),
|
|
+ ('gramps.keys', 'share/mime-info', '-k'),
|
|
+ ('gramps.xml', 'share/mime/packages', '-x'),
|
|
+ ('gramps.appdata.xml', 'share/metainfo', '-x'))
|
|
|
|
for filename, target, option in merge_files:
|
|
- filenamelocal = convert_path(filename)
|
|
+ filenamelocal = os.path.join('data', filename)
|
|
newfile = os.path.join(base, filenamelocal)
|
|
newdir = os.path.dirname(newfile)
|
|
if not(os.path.isdir(newdir) or os.path.islink(newdir)):
|
|
os.makedirs(newdir)
|
|
merge(filenamelocal + '.in', newfile, option)
|
|
- data_files.append((target, [base + '/' + filename]))
|
|
+ data_files.append((target, [base + '/data/' + filename]))
|
|
|
|
def strip_files(in_file, out_file, mark):
|
|
'''
|
|
@@ -232,7 +242,7 @@
|
|
line = line.replace(marker, marker[1:])
|
|
fb.write(line)
|
|
old.close()
|
|
- log.info('Compiling %s >> %s', in_file, out_file)
|
|
+ _LOG.info('Compiling %s >> %s', in_file, out_file)
|
|
|
|
def merge(in_file, out_file, option, po_dir='po', cache=True):
|
|
'''
|
|
@@ -262,7 +272,7 @@
|
|
msg = ('ERROR: %s was not merged into the translation files!\n' %
|
|
out_file)
|
|
raise SystemExit(msg)
|
|
- log.info('Compiling %s >> %s', in_file, out_file)
|
|
+ _LOG.info('Compiling %s >> %s', in_file, out_file)
|
|
|
|
class build(_build):
|
|
"""Custom build command."""
|
|
@@ -273,22 +283,6 @@
|
|
build_intl(self)
|
|
_build.run(self)
|
|
|
|
-class install(_install):
|
|
- """Custom install command."""
|
|
- def run(self):
|
|
- resource_file = os.path.join(os.path.dirname(__file__), 'gramps', 'gen',
|
|
- 'utils', 'resource-path')
|
|
- with open(resource_file, 'w', encoding='utf-8', errors='strict') as fp:
|
|
- if packaging:
|
|
- path = resource_path
|
|
- else:
|
|
- path = os.path.abspath(os.path.join(self.install_data, 'share'))
|
|
- fp.write(path)
|
|
-
|
|
- _install.run(self)
|
|
-
|
|
- os.remove(resource_file)
|
|
-
|
|
class test(Command):
|
|
"""Command to run Gramps unit tests"""
|
|
description = "run all unit tests"
|
|
@@ -503,7 +497,7 @@
|
|
url = 'http://gramps-project.org',
|
|
license = 'GPL v2 or greater',
|
|
platforms = ['FreeBSD', 'Linux', 'MacOS', 'Windows'],
|
|
- cmdclass = {'build': build, 'install': install, 'test': test},
|
|
+ cmdclass = {'build': build, 'test': test},
|
|
packages = packages,
|
|
package_data = {'gramps': package_data},
|
|
data_files = data_files,
|
|
Binary files a/.setup.py.swp and b/.setup.py.swp differ
|