public inbox for linux-kbuild@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [Bugme-new] [Bug 19852] New: extract-ikconfig only works with gzip'ed kernel images
       [not found] <bug-19852-10286@https.bugzilla.kernel.org/>
@ 2010-10-10 17:19 ` Randy Dunlap
  2010-10-11 22:12   ` Dick Streefland
  0 siblings, 1 reply; 2+ messages in thread
From: Randy Dunlap @ 2010-10-10 17:19 UTC (permalink / raw)
  To: Dick Streefland; +Cc: linux-kbuild

On Thu, 7 Oct 2010 17:06:32 GMT bugzilla-daemon@bugzilla.kernel.org wrote:

Hi Dick,

Please look at this kernel bugzilla entry.
Thanks.

> https://bugzilla.kernel.org/show_bug.cgi?id=19852
> 
>                URL: https://bugs.gentoo.org/show_bug.cgi?id=340021
>            Summary: extract-ikconfig only works with gzip'ed kernel images
>            Product: Other
>            Version: 2.5
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: Other
>         AssignedTo: other_other@kernel-bugs.osdl.org
>         ReportedBy: jlec@gentoo.org
>         Regression: No
> 
> 
> When anything else then CONFIG_KERNEL_GZIP is selected e.g.
> CONFIG_KERNEL_BZIP2, the script extract-ikconfig fails with "extract-ikconfig:
> Cannot find kernel config."
> This should be either checked in the script or support for pther compression
> methods may be nice.
> 
> -- 
> Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug.


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

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

* Re: [Bugme-new] [Bug 19852] New: extract-ikconfig only works with gzip'ed kernel images
  2010-10-10 17:19 ` [Bugme-new] [Bug 19852] New: extract-ikconfig only works with gzip'ed kernel images Randy Dunlap
@ 2010-10-11 22:12   ` Dick Streefland
  0 siblings, 0 replies; 2+ messages in thread
From: Dick Streefland @ 2010-10-11 22:12 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: linux-kbuild

On Sunday 2010-10-10 10:19, Randy Dunlap wrote:
| On Thu, 7 Oct 2010 17:06:32 GMT bugzilla-daemon@bugzilla.kernel.org wrote:
| 
| Hi Dick,
| 
| Please look at this kernel bugzilla entry.
| Thanks.
| 
| > https://bugzilla.kernel.org/show_bug.cgi?id=19852
| > 
| >                URL: https://bugs.gentoo.org/show_bug.cgi?id=340021
| >            Summary: extract-ikconfig only works with gzip'ed kernel images
| >            Product: Other
| >            Version: 2.5
| >           Platform: All
| >         OS/Version: Linux
| >               Tree: Mainline
| >             Status: NEW
| >           Severity: normal
| >           Priority: P1
| >          Component: Other
| >         AssignedTo: other_other@kernel-bugs.osdl.org
| >         ReportedBy: jlec@gentoo.org
| >         Regression: No
| > 
| > 
| > When anything else then CONFIG_KERNEL_GZIP is selected e.g.
| > CONFIG_KERNEL_BZIP2, the script extract-ikconfig fails with "extract-ikconfig:
| > Cannot find kernel config."
| > This should be either checked in the script or support for pther compression
| > methods may be nice.

Here is a patch to resolve this issue:

----------------------------------------------------------------------

Add support for kernels compressed with bzip2, lzma or lzo, in
addition to gzip.

Signed-off-by: Dick Streefland <dick@streefland.net>
---

 scripts/extract-ikconfig |   41 +++++++++++++++++++++++++++--------------
 1 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/scripts/extract-ikconfig b/scripts/extract-ikconfig
index 37f30d3..d27589a 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
+		case	$? in
+		2)	# there will be a warning about trailing garbage
+			cat $tmp1
+			exit 0
+		esac
 	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] 2+ messages in thread

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

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <bug-19852-10286@https.bugzilla.kernel.org/>
2010-10-10 17:19 ` [Bugme-new] [Bug 19852] New: extract-ikconfig only works with gzip'ed kernel images Randy Dunlap
2010-10-11 22:12   ` Dick Streefland

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox