annotate recipes/kde/enterprise/branch_3_5/kde_i18n.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 import os
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
9 import logging
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
10 import shutil
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
11
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
12 import treepkg.util
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
13 import treepkg.run as run
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
14 from treepkg.cmdexpand import cmdexpand
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
15
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
16 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
17
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
18
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
19 class SourcePackager(generic.SourcePackager):
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 """Creates the debian source package for the i18n files
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 This is quite complicated. The orig.tar.gz file of the debian
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
24 source package contains one .tar.bz2 file for every language. Those
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
25 .tar.bz files are the kde-18n-<lang> files released by the KDE
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
26 project. For now, we only have the German localization in the
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
27 enterprise source package, so the orig.tar.gz file will have the
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
28 following contents:
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
29
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
30 kde-i18n-<version>/
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
31 kde-i18n-<version>/kde-i18n-de-<version>.tar.bz2
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
32
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
33 <version> is the same everywhere.
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
34
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
35 The kde-i18n-de tarball contains the localization files for the
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
36 entire KDE project, including KDE-PIM. The SVN enterprise branch
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
37 only contains the localizations for KDE-PIM, though, so we have to
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
38 assemble a new .tar.bz2 from an original
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
39 kde-i18n-de-<version>.tar.bz and the new files from the enterprise
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
40 branch.
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
41 """
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
42
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
43 def unpack_orig_tarball(self):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
44 orig_tarball = self.track.orig_tarball
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
45 run.call(cmdexpand("tar xjf $tarball -C $directory",
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
46 tarball=orig_tarball, directory=self.work_dir))
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
47 tarbasename = os.path.basename(orig_tarball)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
48 splitext = os.path.splitext
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
49 return os.path.join(self.work_dir,
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
50 splitext(splitext(tarbasename)[0])[0])
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
51
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
52 def create_i18n_de_tarball(self, pkgbasedir, pkgbaseversion):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
53 """Creates a new kde-i18n-de tarball and returns its filename
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 This is the tarball as it would be released by KDE. It is not
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
56 yet the tarball that will become the .orig.tar.gz for the debian
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
57 package.
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 logging.info("Creating kde-i18n-de tarball")
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
60 untarred_dir = self.unpack_orig_tarball()
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
61 new_de_dir = os.path.join(pkgbasedir, "new-de")
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
62 de_dir = os.path.join(pkgbasedir, "de")
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
63 os.rename(de_dir, new_de_dir)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
64 treepkg.util.copytree(untarred_dir, de_dir)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
65 treepkg.util.copytree(new_de_dir, de_dir)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
66 logging.info("Running scripts/autogen.sh for kde-i18n-de tarball")
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
67 run.call(cmdexpand("/bin/sh scripts/autogen.sh de"), cwd=pkgbasedir,
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
68 suppress_output=True)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
69
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
70 tarballdir = "kde-i18n-de-" + pkgbaseversion
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
71 os.rename(de_dir, os.path.join(pkgbasedir, tarballdir))
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
72
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
73 tarball = os.path.join(os.path.dirname(pkgbasedir),
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
74 tarballdir + ".tar.bz2")
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
75 run.call(cmdexpand("tar cjf $tarball -C $pkgbasedir $tarballdir",
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
76 **locals()))
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
77 logging.info("Created kde-i18n-de tarball")
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
78 return tarball
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
79
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
80 def prepare_sources_for_tarball(self, pkgbasedir, pkgbaseversion):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
81 # We have to reuse the same directory when building the
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
82 # orig.tar.gz. However, we need to preserve the scripts
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
83 # sub-directory because it's not needed for the kde-i18n-de
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
84 # tarball but for the .orig.tar.gz.
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
85 tarball = self.create_i18n_de_tarball(pkgbasedir, pkgbaseversion)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
86 pkg_scripts_dir = os.path.join(pkgbasedir, "scripts")
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
87 tmp_scripts_dir = os.path.join(self.work_dir, "scripts")
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
88 os.rename(pkg_scripts_dir, tmp_scripts_dir)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
89 shutil.rmtree(pkgbasedir)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
90 os.mkdir(pkgbasedir)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
91 os.rename(tmp_scripts_dir, pkg_scripts_dir)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
92 os.rename(tarball, os.path.join(pkgbasedir,
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
93 os.path.basename(tarball)))
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
94
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
95
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
96 class RevisionPackager(generic.RevisionPackager):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
97
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
98 source_packager_cls = SourcePackager
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
99
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
100
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
101 class PackageTrack(generic.PackageTrack):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
102
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
103 revision_packager_cls = RevisionPackager
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
104
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
105 extra_config_desc = generic.PackageTrack.extra_config_desc \
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
106 + ["orig_tarball"]
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
107
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
108 def __init__(self, *args, **kw):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
109 self.orig_tarball = kw.pop("orig_tarball")
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
110 super(PackageTrack, self).__init__(*args, **kw)
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
111
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
112 def init_treepkg(self):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
113 super(PackageTrack, self).init_treepkg()
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
114 if not os.path.exists(self.orig_tarball):
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
115 print ("TODO: The orig_tarball %s still has to be created"
57034905ac4c Copy the enterprise 3.5 packagers to the refactored kde enterprise
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
116 % (self.orig_tarball,))
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)