[sword-devel] New Install Manager Features

Eeli Kaikkonen eekaikko at mail.student.oulu.fi
Tue Dec 23 08:27:53 MST 2008

Troy A. Griffitts wrote:
> We have always asked frontend developers to warn users before enabling 
> remote install features.  This is now pseudo-enforced in the API by 
> not enabling any remote methods before a call to:
> InstallMgr::setUserDisclaimerConfirmed(true);

Good. I have thought about implementing a dialog with commonly used "[X] 
Don't show this message again" option in BibleTime. It's much better 
than a static text in the main dialog. This will probably make 
implementing it easier/safer.

I presume changes like this make the svn version incompatible with older 
versions. If there's no such function in the old library and using 
remote features requires it, this has to be added to the frontend before 
it can use the new library version.  Right?

> There is now a new method which will allow syncing of a local 
> repository configuration list (InstallMgr.conf) with a master remote 
> source which we will keep at CrossWire and in which we will maintain a 
> list of all know sources for SWORD modules.  The method call is:
> InstallMgr::refreshRemoteSourceConfiguration();
> It's use can be seen in the command line tool:
> sword/utilities/installmgr.cpp
> with the command line option -sc.  You can see your repository 
> configurations before and after with the usual -s option.
> ./installmgr -s
> ./installmgr -sc
> ./installmgr -s
> The actions we can supply in our master list which are currently 
> supported by this new feature are:
> adding new repos
> removing repos
> modifying repos
> leaving manually added user repos untouched
> Please have a go at it and report any positive or adverse findings.

As always, I find using the library difficult without extensive 
documentation. Is it documented in the source? (The KDE svn client can't 
download the code for some reason: "PROPFIND request failed on 
PROPFIND of '/sword/trunk': 405 Method Not Allowed 
(http://svn.crosswire.org)").  Or do I have to read the c++ code to find 
out how it interacts with existing setups? Anyways, this is a huge step 
forwards. I have planned something similar, or at least static 
predefined list, in the frontend side, but this should make it 
unnecessary. Adding sources by hand has always been very clumsy.

Another question: what happens if network doesn't work? As far as I know 
the Sword library has been bad with network interaction. There's no way 
to know what happened if something goes wrong. For example, if a source 
is added manually there's no way to check whether it works and why it 
doesn't work. Is it the client side network connection, or wrong server 
name, or server not responding, or wrong remote directory name... And 
what happens if the network is working and in the middle of some action 
it will be cut off? Does it hang forever or does it return?

--Eeli Kaikkonen

More information about the sword-devel mailing list