[FFe] Accept new python-based Wubi for 9.04

Bug #334244 reported by Evan
8
Affects Status Importance Assigned to Milestone
Wubi
Fix Released
Undecided
Unassigned

Bug Description

Please give me the approval to point cdimage at the new python-based Wubi and umenu. I had intended to do this before feature freeze, but it fell off the radar.

The old Wubi code was written in NSIS, which proved extraordinarily difficult to debug and numerous bugs were discovered that would disappear upon further inspection. This new branch of Wubi is written in Python, making it easier to debug, and uses a simple ctypes wrapper around MFC, allowing it to still be quite small.

It is feature complete and Agostino has been kind enough to provide the following list of major bugs still outstanding:

1) Finalize english text strings (with proper substitutions), possibly
as close as possible to previous ones and test gettext in python (I have
set it up but never actually tested it), I still have a stings that are
developemnt ones.

2) Controls transparency in win32, mostly the issue is lack of decent
documentation on how to do that, I played with a few recipes I found on
the web but my trials were unsuccessful so far

3) Theming, as you pointed out XP themes need to be applied, I have
investigated how to do that:
http://msdn.microsoft.com/en-us/library/ms997646.aspx and there is some
useful code in
http://metalinks.svn.sourceforge.net/viewvc/metalinks/mini_downloader/tr
unk/src/win32/ but need to implement that

4) Bittorrent, it is there but I only tested it separately, I did ask
Steve to add torrents to the metalink, but they are not there, we might
want to exclude bittorrent from the build for this round (also to save
space).

5) CD-boot mode has to be done. All the subtasks are working, so it
mostly involves compiling a list of tasks and testing.

6) I did not include grub2 at the end, but I need to add back the code
to compile grub4dos from source (code is very similar to 8.10, already
in my tree, need to test and commit) as I used prebuilt grub4dos
binaries in the testing stages.

1, 5, 6 should be quick, 4 can be scraped for the time being (or we
could test it briefly and then decide according to the results), 2 and 3
are cosmetic changes. For the rest wubi-python should be already fully
functional and worked in my tests. I will try to finish most of the
above by this w/e.

A few known bugs: download resume on old downloads does not work, I do
not check whether another instance of wubi is already running (I should
add that), I need to check for admin rights, when running wubi on a
system with a pre-existing installation, the pre-existing uninstaller is
started but that window is not shown until the first wubi.exe is killed.
I need to make sure that 8.04/8.10 is detected and uninstalled before
proceeding with 9.04 installation. I have some code to show a "use local
ISO" button during the download progress dialog but that functionality
is not activated at the moment (and might stay that way).

Revision history for this message
Evan (ev) wrote :

More from Agostino:

Yesterday I took care of #5 and #6. While I was on the code I remembered
that when dealing with a CD (as opposed to an ISO), at the moment I copy
the files instead of extracting the ISO. This was an old workaround for
#207137, but that approach is blocked by #243105. At the time I assumed
#243105 would be fixed and I am not sure of the current status of that.
I haven't tested yet the new Wubi with a real CD, but I would expect it
to fail because of that. If fixing #243105 is not viable I will have to
implement ISO extraction in python, which should not bee too difficult,
but is another item on the list.

Revision history for this message
Agostino Russo (ago) wrote :

It is possible to perform ISO extraction from a mounted CD in Windows using high level python file IO functions. So I can reuse existing code almost as is. It is already in my local branch, I need to do a bit more testing and will commit shortly, so that should also be out of the way.

Revision history for this message
Agostino Russo (ago) wrote :

ISO extraction is now in the tree (rev74) together with support for windows theming (rev75). So what is left out is #1 and #2.

Revision history for this message
Agostino Russo (ago) wrote :

#1 and #2 are mostly done too, there are still some glitches and bugs to iron out, but I have dealt with all the points of the above list except for full bittorrent testing (which requires a torrent in the metalink on the server).

Outstanding bugs I am aware of:

* Uninstaller does not work when the uninstaller itself is in the directory to be deleted
* The temporary directory does not get deleted when wubi exits
* The wrong string is used in title of progress page (tasklist name as opposed to tasklist description)
* Resuming download from a previous partial download does not work
* The window is resized differently with XP themes, in particular the vertical image is too high and goes beyond the horizontal line
* Groupbox label should have opaque background
* The checkbox for ISO backup in the uninstallation page has a black background
* Make sure a single instance of wubi is running
* Check admin rights

Revision history for this message
Steve Langasek (vorlon) wrote :

Sorry for the delay in getting the bittorrent into the metalink files - the code is committed now, so the next metalinks should have this.

I'm happy to let this in as an FFe, subject to a couple concerns:

- what's the disk footprint for the new version of Wubi, compared to what we currently have on the ISO?
- it's important that we have this new Wubi in before alpha5 (next week), since Wubi doesn't get very wide user testing outside of milestone images - and even then the coverage is less than ideal.

Revision history for this message
Steve Langasek (vorlon) wrote :

before alpha6, I mean. Sorry, typing malfunction. :)

Revision history for this message
Agostino Russo (ago) wrote :

Steve, the new code is about 1.6-1.7MB compared to about 1.3MB of Wubi + Umenu for the old version. Having python + GUI + download manager + bittorrent + gpg signature verification + ISO extraction in 1.6M is probably already a record... I might be able to shave a few K off in the coming days by playing with compression options (7z has quite an array of flags...) and recoding some dependencies (the main non-python piece of code at the moment, is an embedded version of 7z used for extracting files from ISOs which weights ~100K compressed). I plan to spend some time further optimizing the size after the main remaining bugs are sorted.

To give a definitive number I need to go through the list of dependencies. In practice I create the packaged exe by resolving the python dependencies at compilation time which get bundled, 7zipped and appended to a self-extracting executable which knows how to launch the bundled python code. But given that dependencies are resolved automatically, I need to make sure that nothing is missing, which might be needed in set-ups different from my own (particularly codecs). That goes the other way too, I might also be able to remove some other dependency (https/ssl?). Cannot check that right now, will let you know tonight or in the coming days.

Save the above list, wubi-python has been working for quite some time in terms of core functionality using ISOs and I think that the current version could already be used and tested, so I do not think that alpha6 would be a problem.

Thanks for the torrent by the way and for the FFE.

Revision history for this message
Evan (ev) wrote :

Here's a proposed patch to cdimage to support the new python-based Wubi. I'll apply this when Steve says his concerns about the FFe have been adequately addressed.

Revision history for this message
Steve Langasek (vorlon) wrote :

yes, we can accomodate a 300KB growth in Wubi.

Changed in wubi:
status: New → Confirmed
Revision history for this message
Evan (ev) wrote :

The cdimage change is r725. I've also put in place a new Wubi build (r88). Building a new daily-live now. I'll mark this bug fixed once I verify that it everything is working properly.

Thanks!

Agostino Russo (ago)
Changed in wubi:
status: Confirmed → Fix Released
Revision history for this message
Agostino Russo (ago) wrote :

Steve, I have eliminated SSL support and now the size is at 1.4MB. Can probably squeeze out something more via optimization, but from now on the effort involved will probably not be worth the gain. So I would say that 1.4MB is a good estimate at this stage.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.