annotate recipes/kde_enterprise_4/kde_l10n.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 026dd7286431
children 32b09a9b92ba
rev   line source
225
93301afac8d4 Adapt enterprise_4 kde_l10n recipe to treepkg changes
Bernhard Herzog <bh@intevation.de>
parents: 211
diff changeset
1 # Copyright (C) 2007, 2008, 2009 by Intevation GmbH
211
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
2 # Authors:
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
3 # Bernhard Herzog <bh@intevation.de>
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
4 #
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
5 # This program is free software under the GPL (>=v2)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
6 # Read the file COPYING coming with the software for details.
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
7
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
8 import os
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
9 import logging
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
10 import shutil
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
11 import time
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
12
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
13 import treepkg.packager
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
14 import treepkg.util
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
15 import treepkg.subversion as subversion
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
16
272
026dd7286431 Remove unused imports
Bernhard Herzog <bh@intevation.de>
parents: 270
diff changeset
17 from base import BasePackageTrack
270
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
18
211
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
19
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
20 class SubversionSubset(object):
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
21
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
22 """Manage a subversion working copy that contains a subset of a repository
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
23
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
24 The SVN repository for the enterprise 4 l10n sources contains all
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
25 languages. Only a small subset of those languages are actually
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
26 maintained, though. This class provides a way to manage a working
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
27 copy that contains only the part that actually need to be packaged.
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
28 """
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
29
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
30 def __init__(self, baseurl, localdir, subdirectories):
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
31 self.baseurl = baseurl
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
32 self.localdir = localdir
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
33 self.subdirectories = subdirectories
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
34
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
35 def update_or_checkout(self, revision=None):
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
36 for desc in self.subdirectories:
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
37 if len(desc) == 2:
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
38 subdir, recurse = desc
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
39 else:
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
40 subdir = desc[0]
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
41 recurse = True
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
42 self.update_or_checkout_subdir(subdir, revision, recurse=recurse)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
43
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
44 def update_or_checkout_subdir(self, subdir, revision, recurse):
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
45 localdir = os.path.join(self.localdir, subdir)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
46 svn_url = self.baseurl + subdir
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
47 if os.path.exists(localdir):
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
48 logging.info("Updating the working copy in %r", localdir)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
49 subversion.update(localdir, revision=revision, recurse=recurse)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
50 else:
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
51 logging.info("The working copy in %r doesn't exist yet."
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
52 " Checking out from %r", localdir, svn_url)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
53 subversion.checkout(svn_url, localdir, revision=revision,
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
54 recurse=recurse)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
55
270
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
56 def export(self, destdir, url=None):
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
57 if url is not None:
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
58 baseurl = url
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
59 else:
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
60 baseurl = self.localdir
211
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
61 for desc in self.subdirectories:
270
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
62 if len(desc) == 2:
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
63 subdir, recurse = desc
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
64 else:
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
65 subdir = desc[0]
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
66 recurse = True
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
67 subversion.export(os.path.join(baseurl, subdir),
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
68 os.path.join(destdir, subdir),
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
69 recurse=recurse)
211
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
70
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
71 def last_changed_revision(self):
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
72 return max([subversion.last_changed_revision(os.path.join(self.localdir,
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
73 desc[0]))
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
74 for desc in self.subdirectories])
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
75
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
76
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
77
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
78 class SourcePackager(treepkg.packager.SourcePackager):
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
79
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
80 """Creates the debian source package for the l10n files
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
81
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
82 This is a bit more complicated than for other packages. The
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
83 orig.tar.gz file of the debian source package contains one .tar.bz2
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
84 file for every language. Those .tar.bz files are the kde-18n-<lang>
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
85 files released by the KDE project. For now, we only have the German
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
86 localization in the enterprise source package, so the orig.tar.gz
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
87 file will have the following contents:
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
88
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
89 kde-l10n-<version>/
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
90 kde-l10n-<version>/kde-l10n-de-<version>.tar.bz2
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
91
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
92 <version> is the same everywhere.
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
93 """
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
94
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
95 pkg_basename = "kde-l10n"
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
96
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
97 createtarball_script = """\
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
98 #! /bin/bash
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
99 set -e
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
100
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
101 apt-get --assume-yes --force-yes install %(builddeps)s
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
102
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
103 # copy the source tree to a directory that's under pbuilder control so
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
104 # that it gets removed along with the build environment. Otherwise we
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
105 # end up with a directory containing files that cannot be removed by
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
106 # treepkg
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
107 workdir=/tmp/work
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
108 cp -a %(basedir)s $workdir
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
109 cd $workdir
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
110
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
111 # only handle the de subdirectory
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
112 echo de > subdirs
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
113
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
114 # create the CMakeFiles
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
115 ./scripts/autogen.sh
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
116 mv de kde-l10n-de-%(version)s
226
766df0172f0b Adapt enterprise_4 kde_l10n recipe to changes in debian lenny
Bernhard Herzog <bh@intevation.de>
parents: 225
diff changeset
117 tar cjf %(tarball)s kde-l10n-de-%(version)s
211
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
118 """
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
119
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
120
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
121 def __init__(self, *args, **kw):
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
122 super(SourcePackager, self).__init__(*args, **kw)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
123 self.enterprise_version = (time.strftime("%Y%m%d", time.localtime())
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
124 + "." + str(self.revision))
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
125
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
126 def determine_package_version(self, directory):
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
127 enterprise_version = self.enterprise_version
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
128 return self.track.version_template % locals()
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
129
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
130 def create_l10n_de_tarball(self, pkgbaseversion, pkgbasedir):
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
131 logging.info("Creating kde-l10n-de tarball")
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
132 de_tarball = os.path.join(self.work_dir,
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
133 "kde-l10n-de-" + pkgbaseversion + ".tar.bz2")
226
766df0172f0b Adapt enterprise_4 kde_l10n recipe to changes in debian lenny
Bernhard Herzog <bh@intevation.de>
parents: 225
diff changeset
134 # xutils-dev is needed for the revpath script used by
766df0172f0b Adapt enterprise_4 kde_l10n recipe to changes in debian lenny
Bernhard Herzog <bh@intevation.de>
parents: 225
diff changeset
135 # scripts/autogen.sh
211
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
136 script = (self.createtarball_script
226
766df0172f0b Adapt enterprise_4 kde_l10n recipe to changes in debian lenny
Bernhard Herzog <bh@intevation.de>
parents: 225
diff changeset
137 % dict(builddeps="xutils-dev", tarball=de_tarball,
211
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
138 basedir=pkgbasedir, version=pkgbaseversion))
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
139 script_name = os.path.join(self.work_dir, "createtarball")
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
140 treepkg.util.writefile(script_name, script, 0755)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
141 treepkg.util.ensure_directory(self.src_dir)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
142 treepkg.util.ensure_directory(self.log_dir)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
143 self.track.builder.run_script([script_name],
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
144 logfile=os.path.join(self.log_dir,
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
145 "tarball_log.txt"),
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
146 bindmounts=[self.work_dir])
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
147 return de_tarball
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
148
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
149 def do_package(self):
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
150 pkgbaseversion, pkgbasedir = self.export_sources()
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
151 de_tarball = self.create_l10n_de_tarball(pkgbaseversion, pkgbasedir)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
152 shutil.rmtree(pkgbasedir)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
153
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
154 os.mkdir(pkgbasedir)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
155 pkgbasename = self.pkg_basename + "_" + pkgbaseversion
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
156 origtargz = os.path.join(self.work_dir,
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
157 pkgbasename + ".orig.tar.gz")
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
158 os.rename(de_tarball,
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
159 os.path.join(pkgbasedir, os.path.basename(de_tarball)))
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
160 self.create_tarball(origtargz, self.work_dir,
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
161 os.path.basename(pkgbasedir))
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
162
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
163 changemsg = ("Update to SVN enterprise4 branch rev. %d"
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
164 % (self.revision,))
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
165 self.copy_debian_directory(pkgbasedir, pkgbaseversion, changemsg)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
166
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
167 self.create_source_package(pkgbasedir, origtargz)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
168 self.move_source_package(pkgbasename)
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
169
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
170
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
171 class RevisionPackager(treepkg.packager.RevisionPackager):
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
172
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
173 source_packager_cls = SourcePackager
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
174
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
175
270
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
176 class PackageTrack(BasePackageTrack):
211
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
177
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
178 revision_packager_cls = RevisionPackager
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
179
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
180 def __init__(self, *args, **kw):
225
93301afac8d4 Adapt enterprise_4 kde_l10n recipe to treepkg changes
Bernhard Herzog <bh@intevation.de>
parents: 211
diff changeset
181 svn_url = kw["svn_url"]
211
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
182 super(PackageTrack, self).__init__(*args, **kw)
225
93301afac8d4 Adapt enterprise_4 kde_l10n recipe to treepkg changes
Bernhard Herzog <bh@intevation.de>
parents: 211
diff changeset
183 self.working_copy = SubversionSubset(svn_url, self.checkout_dir,
211
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
184 subdirectories= [("", False),
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
185 ("de",),
56aa89c588a1 Add more KDEPIM Enterprise 4 recipes: l10n, kdebase_runtime, kdebase_workspace
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
186 ("scripts",)])
270
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
187
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
188 def export_tag(self, tag_url, to_dir):
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
189 logging.info("Exporting sources from %s to %r",
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
190 tag_url, to_dir)
e5e23c3acaea Add tag detection to the enterprise4 kde-l10n packager by using
Bernhard Herzog <bh@intevation.de>
parents: 226
diff changeset
191 self.working_copy.export(to_dir, url=tag_url)
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)