[Bug 1000527] Re: Writing debian installer isos fails in syslinux part

Wookey wookey at wookware.org
Thu May 17 09:36:19 UTC 2012


** Description changed:

- After fixing usb-creator so it builds, I tried it on a debian box and found a problem:
+ After fixing usb-creator so it builds on debian, I tried it on a debian box and found a problem:
  in install.py is a load of code to use syslinx-legacy and apropriate options either side of the 10.04 and 10.10 Ubuntu releases.
  
  That fails if a debian iso has been burned onto the USB stick.
  
-     target_os_ver, our_os_ver = self.os_vers()
-       File "/usr/lib/python2.7/dist-packages/usbcreator/install.py",line 206, in os_vers 
-     target_os_ver = debian_support.Version(contents[1])
-       File "/usr/lib/python2.7/dist-packages/debian/debian_support.py", line 172,
- in __init__ 
-     super(AptPkgVersion, self).__init__(version)
-       File "/usr/lib/python2.7/dist-packages/debian/debian_support.py", line 91,
+     target_os_ver, our_os_ver = self.os_vers()
+       File "/usr/lib/python2.7/dist-packages/usbcreator/install.py",line 206, in os_vers
+     target_os_ver = debian_support.Version(contents[1])
+       File "/usr/lib/python2.7/dist-packages/debian/debian_support.py", line 172,
  in __init__
-     self.full_version = version 
-       File "/usr/lib/python2.7/dist-packages/debian/debian_support.py", line 117,
- in __setattr__ 
-     self._set_full_version(str(value))
-       File "/usr/lib/python2.7/dist-packages/debian/debian_support.py", line 96,
+     super(AptPkgVersion, self).__init__(version)
+       File "/usr/lib/python2.7/dist-packages/debian/debian_support.py", line 91,
+ in __init__
+     self.full_version = version
+       File "/usr/lib/python2.7/dist-packages/debian/debian_support.py", line 117,
+ in __setattr__
+     self._set_full_version(str(value))
+       File "/usr/lib/python2.7/dist-packages/debian/debian_support.py", line 96,
  in _set_full_version
-     raise ValueError("Invalid version string %r" % version)
-     ValueError: Invalid version string 'GNU/Linux'
-                                      
+     raise ValueError("Invalid version string %r" % version)
+     ValueError: Invalid version string 'GNU/Linux'
+ 
  This is because of this code:
  if os.path.exists(os.path.join(self.target, '.disk', 'info')):
-     with open(os.path.join(self.target, '.disk', 'info'),'r') as f:
-         contents = f.readline().split()
-     if len(contents) > 2:
-         # Consider point releases the same as the initial release
-         # (10.04.4 -> 10.04)
-         target_os_ver = debian_support.Version(contents[1])
+     with open(os.path.join(self.target, '.disk', 'info'),'r') as f:
+         contents = f.readline().split()
+     if len(contents) > 2:
+         # Consider point releases the same as the initial release
+         # (10.04.4 -> 10.04)
+         target_os_ver = debian_support.Version(contents[1])
  
  becuause .disk/info is:
- Debian GNU/Linux wheezy-DI-a1 "Wheezy" - Official Snapshot amd64 NETINST Binary-1 20120512-00:39           
+ Debian GNU/Linux wheezy-DI-a1 "Wheezy" - Official Snapshot amd64 NETINST Binary-1 20120512-00:39
  
  so the code tries to parse "GNU/Linux" as debian version number and
  rightly fails.
  
  BTW I'm not sure that the 'debian_support.Version' fn is really apropriate here as it seems to be designed for package version numbers not release numbers - mind you this works OK:
  our_os_ver = debian_support.Version(
-       lsb_release.get_distro_information()['RELEASE'])
+       lsb_release.get_distro_information()['RELEASE'])
  
- My python is not good enough to work out what to do about this. You could just look for contents[3] and not use the 'Version' function. (There is a 'Release' fn which might be helpful here?)
-                                                                                                            
- Or perhaps better is to simply not do any of this checking on Debian as we've been on syslinux 2.4 since squeeze, and there isn't a syslinux-legacy package to use anyway. I'm not sure of the full implications here.
+ My python is not good enough to work out what to do about this. You
+ could just look for contents[3] and not use the 'Version' function.
+ (There is a 'Release' fn which might be helpful here?)
  
- In fact how much do we care about people writing images older then 10.10 any more. Could it all just be simplified for Ubuntu too?
-                   
- There is a lot of simplification possible in install_bootloader, mangle_syslinux, need_syslinux_legacy etc.
-    
- Someone who actually speaks python and is vaguely famliar with the code could presumably fix this without too much trouble.
+ Or perhaps better is to simply not do any of this checking on Debian as
+ we've been on syslinux 2.4 since squeeze, and there isn't a syslinux-
+ legacy package to use anyway. I'm not sure of the full implications
+ here.
+ 
+ In fact how much do we care about people writing images older then 10.10
+ any more. Could it all just be simplified for Ubuntu too?
+ 
+ There is a lot of simplification possible in install_bootloader,
+ mangle_syslinux, need_syslinux_legacy etc.
+ 
+ Someone who actually speaks python and is vaguely famliar with the code
+ could presumably fix this without too much trouble.
  
  Hope this is helpful to someone.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to usb-creator in Ubuntu.
https://bugs.launchpad.net/bugs/1000527

Title:
  Writing debian installer isos fails in syslinux part

Status in “usb-creator” package in Ubuntu:
  New

Bug description:
  After fixing usb-creator so it builds on debian, I tried it on a debian box and found a problem:
  in install.py is a load of code to use syslinx-legacy and apropriate options either side of the 10.04 and 10.10 Ubuntu releases.

  That fails if a debian iso has been burned onto the USB stick.

      target_os_ver, our_os_ver = self.os_vers()
        File "/usr/lib/python2.7/dist-packages/usbcreator/install.py",line 206, in os_vers
      target_os_ver = debian_support.Version(contents[1])
        File "/usr/lib/python2.7/dist-packages/debian/debian_support.py", line 172,
  in __init__
      super(AptPkgVersion, self).__init__(version)
        File "/usr/lib/python2.7/dist-packages/debian/debian_support.py", line 91,
  in __init__
      self.full_version = version
        File "/usr/lib/python2.7/dist-packages/debian/debian_support.py", line 117,
  in __setattr__
      self._set_full_version(str(value))
        File "/usr/lib/python2.7/dist-packages/debian/debian_support.py", line 96,
  in _set_full_version
      raise ValueError("Invalid version string %r" % version)
      ValueError: Invalid version string 'GNU/Linux'

  This is because of this code:
  if os.path.exists(os.path.join(self.target, '.disk', 'info')):
      with open(os.path.join(self.target, '.disk', 'info'),'r') as f:
          contents = f.readline().split()
      if len(contents) > 2:
          # Consider point releases the same as the initial release
          # (10.04.4 -> 10.04)
          target_os_ver = debian_support.Version(contents[1])

  becuause .disk/info is:
  Debian GNU/Linux wheezy-DI-a1 "Wheezy" - Official Snapshot amd64 NETINST Binary-1 20120512-00:39

  so the code tries to parse "GNU/Linux" as debian version number and
  rightly fails.

  BTW I'm not sure that the 'debian_support.Version' fn is really apropriate here as it seems to be designed for package version numbers not release numbers - mind you this works OK:
  our_os_ver = debian_support.Version(
        lsb_release.get_distro_information()['RELEASE'])

  My python is not good enough to work out what to do about this. You
  could just look for contents[3] and not use the 'Version' function.
  (There is a 'Release' fn which might be helpful here?)

  Or perhaps better is to simply not do any of this checking on Debian
  as we've been on syslinux 2.4 since squeeze, and there isn't a
  syslinux-legacy package to use anyway. I'm not sure of the full
  implications here.

  In fact how much do we care about people writing images older then
  10.10 any more. Could it all just be simplified for Ubuntu too?

  There is a lot of simplification possible in install_bootloader,
  mangle_syslinux, need_syslinux_legacy etc.

  Someone who actually speaks python and is vaguely famliar with the
  code could presumably fix this without too much trouble.

  Hope this is helpful to someone.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/usb-creator/+bug/1000527/+subscriptions




More information about the foundations-bugs mailing list