pygrub: cleanup and support for NetBSD
PATCH 1/1 pygrub: cleanup and support for NetBSD
Hi Keir,
Attached patch gets rid of the global attr variable and adds support for NetBSD.
Signature · 12 lines
AMD Saxony, Dresden, Germany Operating System Research Center Legal Information: AMD Saxony Limited Liability Company & Co. KG Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896 vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy
tools/pygrub/src/pygrub +8 -7
@@ -240,10 +240,10 @@ class Grub: if y > self.start_image + maxy: break if y == self.selected_image: - attr = curses.A_REVERSE - else: - attr = 0 - self.entry_win.addstr(y + 1 - self.start_image, 2, i.title.ljust(70), attr) + self.entry_win.attron(curses.A_REVERSE) + self.entry_win.addstr(y + 1 - self.start_image, 2, i.title.ljust(70)) + if y == self.selected_image: + self.entry_win.attroff(curses.A_REVERSE) self.entry_win.refresh() def edit_entry(self, origimg):
@@ -269,16 +269,17 @@ class Grub: self.entry_win.box() for idx in range(1, len(img.lines)): # current line should be highlighted - attr = 0 if idx == curline: - attr = curses.A_REVERSE + self.entry_win.attron(curses.A_REVERSE) # trim the line l = img.lines[idx].ljust(70) if len(l) > 70: l = l[:69] + ">" - self.entry_win.addstr(idx, 2, l, attr) + self.entry_win.addstr(idx, 2, l) + if idx == curline: + self.entry_win.attroff(curses.A_REVERSE) self.entry_win.refresh() c = self.screen.getch()
tools/python/xen/xend/XendBootloader.py +6 -6
@@ -12,7 +12,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # -import os, select, errno, stat, signal +import os, select, errno, stat, signal, tty import random import shlex from xen.xend import sxp
@@ -43,6 +43,9 @@ def bootloader(blexec, disk, dom, quiet log.error(msg) raise VmError(msg) + if os.uname()[0] == "NetBSD" and disk.startswith('/dev/'): + disk = disk.replace("/dev/", "/dev/r") + mkdir.parents("/var/run/xend/boot/", stat.S_IRWXU) while True:
@@ -63,12 +66,9 @@ def bootloader(blexec, disk, dom, quiet # where we copy characters between the two master fds, as well as # listening on the bootloader's fifo for the results. - # Termios runes for very raw access to the pty master fds. - attr = [ 0, 0, termios.CS8 | termios.CREAD | termios.CLOCAL, - 0, 0, 0, [0] * 32 ] - (m1, s1) = pty.openpty() termios.tcsetattr(m1, termios.TCSANOW, attr) + tty.setraw(m1); fcntl.fcntl(m1, fcntl.F_SETFL, os.O_NDELAY); os.close(s1) slavename = ptsname.ptsname(m1)
@@ -109,7 +109,7 @@ def bootloader(blexec, disk, dom, quiet # record that this domain is bootloading dom.bootloader_pid = child - termios.tcsetattr(m2, termios.TCSANOW, attr) + tty.setraw(m2); fcntl.fcntl(m2, fcntl.F_SETFL, os.O_NDELAY); while True: try:
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel
Hi Christoph,
your patch made my linux guest unbootable. Here is the xend.log.
Regards,
Hiroya
2008-03-28 16:11:07 4582] DEBUG (XendDomainInfo:2279)
XendDomainInfo.destroy: domid=1
[2008-03-28 16:11:07 4582] DEBUG (XendDomainInfo:2296) XendDomainInfo.destroyDomain(1)
[2008-03-28 16:11:07 4582] DEBUG (XendDomainInfo:1857) No device model [2008-03-28 16:11:07 4582] DEBUG (XendDomainInfo:1859) Releasing devices [2008-03-28 16:11:07 4582] ERROR (SrvBase:88) Request start failed. Traceback (most recent call last):
File "//usr/lib/python/xen/web/SrvBase.py", line 85, in perform
return op_method(op, req)
File "//usr/lib/python/xen/xend/server/SrvDomain.py", line 77, in op_start
return self.xd.domain_start(self.dom.getName(), paused)
File "//usr/lib/python/xen/xend/XendDomain.py", line 1030, in domain_start
dominfo.start(is_managed = True)
File "//usr/lib/python/xen/xend/XendDomainInfo.py", line 420, in start
XendTask.log_progress(31, 60, self._initDomain)
File "//usr/lib/python/xen/xend/XendTask.py", line 209, in log_progress
retval = func(*args, **kwds)
File "//usr/lib/python/xen/xend/XendDomainInfo.py", line 2046, in_initDomain
self._configureBootloader()
File "//usr/lib/python/xen/xend/XendDomainInfo.py", line 2446, in_configureBootloader
bootloader_args, kernel, ramdisk, args)
File "//usr/lib/python/xen/xend/XendBootloader.py", line 70, in bootloader
termios.tcsetattr(m1, termios.TCSANOW, attr)
NameError: global name 'attr' is not defined
Quoted 14 lines · Christoph Egger
Hi Keir,
Attached patch gets rid of the global attr variable and adds support for NetBSD.
Signed-off-by Christoph Egger <[email protected]>------------------------------------------------------------------------
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel
Fixed as changeset 17314.
-- Keir
Quoted 58 lines · INAKOSHI Hiroya
Hi Christoph,
your patch made my linux guest unbootable. Here is the xend.log.
Regards,
Hiroya2008-03-28 16:11:07 4582] DEBUG (XendDomainInfo:2279)XendDomainInfo.destroy: domid=1
[2008-03-28 16:11:07 4582] DEBUG (XendDomainInfo:2296)XendDomainInfo.destroyDomain(1)
[2008-03-28 16:11:07 4582] DEBUG (XendDomainInfo:1857) No device model [2008-03-28 16:11:07 4582] DEBUG (XendDomainInfo:1859) Releasing devices [2008-03-28 16:11:07 4582] ERROR (SrvBase:88) Request start failed. Traceback (most recent call last):
File "//usr/lib/python/xen/web/SrvBase.py", line 85, in perform
returnop_method(op, req)
File "//usr/lib/python/xen/xend/server/SrvDomain.py", line 77, inop_start
returnself.xd.domain_start(self.dom.getName(), paused)
File "//usr/lib/python/xen/xend/XendDomain.py", line 1030, indomain_start
dominfo.start(is_managed = True)
File "//usr/lib/python/xen/xend/XendDomainInfo.py", line 420, in startXendTask.log_progress(31, 60, self._initDomain)File "//usr/lib/python/xen/xend/XendTask.py", line 209, in
log_progress
retval =func(*args, **kwds)
File "//usr/lib/python/xen/xend/XendDomainInfo.py", line 2046, in_initDomain
self._configureBootloader()
File "//usr/lib/python/xen/xend/XendDomainInfo.py", line 2446, in_configureBootloader
bootloader_args, kernel, ramdisk, args)
File "//usr/lib/python/xen/xend/XendBootloader.py", line 70, in bootloader
termios.tcsetattr(m1, termios.TCSANOW, attr)
NameError: global name 'attr' is not definedQuoted 8 lines · Christoph Egger
Hi Keir,
Attached patch gets rid of the global attr variable and adds support for NetBSD.
Signed-off-by Christoph Egger <[email protected]>Quoted 6 lines
------------------------------------------------------------------------
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel
Quoted 1 line · On Friday 28 March 2008 08:35:33 Keir Fraser wrote:
Fixed as changeset 17314.
I can confirm this fix is correct. I don't know how this could slip through when I submitted the patch. Sorry for that.
Christoph
Quoted 59 lines
-- Keir
Quoted 55 lines · INAKOSHI Hiroya
Hi Christoph,
your patch made my linux guest unbootable. Here is the xend.log.
Regards,
Hiroya2008-03-28 16:11:07 4582] DEBUG (XendDomainInfo:2279)XendDomainInfo.destroy: domid=1
[2008-03-28 16:11:07 4582] DEBUG (XendDomainInfo:2296)XendDomainInfo.destroyDomain(1)
[2008-03-28 16:11:07 4582] DEBUG (XendDomainInfo:1857) No device model [2008-03-28 16:11:07 4582] DEBUG (XendDomainInfo:1859) Releasing devices [2008-03-28 16:11:07 4582] ERROR (SrvBase:88) Request start failed. Traceback (most recent call last):
File "//usr/lib/python/xen/web/SrvBase.py", line 85, in perform
returnop_method(op, req)
File "//usr/lib/python/xen/xend/server/SrvDomain.py", line 77, inop_startreturnself.xd.domain_start(self.dom.getName(), paused)
File "//usr/lib/python/xen/xend/XendDomain.py", line 1030, indomain_startdominfo.start(is_managed = True)
File "//usr/lib/python/xen/xend/XendDomainInfo.py", line 420, in startXendTask.log_progress(31, 60, self._initDomain)File "//usr/lib/python/xen/xend/XendTask.py", line 209, in
log_progress
retval =func(*args, **kwds)
File "//usr/lib/python/xen/xend/XendDomainInfo.py", line 2046, in_initDomain
self._configureBootloader()
File "//usr/lib/python/xen/xend/XendDomainInfo.py", line 2446, in_configureBootloader
bootloader_args, kernel, ramdisk, args)
File "//usr/lib/python/xen/xend/XendBootloader.py", line 70, in
bootloadertermios.tcsetattr(m1, termios.TCSANOW, attr)
NameError: global name 'attr' is not definedQuoted 8 lines · Christoph Egger
Hi Keir,
Attached patch gets rid of the global attr variable and adds support for NetBSD.
Signed-off-by Christoph Egger <[email protected]>Quoted 6 lines
------------------------------------------------------------------------
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel
Signature · 12 lines
AMD Saxony, Dresden, Germany Operating System Research Center Legal Information: AMD Saxony Limited Liability Company & Co. KG Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896 vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy