All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Fix pygrub --isconfig
@ 2011-01-20 15:52 John Haxby
  2011-01-20 16:40 ` Ian Jackson
  0 siblings, 1 reply; 4+ messages in thread
From: John Haxby @ 2011-01-20 15:52 UTC (permalink / raw)
  To: xen-devel

[-- Attachment #1: Type: text/plain, Size: 456 bytes --]

Recentlly, when trying to get to the bottom of some strange booting
problem, I discovered that

    pyrgub --isconfig <image file>

usefully reports the kernel, initrd (ramdisk) and arguments that would
be used to boot a kernel.  Well, actually, what it reported was an
error.  This patch makes it work (and jolly useful it is too).  The
patch also removes a spurious "print >>sys.stderr" that seems to have
been left in from some previous debugging.

jch

[-- Attachment #2: pygrub.patch --]
[-- Type: text/x-patch, Size: 1541 bytes --]

diff -r f47b924f74af tools/pygrub/src/pygrub
--- a/tools/pygrub/src/pygrub	Tue Jan 18 12:25:54 2011 +0000
+++ b/tools/pygrub/src/pygrub	Thu Jan 20 15:46:33 2011 +0000
@@ -400,7 +400,6 @@
 
         for f,parser in cfg_list:
             if fs.file_exists(f):
-                print >>sys.stderr, "Using %s to parse %s" % (parser,f)
                 self.cf = parser()
                 self.cf.filename = f
                 break
@@ -687,14 +686,6 @@
     else:
         fd = os.open(output, os.O_WRONLY)
 
-    # debug
-    if isconfig:
-        chosencfg = run_grub(file, entry, fs, incfg["args"])
-        print "  kernel: %s" % chosencfg["kernel"]
-        if chosencfg["ramdisk"]:
-            print "  initrd: %s" % chosencfg["ramdisk"]
-        print "  args: %s" % chosencfg["args"]
-        sys.exit(0)
 
     # if boot filesystem is set then pass to fsimage.open
     bootfsargs = '"%s"' % incfg["args"]
@@ -704,6 +695,19 @@
     else:
         fs = fsimage.open(file, get_fs_offset(file))
 
+    # debug
+    if isconfig:
+        chosencfg = run_grub(file, entry, fs, incfg["args"])
+        if chosencfg.has_key("kernel"):
+            print "  kernel: %s" % chosencfg["kernel"]
+        if chosencfg.has_key("ramdisk"):
+            print "  initrd: %s" % chosencfg["ramdisk"]
+        if chosencfg.has_key("args"):
+            print "  args: %s" % chosencfg["args"]
+        if not chosencfg:
+            print "  no config"
+        sys.exit(0)
+
     chosencfg = sniff_solaris(fs, incfg)
 
     if not chosencfg["kernel"]:

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

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

* Re: [PATCH] Fix pygrub --isconfig
  2011-01-20 15:52 [PATCH] Fix pygrub --isconfig John Haxby
@ 2011-01-20 16:40 ` Ian Jackson
  2011-01-21 15:20   ` John Haxby
  0 siblings, 1 reply; 4+ messages in thread
From: Ian Jackson @ 2011-01-20 16:40 UTC (permalink / raw)
  To: John Haxby; +Cc: xen-devel

John Haxby writes ("[Xen-devel] [PATCH] Fix pygrub --isconfig"):
> Recentlly, when trying to get to the bottom of some strange booting
> problem, I discovered that
> 
>     pyrgub --isconfig <image file>
> 
> usefully reports the kernel, initrd (ramdisk) and arguments that would
> be used to boot a kernel.  Well, actually, what it reported was an
> error.  This patch makes it work (and jolly useful it is too).  The
> patch also removes a spurious "print >>sys.stderr" that seems to have
> been left in from some previous debugging.

Thanks, but this patch doesn't apply to xen-unstable.hg.  xen-unstable
has a loop "for offset in part_offs" surrounding the code you seem to
be trying to patch.

Is it important to check for "isconfig" before running sniff_solaris
and sniff_netware ?

Ian.

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

* Re: [PATCH] Fix pygrub --isconfig
  2011-01-20 16:40 ` Ian Jackson
@ 2011-01-21 15:20   ` John Haxby
  2011-01-21 15:25     ` Ian Jackson
  0 siblings, 1 reply; 4+ messages in thread
From: John Haxby @ 2011-01-21 15:20 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

[-- Attachment #1: Type: text/plain, Size: 1556 bytes --]

On 20/01/11 16:40, Ian Jackson wrote:
> John Haxby writes ("[Xen-devel] [PATCH] Fix pygrub --isconfig"):
>> Recentlly, when trying to get to the bottom of some strange booting
>> problem, I discovered that
>>
>>     pyrgub --isconfig <image file>
>>
>> usefully reports the kernel, initrd (ramdisk) and arguments that would
>> be used to boot a kernel.  Well, actually, what it reported was an
>> error.  This patch makes it work (and jolly useful it is too).  The
>> patch also removes a spurious "print >>sys.stderr" that seems to have
>> been left in from some previous debugging.
> Thanks, but this patch doesn't apply to xen-unstable.hg.  xen-unstable
> has a loop "for offset in part_offs" surrounding the code you seem to
> be trying to patch.

Sorry.  This patch was originally from something rather older which I
then applied to xen-4.0-testing by mistake.
I have attached an updated patch against xen-unstable.hg.
> Is it important to check for "isconfig" before running sniff_solaris
> and sniff_netware ?

No, it should really be checked after as (presumably) the intention is
to report what would actually be chosen.

Although I have attached the patch to move the isconfig stuff to the
point where the chosenconfig is finally known "pygrub --isconfig" is
functionally equivalent to "pygrub --not-really --output-format simple
--output -" so it might be better just to remove the isconfig code
altogether.  You could make it a synonym for the longer command, but as
isconfig has been unloved for quite a while it probably isn't worth it.

jch

[-- Attachment #2: pygrub.patch --]
[-- Type: text/x-patch, Size: 1659 bytes --]

diff -r 003acf02d416 tools/pygrub/src/pygrub
--- a/tools/pygrub/src/pygrub	Thu Jan 20 17:04:06 2011 +0000
+++ b/tools/pygrub/src/pygrub	Fri Jan 21 15:20:17 2011 +0000
@@ -404,7 +404,6 @@
 
         for f,parser in cfg_list:
             if fs.file_exists(f):
-                print >>sys.stderr, "Using %s to parse %s" % (parser,f)
                 self.cf = parser()
                 self.cf.filename = f
                 break
@@ -725,15 +724,6 @@
     else:
         fd = os.open(output, os.O_WRONLY)
 
-    # debug
-    if isconfig:
-        chosencfg = run_grub(file, entry, fs, incfg["args"])
-        print "  kernel: %s" % chosencfg["kernel"]
-        if chosencfg["ramdisk"]:
-            print "  initrd: %s" % chosencfg["ramdisk"]
-        print "  args: %s" % chosencfg["args"]
-        sys.exit(0)
-
     # if boot filesystem is set then pass to fsimage.open
     bootfsargs = '"%s"' % incfg["args"]
     bootfsgroup = re.findall('zfs-bootfs=(.*?)[\s\,\"]', bootfsargs)
@@ -769,6 +759,19 @@
             fs = None
             continue
 
+    # debug
+    if isconfig:
+        if fs:
+            if chosencfg.has_key("kernel"):
+                print "  kernel: %s" % chosencfg["kernel"]
+            if chosencfg.has_key("ramdisk"):
+                print "  initrd: %s" % chosencfg["ramdisk"]
+            if chosencfg.has_key("args"):
+                print "  args: %s" % chosencfg["args"]
+        else:
+            print "  Unable to find partition containing kernel"
+        sys.exit(0)
+
     # Did looping through partitions find us a kernel?
     if not fs:
         raise RuntimeError, "Unable to find partition containing kernel"

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

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

* Re: [PATCH] Fix pygrub --isconfig
  2011-01-21 15:20   ` John Haxby
@ 2011-01-21 15:25     ` Ian Jackson
  0 siblings, 0 replies; 4+ messages in thread
From: Ian Jackson @ 2011-01-21 15:25 UTC (permalink / raw)
  To: John Haxby; +Cc: xen-devel@lists.xensource.com

John Haxby writes ("Re: [Xen-devel] [PATCH] Fix pygrub --isconfig"):
> Although I have attached the patch to move the isconfig stuff to the
> point where the chosenconfig is finally known "pygrub --isconfig" is
> functionally equivalent to "pygrub --not-really --output-format simple
> --output -" so it might be better just to remove the isconfig code
> altogether.  You could make it a synonym for the longer command, but as
> isconfig has been unloved for quite a while it probably isn't worth it.

Thanks for investigating.  Under the circumstances I think we probably
should just leave things as they are for 4.1 and probably make
isconfig an alias for this in 4.2.

Ian.

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

end of thread, other threads:[~2011-01-21 15:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-20 15:52 [PATCH] Fix pygrub --isconfig John Haxby
2011-01-20 16:40 ` Ian Jackson
2011-01-21 15:20   ` John Haxby
2011-01-21 15:25     ` Ian Jackson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.