← Back to team overview

maria-developers team mailing list archive

Updated (by Knielsen): Windows installer for MariaDB (55)

 

-----------------------------------------------------------------------
                              WORKLOG TASK
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TASK...........: Windows installer for MariaDB
CREATION DATE..: Wed, 14 Oct 2009, 00:07
SUPERVISOR.....: Monty
IMPLEMENTOR....: Bothorsen
COPIES TO......: 
CATEGORY.......: Server-Sprint
TASK ID........: 55 (http://askmonty.org/worklog/?tid=55)
VERSION........: Server-5.1
STATUS.........: Assigned
PRIORITY.......: 60
WORKED HOURS...: 0
ESTIMATE.......: 0 (hours remain)
ORIG. ESTIMATE.: 0

PROGRESS NOTES:

-=-=(Knielsen - Fri, 14 May 2010, 06:45)=-=-
Version updated.
--- /tmp/wklog.55.old.18466     2010-05-14 06:45:38.000000000 +0000
+++ /tmp/wklog.55.new.18466     2010-05-14 06:45:38.000000000 +0000
@@ -1 +1 @@
-Server-9.x
+Server-5.1

-=-=(Knielsen - Fri, 14 May 2010, 06:45)=-=-
Category updated.
--- /tmp/wklog.55.old.18457     2010-05-14 06:45:28.000000000 +0000
+++ /tmp/wklog.55.new.18457     2010-05-14 06:45:28.000000000 +0000
@@ -1 +1 @@
-Server-RawIdeaBin
+Server-Sprint

-=-=(Knielsen - Fri, 14 May 2010, 06:45)=-=-
Status updated.
--- /tmp/wklog.55.old.18457     2010-05-14 06:45:28.000000000 +0000
+++ /tmp/wklog.55.new.18457     2010-05-14 06:45:28.000000000 +0000
@@ -1 +1 @@
-Un-Assigned
+Assigned

-=-=(Psergey - Sat, 17 Oct 2009, 00:03)=-=-
High-Level Specification modified.
--- /tmp/wklog.55.old.19999     2009-10-17 00:03:11.000000000 +0300
+++ /tmp/wklog.55.new.19999     2009-10-17 00:03:11.000000000 +0300
@@ -79,5 +79,9 @@
 3. Other notes
 --------------
 * MariaDB's logo is the seal. It can be found here:
-http://askmonty.org/wiki/index.php/MariaDB_Logo
+  http://askmonty.org/wiki/index.php/MariaDB_Logo
+* We should make both 32-bit installer and 64-bit installer (the 
+  latter will be possible when we have 64-bit windows binaries)
+* At this point we don't see a need to force a reboot after the installation.
+* The installer should be Vista and Windows7-proof.
 

-=-=(Psergey - Thu, 15 Oct 2009, 23:46)=-=-
High-Level Specification modified.
--- /tmp/wklog.55.old.23061     2009-10-15 23:46:18.000000000 +0300
+++ /tmp/wklog.55.new.23061     2009-10-15 23:46:18.000000000 +0300
@@ -7,28 +7,25 @@
 1.1 Step 1: simple installer 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 An installer package that 
-- Copies files on installation
-- Registers mysqld a service
-- Prompts the user for "essential" configuration options. Preliminary list 
-  of "essential" options:
+- Presents the user with GPL licence
+- Prompts the user for "essential" configuration options:
   * Install directory
    - Data directory (see email from Peter Laursen on maria-developers@ dated
      14-10-2009 about data directory, Vista and UAC)
   * root password
   * default character set
-  * TODO come up with the final list. The criteria for inclusion are: 
-    1. ask for things that are essential to have a working setup as soon as 
-       the installation is complete
-    2. ask for things without answers for which the newbies can get into 
-       trouble.
-
+  * [possibly] sql_mode setting.
 - Checks if the target installation directory, TCP port, or named pipe are 
-  busy. If they are, it asks to remove the previous installation first
-  and aborts. (that is: upgrades are not supported in step#1)
+  busy. If they are, offers to either change these parameters or abort the
+  installation (that is: no support for any kind of upgrades at this point)
+- Copies installation files to appropriate destination
+- Registers mysqld a service
 - Generates appropriate my.cnf file
-- Sets up SQL user with specified password
+- Sets up SQL root user with the specified password
 - Adds start menu items
    - to start the server manually (with --console)
+     (note: starting server manually requires write access to datadir, which
+      not all users will have. what to do?)
    - to start mysql client
    - to edit the my.cnf file.
 - Registers MariaDB to start as a service with the specified parameters.
@@ -53,7 +50,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 - Installer should include configuration wizard that's similar to what MySQL 
   installer does.
-  TODO come up with options 
+  TODO come up with a list of options to set.
 
 1.4 Items not on the wishlist
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-=-=(Psergey - Thu, 15 Oct 2009, 23:40)=-=-
High-Level Specification modified.
--- /tmp/wklog.55.old.22795     2009-10-15 23:40:36.000000000 +0300
+++ /tmp/wklog.55.new.22795     2009-10-15 23:40:36.000000000 +0300
@@ -7,7 +7,8 @@
 1.1 Step 1: simple installer 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 An installer package that 
-- Shows GPL Licence
+- Copies files on installation
+- Registers mysqld a service
 - Prompts the user for "essential" configuration options. Preliminary list 
   of "essential" options:
   * Install directory
@@ -15,27 +16,28 @@
      14-10-2009 about data directory, Vista and UAC)
   * root password
   * default character set
-  * [perhaps] sql_mode setting.
+  * TODO come up with the final list. The criteria for inclusion are: 
+    1. ask for things that are essential to have a working setup as soon as 
+       the installation is complete
+    2. ask for things without answers for which the newbies can get into 
+       trouble.
 
-- Copies files to destination directories
 - Checks if the target installation directory, TCP port, or named pipe are 
   busy. If they are, it asks to remove the previous installation first
   and aborts. (that is: upgrades are not supported in step#1)
-- Generates appropriate my.cnf file (from a template)
-- Sets up SQL root user with specified password
+- Generates appropriate my.cnf file
+- Sets up SQL user with specified password
 - Adds start menu items
    - to start the server manually (with --console)
-     (note: will this work from any user, and on any OS? if not, this might
-      be omitted)
    - to start mysql client
-   - to edit the my.cnf file
-- Registers MariaDB to start as a service with the specified parameters
-- Registers MariaDB as installed software, sets up uninstaller
+   - to edit the my.cnf file.
+- Registers MariaDB to start as a service with the specified parameters.
+- Registers MariaDB as installed software, sets up uninstaller.
   (TODO: should the uninstaller the datadir or leave it? (or ask the user?))
 
 - Creates installation log, and in case of any failures presents the log to
   the user and requests to file it as a bug (How far we should go here depends
-  on how complex and error-prone the installation procedure will end up being).
+  on how complex and error-prone the final installation procedure will be).
 
 1.2 Step 2: Upgrades from MySQL or MariaDB
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-=-=(Psergey - Thu, 15 Oct 2009, 23:40)=-=-
High-Level Specification modified.
--- /tmp/wklog.55.old.22774     2009-10-15 23:40:16.000000000 +0300
+++ /tmp/wklog.55.new.22774     2009-10-15 23:40:16.000000000 +0300
@@ -15,13 +15,9 @@
      14-10-2009 about data directory, Vista and UAC)
   * root password
   * default character set
-  * TODO come up with the final list. The criteria for inclusion are: 
-    1. ask for things that are essential to have a working setup as soon as 
-       the installation is complete
-    2. ask for things without answers for which the newbies can get into 
-       trouble.
+  * [perhaps] sql_mode setting.
 
-- Copies files to destination directory
+- Copies files to destination directories
 - Checks if the target installation directory, TCP port, or named pipe are 
   busy. If they are, it asks to remove the previous installation first
   and aborts. (that is: upgrades are not supported in step#1)
@@ -29,6 +25,8 @@
 - Sets up SQL root user with specified password
 - Adds start menu items
    - to start the server manually (with --console)
+     (note: will this work from any user, and on any OS? if not, this might
+      be omitted)
    - to start mysql client
    - to edit the my.cnf file
 - Registers MariaDB to start as a service with the specified parameters

-=-=(Psergey - Thu, 15 Oct 2009, 23:38)=-=-
High-Level Specification modified.
--- /tmp/wklog.55.old.22618     2009-10-15 23:38:06.000000000 +0300
+++ /tmp/wklog.55.new.22618     2009-10-15 23:38:06.000000000 +0300
@@ -7,8 +7,7 @@
 1.1 Step 1: simple installer 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 An installer package that 
-- Copies files on installation
-- Registers mysqld a service
+- Shows GPL Licence
 - Prompts the user for "essential" configuration options. Preliminary list 
   of "essential" options:
   * Install directory
@@ -22,22 +21,23 @@
     2. ask for things without answers for which the newbies can get into 
        trouble.
 
+- Copies files to destination directory
 - Checks if the target installation directory, TCP port, or named pipe are 
   busy. If they are, it asks to remove the previous installation first
   and aborts. (that is: upgrades are not supported in step#1)
-- Generates appropriate my.cnf file
-- Sets up SQL user with specified password
+- Generates appropriate my.cnf file (from a template)
+- Sets up SQL root user with specified password
 - Adds start menu items
    - to start the server manually (with --console)
    - to start mysql client
-   - to edit the my.cnf file.
-- Registers MariaDB to start as a service with the specified parameters.
-- Registers MariaDB as installed software, sets up uninstaller.
+   - to edit the my.cnf file
+- Registers MariaDB to start as a service with the specified parameters
+- Registers MariaDB as installed software, sets up uninstaller
   (TODO: should the uninstaller the datadir or leave it? (or ask the user?))
 
 - Creates installation log, and in case of any failures presents the log to
   the user and requests to file it as a bug (How far we should go here depends
-  on how complex and error-prone the final installation procedure will be).
+  on how complex and error-prone the installation procedure will end up being).
 
 1.2 Step 2: Upgrades from MySQL or MariaDB
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-=-=(Psergey - Thu, 15 Oct 2009, 16:34)=-=-
High-Level Specification modified.
--- /tmp/wklog.55.old.3919      2009-10-15 16:34:22.000000000 +0300
+++ /tmp/wklog.55.new.3919      2009-10-15 16:34:22.000000000 +0300
@@ -81,6 +81,6 @@
 
 3. Other notes
 --------------
-* MySQL's logo is the seal. It can be found here:
+* MariaDB's logo is the seal. It can be found here:
 http://askmonty.org/wiki/index.php/MariaDB_Logo
 

-=-=(Bothorsen - Thu, 15 Oct 2009, 15:40)=-=-
High-Level Specification modified.
--- /tmp/wklog.55.old.1396      2009-10-15 15:40:03.000000000 +0300
+++ /tmp/wklog.55.new.1396      2009-10-15 15:40:03.000000000 +0300
@@ -81,6 +81,6 @@
 
 3. Other notes
 --------------
-* MySQL's logo is the seal (see e.g. here: https://code.launchpad.net/maria),
-  Bo Thorsen has the latest revision of the picture in various formats.
+* MySQL's logo is the seal. It can be found here:
+http://askmonty.org/wiki/index.php/MariaDB_Logo
 

	------------------------------------------------------------

		-=-=(View All Progress Notes, 18 total)=-=-
	http://askmonty.org/worklog/index.pl?tid=55&nolimit=1


DESCRIPTION:

We need Windows Installer package for MariaDB.


HIGH-LEVEL SPECIFICATION:



Not a spec so far but a list of points to consider:

1. Installer wishlist (user POV)
--------------------------------
>From the user point of view:

1.1 Step 1: simple installer 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
An installer package that 
- Presents the user with GPL licence
- Prompts the user for "essential" configuration options:
  * Install directory
   - Data directory (see email from Peter Laursen on maria-developers@ dated
     14-10-2009 about data directory, Vista and UAC)
  * root password
  * default character set
  * [possibly] sql_mode setting.
- Checks if the target installation directory, TCP port, or named pipe are 
  busy. If they are, offers to either change these parameters or abort the
  installation (that is: no support for any kind of upgrades at this point)
- Copies installation files to appropriate destination
- Registers mysqld a service
- Generates appropriate my.cnf file
- Sets up SQL root user with the specified password
- Adds start menu items
   - to start the server manually (with --console)
     (note: starting server manually requires write access to datadir, which
      not all users will have. what to do?)
   - to start mysql client
   - to edit the my.cnf file.
- Registers MariaDB to start as a service with the specified parameters.
- Registers MariaDB as installed software, sets up uninstaller.
  (TODO: should the uninstaller the datadir or leave it? (or ask the user?))

- Creates installation log, and in case of any failures presents the log to
  the user and requests to file it as a bug (How far we should go here depends
  on how complex and error-prone the final installation procedure will be).

1.2 Step 2: Upgrades from MySQL or MariaDB
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Same as above but with handling of the case where MySQL has been already
  installed:
  - offer to replace MySQL.
  - upgrade the data directory (todo we should sort out if anything/what is
    needed for this).
  - Uninstall MySQL
  - Install MariaDB.

1.3 Step 3: Configuration wizard
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Installer should include configuration wizard that's similar to what MySQL 
  installer does.
  TODO come up with a list of options to set.

1.4 Items not on the wishlist
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is a list of things that one might want an installer to do but that are 
out of scope of this WL entry:
* Calibration of my.cnf parameters based on available memory, number of CPUs,
  etc.


2. Installer wishlist (developer POV)
-------------------------------------
* Some "installshield-like" tool that's easy to use (suggestion by Webyog: 
  NSIS)
* Installation procedure source should reside in MariaDB source repository
* Installation procedure source file is better to be in human-readable text 
  format.
* It should be possible to automate creation of the installer package, in a way
  that can be run from buildbot (e.g. the installer package build process
  should print messages to its stdout)

* Any suggestions on how can one automatically test the installation package? 
  (for example, we'll want to start the installer, install, check that
  installation succeeded, then start the server, run some commands, then
  uninstall. Any ways to achieve that?)

3. Other notes
--------------
* MariaDB's logo is the seal. It can be found here:
  http://askmonty.org/wiki/index.php/MariaDB_Logo
* We should make both 32-bit installer and 64-bit installer (the 
  latter will be possible when we have 64-bit windows binaries)
* At this point we don't see a need to force a reboot after the installation.
* The installer should be Vista and Windows7-proof.


ESTIMATED WORK TIME

ESTIMATED COMPLETION DATE
-----------------------------------------------------------------------
WorkLog (v3.5.9)