changeset 216:89ca9ba349e5

New module with code common to almost all kdepim enterprise 4 recipes
author Bernhard Herzog <bh@intevation.de>
date Tue, 06 Jan 2009 16:01:11 +0000
parents c14c8ca06ddf
children c791866853c9
files recipes/kde_enterprise_4/base.py
diffstat 1 files changed, 74 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/recipes/kde_enterprise_4/base.py	Tue Jan 06 16:01:11 2009 +0000
@@ -0,0 +1,74 @@
+# Copyright (C) 2007, 2008, 2009 by Intevation GmbH
+# Authors:
+# Bernhard Herzog <bh@intevation.de>
+#
+# This program is free software under the GPL (>=v2)
+# Read the file COPYING coming with the software for details.
+
+"""Base classes for all kdepim packagers"""
+
+import os
+import time
+import inspect
+
+import treepkg.packager
+
+
+class BaseSourcePackager(treepkg.packager.SourcePackager):
+
+    def __init__(self, *args, **kw):
+        super(BaseSourcePackager, self).__init__(*args, **kw)
+        self.enterprise_version = (time.strftime("%Y%m%d", time.localtime()) \
+                                   + "." + str(self.revision))
+
+    def determine_package_version(self, directory):
+        enterprise_version = self.enterprise_version
+        return self.track.version_template % locals()
+
+    def do_package(self):
+        pkgbaseversion, pkgbasedir = self.export_sources()
+        self.update_version_numbers(pkgbasedir)
+
+        pkgbasename = self.pkg_basename + "_" + pkgbaseversion
+        origtargz = os.path.join(self.work_dir,
+                                 pkgbasename + ".orig.tar.gz")
+        self.create_tarball(origtargz, self.work_dir,
+                            os.path.basename(pkgbasedir))
+
+        changemsg = ("Update to SVN enterprise4 branch rev. %d"
+                     % (self.revision,))
+        self.copy_debian_directory(pkgbasedir, pkgbaseversion,
+                                   changemsg)
+
+        self.create_source_package(pkgbasedir, origtargz)
+        self.move_source_package(pkgbasename)
+
+
+class BasePackageTrack(treepkg.packager.PackageTrack):
+
+    extra_config_desc = ["version_template"]
+
+    def __init__(self, *args, **kw):
+        self.version_template = kw.pop("version_template")
+        super(BasePackageTrack, self).__init__(*args, **kw)
+
+
+def define_kdepim_packager(basename=None, external_subdirs=None):
+
+    caller_globals = inspect.currentframe().f_back.f_globals
+
+    SourcePackager = caller_globals.get("SourcePackager")
+    if SourcePackager is None:
+        class SourcePackager(BaseSourcePackager):
+            pkg_basename = basename
+
+    class RevisionPackager(treepkg.packager.RevisionPackager):
+        source_packager_cls = SourcePackager
+
+    class PackageTrack(BasePackageTrack):
+        revision_packager_cls = RevisionPackager
+
+        if external_subdirs is not None:
+            svn_external_subdirs = external_subdirs
+
+    caller_globals["PackageTrack"] = PackageTrack
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)