[Maria-developers] Windows installer
Hi everyone, I have been looking at getting our binary windows distribution back on track. One of the options would be to create the zip file like we did earlier. Another way would be to create a proper windows installer. For this, there are several options: NSIS, WIX, etc. I spent a bit of time investigating the CPack parts of CMake. And during the investigation, I managed to pretty much write an entire installer. It was quite easy. The way this works is to add INSTALL instructions in the CMakeFiles.txt, plus a bit of extra information for building the installer package. You can see this in the patch I have attached. With the patch applied, you have to install NSIS (http://nsis.sourceforge.net) and add it to the path. Build MariaDB in release, and run "cpack" in the MariaDB tree. It's NSIS based because this seems to be the one cpack works best with. The question is what direction to continue in. I'd appreciate some feedback on this, because I'm not certain if it's the right way to go. It has been pretty easy so far, so I'm pretty happy to continue with it. IMHO, the most important thing not implemented in this installer yet is to set up MariaDB as a service. I'm going to focus on getting Windows running in KVM for our buildbot system now. And then I'll get back to this later. Cheers, Bo Thorsen.
3 points/questions: 1) NSIS should be bundled. 2) And not installing as a service never was the idea. 3) Will this installer handle upgrading too? Peter Webyog On Mon, May 10, 2010 at 12:55, Bo Thorsen <bo@askmonty.org> wrote:
Hi everyone,
I have been looking at getting our binary windows distribution back on track. One of the options would be to create the zip file like we did earlier.
Another way would be to create a proper windows installer. For this, there are several options: NSIS, WIX, etc. I spent a bit of time investigating the CPack parts of CMake. And during the investigation, I managed to pretty much write an entire installer. It was quite easy.
The way this works is to add INSTALL instructions in the CMakeFiles.txt, plus a bit of extra information for building the installer package. You can see this in the patch I have attached.
With the patch applied, you have to install NSIS ( http://nsis.sourceforge.net) and add it to the path. Build MariaDB in release, and run "cpack" in the MariaDB tree. It's NSIS based because this seems to be the one cpack works best with.
The question is what direction to continue in. I'd appreciate some feedback on this, because I'm not certain if it's the right way to go. It has been pretty easy so far, so I'm pretty happy to continue with it.
IMHO, the most important thing not implemented in this installer yet is to set up MariaDB as a service.
I'm going to focus on getting Windows running in KVM for our buildbot system now. And then I'll get back to this later.
Cheers,
Bo Thorsen.
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
Den 10-05-2010 10:23, Peter Laursen skrev:
3 points/questions:
1) NSIS should be bundled.
How do you mean? It's building a standalone installer, nsis is not needed for installation. It's only needed if you build the installer package.
2) And not installing as a service never was the idea.
It should be installed as a service, but that's not done yet.
3) Will this installer handle upgrading too?
It should :-) I know you did a lot of work on an installer as well. How did you do it, and how far did you get? It might be that I'd continue with your work instead of this. Bo.
On Mon, May 10, 2010 at 12:55, Bo Thorsen <bo@askmonty.org <mailto:bo@askmonty.org>> wrote:
Hi everyone,
I have been looking at getting our binary windows distribution back on track. One of the options would be to create the zip file like we did earlier.
Another way would be to create a proper windows installer. For this, there are several options: NSIS, WIX, etc. I spent a bit of time investigating the CPack parts of CMake. And during the investigation, I managed to pretty much write an entire installer. It was quite easy.
The way this works is to add INSTALL instructions in the CMakeFiles.txt, plus a bit of extra information for building the installer package. You can see this in the patch I have attached.
With the patch applied, you have to install NSIS (http://nsis.sourceforge.net) and add it to the path. Build MariaDB in release, and run "cpack" in the MariaDB tree. It's NSIS based because this seems to be the one cpack works best with.
The question is what direction to continue in. I'd appreciate some feedback on this, because I'm not certain if it's the right way to go. It has been pretty easy so far, so I'm pretty happy to continue with it.
IMHO, the most important thing not implemented in this installer yet is to set up MariaDB as a service.
I'm going to focus on getting Windows running in KVM for our buildbot system now. And then I'll get back to this later.
Cheers,
Bo Thorsen.
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net <mailto:maria-developers@lists.launchpad.net> Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
1) I did not do any work really. I just commented on the workflow of such (what conditions should be checked, what files the installer should copy and where, update registry with service details, uninstallation information etc. etc.). But discussion stopped months ago - probably because something else got focus. 2) I understand that this is about getting "binary windows distribution back on track". Maybe I misunderstood, but with a binary and installable version there should not be any need for anything else than the installer itself (and Windows of course). Did you only mean that NSIS shared libraries will need to be installed to build a distro with installer (ie. developers will need it)? That is clear of course, but end users should not need to install anything in advance to installing MariaDB. It should install as the first program on a fresh Windows installation. BTW: I think the installer should not replace the zipped distro. It is not OR - it is AND. One reason is that you may want to grab a file without actually installing. Also do not forget to test on Vista and Win7. Do not take for granted that it will work just be cause it does on XP (or rather it will work, but Windows may print error messages to user during install). Most important every installer will have to register an uninstaller - if not Vista+ will complain that 'this program was not installed correctly'. And that is a problem actually when using a NSIS-based installer for upgrading! We ourselves had to do a very dirty hack to get rid of those popup messages (that are very confusing to users) when upgrading SQLyog and MONyog on those systems. I can ask Sayan here to provide more details about this. Peter On Mon, May 10, 2010 at 13:56, Bo Thorsen <bo@askmonty.org> wrote:
Den 10-05-2010 10:23, Peter Laursen skrev:
3 points/questions:
1) NSIS should be bundled.
How do you mean? It's building a standalone installer, nsis is not needed for installation. It's only needed if you build the installer package.
2) And not installing as a service never was the idea.
It should be installed as a service, but that's not done yet.
3) Will this installer handle upgrading too?
It should :-)
I know you did a lot of work on an installer as well. How did you do it, and how far did you get? It might be that I'd continue with your work instead of this.
Bo.
On Mon, May 10, 2010 at 12:55, Bo Thorsen <bo@askmonty.org
<mailto:bo@askmonty.org>> wrote:
Hi everyone,
I have been looking at getting our binary windows distribution back on track. One of the options would be to create the zip file like we did earlier.
Another way would be to create a proper windows installer. For this, there are several options: NSIS, WIX, etc. I spent a bit of time investigating the CPack parts of CMake. And during the investigation, I managed to pretty much write an entire installer. It was quite easy.
The way this works is to add INSTALL instructions in the CMakeFiles.txt, plus a bit of extra information for building the installer package. You can see this in the patch I have attached.
With the patch applied, you have to install NSIS (http://nsis.sourceforge.net) and add it to the path. Build MariaDB in release, and run "cpack" in the MariaDB tree. It's NSIS based because this seems to be the one cpack works best with.
The question is what direction to continue in. I'd appreciate some feedback on this, because I'm not certain if it's the right way to go. It has been pretty easy so far, so I'm pretty happy to continue with it.
IMHO, the most important thing not implemented in this installer yet is to set up MariaDB as a service.
I'm going to focus on getting Windows running in KVM for our buildbot system now. And then I'll get back to this later.
Cheers,
Bo Thorsen.
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net <mailto:maria-developers@lists.launchpad.net>
Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
Den 10-05-2010 10:51, Peter Laursen skrev:
1) I did not do any work really. I just commented on the workflow of such (what conditions should be checked, what files the installer should copy and where, update registry with service details, uninstallation information etc. etc.). But discussion stopped months ago - probably because something else got focus.
Ok, that's good to know. Then I didn't miss an opportunity to save some work.
2) I understand that this is about getting "binary windows distribution back on track". Maybe I misunderstood, but with a binary and installable version there should not be any need for anything else than the installer itself (and Windows of course). Did you only mean that NSIS shared libraries will need to be installed to build a distro with installer (ie. developers will need it)? That is clear of course, but end users should not need to install anything in advance to installing MariaDB. It should install as the first program on a fresh Windows installation.
This produces a single exe file with everything in it. Nothing else is needed.
BTW: I think the installer should not replace the zipped distro. It is not OR - it is AND. One reason is that you may want to grab a file without actually installing.
I strongly disagree with this. The zip file installation is something I've never seen outside the MySQL world. IMHO it's just extra work with no benefit.
Also do not forget to test on Vista and Win7. Do not take for granted that it will work just be cause it does on XP (or rather it will work, but Windows may print error messages to user during install).
I have all of these three here and test on all of them.
Most important every installer will have to register an uninstaller - if not Vista+ will complain that 'this program was not installed correctly'. And that is a problem actually when using a NSIS-based installer for upgrading! We ourselves had to do a very dirty hack to get rid of those popup messages (that are very confusing to users) when upgrading SQLyog and MONyog on those systems. I can ask Sayan here to provide more details about this.
The CPack system automatically produces an uninstaller as well, which was a pleasant surprise. Upgrading is one of two important things I really haven't done any work on yet. (Install as a service being the other.) I do want to modify the uninstaller later, though. It's not supposed to remove the database files before asking the user if this is really correct or not. I'm sure an update will also just overwrite your database, which is completely wrong. As I said, it's still a work in progress. Bo.
On Mon, May 10, 2010 at 13:56, Bo Thorsen <bo@askmonty.org <mailto:bo@askmonty.org>> wrote:
Den 10-05-2010 10:23, Peter Laursen skrev:
3 points/questions:
1) NSIS should be bundled.
How do you mean? It's building a standalone installer, nsis is not needed for installation. It's only needed if you build the installer package.
2) And not installing as a service never was the idea.
It should be installed as a service, but that's not done yet.
3) Will this installer handle upgrading too?
It should :-)
I know you did a lot of work on an installer as well. How did you do it, and how far did you get? It might be that I'd continue with your work instead of this.
Bo.
On Mon, May 10, 2010 at 12:55, Bo Thorsen <bo@askmonty.org <mailto:bo@askmonty.org> <mailto:bo@askmonty.org <mailto:bo@askmonty.org>>> wrote:
Hi everyone,
I have been looking at getting our binary windows distribution back on track. One of the options would be to create the zip file like we did earlier.
Another way would be to create a proper windows installer. For this, there are several options: NSIS, WIX, etc. I spent a bit of time investigating the CPack parts of CMake. And during the investigation, I managed to pretty much write an entire installer. It was quite easy.
The way this works is to add INSTALL instructions in the CMakeFiles.txt, plus a bit of extra information for building the installer package. You can see this in the patch I have attached.
With the patch applied, you have to install NSIS (http://nsis.sourceforge.net) and add it to the path. Build MariaDB in release, and run "cpack" in the MariaDB tree. It's NSIS based because this seems to be the one cpack works best with.
The question is what direction to continue in. I'd appreciate some feedback on this, because I'm not certain if it's the right way to go. It has been pretty easy so far, so I'm pretty happy to continue with it.
IMHO, the most important thing not implemented in this installer yet is to set up MariaDB as a service.
I'm going to focus on getting Windows running in KVM for our buildbot system now. And then I'll get back to this later.
Cheers,
Bo Thorsen.
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net <mailto:maria-developers@lists.launchpad.net> <mailto:maria-developers@lists.launchpad.net <mailto:maria-developers@lists.launchpad.net>>
Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
W dniu 2010-05-10 10:59, Bo Thorsen pisze:
Den 10-05-2010 10:51, Peter Laursen skrev:
BTW: I think the installer should not replace the zipped distro. It is not OR - it is AND. One reason is that you may want to grab a file without actually installing.
I strongly disagree with this. The zip file installation is something I've never seen outside the MySQL world. IMHO it's just extra work with no benefit.
zip file is the easiest option to add new MySQL/MariaDB version to already installed WAMP package like WampServer. All you need to do is unpack contents to a directory, make a copy of single configuration file, and all service starting/switching/stopping is done by Wamp manager. (BTW: If any of you would like to install MariaDB with WampServer, make sure MariaDB's directory name starts with 'mysql'. The manager is hard coded to only look into such directories.) Michal
Hi!
"Bo" == Bo Thorsen <bo@askmonty.org> writes:
<cut>
BTW: I think the installer should not replace the zipped distro. It is not OR - it is AND. One reason is that you may want to grab a file without actually installing.
Bo> I strongly disagree with this. The zip file installation is something Bo> I've never seen outside the MySQL world. IMHO it's just extra work with Bo> no benefit. There is some big benefit of the 'zip' file: You can install this anywhere and even have several installations of different MariaDB versions at the same time. This is not something you can easily do with an installer. Remember that MySQL is more targeted developers, not only 'normal' end users, and developers have more demands than normal users. Conclusion: I think we should have both. <cut> Bo> Upgrading is one of two important things I really haven't done any work Bo> on yet. (Install as a service being the other.) Bo> I do want to modify the uninstaller later, though. It's not supposed to Bo> remove the database files before asking the user if this is really Bo> correct or not. I'm sure an update will also just overwrite your Bo> database, which is completely wrong. Agree! Regards, Monty
Hi, Bo! On May 10, Bo Thorsen wrote:
Hi everyone,
I have been looking at getting our binary windows distribution back on track. One of the options would be to create the zip file like we did earlier.
Another way would be to create a proper windows installer. For this, there are several options: NSIS, WIX, etc. I spent a bit of time investigating the CPack parts of CMake. And during the investigation, I managed to pretty much write an entire installer. It was quite easy.
The way this works is to add INSTALL instructions in the CMakeFiles.txt, plus a bit of extra information for building the installer package. You can see this in the patch I have attached.
With the patch applied, you have to install NSIS (http://nsis.sourceforge.net) and add it to the path. Build MariaDB in release, and run "cpack" in the MariaDB tree. It's NSIS based because this seems to be the one cpack works best with.
The question is what direction to continue in. I'd appreciate some feedback on this, because I'm not certain if it's the right way to go. It has been pretty easy so far, so I'm pretty happy to continue with it.
You're the windows developer, so it's up to you. If you can make a nicely and professionally looking MariaDB installer with cpack and NSIS - go on, do it with cpack and NSIS. How it'll work with mysql-next tree, where cmake is used on linux too ? Will these windows INSTALL instructions confuse cmake on linux ? Regards, Sergei
Hi Sergei, Den 10-05-2010 11:24, Sergei Golubchik skrev:
You're the windows developer, so it's up to you.
Not really. I want to build a good package on Windows. For that, I need input from others. However, it does look like I'm on track for now.
If you can make a nicely and professionally looking MariaDB installer with cpack and NSIS - go on, do it with cpack and NSIS.
How it'll work with mysql-next tree, where cmake is used on linux too ? Will these windows INSTALL instructions confuse cmake on linux ?
The INSTALL instructions are used by cpack. However, I think cmake might use them on make (or gmake/nmake) output to build the make install target as well. We'll have to look at that. If it becomes a problem, I'll put if(windows) guards around the install instructions. Bo.
On Mon, May 10, 2010 at 10:25 AM, Bo Thorsen <bo@askmonty.org> wrote:
Hi everyone,
I have been looking at getting our binary windows distribution back on track. One of the options would be to create the zip file like we did earlier.
Another way would be to create a proper windows installer. For this, there are several options: NSIS, WIX, etc. I spent a bit of time investigating the CPack parts of CMake. And during the investigation, I managed to pretty much write an entire installer. It was quite easy.
As said by others, we want both Zip file and installer. Zip file should be easy (what was done in the beta releases was just to manually build and zip) so this is the first task to complete in your plan.
The question is what direction to continue in. I'd appreciate some feedback on this, because I'm not certain if it's the right way to go. It has been pretty easy so far, so I'm pretty happy to continue with it.
IMHO, the most important thing not implemented in this installer yet is to set up MariaDB as a service.
Regarding updates, this is not planned for the first iteration: http://askmonty.org/worklog/Server-RawIdeaBin/?tid=55 henrik -- email: henrik.ingo@avoinelama.fi tel: +358-40-5697354 www: www.avoinelama.fi/~hingo book: www.openlife.cc
participants (6)
-
Bo Thorsen
-
Henrik Ingo
-
Michael Widenius
-
Michał Jarosz
-
Peter Laursen
-
Sergei Golubchik