Uninstall removes all from c:\ubuntu
Bug #364166 reported by
Bart Kroon
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Release Notes for Ubuntu |
Fix Released
|
High
|
Unassigned | ||
Wubi |
Fix Released
|
Medium
|
Agostino Russo |
Bug Description
In case the c:\ubuntu directory already exists:
- the installer will write new files to it without asking confirmation to the user (small BUG)
- the uninstaller will delete not only the Ubuntu installation but the entire directory c:\ubuntu directory (big BUG)
In my case c:\ubuntu contained the files of a virtual machine image but I can imagine other users having c:\ubuntu directories for different valid reasons. I tried Wubi but ran into https:/
In my opinion and given the quality of Ubuntu in general, the "officially supported" label on Wubi is not yet deserved. Will try CD install now :S
Related branches
Changed in ubuntu-release-notes: | |
importance: | Undecided → High |
status: | New → Triaged |
To post a comment you must log in.
There is some code to avoid conflicts in select_target_dir, but that is only triggered in certain circumstances, and admittedly the logic should have been improved. A possible (untested) patch is attached:
=== modified file 'src/wubi/ backends/ win32/backend. py' (properties changed: -x to +x) backends/ win32/backend. py 2009-04-20 08:37:37 +0000 backends/ win32/backend. py 2009-04-20 17:41:03 +0000
target_ dir.replace( ' ', '_')
target_ dir.replace( '__', '_')
gold_ target_ dir = target_dir exists( target_ dir) \ previous_ target_ dir \ isdir(self. info.previous_ target_ dir): previous_ target_ dir == target_dir: self.info. previous_ target_ dir) previous_ target_ dir = None exists( target_ dir): exists( target_ dir): exists( target_ dir):
self. info.target_ dir = target_dir
log.info( 'Installing into %s' % target_dir)
self. info.icon = join_path( self.info. target_ dir, self.info. distro. name + '.ico')
--- src/wubi/
+++ src/wubi/
@@ -79,17 +79,11 @@
- if os.path.
- and self.info.
- and os.path.
- if self.info.
- rm_tree(
- self.info.
- else:
- for i in range(2, 1000):
- target_dir = gold_target_dir + '.' + str(i)
- if not os.path.
- break
+ if os.path.
+ for i in range(2, 1000):
+ target_dir = gold_target_dir + '.' + str(i)
+ if not os.path.
+ break