Mercurial > treepkg
diff enterprise/kdepim.py @ 4:fee641fec94e
Separate the kolab specific parts.
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Fri, 09 Mar 2007 12:26:01 +0100 |
parents | |
children | 574506a022f6 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/enterprise/kdepim.py Fri Mar 09 12:26:01 2007 +0100 @@ -0,0 +1,82 @@ +# Copyright (C) 2007 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 enterprise 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 = "(enterprise %s)" % self.enterprise_version + for versionfile in ["kmail/kmversion.h", "kontact/src/main.cpp", + "korganizer/version.h"]: + filename = os.path.join(pkgbasedir, versionfile) + patched = re.sub("\(enterprise ([^)]*)\)", versionstring, + open(filename).read()) + f = open(filename, "w") + f.write(patched) + f.close() + + 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 enterprise 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 AssemblyLine(treepkg.packager.AssemblyLine): + + revision_packager_cls = RevisionPackager + + svn_external_subdirs = ["admin"]