diff --git a/setup.py b/setup.py index 0ec6268e..584ee005 100644 --- a/setup.py +++ b/setup.py @@ -22,18 +22,48 @@ subiquity Ubuntu Server Installer """ -from setuptools import setup, find_packages - +import distutils.cmd +import distutils.command.build +import glob import os +import subprocess import sys -setup_kwargs = {} -# dpkg build uses build and install, tox uses sdist -if 'SUBIQUITY_NO_I18N' not in os.environ: - from DistUtilsExtra.command import build_extra - from DistUtilsExtra.command import build_i18n - setup_kwargs['cmdclass'] = {'build': build_extra.build_extra, - 'build_i18n': build_i18n.build_i18n} +from setuptools import setup, find_packages + + +class build(distutils.command.build.build): + + def run(self): + super().run() + data_files = self.distribution.data_files + + with open('po/POTFILES.in') as in_fp: + with open('po/POTFILES.in.tmp', 'w') as out_fp: + for line in in_fp: + if line.startswith('['): + continue + out_fp.write('../' + line) + + subprocess.run([ + 'xgettext', + '--directory=.', + '--add-comments', + '--from-code=UTF-8', + '--output=subiquity.pot', + '--files-from=POTFILES.in.tmp', + ], cwd="po") + os.unlink('po/POTFILES.in.tmp') + + for po_file in glob.glob("po/*.po"): + lang = os.path.basename(po_file[:-3]) + mo_dir = os.path.join("build", "mo", lang, "LC_MESSAGES") + mo_file = os.path.join(mo_dir, "subiquity.mo") + if not os.path.exists(mo_dir): + os.makedirs(mo_dir) + subprocess.run(["msgfmt", po_file, "-o", mo_file]) + targetpath = os.path.join("share/locale", lang, "LC_MESSAGES") + data_files.append((targetpath, (mo_file,))) with open(os.path.join(os.path.dirname(__file__), @@ -43,6 +73,7 @@ with open(os.path.join(os.path.dirname(__file__), exec('\n'.join(lines), ns) version = ns['__version__'] + if sys.argv[-1] == 'clean': print("Cleaning up ...") os.system('rm -rf subiquity.egg-info build dist') @@ -75,4 +106,5 @@ setup(name='subiquity', ], }, data_files=[], - **setup_kwargs) + cmdclass={'build': build}, + ) diff --git a/snapcraft.yaml b/snapcraft.yaml index 9f7129e8..e6417bf7 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -68,7 +68,6 @@ parts: - libsystemd-dev - lsb-release - pkg-config - - python3-distutils-extra - python3-urwid stage-packages: - cloud-init @@ -76,7 +75,6 @@ parts: - iso-codes - lsb-release - python3-bson - - python3-distutils-extra - python3-urwid - python3-requests - python3-requests-unixsocket