--- debian/changelog | 8 +++++++ debian/control | 2 ++ setup.py.in | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+)
diff --git a/debian/changelog b/debian/changelog index 5f242153..ff49a030 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +python-debian (0.1.30) UNRELEASED; urgency=medium + + [ Ben Finney ] + + * Include the data for Debian releases in the Python distribution build. + + -- + python-debian (0.1.29) unstable; urgency=medium * Fix handling of gpgv output from gnupg 2 (Closes: #782904). diff --git a/debian/control b/debian/control index 9528b288..3fe99556 100644 --- a/debian/control +++ b/debian/control @@ -26,6 +26,8 @@ Build-Depends: python3-nose, python3-setuptools, python3-six (>> 1.4~) +Build-Depends-Indep: + distro-info-data Standards-Version: 3.9.8 Vcs-Browser: https://anonscm.debian.org/git/pkg-python-debian/python-debian.git Vcs-Git: https://anonscm.debian.org/git/pkg-python-debian/python-debian.git diff --git a/setup.py.in b/setup.py.in index 697e2c23..d3b612f3 100644 --- a/setup.py.in +++ b/setup.py.in @@ -18,8 +18,65 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +import distutils.command.build +import distutils.core +import os.path +import shutil + from setuptools import setup + +default_infile_path = os.path.join("/usr/share/distro-info", "debian.csv") + +class WriteDebianReleasesCommand(distutils.command.build.build, object): + """ Distutils command to write the data file of Debian releases. """ + + description = "Write the data file of Debian releases." + + user_options = ([ + ("infile-path=", None, + "Filesystem path to the input data file."), + ] + distutils.command.build.build.user_options) + + def initialize_options(self): + """ Initialise command options to defaults. """ + super(WriteDebianReleasesCommand, self).initialize_options() + self.infile_path = None + self.outfile_path = None + + def finalize_options(self): + """ Finalise command options before execution. """ + super(WriteDebianReleasesCommand, self).finalize_options() + + self.set_undefined_options( + 'build', + ('build_lib', 'build_lib'), + ('force', 'force'), + ) + + if self.infile_path is None: + self.infile_path = default_infile_path + + self.outfile_path = os.path.join( + self.build_lib, "debian", "releases.csv") + + def run(self): + """ Execute this command. """ + distutils.log.info( + "Writing data file from {source} to {dest}".format( + source=self.infile_path, dest=self.outfile_path)) + shutil.copy(self.infile_path, self.outfile_path) + + +class BuildCommand(distutils.command.build.build, object): + """ Custom ‘build’ command for this distribution. """ + + sub_commands = ( + distutils.command.build.build.sub_commands + [ + ('write_releases_data', (lambda dist: True)), + ]) + + setup( name='python-debian', version='__CHANGELOG_VERSION__', @@ -27,7 +84,14 @@ setup( url='http://packages.debian.org/sid/python-debian', package_dir={'': 'lib'}, packages=['debian', 'debian_bundle'], + cmdclass={ + "write_releases_data": WriteDebianReleasesCommand, + "build": BuildCommand, + }, py_modules=['deb822'], + package_data={ + 'debian': ['*.csv'], + }, maintainer='Debian python-debian Maintainers', maintainer_email='[email protected]', install_requires=['six'], -- 2.11.0
signature.asc
Description: PGP signature
-- http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-python-debian-maint
