Mercurial > treepkg
view recipes/kde_enterprise_3_5/kdepim.py @ 258:bb98e728f25b
Allow default values for individual options to be passed to read_config_section.
The default value can now be passed as a third item in a tuple used in
the section description passed to read_config_section. The predefined
option descriptions have been updated to use this new mechanism and the
global defaults variable is not needed anymore. Also, indivdual
PackageTrack classes can now use this mechanism to specify defaults for
their additional configuration options.
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Fri, 17 Apr 2009 18:48:58 +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"]