← Back to team overview

maria-developers team mailing list archive

Re: Windows installer, part 2


I would suggest the basic workflow for the first build (not complete/final
1) unpack archive (that is also a validation of the archive integrity)
2) prompt user for 'basedir' and 'datadir'
3) copy files accordingly
4) prompt user for choice of mini/midi/maxi base configuration and the
service name to use
5) 'promote' (copy + rename) a template to my.ini as defined by user.
6) register service with --defaults-file and service name as defined, add
items to 'Add/remove programs' in Control Panel, start menu, create
7) start service
8) prompt user for root password (and maybe also if remote root access
should be allowed and if anonymous access should be allowed)
9) connect to server as root with empty password (using command line client
or a small standalone executable client compiled with C-API), update
mysql.user table as defined + flush privileges, disconnect
10) done
the steps 4)+5) above are of course those that should be elaborated further
(port, default engine, charset etc - all what is established by
updating/writing startup options in my.ini). But I like the top-down
approach described here: first make a functional thing from start to end -
next detail steps.

On Mon, Oct 19, 2009 at 10:54, Bo Thorsen <bo@xxxxxxxxxxxx> wrote:

> Hi,
> I tried to send this from my askmonty.org address, so it might come twice.
> Fredag 16 oktober 2009 23:18:23 Sergey Petrunya wrote:
> > Thanks everyone for input on the input so far! I believe I've collected
> it
> > all and put into the WL entry:
> > http://askmonty.org/worklog/Server-RawIdeaBin/?tid=55
> >
> > * If there is something missing there, please bring that argument up
> again.
> I would really like to see NSIS used for this package. It is a really good
> install system, and with all the features in part 1, I don't think anything
> else will be easier to use. It will be wasted effort to try and use
> anything
> else or build a script from a bat file or something like that. A simple zip
> file
> that doesn't do any installation is of course the easiest, but that's not
> what
> step #1 describes.
> I have used NSIS to build three installers before, and it has been powerful
> and easy. However, none of the installers I did used as many features as
> this
> installer will. The ones I did were fairly simple.
> One thing it also does, which I haven't seen mention here, is to produce an
> uninstaller script. This is almost as hard to do as an installer. It's not
> produced automatically, but it is part of the NSIS system to create one.
> At the end of this mail, I have copied some of the statements from an
> install
> script as examples of how easy it is to do standard things.
> > * Final call for objections/comments on Step#1. Please voice them now,
> >   otherwise what is described in step #1 may end up implemented.
> One thing I don't see here is how to handle development files. Will there
> be
> one installer at 100MB or two packages? One way to handle it would be to
> have
> a separate installer that is installed with MariaDB, that pulls all the
> files
> from the net.
> Here are a couple of examples from an NSIS script:
> ; Install the license file if chosen
> !ifdef licensefile
>  CreateShortCut "${startmenu}\License.lnk "$INSTDIR\${licensefile}"
> !endif
> ; Add a registry key with the install dir and the uninstaller
> WriteRegStr HKLM "${regkey}" "Install_Dir" "$INSTDIR"
> WriteRegStr HKLM "${uninstkey}" "UninstallString"
> '"$INSTDIR\${uninstaller}"'
> ; Example of an optional install
> IfFileExists "$EXEDIR/${java}" java nojava
> java:
> MessageBox MB_YESNO "Install the Java Runtime Environment?" IDNO nojava
> Exec "$EXEDIR/${java}"
> nojava:
> ; Files are added like this:
> File /a "${srcdir}\somefile"
> ; More files in a generated file with install lines
> !include "${files}"
> Bo.
> _______________________________________________
> Mailing list: https://launchpad.net/~maria-developers
> Post to     : maria-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~maria-developers
> More help   : https://help.launchpad.net/ListHelp