On 2/12/14, 16:20, "João Henrique Ferreira de Freitas" <[email protected]> wrote:
>fragmentconfig() is a new task that makes a diff between the >old and new config files and writes to the fragment.cfg result file. >menuconfig() always copy the original config file, so the user >doesn't need to copy it. Hi João, Generally looks pretty good. Some comments below, mostly about usability and robustness. I do have reservations about the task name, partly because it's long and hard to type.... I'm not coming up with something I like a lot better though.... Maybe.... $ bitbake linux-yocto -c diffcfg Or $ bitbake linux-yocto -c diffconfig I like the latter because it is consistent in naming, <action>config, with menuconfig. > >Signed-off-by: João Henrique Ferreira de Freitas <[email protected]> >--- > meta/classes/cml1.bbclass | 35 +++++++++++++++++++++++++++++++++++ > 1 file changed, 35 insertions(+) > >diff --git a/meta/classes/cml1.bbclass b/meta/classes/cml1.bbclass >index e292ecb..2053361 100644 >--- a/meta/classes/cml1.bbclass >+++ b/meta/classes/cml1.bbclass >@@ -16,8 +16,12 @@ HOST_LOADLIBES = "-lncurses" > TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo" > > python do_menuconfig() { >+ import os >+ import shutil >+ > try: > mtime = os.path.getmtime(".config") >+ shutil.copy(".config", ".config.orig") > except OSError: > mtime = 0 > >@@ -38,3 +42,34 @@ do_menuconfig[depends] += >"ncurses-native:do_populate_sysroot" > do_menuconfig[nostamp] = "1" > addtask menuconfig after do_configure > >+python do_fragmentconfig() { >+ import shutil >+ import subprocess >+ >+ workdir = d.getVar('WORKDIR', True) >+ fragment = workdir + '/fragment.cfg' >+ configorig = '.config.orig' >+ config = '.config' >+ >+ try: >+ md5newconfig = bb.utils.md5_file(configorig) >+ md5config = bb.utils.md5_file(config) >+ isdiff = md5newconfig != md5config >+ except OSError: We should be doing something to indicate failure here. >+ isdiff = 0 >+ >+ if isdiff: >+ bb.note("Dumping config fragment into: '%s'." % fragment) >+ bb.note("new '%s' old '%s'" % (md5newconfig,md5config)) Nit, add space after "," >+ >+ statement = 'diff -Nurp ' + configorig + ' ' + config + '| sed >-n "s/^\+//p" >' + fragment >+ subprocess.call(statement, shell=True) >+ >+ shutil.copy(configorig, config) We should be printing something to make it easy for the user to find the fragment. >+ else: >+ if os.path.exists(fragment): >+ os.unlink(fragment) >+} >+ >+do_fragmentconfig[nostamp] = "1" >+addtask fragmentconfig >-- >1.8.3.2 > > -- Darren Hart Yocto Project - Linux Kernel Intel Open Source Technology Center _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
