[sword-devel] BibleCS Installer

DM Smith dmsmith555 at yahoo.com
Sat Feb 4 08:17:28 MST 2006

    Lynn and I have been working on this. Our approach has been a little 
different. My goal is to get a basic installer for just BibleCS and his 
has been to create a family of installers for all derivative Sword API 
Windows applications. These are not at odds with each other and I think 
we are nearly there with at least a first pass.

To finish the first pass, we need a couple of things:
1) All the compile artifacts of the build (e.g. dlls, exes, ...) as I 
don't have a C++ compile environment. Preferably, these should be what 
will be used by the installer. Also, if you could give me the paths for 
these using the checkout scheme below that would be great. Currently, I 
am stubbing this with 1.5.6.
2) What are the other files that must be included? And for dlls, what 
(For 1 and 2, if you could create an directory layout of what the final 
install should be like that might be easier. Essentially, this would be 
a zip of what the installation directory would contain right after 
installation when no modules are installed.)
3) What is the minimum set of files to provide the Sword API for other 
applications? (I want to create a SwordAPI installer that will install 
the absolute minimum that a derivative application must have present. 
This will then be called by those applications installers, if the 
SwordAPI has not been installed.) Does it need icudt34.dll? Does it need 
the install manager? How about all the subdirectories in biblecs/.../stage/?
4) In an earlier note, Lynn gave a path to a patch to allow for the 
modules to be located elsewhere. Is this something that can be included 
in 1.5.8 or should it wait for a later release.
5) NSIS needs (un)installer icons that work. I am terrible at artwork, 
so I am not the one to do it. NSIS requires that the size of the 
installer and uninstaller icons be the same.

Can you give me check in privs for the installer directory? Then I can 
work in there. I think that the following addition to the svn 
authorization file, would work:

Right now this is where the installer is at:
1) Offers the user a choice as to where to install the program and what 
Start Menu Group to create.
    It defaults to the same default locations that 1.5.6 uses.
2) The installation
    a) Installs the files
    b) creates the registry entries
       i) The uninstaller is listed in Add/Remove Programs
       ii) Keys and values are created so that other programs can 
discover where Sword is installed.
    c) creates a desktop shortcut
        Does not offer the user a choice about this one.
        Should also probably install to the Quick Start task bar. And it 
should be a choice, too.
    d) creates shortcuts in the Start Menu for
        i) the Sword program
        ii) the Sword Install Manager
        iii) the website
        iv) the uninstaller
       It probably should also create a shortcut to help.
    e) It adds/changes SWORD_HOME environment variable to point to the 
installation directory.
    The installer assumes that prior versions have been deleted. This 
may be bad.
    Are there any files that *must* be removed for the install to the 
same directory to be successful?
    For example, is it bad to have icudtXX.dll and icudtYY.dll in the 
same directory?
3) It creates an uninstaller that
    a) runs InstallManager -uninstall
       currently, this is broken
    b) Removes all files that the installer installed. Leaving all files 
that the program or user created.
    c) Removes all shortcuts (that have not been moved)
    c) Removes empty folders
    d) Removes registry entries.
    The uninstaller does not determine whether there are any dependent, 
derivative applications and act appropriately.
    These will have a registry key located under HKLM\software\CrossWire.
    It should be the responsibility of the last removed derivative 
application to remove the SwordAPI.

Is there anything missing from the above? Must haves? Should haves? Nice 
to have?

The last thing needed before the installer(s) is(are) released is robust 
testing. I know there are somethings that don't work yet and some of the 
paths are wrong. And there may be some things, I won't find because I 
always test the same small set of paths! So after I get the bugs out 
that I know, testing help would be appreciated.

In His Service,

Troy A. Griffitts wrote:
> Hey guys,
>    I spend today trying to build a new installer for the upcoming 
> release of BibleCS.  I'm abandoning the commercial InstallShield 
> installer we currently use and am trying to make everything work using 
> the free NullSoft installer.  I gave up after trying to learn the 
> scripting language and downloaded Eclipse and the NullSoft Installer 
> plugin for Eclipse.  I used a wizard and got it pretty far.  Had to 
> hand edit the generated script to get it to compile.
> There are a few things missing:
>    Launch Readme.txt and wait for close BEFORE launching 
> InstallManager.exe
>    Registry keys correct so Windows Module self-installers (website, 
> module download, windows) know where to unzip themselves.
>    Uninstaller successfully launching "$INSTDIR/InstallManager.exe 
> -uninstall" to uninstall all modules
>    I've checked everything in: 
> https://crosswire.org/svn/biblecs/trunk/installer   so if you'd like 
> to give it a shot, please help yourself!  It expects the normal: 
> sword, icu-sword, biblecs directories all checked out at the same level.
> svn co https://crosswire.org/svn/sword/trunk sword
> svn co https://crosswire.org/svn/icu-sword/trunk icu-sword
> svn co https://crosswire.org/svn/biblecs/trunk biblecs
>    I'd really welcome the help with this.
>       -Troy.

More information about the sword-devel mailing list