From: Michal Marek <mmarek@suse.cz>
To: Randy Dunlap <rdunlap@xenotime.net>
Cc: Dick Streefland <dick@streefland.net>, linux-kbuild@vger.kernel.org
Subject: Re: scripts/extract-ikconfig: add support for bzip2, lzma and lzo
Date: Thu, 28 Oct 2010 00:23:44 +0200 [thread overview]
Message-ID: <4CC8A670.3070800@suse.cz> (raw)
In-Reply-To: <20101022151654.cafb7655.rdunlap@xenotime.net>
On 23.10.2010 00:16, Randy Dunlap wrote:
> On Sat, 23 Oct 2010 00:02:44 +0200 Dick Streefland wrote:
>
>> Add support for kernels compressed with bzip2, lzma or lzo to the
>> extract-ikconfig script.
>
> Fixes kernel bugzilla #19852:
> https://bugzilla.kernel.org/show_bug.cgi?id=19852
Applied to kbuild-2.6.git#misc, thanks.
Michal
>
>
>> Signed-off-by: Dick Streefland <dick@streefland.net>
>> Tested-by: Justin <jlec@gentoo.org>
>> ---
>>
>> scripts/extract-ikconfig | 41 +++++++++++++++++++++++++++--------------
>> 1 files changed, 27 insertions(+), 14 deletions(-)
>>
>> diff --git a/scripts/extract-ikconfig b/scripts/extract-ikconfig
>> index 37f30d3..1512c0a 100755
>> --- a/scripts/extract-ikconfig
>> +++ b/scripts/extract-ikconfig
>> @@ -7,12 +7,10 @@
>> # The obscure use of the "tr" filter is to work around older versions of
>> # "grep" that report the byte offset of the line instead of the pattern.
>> #
>> -# (c) 2009, Dick Streefland <dick@streefland.net>
>> +# (c) 2009,2010 Dick Streefland <dick@streefland.net>
>> # Licensed under the terms of the GNU General Public License.
>> # ----------------------------------------------------------------------
>>
>> -gz1='\037\213\010'
>> -gz2='01'
>> cf1='IKCFG_ST\037\213\010'
>> cf2='0123456789'
>>
>> @@ -21,11 +19,25 @@ dump_config()
>> if pos=`tr "$cf1\n$cf2" "\n$cf2=" < "$1" | grep -abo "^$cf2"`
>> then
>> pos=${pos%%:*}
>> - tail -c+$(($pos+8)) "$1" | zcat -q
>> - exit 0
>> + tail -c+$(($pos+8)) "$1" | zcat > $tmp1 2> /dev/null
>> + if [ $? != 1 ]
>> + then # exit status must be 0 or 2 (trailing garbage warning)
>> + cat $tmp1
>> + exit 0
>> + fi
>> fi
>> }
>>
>> +try_decompress()
>> +{
>> + for pos in `tr "$1\n$2" "\n$2=" < "$img" | grep -abo "^$2"`
>> + do
>> + pos=${pos%%:*}
>> + tail -c+$pos "$img" | $3 > $tmp2 2> /dev/null
>> + dump_config $tmp2
>> + done
>> +}
>> +
>> # Check invocation:
>> me=${0##*/}
>> img=$1
>> @@ -35,18 +47,19 @@ then
>> exit 2
>> fi
>>
>> +# Prepare temp files:
>> +tmp1=/tmp/ikconfig$$.1
>> +tmp2=/tmp/ikconfig$$.2
>> +trap "rm -f $tmp1 $tmp2" 0
>> +
>> # Initial attempt for uncompressed images or objects:
>> dump_config "$img"
>>
>> -# That didn't work, so decompress and try again:
>> -tmp=/tmp/ikconfig$$
>> -trap "rm -f $tmp" 0
>> -for pos in `tr "$gz1\n$gz2" "\n$gz2=" < "$img" | grep -abo "^$gz2"`
>> -do
>> - pos=${pos%%:*}
>> - tail -c+$pos "$img" | zcat 2> /dev/null > $tmp
>> - dump_config $tmp
>> -done
>> +# That didn't work, so retry after decompression.
>> +try_decompress '\037\213\010' xy gunzip
>> +try_decompress 'BZh' xy bunzip2
>> +try_decompress '\135\0\0\0' xxx unlzma
>> +try_decompress '\211\114\132' xy 'lzop -d'
>>
>> # Bail out:
>> echo "$me: Cannot find kernel config." >&2
>> --
>
>
> ---
> ~Randy
> *** Remember to use Documentation/SubmitChecklist when testing your code ***
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
prev parent reply other threads:[~2010-10-27 22:23 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-22 22:02 scripts/extract-ikconfig: add support for bzip2, lzma and lzo Dick Streefland
2010-10-22 22:16 ` Randy Dunlap
2010-10-27 22:23 ` Michal Marek [this message]
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=4CC8A670.3070800@suse.cz \
--to=mmarek@suse.cz \
--cc=dick@streefland.net \
--cc=linux-kbuild@vger.kernel.org \
--cc=rdunlap@xenotime.net \
/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