annotate recipes/kde/enterprise/branch_3_5/kdepim.py @ 557:9824e409388b

Refactor git branching If a checkout is already available and the branch is changed in the config git command would always fail because it doesn't know the branch to track. Therefore always check if the branch is locally available and if not checkout the remote branch
author Bjoern Ricks <bricks@intevation.de>
date Fri, 02 Sep 2011 08:45:28 +0000
parents 57034905ac4c
children
rev   line source
315
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
1 # Copyright (C) 2007, 2008, 2009 by Intevation GmbH
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
2 # Authors:
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
3 # Bernhard Herzog <bh@intevation.de>
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
4 #
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
5 # This program is free software under the GPL (>=v2)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
6 # Read the file COPYING coming with the software for details.
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
7
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
8 """Packager that builds KDE-PIM debian packages from the enterprise35 branch.
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
9 """
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
10
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
11 import os
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
12 import time
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
13 import re
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
14
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
15 import treepkg.util
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
16 import treepkg.packager
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
17
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
18 import recipes.kde.enterprise.generic as generic
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
19
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
20
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
21 class SourcePackager(generic.SourcePackager):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
22
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
23 def kdepim_version(self, directory):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
24 """Determine the kdepim version.
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
25
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
26 The version is taken from the kdepim.lsm file.
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
27 """
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
28 return treepkg.util.extract_lsm_version(os.path.join(directory,
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
29 "kdepim.lsm"))
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
30
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
31 def determine_package_version(self, directory):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
32 enterprise_version = self.enterprise_version
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
33 kdepimversion = self.kdepim_version(directory)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
34 version_template = \
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
35 "%(kdepimversion)s.enterprise.0.%(enterprise_version)s"
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
36 return version_template % locals()
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
37
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
38 def update_version_numbers(self, pkgbasedir):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
39 """Overrides the inherited method to update version numbers in the code
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
40 """
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
41 versionstring = "(enterprise35 %s)" % self.enterprise_version
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
42 failed = []
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
43 for versionfile in ["kmail/kmversion.h", "kontact/src/main.cpp",
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
44 "korganizer/version.h"]:
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
45 if not treepkg.util.replace_in_file(os.path.join(pkgbasedir,
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
46 versionfile),
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
47 "\(enterprise35 ([^)]*)\)",
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
48 versionstring):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
49 failed.append(versionfile)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
50 if failed:
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
51 raise RuntimeError("kdepim: failed to update version numbers in %s"
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
52 % (", ".join(failed),))
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
53
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
54
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
55 class RevisionPackager(generic.RevisionPackager):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
56
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
57 source_packager_cls = SourcePackager
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
58
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
59
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
60 class PackageTrack(generic.PackageTrack):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
61
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
62 revision_packager_cls = RevisionPackager
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)