Mercurial > treepkg
annotate recipes/kde/maemo/kde_l10n.py @ 416:4980f8d5014a treepkg-status
first version of incremental copying debian packages to cachedir
author | Bjoern Ricks <bricks@intevation.de> |
---|---|
date | Mon, 26 Jul 2010 10:12:40 +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 |