RFC: LiveUSB Creator Revamped

Lubomir Rintel lkundrak at v3.sk
Thu May 28 13:04:00 UTC 2015


On Thu, 2015-05-28 at 14:31 +0200, Martin Bříza wrote:
> On Thu, 28 May 2015 14:28:17 +0200, Martin Bříza <mbriza at redhat.com> 
> wrote:
> 
> > Hi everyone,
> > 
> > for quite a while, I've been working on implementation of a new,  
> > revamped UI, designed by Jakub Steiner for the LiveUSB Creator [0].
> >   
> > Currently, me and Luke are slowly moving to merge the changes back 
> > into  
> > the master branch of the tree. Some stuff is not done, like 
> > descriptions  
> > of the images or final look of the icons but the really important 
> > things  
> > are already there.
> > 
> > I'm writing here to ask you guys for input on what you think about 
> > how  
> > it looks like now. I've set up a Copr repository [1] and put a 
> > Windows  
> > package together [2].
> > I'm open to all kinds of feature requests, bug reports, any kind of
> >   
> > input that comes to your minds.
> > The Copr version still contains just udisks support. Udisks2 will 
> > be  
> > added ASAP (when I rebase my branch against master and build the 
> > package  
> > again).
> > 
> > Specifically, what we'd love to settle is: what to do with the main
> >   
> > screen with the three promoted images. Obviously, putting a Server 
> > or  
> > Cloud Product on a USB drive is a nonsense. One could argue the 
> > tool at  
> > least downloads the images for you, though.
> > 
> > Cheers,
> > Martin
> > 
> > [0] https://github.com/lmacken/liveusb-creator/tree/feature/new-ui
> > [1] 
> > https://copr.fedoraproject.org/coprs/mbriza/unstable/build/94636/
> > [2a] https://mbriza.fedorapeople.org/liveusb-creator.zip
> > [2b] http://ma.rtinbriza.cz/w/liveusb-creator.zip
> 
> Also, to see it without actually installing it, there's just a little 
> bit  
> outdated screencap:
> https://mbriza.fedorapeople.org/liveusb-6.ogv

It looks neat!

A few notes:

1.) There's no scrollbar to scroll the list. It only appears upon
scrolling with a mouse wheel which is kind of useless.

2.) It would be nice if the release list was configurable (think
/usr/lib/liveusb-creator/releases.d + /etc/liveusb-creator/releases.d
instead of hardcoded in releases.py). That way the default
installations could bring in the Fedora distributions while an add-on
packages could add CentOS, RPM Fusion, etc.

3.) I've launched liveusb-creator_polkit. However it doesn't seem to
employ policykit -- the UI itself runs as root! The inconvenient side
-effect is that the file picker is not entirely relevant and I have
hard time finding the ISO file I've downloaded.

4.) The dependency on udisks is missing and the error is not handled
gracefully. The following tracebacks appears on the console:

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/liveusb/gui.py", line 830, in USBDeviceEnumerationStart
    self.live.detect_removable_drives(callback=self.USBDeviceCallback)
  File "/usr/lib/python2.7/site-packages/liveusb/creator.py", line 519, in detect_removable_drives
    "/org/freedesktop/UDisks")
  File "/usr/lib64/python2.7/site-packages/dbus/bus.py", line 241, in get_object
    follow_name_owner_changes=follow_name_owner_changes)
  File "/usr/lib64/python2.7/site-packages/dbus/proxies.py", line 248, in __init__
    self._named_service = conn.activate_name_owner(bus_name)
  File "/usr/lib64/python2.7/site-packages/dbus/bus.py", line 180, in activate_name_owner
    self.start_service_by_name(bus_name)
  File "/usr/lib64/python2.7/site-packages/dbus/bus.py", line 278, in start_service_by_name
    'su', (bus_name, flags)))
  File "/usr/lib64/python2.7/site-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UDisks was not provided by any .service files

The UI is just not able to find the flash drive.

5.) The error handling seems messed up. When I hit the write button,
there's no error in the UI, but the following is in the console:

[gui:246] (u'T', u'h', u'e', u'r', u'e', u' ', u'i', u's', u' ', u'n', u'o', u't', u' ', u'e', u'n', u'o', u'u', u'g', u'h', u' ', u'f', u'r', u'e', u'e', u' ', u's', u'p', u'a', u'c', u'e', u' ', u'o', u'n', u' ', u't', u'h', u'e', u' ', u's', u'e', u'l', u'e', u'c', u't', u'e', u'd', u' ', u'd', u'e', u'v', u'i', u'c', u'e', u'.', u' ', u'R', u'e', u'q', u'u', u'i', u'r', u'e', u'd', u':', u' ', u'1', u'0', u'5', u'6', u'M', u'B', u'.', u' ', u'F', u'r', u'e', u'e', u':', u' ', u'7', u'0', u'2', u'M', u'B', u'.')
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/liveusb/gui.py", line 243, in run
    self.copyImage(now)
  File "/usr/lib/python2.7/site-packages/liveusb/gui.py", line 265, in copyImage
    self.live.check_free_space()
  File "/usr/lib/python2.7/site-packages/liveusb/creator.py", line 263, in check_free_space
    str(freebytes/1024**2) + "MB")))
LiveUSBError: (u'T', u'h', u'e', u'r', u'e', u' ', u'i', u's', u' ', u'n', u'o', u't', u' ', u'e', u'n', u'o', u'u', u'g', u'h', u' ', u'f', u'r', u'e', u'e', u' ', u's', u'p', u'a', u'c', u'e', u' ', u'o', u'n', u' ', u't', u'h', u'e', u' ', u's', u'e', u'l', u'e', u'c', u't', u'e', u'd', u' ', u'd', u'e', u'v', u'i', u'c', u'e', u'.', u' ', u'R', u'e', u'q', u'u', u'i', u'r', u'e', u'd', u':', u' ', u'1', u'0', u'5', u'6', u'M', u'B', u'.', u' ', u'F', u'r', u'e', u'e', u':', u' ', u'7', u'0', u'2', u'M', u'B', u'.')
[creator:548] Skipping non-usb drive: /org/freedesktop/UDisks/devices/sda1

6.) The "write image immediately after download" makes no sense for a
local ISO, yet it's present.

Thanks,
Lubo


More information about the devel mailing list