public inbox for linux-kbuild@vger.kernel.org
 help / color / mirror / Atom feed
* scripts/extract-ikconfig: add support for bzip2, lzma and lzo
@ 2010-10-22 22:02 Dick Streefland
  2010-10-22 22:16 ` Randy Dunlap
  0 siblings, 1 reply; 3+ messages in thread
From: Dick Streefland @ 2010-10-22 22:02 UTC (permalink / raw)
  To: linux-kbuild; +Cc: Michal Marek

Add support for kernels compressed with bzip2, lzma or lzo to the
extract-ikconfig script.

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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: scripts/extract-ikconfig: add support for bzip2, lzma and lzo
  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
  0 siblings, 1 reply; 3+ messages in thread
From: Randy Dunlap @ 2010-10-22 22:16 UTC (permalink / raw)
  To: Dick Streefland; +Cc: linux-kbuild, Michal Marek

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


> 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 ***

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: scripts/extract-ikconfig: add support for bzip2, lzma and lzo
  2010-10-22 22:16 ` Randy Dunlap
@ 2010-10-27 22:23   ` Michal Marek
  0 siblings, 0 replies; 3+ messages in thread
From: Michal Marek @ 2010-10-27 22:23 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: Dick Streefland, linux-kbuild

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-10-27 22:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox