Bug#603391: [Pkg-xen-devel] Bug#603391: Workaround PyGrub issue

2013-10-09 Thread Tril
got it, added underscore, my mistake. Patch works.


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#603391: [Pkg-xen-devel] Bug#603391: Workaround PyGrub issue

2013-10-07 Thread Tril
I double-checked, I edited the file correctly.

I don't know python much, but it seems the lower stack traces are
deeper than the upper ones, which means somehow your calling
"self.disk =" inside a set_disk method seems to have re-entered itself
as if set_disk is a handler for self.disk =...


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#603391: [Pkg-xen-devel] Bug#603391: Workaround PyGrub issue

2013-10-01 Thread Tril

Sorry didn't work.  Aso it will only handle this special case, not the
general case of /dev/something.

# python GrubConf.py grub2 /home/tehadmin/snail-grub.cfg 
WARNING:root:Unknown directive load_video
WARNING:root:Unknown directive terminal_output
WARNING:root:Unknown image directive load_video
Traceback (most recent call last):
  File "GrubConf.py", line 467, in 
g = Grub2ConfigFile(sys.argv[2])
  File "GrubConf.py", line 359, in __init__
_GrubConfigFile.__init__(self, fn)
  File "GrubConf.py", line 179, in __init__
self.parse()
  File "GrubConf.py", line 418, in parse
self.add_image(Grub2Image(title, img))
  File "GrubConf.py", line 325, in __init__
_GrubImage.__init__(self, title, lines)
  File "GrubConf.py", line 94, in __init__
self.reset(lines)
  File "GrubConf.py", line 110, in reset
self._parse(lines)
  File "GrubConf.py", line 105, in _parse
map(self.set_from_line, lines)
  File "GrubConf.py", line 335, in set_from_line
setattr(self, self.commands[com], arg.strip())
  File "GrubConf.py", line 113, in set_root
self._root = GrubDiskPart(val)
  File "GrubConf.py", line 55, in __init__
(self.disk, self.part) = str.split(",", 2)
  File "GrubConf.py", line 73, in set_disk
self.disk = ord(disk)-ord('a')
  File "GrubConf.py", line 69, in set_disk
val = val.replace("(", "").replace(")", "")
AttributeError: 'int' object has no attribute 'replace'


> diff --git a/tools/pygrub/src/GrubConf.py b/tools/pygrub/src/GrubConf.py
> index 6324c62..cb853c9 100644
> --- a/tools/pygrub/src/GrubConf.py
> +++ b/tools/pygrub/src/GrubConf.py
> @@ -67,7 +67,11 @@ class GrubDiskPart(object):
>  return self._disk
>  def set_disk(self, val):
>  val = val.replace("(", "").replace(")", "")
> -self._disk = int(val[2:])
> +if val.startswith("/dev/xvd"):
> +disk = val[len("/dev/xvd")]
> +self._disk = ord(disk)-ord('a')
> +else:
> +self._disk = int(val[2:])
>  disk = property(get_disk, set_disk)
>  
>  def get_part(self):
> 
> 


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#603391: Workaround PyGrub issue

2013-09-28 Thread Tril

Confirmed this issue. To reproduce: Install a fresh Wheezy AMD64 guest
under Xen 4.1 (hypervirtualized, boot from the
debian-7.1.0-amd64-CD-1.iso). Use "entire disk" automatic layout for
partitioning, this creates /dev/xvda1 for / and /dev/xvda5 for swap.
It will create /boot/grub/grub.cfg with many references to
(/dev/xvda,msdos1) which works fine when the machine is booted
hypervirtualized.  PyGrub can not handle the /dev/ syntax for devices,
even though Grub can.

My details:
Package: xen-utils-4.1
Version: 4.1.4-3+deb7u1
Architecture: amd64 

Confirmed workaround: inside the guest, create /boot/grub/device.map (NOT 
devices.map)
containing:
(hd0) /dev/xvda 

run update-grub
shutdown the guest and reboot it using PyGrub.  It will now work.

Backtrace from manual run of the buggy GrubConf.py:
# python /usr/lib/xen-4.1/lib/python/grub/GrubConf.py grub2  grub.cfg
WARNING:root:Unknown directive load_video
WARNING:root:Unknown directive terminal_output
WARNING:root:Unknown image directive load_video
Traceback (most recent call last):
  File "/usr/lib/xen-4.1/lib/python/grub/GrubConf.py", line 462, in 
g = Grub2ConfigFile(sys.argv[2])
  File "/usr/lib/xen-4.1/lib/python/grub/GrubConf.py", line 354, in __init__
_GrubConfigFile.__init__(self, fn)
  File "/usr/lib/xen-4.1/lib/python/grub/GrubConf.py", line 174, in __init__
self.parse()
  File "/usr/lib/xen-4.1/lib/python/grub/GrubConf.py", line 413, in parse
self.add_image(Grub2Image(title, img))
  File "/usr/lib/xen-4.1/lib/python/grub/GrubConf.py", line 320, in __init__
_GrubImage.__init__(self, title, lines)
  File "/usr/lib/xen-4.1/lib/python/grub/GrubConf.py", line 89, in __init__
self.reset(lines)
  File "/usr/lib/xen-4.1/lib/python/grub/GrubConf.py", line 105, in reset
self._parse(lines)
  File "/usr/lib/xen-4.1/lib/python/grub/GrubConf.py", line 100, in _parse
map(self.set_from_line, lines)
  File "/usr/lib/xen-4.1/lib/python/grub/GrubConf.py", line 330, in 
set_from_line
setattr(self, self.commands[com], arg.strip())
  File "/usr/lib/xen-4.1/lib/python/grub/GrubConf.py", line 108, in set_root
self._root = GrubDiskPart(val)
  File "/usr/lib/xen-4.1/lib/python/grub/GrubConf.py", line 55, in __init__
(self.disk, self.part) = str.split(",", 2)
  File "/usr/lib/xen-4.1/lib/python/grub/GrubConf.py", line 70, in set_disk
self._disk = int(val[2:])
ValueError: invalid literal for int() with base 10: 'ev/xvda'


Contents of grub.cfg triggering the error:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
  fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(/dev/xvda,msdos1)'
search --no-floppy --fs-uuid --set=root f395d5a0-4612-4872-806c-33cd37c152f0
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(/dev/xvda,msdos1)'
  search --no-floppy --fs-uuid --set=root f395d5a0-4612-4872-806c-33cd37c152f0
  set locale_dir=($root)/boot/grub/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64' --class debian --class 
gnu-linux --class gnu --class os {
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='(/dev/xvda,msdos1)'
search --no-floppy --fs-uuid --set=root 
f395d5a0-4612-4872-806c-33cd37c152f0
echo'Loading Linux 3.2.0-4-amd64 ...'
linux   /boot/vmlinuz-3.2.0-4-amd64 
root=UUID=f395d5a0-4612-4872-806c-33cd37c152f0 ro  
echo'Loading initial ramdisk ...'
initrd  /boot/initrd.img-3.2.0-4-amd64
}
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64 (recovery mode)' --class 
debian --class gnu-linux --class gnu --class os {
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='(/dev/xvda,msdos1)'
search --no-floppy --fs-uuid --set=root 
f395d5a0-4612-4872-806c-33cd37c152f0
echo'Loading Linux 3.2.0-4-amd64 ...'
linux   /boot/vmlinuz-3.2.0-4-amd64 
root=UUID=f395d5a0-4612-4872-806c-33cd37c152f0 ro single 
echo'Loading initial ramdisk ...'
initrd  /boot/initrd.img-3.2.0-4-amd64
}
##

Bug#443143: postrm fails if update-inetd not installed

2007-09-27 Thread Tril
On Wed, Sep 26, 2007 at 03:13:10PM +0100, Dave Holland wrote:
> Hi,
> 
> On Tue, Sep 18, 2007 at 09:21:05PM -0700, Tril wrote:
> > I was unable to remove biff because postrm returned 1 (because
> > /usr/sbin/update-inetd did not exist).  I fixed this by adding 
> > "|| true" at the end of the 4th line.
> 
> I don't quite understand what failed; that line already tests for the
> presence of /usr/sbin/update-inetd before trying to invoke it:
>
> > [ -e /usr/sbin/update-inetd ] && update-inetd --remove "biff"
> 
> Please can you send me a sequence of commands which will reproduce your
> problem? I'll amend that line to change "-e" to "-x" to match other
> packages' usage.

Okay.

apt-get remove update-inetd
apt-get remove biff

The test command "[" returned 1, causing postinst to return 1.  This
caused the package removal to fail- the package was still installed,
in some state like 'partly installed.'  Clearly, the intention is that
if update-inetd does not exist, that update-inetd is not run, but that
postinst should still return 0 for success.

Thanks






-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#443143: postrm fails if update-inetd not installed

2007-09-18 Thread Tril
Package: biff
Version: 1:0.17pre2412-4

I was unable to remove biff because postrm returned 1 (because
/usr/sbin/update-inetd did not exist).  I fixed this by adding 
"|| true" at the end of the 4th line.

cat /var/lib/dpkg/info/biff.postrm
#!/bin/sh -e
case "$1" in
remove)
[ -e /usr/sbin/update-inetd ] && update-inetd --remove "biff"
;;
esac



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]