annotate recipes/kde_enterprise_3_5/kdepim.py @ 274:2676abfc0e1d

Refactoring: Implement do_package in treepkg.packager.SourcePackager. The actual implementation in the derived classes is almost identical in all cases so it's better to have as much of the implementation in the base class. The update_version_numbers method is not called directly by the base class code so is removed from the base class. OTOH, prepare_sources_for_tarball has been added as a more general variant of update_version_numbers that is actually called by the default implementation of do_package.
author Bernhard Herzog <bh@intevation.de>
date Thu, 07 May 2009 15:19:15 +0000
parents 12facd1b5f19
children c0cbd133b607
rev   line source
271
12facd1b5f19 Implement tag detection for the KDEPIM enterprise 3.5 packages. This is
Bernhard Herzog <bh@intevation.de>
parents: 161
diff changeset
1 # Copyright (C) 2007, 2008, 2009 by Intevation GmbH
4
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
2 # Authors:
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
3 # Bernhard Herzog <bh@intevation.de>
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
4 #
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
5 # This program is free software under the GPL (>=v2)
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
6 # Read the file COPYING coming with the software for details.
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
7
159
3f2ec4314855 Changed matching string enterprise->enterprise35, so it matches
Bernhard Reiter <bernhard@intevation.de>
parents: 132
diff changeset
8 """Packager that builds KDE-PIM debian packages from the enterprise35 branch.
3f2ec4314855 Changed matching string enterprise->enterprise35, so it matches
Bernhard Reiter <bernhard@intevation.de>
parents: 132
diff changeset
9 """
4
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
10
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
11 import os
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
12 import time
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
13 import re
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
14
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
15 import treepkg.util
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
16 import treepkg.packager
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
17
271
12facd1b5f19 Implement tag detection for the KDEPIM enterprise 3.5 packages. This is
Bernhard Herzog <bh@intevation.de>
parents: 161
diff changeset
18 import base
4
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
19
271
12facd1b5f19 Implement tag detection for the KDEPIM enterprise 3.5 packages. This is
Bernhard Herzog <bh@intevation.de>
parents: 161
diff changeset
20 class SourcePackager(base.BaseSourcePackager):
4
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
21
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
22 pkg_basename = "kdepim"
271
12facd1b5f19 Implement tag detection for the KDEPIM enterprise 3.5 packages. This is
Bernhard Herzog <bh@intevation.de>
parents: 161
diff changeset
23 changemsg_template = "Update to SVN enterprise35 branch rev. %(revision)d"
4
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
24
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
25 def kdepim_version(self, directory):
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
26 """Determine the kdepim version.
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
27
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
28 The version is taken from the kdepim.lsm file.
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
29 """
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
30 return treepkg.util.extract_lsm_version(os.path.join(directory,
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
31 "kdepim.lsm"))
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
32
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
33 def determine_package_version(self, directory):
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
34 enterprise_version = self.enterprise_version
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
35 kdepimversion = self.kdepim_version(directory)
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
36 version_template = "%(kdepimversion)s.enterprise.0.%(enterprise_version)s"
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
37 return version_template % locals()
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
38
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
39 def update_version_numbers(self, pkgbasedir):
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
40 """Overrides the inherited method to update version numbers in the code
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
41 """
159
3f2ec4314855 Changed matching string enterprise->enterprise35, so it matches
Bernhard Reiter <bernhard@intevation.de>
parents: 132
diff changeset
42 versionstring = "(enterprise35 %s)" % self.enterprise_version
161
710538908609 kdepim recipe: raise an error if not all version replacements could be done
Bernhard Herzog <bh@intevation.de>
parents: 159
diff changeset
43 failed = []
4
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
44 for versionfile in ["kmail/kmversion.h", "kontact/src/main.cpp",
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
45 "korganizer/version.h"]:
161
710538908609 kdepim recipe: raise an error if not all version replacements could be done
Bernhard Herzog <bh@intevation.de>
parents: 159
diff changeset
46 if not treepkg.util.replace_in_file(os.path.join(pkgbasedir,
710538908609 kdepim recipe: raise an error if not all version replacements could be done
Bernhard Herzog <bh@intevation.de>
parents: 159
diff changeset
47 versionfile),
710538908609 kdepim recipe: raise an error if not all version replacements could be done
Bernhard Herzog <bh@intevation.de>
parents: 159
diff changeset
48 "\(enterprise35 ([^)]*)\)",
710538908609 kdepim recipe: raise an error if not all version replacements could be done
Bernhard Herzog <bh@intevation.de>
parents: 159
diff changeset
49 versionstring):
710538908609 kdepim recipe: raise an error if not all version replacements could be done
Bernhard Herzog <bh@intevation.de>
parents: 159
diff changeset
50 failed.append(versionfile)
710538908609 kdepim recipe: raise an error if not all version replacements could be done
Bernhard Herzog <bh@intevation.de>
parents: 159
diff changeset
51 if failed:
710538908609 kdepim recipe: raise an error if not all version replacements could be done
Bernhard Herzog <bh@intevation.de>
parents: 159
diff changeset
52 raise RuntimeError("kdepim: failed to update version numbers in %s"
710538908609 kdepim recipe: raise an error if not all version replacements could be done
Bernhard Herzog <bh@intevation.de>
parents: 159
diff changeset
53 % (", ".join(failed),))
4
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
54
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
55
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
56 class RevisionPackager(treepkg.packager.RevisionPackager):
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
57
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
58 source_packager_cls = SourcePackager
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
59
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
60
271
12facd1b5f19 Implement tag detection for the KDEPIM enterprise 3.5 packages. This is
Bernhard Herzog <bh@intevation.de>
parents: 161
diff changeset
61 class PackageTrack(base.BasePackageTrack):
4
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
62
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
63 revision_packager_cls = RevisionPackager
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
64
fee641fec94e Separate the kolab specific parts.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
65 svn_external_subdirs = ["admin"]
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)