Mercurial > treepkg
view recipes/kde/maemo/kde_l10n.py @ 362:7a1385c1207c
packageer for kde_l10n on maemo
author | Bjoern Ricks <bricks@intevation.de> |
---|---|
date | Fri, 21 May 2010 12:45:58 +0000 |
parents | |
children | 51c447a6792e |
line wrap: on
line source
# Copyright (C) 2007, 2008, 2009 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.maemo.generic 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) self.enterprise_version = (time.strftime("%Y%m%d", time.localtime()) + "." + str(self.revision)) self.maemo_version = "%s.%s" % (self.revision, self.parent.pkg_date) def determine_package_version(self, directory): enterprise_version = self.enterprise_version maemo_version = self.maemo_version revision = self.revision rules_revision = self.parent.rules_revision pkg_revision = self.parent.pkg_revision pkg_date = self.parent.pkg_date return self.track.version_template % locals() 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) #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.call(cmdexpand("@script", script=script_name), suppress_output=False, logfile=logfile) def prepare_sources_for_tarball(self, pkgbasedir, pkgbaseversion): de_tarball = self.create_l10n_de_tarball(pkgbasedir, pkgbaseversion) shutil.rmtree(pkgbasedir) os.mkdir(pkgbasedir) os.rename(de_tarball, os.path.join(pkgbasedir, os.path.basename(de_tarball))) class RevisionPackager(generic.RevisionPackager): source_packager_cls = SourcePackager class PackageTrack(generic.PackageTrack): revision_packager_cls = RevisionPackager