Mercurial > treepkg
annotate recipes/kde/maemo/kde_l10n.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 | 51c447a6792e |
children |
rev | line source |
---|---|
381
51c447a6792e
merged maemo packager into enterprise packager
Bjoern Ricks <bricks@intevation.de>
parents:
362
diff
changeset
|
1 # Copyright (C) 2007 - 2010 by Intevation GmbH |
362
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
2 # Authors: |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
3 # Bernhard Herzog <bh@intevation.de> |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
4 # Bjoern Ricks <bjoern.ricks@intevation.de> |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
5 # |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
6 # This program is free software under the GPL (>=v2) |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
7 # Read the file COPYING coming with the software for details. |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
8 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
9 import os |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
10 import logging |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
11 import shutil |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
12 import time |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
13 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
14 import treepkg.util |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
15 from treepkg.cmdexpand import cmdexpand |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
16 from treepkg import run |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
17 |
381
51c447a6792e
merged maemo packager into enterprise packager
Bjoern Ricks <bricks@intevation.de>
parents:
362
diff
changeset
|
18 import recipes.kde.enterprise.kde_l10n as generic |
362
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
19 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
20 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
21 class SourcePackager(generic.SourcePackager): |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
22 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
23 """Creates the debian source package for the l10n files |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
24 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
25 This is a bit more complicated than for other packages. The |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
26 orig.tar.gz file of the debian source package contains one .tar.bz2 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
27 file for every language. Those .tar.bz files are the kde-18n-<lang> |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
28 files released by the KDE project. For now, we only have the German |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
29 localization in the enterprise source package, so the orig.tar.gz |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
30 file will have the following contents: |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
31 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
32 kde-l10n-<version>/ |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
33 kde-l10n-<version>/kde-l10n-de-<version>.tar.bz2 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
34 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
35 <version> is the same everywhere. |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
36 """ |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
37 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
38 createtarball_script = """\ |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
39 #! /bin/bash |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
40 set -e |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
41 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
42 #fakeroot apt-get --assume-yes --force-yes install %(builddeps)s |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
43 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
44 # copy the source tree to a directory that's under pbuilder control so |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
45 # that it gets removed along with the build environment. Otherwise we |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
46 # end up with a directory containing files that cannot be removed by |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
47 # treepkg |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
48 workdir=/tmp/work |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
49 cp -a %(basedir)s $workdir |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
50 cd $workdir |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
51 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
52 # only handle the de subdirectory |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
53 echo de > subdirs |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
54 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
55 # create the CMakeFiles |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
56 ./scripts/autogen.sh |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
57 mv de kde-l10n-de-%(version)s |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
58 tar cjf %(tarball)s kde-l10n-de-%(version)s |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
59 cd .. |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
60 rm -rf $workdir |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
61 """ |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
62 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
63 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
64 def __init__(self, *args, **kw): |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
65 super(SourcePackager, self).__init__(*args, **kw) |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
66 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
67 def create_l10n_de_tarball(self, pkgbasedir, pkgbaseversion): |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
68 logging.info("Creating kde-l10n-de tarball") |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
69 de_tarball = os.path.join(self.work_dir, |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
70 "kde-l10n-de-" + pkgbaseversion + ".tar.bz2") |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
71 # xutils-dev is needed for the revpath script used by |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
72 # scripts/autogen.sh |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
73 script = (self.createtarball_script |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
74 % dict(builddeps="xutils-dev", tarball=de_tarball, |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
75 basedir=pkgbasedir, version=pkgbaseversion)) |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
76 script_name = os.path.join(self.work_dir, "createtarball") |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
77 treepkg.util.writefile(script_name, script, 0755) |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
78 treepkg.util.ensure_directory(self.src_dir) |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
79 treepkg.util.ensure_directory(self.log_dir) |
381
51c447a6792e
merged maemo packager into enterprise packager
Bjoern Ricks <bricks@intevation.de>
parents:
362
diff
changeset
|
80 # do not run scratchbox |
362
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
81 #self.track.builder.run_script([script_name], |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
82 # logfile=os.path.join(self.log_dir, |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
83 # "tarball_log.txt"), |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
84 # bindmounts=[self.work_dir]) |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
85 self.run_script([script_name], logfile=os.path.join(self.log_dir, |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
86 "tarball_log.txt")) |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
87 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
88 return de_tarball |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
89 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
90 def run_script(self, script_name, logfile): |
381
51c447a6792e
merged maemo packager into enterprise packager
Bjoern Ricks <bricks@intevation.de>
parents:
362
diff
changeset
|
91 ''' run script outside of scratchbox ''' |
362
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
92 run.call(cmdexpand("@script", script=script_name), |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
93 suppress_output=False, logfile=logfile) |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
94 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
95 class RevisionPackager(generic.RevisionPackager): |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
96 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
97 source_packager_cls = SourcePackager |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
98 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
99 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
100 class PackageTrack(generic.PackageTrack): |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
101 |
7a1385c1207c
packageer for kde_l10n on maemo
Bjoern Ricks <bricks@intevation.de>
parents:
diff
changeset
|
102 revision_packager_cls = RevisionPackager |