[sword-devel] SFTP Support

Greg Hellings greg.hellings at gmail.com
Sat Jan 19 10:14:27 MST 2013


On Tue, Jan 8, 2013 at 2:39 PM, Greg Hellings <greg.hellings at gmail.com>wrote:

> Thanks! I updated CMake as we talked about.
>
> The current SVN HEAD of Xiphos now has support for adding SFTP sources
> through its module manager. Shout-out to Karl (or whoever wrote that
> dialog) for making the code there very straightforward. Just adding a
> source with type "SFTP" in Xiphos' module manager will create the
> necessary entry in InstallMgr.conf and any SFTP sources that SWORD
> reports will act normally.
>

I've also added the ability to create/modify HTTP, HTTPS and SFTP
transports to BibleTime, although it still lacks the ability to specify a
username or password. Support can be found in the branch sword-svn-compat
from the BibleTime repositories. However, it probably will not compile if
your build of SWORD has Troy's check in from earlier this morning.

--Greg


>
> Note that SWORD will silently and harmlessly ignore any
> InstallMgr.conf entries that are SFTPSource entries if it was compiled
> without SFTP support.
>
> --Greg
>
> On Sun, Jan 6, 2013 at 1:29 PM, Troy A. Griffitts <scribe at crosswire.org>
> wrote:
> > Applied.  Thanks Greg, for the original contribution and for taking the
> time
> > to work through the details.
> >
> >
> > On 12/31/2012 03:53 PM, Greg Hellings wrote:
> >
> > Here is the updated patch adding CURLSFTPAVAILABLE support to CMake as
> > well as to the library code. It defaults to assuming no SFTP support
> > if either the curl-config executable cannot be found or if it returns
> > a value other than "1" from the quick detection process we have
> > settled on.
> >
> > Users of Windows builds through either VisualStudio or Borland will
> > need to figure out if curl-config is available on their systems and,
> > if not, come up with another way to detect and support SFTP for
> > clients using those builds. On Linux it is a Bash script, so it might
> > be adaptable to Manfred's XCode system in some way also.
> >
> > For those in the JSword world, I am sure there are SFTP Java clients
> > available which could be leveraged if they wanted to add support for
> > the same functionality to JSword applications.
> >
> > --Greg
> >
> > On Sun, Dec 30, 2012 at 9:11 PM, Troy A. Griffitts <scribe at crosswire.org
> >
> > wrote:
> >
> > OK Greg,
> >
> > I've hacked detection of CURL SFTP into the autotools build (hopefully--
> it
> > works for me).
> >
> > I've added a new compile time define with -DCURLSFTPAVAILABLE to go along
> > with the existing -DCURLAVAILABLE
> >
> > If you'd like to update the sftp patch to conditionally compile support
> in
> > based on this define, that would be cool.  I'll do it myself soon if you
> > don't have time.
> >
> > Troy
> >
> >
> >
> > On 12/28/2012 11:42 AM, Greg Hellings wrote:
> >
> > Further digging with help from our friends has revealed this nugget:
> >
> > $ curl-config --protocols
> >
> > produces a newline-delimited list of protocols that the particular
> > build of libcurl supports. curl-config is a shell script which can be
> > run on the build system and should satisfy both the requirements of
> > native builds and cross-compiling support. We could use this to set a
> > compiler macro indicating support (or not) for SFTP in the target
> > libcurl library.
> >
> > If someone wants to tackle that in the autotools world, I can add
> > detection to CMake as well. A simple command such as
> > $ curl-config --protocols | grep SFTP | wc -l
> > 1
> >
> > in Fedora will result in a value of 1 or greater if SFTP is supported
> > while it should produce 0 if SFTP support is left out. An Ubuntu
> > system produce this output:
> > $ curl-config --protocols | grep SFTP | wc -l
> > 0
> >
> > And it even works for cross-compiling:
> > $ /usr/i686-w64-mingw32/sys-root/mingw/bin/curl-config --protocols |
> > grep SFTP | wc -l
> > 1
> >
> >
> > This appears to be our best way forward if we want to enable
> > compile-time enabling or disabling of this option.
> >
> > --Greg
> >
> > On Mon, Dec 24, 2012 at 8:43 AM, Greg Hellings <greg.hellings at gmail.com>
> > wrote:
> >
> > Troy,
> >
> > On Sun, Dec 23, 2012 at 10:39 PM, Troy A. Griffitts
> > <scribe at crosswire.org> wrote:
> >
> > Dear Greg,
> >
> > Looking to apply this SFTP patch, could you give me some background as
> > to
> > why the check to ignore across all transports for '.' and '..'?
> >
> > Our downloading method runs recursively from the given directory until
> > it runs out of directory depth. FTP servers don't usually seem to
> > return . and .. as valid paths, and the HTTP(S) transport attempts to
> > parse the returned HTML page to avoid the link to the parent
> > directory. But whatever options are passed by cURL to the SFTP
> > transport resulted in it returning . and .. as paths within the
> > current directory. Because '.' came first in the list, the installmgr
> > was running through an infinite loop whenever it tried to pull data
> > from the server.
> >
> > I added it at the level of all transports because we don't want to
> > either loop infinitely on '.' or accidentally pull a whole server
> > recursively by following '..' to the root of the server. It might be a
> > server config option that permits it, but I wanted to avoid the
> > possibility of the InlstallMgr class getting choked up on it.
> >
> > --Greg
> >
> > Thanks,
> >
> > Troy
> >
> >
> >
> >
> > On 12/03/2012 04:06 PM, Greg Hellings wrote:
> >
> > The attached patch will introduce support for SFTPSource transports in
> > the SWORD engine, allowing a user to access remote repositories over
> > SFTP (which is enabled by default when a user enables SSH).
> >
> > --Greg
> >
> >
> >
> > _______________________________________________
> > 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
> >
> >
> >
> > _______________________________________________
> > 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
> >
> > _______________________________________________
> > 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
> >
> >
> > _______________________________________________
> > 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
> >
> >
> >
> > _______________________________________________
> > 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
> >
> >
> >
> > _______________________________________________
> > 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/sword-devel/attachments/20130119/55216d77/attachment-0001.html>


More information about the sword-devel mailing list