[sword-devel] BibleCS Installer

L.Allan-pbio paraclete at bibleinverse.org
Tue Feb 7 08:09:05 MST 2006


Your installer is showing great progress. Good work and thanks for getting 
involved.

Some questions and coments:

* I've got test computers with Win98-FE and WinME installed. Both have HKCU 
registry hives, so I'm not clear on your comment about they don't have this 
subhive .... perhaps you (or the nsis page) are referring to the uninstaller 
info, which may be specific to HKLM. Anyway, this makes me inclined to 
suggest that you/we rethink which registry entries to use for detecting 
previous installations .... I would be inclined to advocate maximum usage of 
HKCU, except that BibleCS 1.5.6 used InstallShield and uses:
HKLM

* I'm not clear how you got the MUI_STARTMENU_PAGE to offer the option to 
not write shortcuts .... I suppose I need to stare at the MUI documentation 
closer. Nicely done.

* You've got an !include for WriteEnvStr.nsh, and a section for that, but no 
Components page. Is that silently done then? Are you really intending to 
write the SWORD_PATH environment variable?

* What is your preference on detecting and possibly over-writing a BibleCS 
1.5.6 installation? There is the statement:
InstallDirRegKey HKLM "${PRODUCT_REGKEY}" Path
which resolves to HKLM SOFTWARE\CrossWire\The SWORD Project

sword.exe 1.5.6 used:
HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\sword.exe" "Path"

* I would suggest using more meaningful section names than the Eclipse 
generated sections
Section -Main SEC0000  ---> Section -Main SecWriteFiles
Section -post SEC0001  ---> Section -pose SecWriteRegistryEntries

Section un.Main UNSEC0000  ---> Section un.Main SecUninstallFiles
Section un.post UNSEC0001   ---> Section un.post 
SecUninstallRegistryEntries

* The MUI_FINISHPAGE might have the text "Run InstallManager" rather than 
"Run The SWORD Project"

* I would suggest consideration of having the "Family !define" statements 
and perhaps some of the "Product !define" statements be in separate .nsh 
include files ... a'la:
!include "CrosswireFamilyDefines.nsh"
!include "LcdProjectDefines.nsh"

* Do you have intentions of eventually detecting a prior installation of 
BibleStudy, LcdBible, sword.exe 1.5.6 or earlier, JSword? ... the issue is 
to avoid redundant installation of resources (KJV, WEB, etc.)

* I'm curious about your thoughts/preferences about a "StarterKit" that 
includes a Bible so InstallManager isn't requried to be able to commence 
usage. As it happens now, this SwordSetup installer is "empty" without using 
InstallManager.

* It is possible to have the the MUI_FINISHPAGE reference a function, which 
can have a sequence of .exe's invoked:

  !define MUI_FINISHPAGE_RUN
  !define MUI_FINISHPAGE_RUN_FUNCTION OnFinishPageRun
; more statements here
;--------------------------------
/*
 * Function: OnFinishPageRun
 * Notes: -
 */
Function OnFinishPageRun
SetOutPath $INSTDIR
ExecWait 'InstallManager.exe'
Exec 'sword.exe'
FunctionEnd


----- Original Message ----- 
From: "DM Smith" <dmsmith555 at yahoo.com>
To: "SWORD Developers' Collaboration Forum" <sword-devel at crosswire.org>
Sent: Monday, February 06, 2006 3:33 PM
Subject: Re: [sword-devel] BibleCS Installer


> L.Allan-pbio wrote:
>> From SwordSetup.nis
>>  ;--------------------------------
>>   ; Establish and remember the Start MenuGroup info
>>   !define MUI_STARTMENUPAGE_DEFAULT_FOLDER     "$[PRODUCT_TITLE}"
>>   ; Remember where it is
>>   !define MUI_STARTMENUPAGE_REGISTRY_ROOT      HKLM
>>   !define MUI_STARTMENUPAGE_REGISTRY_KEY       "${PRODUCT_REGKEY}"
>>   !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup
>>  ;--------------------------------
>> This may be a no-no .... HKLM should apparently not be used with 
>> installations because it assumes the end-user doing the installation has 
>> administrator privileges.
> I thought about that, but according to the NSIS site that HKCU is not 
> available under Win9x and WinME.
> See: 
> http://nsis.sourceforge.net/Add_uninstall_information_to_Add/Remove_Programs
>
> If so and we go the HKCU route then we need to add in OS version 
> detection.
> If Win9x then HKLM automatically.
> Else, it should be a choice in the install to install for the current user 
> or for all users.
>
> But if several users on the same machine install to the current user, how 
> would that work? I mean where would the program be installed? Where would 
> the modules be located?
>
> In any "home" installation at least one person has administrator privs. In 
> a company setting, the user may not have admin privs and may even be shut 
> out from doing any installs even HKCU or changing/adding environment 
> variables.
>
> I'm not sure that it is worth trying to install to HKCU. I think perhaps 
> we need to go for the lowest common denominator ;)
>
>>  Ouch .... I hadn't been aware of this, and have always developed 
>> installers that assumed the end-user had admin privilege. I'll do some 
>> more research on this.
>>  See:
>> http://www.microsoft.com/winlogo/software/windowsxp-sw.mspx  item 3.3
>>  http://www.microsoft.com/mspress/books/sampchap/6271.asp
>> Comment: "You're having trouble installing a program for a user with a 
>> limited account"
>>  nsis forum question:
>> http://forums.winamp.com/showthread.php?s=&threadid=237355 
>> <http://forums.winamp.com/showthread.php?s=&threadid=237355>
>>
> _______________________________________________
> 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