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
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)