view recipes/kde_enterprise_3_5/kdepim.py @ 171:c0ea6cbb0fd2

Add "--debbuildopts -b" to "pbuilder build" command line to stop pbuilder from creating a source package. The .changes would otherwise contain references to that new source package instead of the one we passed to pbuilder. The checksums for the two source packages would be different so the .changes file would not match the source package that treepkg produces.
author Bernhard Herzog <bh@intevation.de>
date Mon, 23 Jun 2008 16:12:01 +0000
parents 710538908609
children 12facd1b5f19
line wrap: on
line source
# Copyright (C) 2007, 2008 by Intevation GmbH
# Authors:
# Bernhard Herzog <bh@intevation.de>
#
# This program is free software under the GPL (>=v2)
# Read the file COPYING coming with the software for details.

"""Packager that builds KDE-PIM debian packages from the enterprise35 branch.
"""

import os
import time
import re

import treepkg.util
import treepkg.packager


class SourcePackager(treepkg.packager.SourcePackager):

    pkg_basename = "kdepim"

    def __init__(self, *args, **kw):
        super(SourcePackager, self).__init__(*args, **kw)
        self.enterprise_version = (time.strftime("%Y%m%d", time.localtime()) \
                                   + "." + str(self.revision))

    def kdepim_version(self, directory):
        """Determine the kdepim version.

        The version is taken from the kdepim.lsm file.
        """
        return treepkg.util.extract_lsm_version(os.path.join(directory,
                                                             "kdepim.lsm"))

    def determine_package_version(self, directory):
        enterprise_version = self.enterprise_version
        kdepimversion = self.kdepim_version(directory)
        version_template = "%(kdepimversion)s.enterprise.0.%(enterprise_version)s"
        return version_template % locals()

    def update_version_numbers(self, pkgbasedir):
        """Overrides the inherited method to update version numbers in the code
        """
        versionstring = "(enterprise35 %s)" % self.enterprise_version
        failed = []
        for versionfile in ["kmail/kmversion.h", "kontact/src/main.cpp",
                            "korganizer/version.h"]:
            if not treepkg.util.replace_in_file(os.path.join(pkgbasedir,
                                                             versionfile),
                                                "\(enterprise35 ([^)]*)\)",
                                                versionstring):
                failed.append(versionfile)
        if failed:
            raise RuntimeError("kdepim: failed to update version numbers in %s"
                               % (", ".join(failed),))

    def do_package(self):
        pkgbaseversion, pkgbasedir = self.export_sources()
        self.update_version_numbers(pkgbasedir)

        pkgbasename = "kdepim_" + pkgbaseversion
        origtargz = os.path.join(self.work_dir,
                                 pkgbasename + ".orig.tar.gz")
        self.create_tarball(origtargz, self.work_dir,
                            os.path.basename(pkgbasedir))

        changemsg = ("Update to SVN enterprise35 branch rev. %d"
                     % (self.revision,))
        self.copy_debian_directory(pkgbasedir, pkgbaseversion,
                                   changemsg)

        self.create_source_package(pkgbasedir, origtargz)
        self.move_source_package(pkgbasename)


class RevisionPackager(treepkg.packager.RevisionPackager):

    source_packager_cls = SourcePackager


class PackageTrack(treepkg.packager.PackageTrack):

    revision_packager_cls = RevisionPackager

    svn_external_subdirs = ["admin"]
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)