MySQL 4.1 setup built with the WiX toolset.


I was just sent this link to an article about the new features in MySQL 4.1.  To quote the part of the article I personally found most interesting:

Microsoft has included an improved version of their Microsoft Windows Installer (MSI) in the recent versions of Windows. Using the MSI has become the de-facto standard for application installations on Windows 2000 and Windows XP. The new MySQL server installer now also makes use of this technology to provide a smoother and more flexible installation progress.

Further, Microsoft has introduced the WiX (Windows Installer XML) toolset recently. It is the first, highly acknowledged Open Source project from Microsoft. We switched to WiX for two reasons. First, it is an Open Source project and second, it allows us to handle the complete Windows engineering process in a flexible way with scripts.

I have a lot of respect for the MySQL team.  They always seemed to be smart about building what their customers needed then added necessary features over time.  I really enjoyed working with MySQL back in university on a couple class projects.  I can’t tell you how happy I am that the MySQL team picked the Windows Installer XML toolset.  I’m especially happy they picked the WiX toolset for the two reasons they list.

Finally, I just wanted to comment that even though I’m not big on UI during installation, the screenshots they provide are particularly snazzy looking.  Just goes to prove that you can do really nice UI with the WiX toolset if you’re willing to put the effort in.  Again, fundamentally very cool.

Comments (16)

  1. That is impressive. The MySQL project has definitely come a long way for support Windows (whether that’s just running or installing on) since my Uni days as well.

    I wonder if this will spur more open source projects to use WiX as well.

  2. Chui Tey says:

    I thought Microsoft recommended that passwords not be set in properties as they can get cached, or leaked.

  3. I thought this would make a very interesting sample (as these are hard to find currently); so I downloaded the latest sources (mysql-4.1.5-gamma-win-src.zip), but alas there is no .wxs file to be found.

    Does anyone know if it is available somewhere ?

  4. Jonathan Perret says:

    Oh, and re-reading the article carefully, it does not seem like the Configuration Wizard (whose UI you liked so much) is an MSI installer :

    [quote]

    When you are using the new installer you will notice a checkbox that is shown on the "Setup Complete Successfully" page. This checkbox is labelled "Configure the MySQL Server now" and is checked by default.

    When the checkbox is checked the new MySQL Server Instance Configuration Wizard will be launched after the installation has been completed successfully and you press the [Finish] button.

    [/quote]

  5. Jonathan,

    On closer inspection, it appears you are correct. However, the UI in the MSI file looks exactly like that post-install configuration tool. The identical UI styling is why I thought they were one in the same.

    In any case, the dialogs I point at above aren’t in the acutal MSI file but the dialogs in the MSI file look just as good. I’m still impressed.

  6. Hmm. I suspect the dialogs are a rip from an InstallShield project. A diff of the dialogs table makes an almost identical match. I’m sure InstallShield would be flattered. :-)

  7. Vagmi says:

    InstallShield has some pretty snazzy dialogs. I personally have learnt a lot about MSI dialogs by "Dark"ing InstallShield packages.

  8. ZippyV says:

    Is anyone going to make an editor for WiX, so we can finally make a nice msi-gui like in vb.net?

  9. "But what we realized that we only needed the graphical designer part of these tools to produce the prototype MSI file," Wagner told internetnews.com. "For this ‘design’ part, we chose InstallShield X simply because our developers were familiar with it and sure that it could do the job we needed."

    http://www.internetnews.com/dev-news/article.php/3419551

    So apparently they used InstallShield X as UI designer for their WiX project.

    The article continues:

    Beyond the design needs, he said Microsoft’s WiX fulfilled a particular role in the installer development process. "Using WiX then enabled us to convert the MSI into XML [plain text]," Wagner explained. "Having the installer files in XML allows us to have greater control over the installer, and to store the XML file in our SCM, Bitkeeper."

    Which I find a strange reason, since InstallShield can store the project file in XML format as well. InstallShield 10.5 also has built in MySQL support to create databases at install time (currently in beta).

    But I understand that the MySQL team preferred an open source solution.

  10. Stefan,

    Thanks for the link to that article. It was a great read.

    The use of InstallShield to do a lot of the initial design doesn’t surprise me. Those who are comfortable with InstallShield tend to stick with it for their initial MSI design. Then I typically see groups switch to just editing the .wxs source files by hand for long term maintenance. I haven’t looked at the InstallShield XML format, but what I’ve heard from others is that the WiX schema is far easier for humans to grok.

    Honestly, until a good editor for WiX is available (especially a good UI editor), I expect there will be a number of people converting projects built in one of the popular design tools into WiX source code. That’s one of the reasons we continue to (slowly) improve the decompiler.

    But who knows what the future holds? <smile/>

  11. Andrew Dunstan says:

    The installer for the new Windows port of PostgreSQL is using Wix too, and has for some time. See http://pgfoundry.org/projects/pginstaller/

  12. Brian says:

    What would like to know if anyone has tried downloading the wix source from sourceforge lately and tried building it? The last time I tried it the build was getting compile error.

  13. Brian,

    If you’re having problems, please do contact the wix-users@lists.sourceforge.net mailing list with details about the problem. It is very possible you’ve found a bug and we’d love to have it tracked and fixed quickly. Thanks.

  14. Mike Hillyer says:

    In response to Jonathan Parret, the .wxs file will eventually be added to the public Bitkeeper repositories.

  15. Jeff Pierson says:

    There is an article about this on news.com <a href="http://news.com.com/MySQL+to+make+use+of+Microsoft+code/2100-7344_3-5406102.html?tag=nefd.top">here</a&gt;.

    I don’t think that the author quite understands what is going on.

  16. Mike Zinner says:

    If someone is interested to see how we use WiX in our build process, please clone this repos:

    bk clone bk://mysql.bkbits.net/mysql-server-setup

    The WiX files are in mysql-server-setupsourcewix

    I also should mention the other repositories that contain the Configuration Wizard and the SignUp Wizard (not using Wix).

    bk clone bk://mysql.bkbits.net/mysql-instance-config

    bk clone bk://mysql.bkbits.net/mysql-com-sign-up

    The original plan was to do everything in WiX and just use CustomActions, but due to the lack of time we had to implement the other Wizards nativly in Delphi. I hope that we can switch to a WiX only setup for MySQL 5.0.

    And, yes, it is true that we dark-end from a Installshield project. Not Installshield X but the one that ships with Delphi.

    We just cleaned up the code, splitted it into three files, mysql_server.xml, mysql_server_fragment.xml and mysql_common_ui.xml and added the custom code needed.

    I want to thank Rob for the work he has done on the WiX toolset – we were able to automate and simplify our build process on windows which saves us a *lot* of time and fret. Keep the great work!

    p.s. I’m glad you like my designs 😉