Mercurial > treepkg
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 | 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) |