Mercurial > treepkg
view recipes/kde/maemo/kde_l10n.py @ 577:7a9841e4958f
don't forget to import shlex
author | Bjoern Ricks <bricks@intevation.de> |
---|---|
date | Sat, 03 Sep 2011 11:48:00 +0000 |
parents | 51c447a6792e |
children |
line wrap: on
line source
# Copyright (C) 2007 - 2010 by Intevation GmbH # Authors: # Bernhard Herzog <bh@intevation.de> # Bjoern Ricks <bjoern.ricks@intevation.de> # # This program is free software under the GPL (>=v2) # Read the file COPYING coming with the software for details. import os import logging import shutil import time import treepkg.util from treepkg.cmdexpand import cmdexpand from treepkg import run import recipes.kde.enterprise.kde_l10n as generic class SourcePackager(generic.SourcePackager): """Creates the debian source package for the l10n files This is a bit more complicated than for other packages. The orig.tar.gz file of the debian source package contains one .tar.bz2 file for every language. Those .tar.bz files are the kde-18n-<lang> files released by the KDE project. For now, we only have the German localization in the enterprise source package, so the orig.tar.gz file will have the following contents: kde-l10n-<version>/ kde-l10n-<version>/kde-l10n-de-<version>.tar.bz2 <version> is the same everywhere. """ createtarball_script = """\ #! /bin/bash set -e #fakeroot apt-get --assume-yes --force-yes install %(builddeps)s # copy the source tree to a directory that's under pbuilder control so # that it gets removed along with the build environment. Otherwise we # end up with a directory containing files that cannot be removed by # treepkg workdir=/tmp/work cp -a %(basedir)s $workdir cd $workdir # only handle the de subdirectory echo de > subdirs # create the CMakeFiles ./scripts/autogen.sh mv de kde-l10n-de-%(version)s tar cjf %(tarball)s kde-l10n-de-%(version)s cd .. rm -rf $workdir """ def __init__(self, *args, **kw): super(SourcePackager, self).__init__(*args, **kw) def create_l10n_de_tarball(self, pkgbasedir, pkgbaseversion): logging.info("Creating kde-l10n-de tarball") de_tarball = os.path.join(self.work_dir, "kde-l10n-de-" + pkgbaseversion + ".tar.bz2") # xutils-dev is needed for the revpath script used by # scripts/autogen.sh script = (self.createtarball_script % dict(builddeps="xutils-dev", tarball=de_tarball, basedir=pkgbasedir, version=pkgbaseversion)) script_name = os.path.join(self.work_dir, "createtarball") treepkg.util.writefile(script_name, script, 0755) treepkg.util.ensure_directory(self.src_dir) treepkg.util.ensure_directory(self.log_dir) # do not run scratchbox #self.track.builder.run_script([script_name], # logfile=os.path.join(self.log_dir, # "tarball_log.txt"), # bindmounts=[self.work_dir]) self.run_script([script_name], logfile=os.path.join(self.log_dir, "tarball_log.txt")) return de_tarball def run_script(self, script_name, logfile): ''' run script outside of scratchbox ''' run.call(cmdexpand("@script", script=script_name), suppress_output=False, logfile=logfile) class RevisionPackager(generic.RevisionPackager): source_packager_cls = SourcePackager class PackageTrack(generic.PackageTrack): revision_packager_cls = RevisionPackager