[Extras-cauldron-commits] r120 - trunk/buildme/tools

ed_ at garage.maemo.org ed_ at garage.maemo.org
Sun Nov 23 19:12:09 EET 2008


Author: ed_
Date: 2008-11-23 19:12:09 +0200 (Sun, 23 Nov 2008)
New Revision: 120

Modified:
   trunk/buildme/tools/buildme
   trunk/buildme/tools/buildme.conf
   trunk/buildme/tools/buildme.conf.debug
Log:
implemented category check

Modified: trunk/buildme/tools/buildme
===================================================================
--- trunk/buildme/tools/buildme	2008-10-18 17:26:52 UTC (rev 119)
+++ trunk/buildme/tools/buildme	2008-11-23 17:12:09 UTC (rev 120)
@@ -41,6 +41,7 @@
 from minideblib.ChangeFile import ChangeFileException
 from minideblib.AptRepoClient import AptRepoClient
 from minideblib.DpkgVersion import DpkgVersion
+from minideblib DpkgDebPackage import DpkgDebPackage
 
 from buildlib.fsm import FSM
 from buildlib.exceptions import Error
@@ -272,6 +273,7 @@
     # set global variables for use in next steps
     env.params['sbdtargets'] = SbdArch(tnames)
     env.params['destination'] = destination
+    env.params['allowed_categories'] = conf.get(product, 'allowed_categories').split(' ')
 
     return FSM.OK
 
@@ -358,9 +360,12 @@
 def check_sources(env):
     """ Some checks for sources """
 
+    conf = env.params['conf']
+
     # version check
     product = env.params['product']
     logger = env.params['logger']
+    allowed_categories = env.params['allowed_categories']
     dsc = env.params['dsc']
     source = dsc['source']
     version = dsc['version']
@@ -377,6 +382,12 @@
         logger.removeHandler(env.params['uploader_handler'])
         return FSM.NEXT
 
+    # category check
+    if 'section' in dsc:
+        category = dsc['section'].lower()
+        if category.startswith('user/') and category.split('user/')[1] not in allowed_categories:
+            logger.summary("WARNING: package '%d' has non-standard category: '%s'" % (dsc, dsc['section']))
+
     return FSM.OK
 
 def iter_targets(env):
@@ -428,7 +439,7 @@
     logger.debug('run build command')
     (env.params['rcode'], _) = destination.run(dsc.fname)
     
-    return FSM.OK    
+    return FSM.OK
 
 def copy_results(env):
     """ Copy build results from the destination. Organize log files """
@@ -494,6 +505,23 @@
 
     return FSM.OK
 
+def check_binaries(env):
+    logger = env.params['logger']
+    resultdir = env.params['infras']['results']
+    allowed_categories = env.params['allowed_categories']
+
+    # category check
+    for fname in glob.glob(os.path.join(resultdir, '*.deb')):
+        pkg = DpkgDebPackage(fname)
+        # category check
+        if 'section' in pkg.control:
+            category = pkg.control['section'].lower()
+            if category.startswith('user/') and category.split('user/')[1] not in allowed_categories:
+                logger.summary("WARNING: package '%s' has non-standard category: '%s'" % \
+                    (os.path.basename(fname), pkg.control['section']))
+    
+    return FSM.OK
+
 def remove_sources(env):
     """ Send email """
     
@@ -581,10 +609,11 @@
                 iter_fnames   : {FSM.OK : setup_build,    FSM.STOP : None},
                 setup_build   : {FSM.OK : check_sources,  FSM.NEXT : iter_fnames},
                 check_sources : {FSM.OK : iter_targets,   FSM.NEXT : iter_fnames},
-                iter_targets  : {FSM.OK : do_build,       FSM.STOP : remove_sources},
+                iter_targets  : {FSM.OK : do_build,       FSM.STOP : check_binaries},
                 do_build      : {FSM.OK : copy_results},
                 copy_results  : {FSM.OK : check_build},
-                check_build   : {FSM.OK : iter_targets,   FSM.STOP : remove_sources},
+                check_build   : {FSM.OK : iter_targets,   FSM.STOP : check_binaries},
+                check_binaries: {FSM.OK : remove_sources},
                 remove_sources: {FSM.OK : sign_results,   FSM.STOP : footer},
                 sign_results  : {FSM.OK : copy_to_queue},
                 copy_to_queue : {FSM.OK : footer},

Modified: trunk/buildme/tools/buildme.conf
===================================================================
--- trunk/buildme/tools/buildme.conf	2008-10-18 17:26:52 UTC (rev 119)
+++ trunk/buildme/tools/buildme.conf	2008-11-23 17:12:09 UTC (rev 120)
@@ -12,6 +12,7 @@
 upload_timeout = 14400
 result_url = https://garage.maemo.org/builder/%(product)s/%(build_dir)s/
 src_repo = deb-src file:///var/www/extras-devel/ %(product)s free non-free
+allowed_categories = desktop development education games graphics multimedia navigation network office science social system utilities
 
 [chinook]
 product = chinook

Modified: trunk/buildme/tools/buildme.conf.debug
===================================================================
--- trunk/buildme/tools/buildme.conf.debug	2008-10-18 17:26:52 UTC (rev 119)
+++ trunk/buildme/tools/buildme.conf.debug	2008-11-23 17:12:09 UTC (rev 120)
@@ -12,6 +12,7 @@
 upload_timeout = 14400
 result_url = https://garage.maemo.org/builder/%(product)s/%(build_dir)s/
 src_repo = deb-src file:///var/www/extras-devel/ %(product)s free non-free
+allowed_categories = desktop development education games graphics multimedia navigation network office science social system utilities
 
 [chinook]
 product = chinook



More information about the Extras-cauldron-commits mailing list