[sword-devel] BibleCS Installer

DM Smith dmsmith555 at yahoo.com
Thu Feb 9 05:56:06 MST 2006

I have updated the installer as before.
This now launches readme (if requested) and then the InstallMgr followed 
by Sword.exe (if program run requested)
I think that all the registry keys are correct.
I think that all the links are correct.
I fixed a problem where the InstallMgr --uninstall was called even if 
the user chose to cancel the uninstall.
I added the splash screen to the uninstall.

So, while it does it differently internally, we now have the same 
functionality of the simple installer. StarterPack is next.

There may be a little more that needs to be done along with code 
commenting and simple refactoring, Then I think this is sufficient to 
get a first release out.

Monday, should be a reasonable milestone.

Lynn, I think there are enough hooks in the registry for the discovery 
of Sword to use its files in another project. I am still trying to 
figure out SWORD_PATH and SWORD_HOME.
Troy, please take a critical look at it and see what else must be done 
before a release.

DM Smith wrote:
> I have uploaded a current copy of the installer script that I am 
> working on to:
> http://www.crosswire.org/bibledesktop/biblecs/biblecs/installer/SwordSetup.nsi 
> I have also uploaded the installer:
> http://www.crosswire.org/bibledesktop/biblecs/biblecs/installer/SwordSetup.exe 
> Give it a try and let me know what what you think.
> I will be adding the ability to chose whether to create a Start Menu 
> Group (may already be present), a desktop shortcut and a Quick Launch 
> shortcut. And the launching of the executable and the readme at the 
> end don't work right.
> DM Smith wrote:
>> Troy,
>>    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.
> I am now stubbing with the latest betas in the alpha download area. 
> These require icudt28L.dll and not icudt34dll. The latter is what is 
> in source code control.
>> 2) What are the other files that must be included? And for dlls, what 
>> versions?
>> (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.)
> Rooted at http://www.crosswire.org/bibledesktop/biblecs is the "image" 
> of what the installer uses.
> This is a subset of the checkout Troy mentioned below. However, I used 
> a tag for checking out Sword, not trunk.
> I am not sure of the placement of sword.exe or InstallManager.exe.
> I have placed sword.exe in biblecs/stage and InstallManager.exe in 
> apps/InstallMgr
>> 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.
> I found that the installer icons were taken from NSIS. I am using 
> these directly now and have fixed the mismatch problem. I also have 
> fully branded the installer with the "orange" theme.
>> 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:
>> [biblecs:/trunk/installer]
>> dmsmith=rw
>> 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.
> It still needs to create a couple of keys.
>>    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.
> I have not added the choice for these.
>>    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.
> Shortcut for help now present.
>>    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?
> It appears that the executables require a particular version, so this 
> won't be a problem.
> However, it may still be best to do a "clean" upgrade.
>> 3) It creates an uninstaller that
>>    a) runs InstallManager -uninstall
>>       currently, this is broken
> This now works, but both the readme and the installer come up at the 
> same time rather than serially.
> I think I know a way to fix this.
>>    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,
>>    DM
>> 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.
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page

More information about the sword-devel mailing list