[jhbuild/jhdebuild: 519/536] [jhdebuild] Teach it about perl packages



commit 568068aabaad92cc8656f305c6997963e035ad8e
Author: Frederic Peters <fpeters 0d be>
Date:   Sun May 17 13:50:38 2009 +0100

    [jhdebuild] Teach it about perl packages
---
 jhbuild/modtypes/perl.py |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/jhbuild/modtypes/perl.py b/jhbuild/modtypes/perl.py
index fd0f9ae..f5b2658 100644
--- a/jhbuild/modtypes/perl.py
+++ b/jhbuild/modtypes/perl.py
@@ -59,6 +59,38 @@ class PerlModule(Package):
     do_start.next_state = STATE_CHECKOUT
     do_start.error_states = []
 
+    def do_deb_start(self, buildscript):
+        buildscript.set_action('Starting building', self)
+        buildscript.execute(['sudo', 'apt-get', 'update'])
+        ext_dep = buildscript.config.external_dependencies.get(self.name)
+        if not ext_dep:
+            raise BuildStateError('No external dep for %s' % self.name)
+
+        #print buildscript.config.external_dependencies
+
+        available = self.get_available_debian_version(buildscript).split('-')[0]
+        if ':' in available: # remove epoch
+            available = available.split(':')[-1]
+
+        def lax_int(s):
+            try:
+                return int(s)
+            except ValueError:
+                return -1
+
+        deb_available = [lax_int(x) for x in available.split('.')]
+        ext_minimum = [lax_int(x) for x in ext_dep.get('minimum').split('.')]
+        ext_recommended = [lax_int(x) for x in ext_dep.get('recommended').split('.')]
+
+        if deb_available >= ext_recommended:
+            return (self.STATE_DONE, None, None)
+
+        if deb_available >= ext_minimum:
+            # XXX: warn it would be better to have a newer version
+            raise SkipToState(self.STATE_DONE)
+    do_deb_start.next_state = STATE_CHECKOUT
+    do_deb_start.error_states = []
+
     def do_checkout(self, buildscript):
         self.checkout(buildscript)
     do_checkout.next_state = STATE_BUILD



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]