Le 03/06/2015 15:53, RJ Ryan a écrit :
On Tue, Jun 2, 2015 at 7:13 PM, Sébastien Blaisot <mi...@blaisot.org
<mailto:mi...@blaisot.org>> wrote:
Secondly, we have some anoying bugs with windows installer that should
be resolved before releasing 1.12 or they will impact next version
as well:
- When installing 1.12 on top of a previous version installation, old
files from previous version are left. so skins from 1.11 shows up next
to new resizable skins and uninstall entry in the program
uninstallation
control panel shows up "Mixxx 1.11" as well as "Mixxx 1.12". selecting
one of them, regardless of which one, removes the Mixxx
installation and
let the other entry unusable. At least we should detect former
installation and deny installation until the previous version is
uninstalled or (best) add an upgrade path to the installer.
I didn't try, but I think we also have an issue when installing Mixxx
64bits on top of Mixxx 32bits or vice-versa (different installation
directories under windows).
Hm, yes those aren't ideal. I wonder if a quick fix would be to
install to a "Mixxx $VERSION" folder instead of "c:\Program
Files\Mixxx"? It wouldn't fix the 32-bit/64-bit issue but it should be
enough to get us through this release until we can switch to Wix or
something better.
Hi,
I've thought a little about it and came to the conclusion that we have
no easy workaround.
Situation (https://bugs.launchpad.net/mixxx/+bug/1457618):
Installing Mixxx 1.12 on top of Mixxx 1.11 (without uninstalling 1.11
before) leave 1.11 files, especially 1.11 fixed skins, and you end up
with a 1.12 Mixxx version with a mix of new and older skins. Really not
ideal.
Uninstall entry is not cleaned either, and you end up with two Mixxx
uninstall entries in programs control panel, each one removing mixxx and
leaving the other entry non functionnal
What we can do :
1) Have a proper installer with clean upgrade path and modified files
preservation
Pros
- Yeah, this is the cleaner solution
Cons
- This is a huge refactoring of installer, with probably a switch to
Wix, and is not compatible with 1.12 release target
2) detect if mixxx is already installed and forbid installation if it is
We must define what we call "already installed". 2bis will focus on
"installed == installation dir not empty". not ideal. Seems easier with
$INSTDIR\mixxx.exe detection. not perfect but doable.
Pros
- clearly avoids two installation mangle each other, even with 32 and 64
bits
Cons
- Is this at least doable with NSIS ? Not sure
2bis) after installation directory selection in installer, refuse to go
further if directory is not empty
Pros
- No older files
- seems doable with NSIS : http://nsis.sourceforge.net/Check_if_dir_is_empty
Cons
- Due to the bug lp:1457624 it will need user to manually empty their
directory in the 1.11->1.12 upgrade path. Is it acceptable or should we
wait for 1.12 release (which will clean all files on uninstall) and make
it land in next version. But if we wait, that doesn't solve the
immediate problem :(
3) Install Mixxx in a versionned directory (either "Mixxx $VERSION" or
better "Mixxx\$VERSION")
Pros
- Let you install and use different versions at the same time
- no need to worry about files left from earlier version
Cons
- have forward and backward compatibility for preference folder files
(sqlite database) - seems complicated
4) "uninstall & cleanup" older version before installation
Pros
- solve the immediate problem
Cons
- a bit risky as it can delete user's files without notice. I don't know
if we can detect and add a warning before removing file with a "cancel"
button to let a chance to backup files.
My preference go to solution 2 with looking for mixxx.exe in the
installation directory and stopping installation if found.
What do you think of this ?
sb
------------------------------------------------------------------------------
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org
Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel