From mboxrd@z Thu Jan 1 00:00:00 1970 From: aq Subject: [PATCH] xen-booloader: grub parser improvement & bug fix Date: Fri, 29 Apr 2005 12:22:06 +0900 Message-ID: <9cde8bff05042820223edda65@mail.gmail.com> Reply-To: aq Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_3420_20791601.1114744926472" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Jeremy Katz , "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org ------=_Part_3420_20791601.1114744926472 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hello, Here is a patch to fix a bug and improve grub parser of xen-booloader. Please apply this on top of the last Jeremy's patch. List of changes: - More tolerant when dealing with some grub directive which has no parameter, like "savedefault", "boot" - Support few more grub directives like "boot", "savedefault" - Set first item as default boot option if "saved" boot option is indicated (the oiginal choice is to raise error) - Fix bug on sys.argv - Insert and remove few blank lines for more readable. $ diffstat GrubConf.aq.patch=20 GrubConf.py | 43 ++++++++++++++++++++++++++++++++----------- 1 files changed, 32 insertions(+), 11 deletions(-) Signed-off-by: Nguyen Anh Quynh ------=_Part_3420_20791601.1114744926472 Content-Type: application/octet-stream; name="GrubConf.aq.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="GrubConf.aq.patch" LS0tIHVuc3RhYmxlLjI3LjMub3JnL3Rvb2xzL3B5Z3J1Yi9zcmMvR3J1YkNvbmYucHkJMjAwNS0w NC0yOSAxMjowMTowNy4yMDcwMjgwMDAgKzA5MDAKKysrIHVuc3RhYmxlLjI3LjMvdG9vbHMvcHln cnViL3NyYy9HcnViQ29uZi5weQkyMDA1LTA0LTI5IDExOjQ0OjMwLjgwNzAyODAwMCArMDkwMApA QCAtMjcsNyArMjcsNyBAQCBkZWYgZ3J1Yl9zcGxpdChzLCBtYXhzcGxpdCA9IC0xKToKICAgICBp ZiAodGFiICE9IC0xIGFuZCB0YWIgPCBzcCkgb3IgKHRhYiAhPSAtMSBhbmQgc3AgPT0gLTEpOgog ICAgICAgICBzcCA9IHRhYgogCi0gICAgaWYgZXEgIT0gLTEgYW5kIGVxIDwgc3Agb3IgKGVxICE9 IC0xIGFuZCBzcCA9PSAtMSk6CisgICAgaWYgKGVxIDwgc3ApIG9yIChzcCA9PSAtMSk6CiAgICAg ICAgIHJldHVybiBzLnNwbGl0KCc9JywgbWF4c3BsaXQpCiAgICAgZWxzZToKICAgICAgICAgcmV0 dXJuIHMuc3BsaXQoTm9uZSwgbWF4c3BsaXQpCkBAIC01OCwyOSArNTgsMzcgQEAgY2xhc3MgR3J1 YkRpc2tQYXJ0KG9iamVjdCk6CiAKICAgICBkZWYgZ2V0X2Rpc2soc2VsZik6CiAgICAgICAgIHJl dHVybiBzZWxmLl9kaXNrCisKICAgICBkZWYgc2V0X2Rpc2soc2VsZiwgdmFsKToKICAgICAgICAg dmFsID0gdmFsLnJlcGxhY2UoIigiLCAiIikucmVwbGFjZSgiKSIsICIiKQogICAgICAgICBzZWxm Ll9kaXNrID0gaW50KHZhbFsyOl0pCisKICAgICBkaXNrID0gcHJvcGVydHkoZ2V0X2Rpc2ssIHNl dF9kaXNrKQogCiAgICAgZGVmIGdldF9wYXJ0KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5f cGFydAorCiAgICAgZGVmIHNldF9wYXJ0KHNlbGYsIHZhbCk6CiAgICAgICAgIGlmIHZhbCBpcyBO b25lOgogICAgICAgICAgICAgc2VsZi5fcGFydCA9IHZhbAogICAgICAgICAgICAgcmV0dXJuCiAg ICAgICAgIHZhbCA9IHZhbC5yZXBsYWNlKCIoIiwgIiIpLnJlcGxhY2UoIikiLCAiIikKICAgICAg ICAgc2VsZi5fcGFydCA9IGludCh2YWwpCisKICAgICBwYXJ0ID0gcHJvcGVydHkoZ2V0X3BhcnQs IHNldF9wYXJ0KQogCiBjbGFzcyBHcnViSW1hZ2Uob2JqZWN0KToKICAgICBkZWYgX19pbml0X18o c2VsZiwgbGluZXMpOgogICAgICAgICBzZWxmLl9yb290ID0gc2VsZi5faW5pdHJkID0gc2VsZi5f a2VybmVsID0gc2VsZi5fYXJncyA9IE5vbmUKICAgICAgICAgZm9yIGwgaW4gbGluZXM6Ci0gICAg ICAgICAgICAoY29tLCBhcmcpID0gZ3J1Yl9zcGxpdChsLCAxKQotCisgICAgICAgICAgICB1cCA9 IGdydWJfc3BsaXQobCwgMSkKKyAgICAgICAgICAgIGlmIGxlbih1cCkgPjE6CisgICAgICAgICAg ICAgICAgKGNvbSwgYXJnKSA9IHVwCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg IGNvbSA9IHVwWzBdCisgICAgICAgICAgICAgICAgYXJnID0gTm9uZQogICAgICAgICAgICAgaWYg c2VsZi5jb21tYW5kcy5oYXNfa2V5KGNvbSk6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5jb21t YW5kc1tjb21dIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGlmIHNlbGYuY29tbWFuZHNb Y29tXSBpcyBub3QgTm9uZSBhbmQgYXJnIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICAg ICBleGVjKCIlcyA9IHJcIiVzXCIiICUoc2VsZi5jb21tYW5kc1tjb21dLCBhcmcuc3RyaXAoKSkp CiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgbG9nZ2luZy5pbmZv KCJJZ25vcmVkIGltYWdlIGRpcmVjdGl2ZSAlcyIgJShjb20sKSkKQEAgLTk3LDggKzEwNSwxMCBA QCBjbGFzcyBHcnViSW1hZ2Uob2JqZWN0KToKIAogICAgIGRlZiBzZXRfcm9vdChzZWxmLCB2YWwp OgogICAgICAgICBzZWxmLl9yb290ID0gR3J1YkRpc2tQYXJ0KHZhbCkKKwogICAgIGRlZiBnZXRf cm9vdChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3Jvb3QKKwogICAgIHJvb3QgPSBwcm9w ZXJ0eShnZXRfcm9vdCwgc2V0X3Jvb3QpCiAKICAgICBkZWYgc2V0X2tlcm5lbChzZWxmLCB2YWwp OgpAQCAtMTA5LDE3ICsxMTksMjMgQEAgY2xhc3MgR3J1YkltYWdlKG9iamVjdCk6CiAgICAgICAg IChrZXJuZWwsIGFyZ3MpID0gdmFsLnNwbGl0KE5vbmUsIDEpCiAgICAgICAgIHNlbGYuX2tlcm5l bCA9IGdldF9wYXRoKGtlcm5lbCkKICAgICAgICAgc2VsZi5fYXJncyA9IGFyZ3MKKwogICAgIGRl ZiBnZXRfa2VybmVsKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fa2VybmVsCisKKyAgICBr ZXJuZWwgPSBwcm9wZXJ0eShnZXRfa2VybmVsLCBzZXRfa2VybmVsKQorCiAgICAgZGVmIGdldF9h cmdzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYXJncwotICAgIGtlcm5lbCA9IHByb3Bl cnR5KGdldF9rZXJuZWwsIHNldF9rZXJuZWwpCisKICAgICBhcmdzID0gcHJvcGVydHkoZ2V0X2Fy Z3MpCiAKICAgICBkZWYgc2V0X2luaXRyZChzZWxmLCB2YWwpOgogICAgICAgICBzZWxmLl9pbml0 cmQgPSBnZXRfcGF0aCh2YWwpCisKICAgICBkZWYgZ2V0X2luaXRyZChzZWxmKToKICAgICAgICAg cmV0dXJuIHNlbGYuX2luaXRyZAorCiAgICAgaW5pdHJkID0gcHJvcGVydHkoZ2V0X2luaXRyZCwg c2V0X2luaXRyZCkKIAogICAgICMgc2V0IHVwIGNvbW1hbmQgaGFuZGxlcnMKQEAgLTEyOSw3ICsx NDUsOSBAQCBjbGFzcyBHcnViSW1hZ2Uob2JqZWN0KToKICAgICAgICAgICAgICAgICAgImtlcm5l bCI6ICJzZWxmLmtlcm5lbCIsCiAgICAgICAgICAgICAgICAgICJpbml0cmQiOiAic2VsZi5pbml0 cmQiLAogICAgICAgICAgICAgICAgICAiY2hhaW5sb2FkZXIiOiBOb25lLAotICAgICAgICAgICAg ICAgICAibW9kdWxlIjogTm9uZX0KKyAgICAgICAgICAgICAgICAgIm1vZHVsZSI6IE5vbmUsCisg ICAgICAgICAgICAgICAgICJib290IjogTm9uZSwKKyAgICAgICAgICAgICAgICAgInNhdmVkZWZh dWx0IjogTm9uZX0KICAgICAgICAgCiAKIGNsYXNzIEdydWJDb25maWdGaWxlKG9iamVjdCk6CkBA IC0xODUsMjYgKzIwMywyOSBAQCBjbGFzcyBHcnViQ29uZmlnRmlsZShvYmplY3QpOgogICAgICAg ICAgICAgICAgICAgICBsb2dnaW5nLmluZm8oIklnbm9yZWQgZGlyZWN0aXZlICVzIiAlKGNvbSwp KQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmcoIlVu a25vd24gZGlyZWN0aXZlICVzIiAlKGNvbSwpKQotICAgICAgICAgICAgICAgIAogICAgICAgICBp ZiBsZW4oaW1nKSA+IDA6CiAgICAgICAgICAgICBzZWxmLmltYWdlcy5hcHBlbmQoR3J1YkltYWdl KGltZykpCiAKICAgICBkZWYgX2dldF9kZWZhdWx0KHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs Zi5fZGVmYXVsdAorCiAgICAgZGVmIF9zZXRfZGVmYXVsdChzZWxmLCB2YWwpOgogICAgICAgICBp ZiB2YWwgPT0gInNhdmVkIjoKLSAgICAgICAgICAgIHNlbGYuX2RlZmF1bHQgPSAtMQorICAgICAg ICAgICAgc2VsZi5fZGVmYXVsdCA9IDAJIyB1c2UgdGhlIGZpcnN0IGl0ZW0gYXMgZGVmYXVsdCB2 YWx1ZQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5fZGVmYXVsdCA9IGludCh2YWwp CiAKICAgICAgICAgaWYgc2VsZi5fZGVmYXVsdCA8IDA6CiAgICAgICAgICAgICByYWlzZSBWYWx1 ZUVycm9yLCAiZGVmYXVsdCBtdXN0IGJlIHBvc2l0aXZlIG51bWJlciIKKwogICAgIGRlZmF1bHQg PSBwcm9wZXJ0eShfZ2V0X2RlZmF1bHQsIF9zZXRfZGVmYXVsdCkKIAogICAgIGRlZiBzZXRfc3Bs YXNoKHNlbGYsIHZhbCk6CiAgICAgICAgIHNlbGYuX3NwbGFzaCA9IGdldF9wYXRoKHZhbCkKKwog ICAgIGRlZiBnZXRfc3BsYXNoKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fc3BsYXNoCisK ICAgICBzcGxhc2ggPSBwcm9wZXJ0eShnZXRfc3BsYXNoLCBzZXRfc3BsYXNoKQogCiAgICAgIyBz ZXQgdXAgY29tbWFuZCBoYW5kbGVycwpAQCAtMjIyLDggKzI0Myw4IEBAIGNsYXNzIEdydWJDb25m aWdGaWxlKG9iamVjdCk6CiAKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICBpZiBz eXMuYXJndiA8IDI6Ci0gICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvciwgIk5lZWQgYSBncnViLmNv bmYgdG8gcmVhZCIKKyAgICBpZiBsZW4oc3lzLmFyZ3YpIDwgMjoKKyAgICAgICAgcmFpc2UgUnVu dGltZUVycm9yLCAiTmVlZCBhIGdydWIgY29uZmlndXJhdGlvbiBmaWxlIHRvIHJlYWQiCiAgICAg ZyA9IEdydWJDb25maWdGaWxlKHN5cy5hcmd2WzFdKQogICAgIGZvciBpIGluIGcuaW1hZ2VzOgot ICAgICAgICBwcmludCBpICMsIGkudGl0bGUsIGkucm9vdCwgaS5rZXJuZWwsIGkuYXJncywgaS5p bml0cmQKKyAgICAgICAgcHJpbnQgaQo= ------=_Part_3420_20791601.1114744926472 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel ------=_Part_3420_20791601.1114744926472--