From: Hongxu Jia <hongxu.jia@windriver.com>
To: Paul Eggleton <paul.eggleton@linux.intel.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/1] list-packageconfig-flag.py: add a script to list all PACKAGECONFIG's flags
Date: Fri, 2 Aug 2013 17:14:34 +0800 [thread overview]
Message-ID: <51FB787A.2040406@windriver.com> (raw)
In-Reply-To: <2353783.439DWQmp63@helios>
On 08/02/2013 04:24 PM, Paul Eggleton wrote:
> Hi Hongxu,
>
> Great idea! This should be very useful indeed.
>
> Just a few feedback points:
>
> On Thursday 01 August 2013 19:04:05 Hongxu Jia wrote:
>> list-packageconfig-flag.py will walk the METADIR and collect recipes which
>> have PACKAGECONFIG's flags.
>>
>> The default display is to list recipes which have PACKAGECONFIG's flags in
>> METADIR. If option '-f' is used, it will list PACKAGECONFIG's flags and all
>> affected recipes in METADIR
>>
>> EXAMPLE:
>> list-packageconfig-flag.py poky/meta poky/meta-yocto
>> RECIPE NAME PACKAGECONFIG's flag
>> =========================================
>> libarchive_2.8.5.bb acl xattr largefile zlib bz2 xz openssl libxml2 expat
>> strace_4.8.bb libaio acl
>> connman.inc wifi bluetooth 3g tist openvpn vpnc l2tp pptp wispr
>>
>> list-packageconfig-flag.py -f poky/meta poky/meta-yocto
>> PACKAGECONFIG's flag RECIPE NAME
>> ====================================
>> speex gstreamer1.0-plugins-good.inc
>> keyutils rpm_5.4.9.bb
>> gallium-egl mesa.inc
>>
>> [YOCTO #4368]
>>
>> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
>> ---
>> scripts/contrib/list-packageconfig-flag.py | 180
>> +++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+)
>> create mode 100755 scripts/contrib/list-packageconfig-flag.py
> I think the script ought to be called "list-packageconfig-flags" rather than
> "list-packageconfig-flag".
>
Agree, I will rename it.
>> ...
>> +def parse_recipe(recipe):
>> + ''' Parse a recipe to collect PACKAGECONFIG's flags '''
> This should say "collect available PACKAGECONFIG flags". The same applies to
> other messages/comments.
>
Agree
>> + prog = re.compile(r' *PACKAGECONFIG\[(?P<flag>.*)\] *=.*')
>> + try:
>> + r = open(recipe)
>> + except IOError as (errno, strerror):
>> + print >> sys.stderr, 'WARNING: Failed to open recipe', recipe
>> +
>> + flaglist = []
>> + for line in r:
>> + # Strip any comments from the line
>> + line = line.rsplit('#')[0]
>> + m = prog.match(line)
>> + if m:
>> + flaglist.append(m.group('flag'))
>> + r.close()
>> +
>> + return flaglist
>>
>> +def process_recipes(metadir):
>> + ''' Collect recipes which have PACKAGECONFIG's flags in METADIR '''
>> + # recipesdict = {'recipe': ['flag1', 'flag2',...]}
>> + recipesdict = {}
>> + for root,dirs,files in os.walk(metadir):
>> + for name in files:
>> + if name.find(".bb") >= 0 or name.find(".inc") >= 0:
>> + flaglist = parse_recipe(os.path.join(root,name))
>> + if flaglist:
>> + recipesdict[name] = flaglist
>> +
>> + return recipesdict
> So, this is fairly simple and works for most cases; however it would probably
> be a bit more robust if the script used bitbake's own parser to extract the
> flags. The "tinfoil" module should help with this. We can always address this
> in a follow-up patch later on, though - I can certainly show you some examples
> of how to do this or I can do it, whichever you prefer.
Great, this is what I hope to do in the follow-up, I am very pleased to
do the investigate on bitbake parser, very thankful to share some
examples of how to do this with me.
Should this simple patch be accepted? And I will include bitbake parser
in follow-up patch.
Or
Drop this patch and waiting till bitbake parser has been included.
Thanks,
Hongxu
> Cheers,
> Paul
>
next prev parent reply other threads:[~2013-08-02 9:14 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-01 11:04 [PATCH 0/1] list-packageconfig-flag.py: add a script to list all PACKAGECONFIG's flags Hongxu Jia
2013-08-01 11:04 ` [PATCH 1/1] " Hongxu Jia
2013-08-01 16:46 ` Otavio Salvador
2013-08-02 1:50 ` Hongxu Jia
2013-08-02 1:54 ` Otavio Salvador
2013-08-02 8:24 ` Paul Eggleton
2013-08-02 9:14 ` Hongxu Jia [this message]
2013-08-02 10:38 ` Paul Eggleton
2013-08-02 10:03 ` Hongxu Jia
2013-08-02 10:40 ` Paul Eggleton
2013-08-03 3:15 ` Hongxu Jia
-- strict thread matches above, loose matches on Subject: below --
2013-08-02 2:20 [PATCH V2 0/1] " Hongxu Jia
2013-08-02 2:20 ` [PATCH 1/1] " Hongxu Jia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51FB787A.2040406@windriver.com \
--to=hongxu.jia@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=paul.eggleton@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox