support architecture and repo substitution
authorAnas Nashif <anas.nashif@intel.com>
Sun, 27 Jun 2010 02:47:45 +0000 (22:47 -0400)
committerAnas Nashif <anas.nashif@intel.com>
Sun, 27 Jun 2010 02:47:45 +0000 (22:47 -0400)
configurations.yaml
kickstart.py [deleted file]
kickstart.tmpl
kickstarter.py
repos.yaml

index 2bbdd16..9404e94 100644 (file)
@@ -23,8 +23,6 @@ CORE:
         - cleanup
     Repos:
         - meego-core-1.0
-    Kernel: kernel-netbook
-
 NETBOOK:
     PartSize: 1900
     BootloaderAppend: "quiet"
@@ -49,21 +47,28 @@ NETBOOK:
         - gdb
         - flash-plugin
         - adobe-release
+    Architecture: ia32
 Configurations:
     -   Name: MeeGo Core 1.0 
         Active: True
         Baseline: 1.0
         Platform: CORE
-        FileName: core
+        FileName: core-ia32
+        Kernel: kernel-netbook
+        Architecture: ia32
+    -   Name: MeeGo Core 1.0 N900
+        Active: True
+        Baseline: 1.0
+        Platform: CORE
+        FileName: core-armv7l-n900
+        Kernel: kernel-n900
         Desktop:
+        Architecture: armv7l
     -   Name: MeeGo Netbook/Nettop 1.0 
         Active: True
         Baseline: 1.0
         Platform: NETBOOK
         Desktop: meego
-        FileName: netbook
+        FileName: netbook-ia32-default
         Groups:
             - MeeGo Netbook Desktop
-        Repos:
-            - meego-core-1.0
-            - meego-netbook-1.0
diff --git a/kickstart.py b/kickstart.py
deleted file mode 100644 (file)
index a9af541..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-#!/usr/bin/env python
-
-
-
-
-##################################################
-## DEPENDENCIES
-import sys
-import os
-import os.path
-import __builtin__
-from os.path import getmtime, exists
-import time
-import types
-from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion
-from Cheetah.Version import MinCompatibleVersionTuple as RequiredCheetahVersionTuple
-from Cheetah.Template import Template
-from Cheetah.DummyTransaction import *
-from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valueFromFrameOrSearchList
-from Cheetah.CacheRegion import CacheRegion
-import Cheetah.Filters as Filters
-import Cheetah.ErrorCatchers as ErrorCatchers
-
-##################################################
-## MODULE CONSTANTS
-VFFSL=valueFromFrameOrSearchList
-VFSL=valueFromSearchList
-VFN=valueForName
-currentTime=time.time
-__CHEETAH_version__ = '2.2.2'
-__CHEETAH_versionTuple__ = (2, 2, 2, 'final', 0)
-__CHEETAH_genTime__ = 1273202421.2641661
-__CHEETAH_genTimestamp__ = 'Thu May  6 23:20:21 2010'
-__CHEETAH_src__ = 'kickstart.tmpl'
-__CHEETAH_srcLastModified__ = 'Thu May  6 22:51:32 2010'
-__CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
-
-if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
-    raise AssertionError(
-      'This template was compiled with Cheetah version'
-      ' %s. Templates compiled before version %s must be recompiled.'%(
-         __CHEETAH_version__, RequiredCheetahVersion))
-
-##################################################
-## CLASSES
-
-class kickstart(Template):
-
-    ##################################################
-    ## CHEETAH GENERATED METHODS
-
-
-    def __init__(self, *args, **KWs):
-
-        super(kickstart, self).__init__(*args, **KWs)
-        if not self._CHEETAH__instanceInitialized:
-            cheetahKWArgs = {}
-            allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
-            for k,v in KWs.items():
-                if k in allowedKWs: cheetahKWArgs[k] = v
-            self._initCheetahInstance(**cheetahKWArgs)
-        
-
-    def respond(self, trans=None):
-
-
-
-        ## CHEETAH: main method generated for this template
-        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
-            trans = self.transaction # is None unless self.awake() was called
-        if not trans:
-            trans = DummyTransaction()
-            _dummyTrans = True
-        else: _dummyTrans = False
-        write = trans.response().write
-        SL = self._CHEETAH__searchList
-        _filter = self._CHEETAH__currentFilter
-        
-        ########################################
-        ## START - generated method body
-        
-        write(u'''# 
-# Do not Edit! Generated by:
-# kickstarter.py
-# 
-
-lang ''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.Language",True) # u'${metadata.Language}' on line 6, col 6
-        if _v is not None: write(_filter(_v, rawExpr=u'${metadata.Language}')) # from line 6, col 6.
-        write(u'''
-keyboard ''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.Keyboard",True) # u'${metadata.Keyboard}' on line 7, col 10
-        if _v is not None: write(_filter(_v, rawExpr=u'${metadata.Keyboard}')) # from line 7, col 10.
-        write(u'''
-timezone --utc ''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.Timezone",True) # u'${metadata.Timezone}' on line 8, col 16
-        if _v is not None: write(_filter(_v, rawExpr=u'${metadata.Timezone}')) # from line 8, col 16.
-        write(u'''
-auth --useshadow --enablemd5
-''')
-        if VFSL([locals()]+SL+[globals(), __builtin__],"metadata.Part",True) == "": # generated from line 10, col 1
-            write(u'''part / --size ''')
-            _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.PartSize",True) # u'${metadata.PartSize}' on line 11, col 15
-            if _v is not None: write(_filter(_v, rawExpr=u'${metadata.PartSize}')) # from line 11, col 15.
-            write(u''' --ondisk sda --fstype=ext3
-''')
-        else: # generated from line 12, col 1
-            _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.Part",True) # u'${metadata.Part}' on line 13, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${metadata.Part}')) # from line 13, col 1.
-            write(u'''
-''')
-        write(u'''rootpw ''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.RootPass",True) # u'${metadata.RootPass}' on line 15, col 8
-        if _v is not None: write(_filter(_v, rawExpr=u'${metadata.RootPass}')) # from line 15, col 8.
-        write(u''' 
-xconfig --startxonboot
-bootloader --timeout=''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.BootloaderTimeout",True) # u'${metadata.BootloaderTimeout}' on line 17, col 22
-        if _v is not None: write(_filter(_v, rawExpr=u'${metadata.BootloaderTimeout}')) # from line 17, col 22.
-        write(u''' --append="''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.BootloaderAppend",True) # u'${metadata.BootloaderAppend}' on line 17, col 62
-        if _v is not None: write(_filter(_v, rawExpr=u'${metadata.BootloaderAppend}')) # from line 17, col 62.
-        write(u'''"
-desktop --autologinuser=''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.DefaultUser",True) # u'${metadata.DefaultUser}' on line 18, col 25
-        if _v is not None: write(_filter(_v, rawExpr=u'${metadata.DefaultUser}')) # from line 18, col 25.
-        write(u'''  --defaultdesktop=''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.Desktop",True) # u'${metadata.Desktop}' on line 18, col 67
-        if _v is not None: write(_filter(_v, rawExpr=u'${metadata.Desktop}')) # from line 18, col 67.
-        write(u''' 
-user --name ''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.DefaultUser",True) # u'${metadata.DefaultUser}' on line 19, col 13
-        if _v is not None: write(_filter(_v, rawExpr=u'${metadata.DefaultUser}')) # from line 19, col 13.
-        write(u'''  --groups audio,video --password ''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.DefaultUserPass",True) # u'${metadata.DefaultUserPass}' on line 19, col 70
-        if _v is not None: write(_filter(_v, rawExpr=u'${metadata.DefaultUserPass}')) # from line 19, col 70.
-        write(u''' 
-
-''')
-        save = ""
-        if VFSL([locals()]+SL+[globals(), __builtin__],"metadata.SaveRepos",True): # generated from line 22, col 1
-            save = "--save"
-        for r in VFSL([locals()]+SL+[globals(), __builtin__],"metadata.Repos",True): # generated from line 25, col 1
-            for rr in VFSL([locals()]+SL+[globals(), __builtin__],"repos",True): # generated from line 26, col 1
-                if VFSL([locals()]+SL+[globals(), __builtin__],"rr.Name",True) == VFSL([locals()]+SL+[globals(), __builtin__],"r",True): # generated from line 27, col 1
-                    write(u'''repo   --name=''')
-                    _v = VFSL([locals()]+SL+[globals(), __builtin__],"r",True) # u'${r}' on line 28, col 15
-                    if _v is not None: write(_filter(_v, rawExpr=u'${r}')) # from line 28, col 15.
-                    write(u''' --baseurl=''')
-                    _v = VFSL([locals()]+SL+[globals(), __builtin__],"rr.Url",True) # u'${rr.Url}' on line 28, col 30
-                    if _v is not None: write(_filter(_v, rawExpr=u'${rr.Url}')) # from line 28, col 30.
-                    write(u''' ''')
-                    _v = VFSL([locals()]+SL+[globals(), __builtin__],"save",True) # u'${save}' on line 28, col 40
-                    if _v is not None: write(_filter(_v, rawExpr=u'${save}')) # from line 28, col 40.
-                    write(u'''
-''')
-        write(u'''
-
-''')
-        if VFSL([locals()]+SL+[globals(), __builtin__],"metadata.PackageArgs",True) != "": # generated from line 34, col 1
-            write(u'''%packages ''')
-            _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.PackageArgs",True) # u'${metadata.PackageArgs}' on line 35, col 11
-            if _v is not None: write(_filter(_v, rawExpr=u'${metadata.PackageArgs}')) # from line 35, col 11.
-            write(u'''
-''')
-        else: # generated from line 36, col 1
-            write(u'''%packages
-''')
-        write(u'''
-''')
-        for g in VFSL([locals()]+SL+[globals(), __builtin__],"metadata.Groups",True): # generated from line 40, col 1
-            write(u'''@''')
-            _v = VFSL([locals()]+SL+[globals(), __builtin__],"g",True) # u'${g}' on line 41, col 2
-            if _v is not None: write(_filter(_v, rawExpr=u'${g}')) # from line 41, col 2.
-            write(u'''
-''')
-        write(u'''
-
-''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.Kernel",True) # u'$metadata.Kernel' on line 45, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'$metadata.Kernel')) # from line 45, col 1.
-        write(u'''
-
-''')
-        for e in VFSL([locals()]+SL+[globals(), __builtin__],"metadata.ExtraPackages",True): # generated from line 47, col 1
-            _v = VFSL([locals()]+SL+[globals(), __builtin__],"e",True) # u'${e}' on line 48, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${e}')) # from line 48, col 1.
-            write(u'''
-''')
-        for e in VFSL([locals()]+SL+[globals(), __builtin__],"metadata.RemovePackages",True): # generated from line 50, col 1
-            write(u'''-''')
-            _v = VFSL([locals()]+SL+[globals(), __builtin__],"e",True) # u'${e}' on line 51, col 2
-            if _v is not None: write(_filter(_v, rawExpr=u'${e}')) # from line 51, col 2.
-            write(u'''
-''')
-        write(u'''%end
-
-%post
-''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.Post",True) # u'${metadata.Post}' on line 56, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${metadata.Post}')) # from line 56, col 1.
-        write(u'''
-%end
-
-%post --nochroot
-''')
-        _v = VFSL([locals()]+SL+[globals(), __builtin__],"metadata.NoChroot",True) # u'${metadata.NoChroot}' on line 60, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${metadata.NoChroot}')) # from line 60, col 1.
-        write(u'''
-%end
-''')
-        
-        ########################################
-        ## END - generated method body
-        
-        return _dummyTrans and trans.response().getvalue() or ""
-        
-    ##################################################
-    ## CHEETAH GENERATED ATTRIBUTES
-
-
-    _CHEETAH__instanceInitialized = False
-
-    _CHEETAH_version = __CHEETAH_version__
-
-    _CHEETAH_versionTuple = __CHEETAH_versionTuple__
-
-    _CHEETAH_genTime = __CHEETAH_genTime__
-
-    _CHEETAH_genTimestamp = __CHEETAH_genTimestamp__
-
-    _CHEETAH_src = __CHEETAH_src__
-
-    _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
-
-    _mainCheetahMethod_for_kickstart= 'respond'
-
-## END CLASS DEFINITION
-
-if not hasattr(kickstart, '_initCheetahAttributes'):
-    templateAPIClass = getattr(kickstart, '_CHEETAH_templateClass', Template)
-    templateAPIClass._addCheetahPlumbingCodeToClass(kickstart)
-
-
-# CHEETAH was developed by Tavis Rudd and Mike Orr
-# with code, advice and input from many other volunteers.
-# For more information visit http://www.CheetahTemplate.org/
-
-##################################################
-## if run from command line:
-if __name__ == '__main__':
-    from Cheetah.TemplateCmdLineIface import CmdLineIface
-    CmdLineIface(templateObj=kickstart()).run()
-
-
index 8a6fed3..12a4cfc 100644 (file)
@@ -6,7 +6,6 @@
 lang ${metadata.Language}
 keyboard ${metadata.Keyboard}
 timezone --utc ${metadata.Timezone}
-auth --useshadow --enablemd5
 #if $metadata.Part == ""
 part / --size ${metadata.PartSize} --ondisk sda --fstype=ext3
 #else
@@ -15,7 +14,9 @@ ${metadata.Part}
 rootpw ${metadata.RootPass} 
 xconfig --startxonboot
 bootloader --timeout=${metadata.BootloaderTimeout} --append="${metadata.BootloaderAppend}"
+#if $metadata.has_key("Desktop")
 desktop --autologinuser=${metadata.DefaultUser}  --defaultdesktop=${metadata.Desktop} 
+#end if
 user --name ${metadata.DefaultUser}  --groups audio,video --password ${metadata.DefaultUserPass} 
 
 #set $save = ""
index b1cad01..92890c5 100644 (file)
@@ -41,7 +41,7 @@ class KSWriter():
             if plat.has_key(l) and plat[l]:
                 full = full + plat[l]
             if img.has_key(l) and img[l]:
-                full = full + img[l]                    
+                fll = full + img[l]                    
             lvald[l] = set(full)
             #print full
         conf.update(lvald)
@@ -71,8 +71,20 @@ class KSWriter():
         conf['NoChroot'] = nochrootscript
         return conf
 
-    def process_files(self,  meta,  r):
-        nameSpace = {'metadata': meta,  'repos': r}
+    def process_files(self,  meta,  repos):
+        new_repos = []
+        #print repos
+        #print meta
+        if meta.has_key("Architecture") and  meta['Architecture']:
+            for repo in repos:
+                r = {}
+                r['Name'] = repo['Name']
+                r['Url'] = repo['Url'].replace("@ARCH@", meta['Architecture'])
+                new_repos.append(r)
+        else:
+            new_repos = repos
+                
+        nameSpace = {'metadata': meta,  'repos': new_repos}
         t = kickstart(searchList=[nameSpace])
         a = str(t)
         if meta.has_key('FileName') and meta['FileName']:
index f73b0ed..1346242 100644 (file)
@@ -1,9 +1,9 @@
 Repositories:
     -   Name: meego-core-1.0
-        Url:  http://repo.meego.com/MeeGo/releases/1.0/core/repos/ia32/packages
+        Url:  http://repo.meego.com/MeeGo/releases/1.0/core/repos/@ARCH@/packages
     -   Name: meego-extra-1.0
-        Url:  http://repo.meego.com/MeeGo/releases/1.0/extra/repos/ia32/packages
+        Url:  http://repo.meego.com/MeeGo/releases/1.0/extra/repos/@ARCH@/packages
     -   Name: meego-netbook-1.0
-        Url:  http://repo.meego.com/MeeGo/releases/1.0/netbook/repos/ia32/packages
+        Url:  http://repo.meego.com/MeeGo/releases/1.0/netbook/repos/@ARCH@/packages
     -   Name: adobe
         Url:  http://linuxdownload.adobe.com/linux/i386/