artyom-poptsov / guile-ssh

Guile-SSH is a library that provides access to the SSH protocol for GNU Guile programs.
https://memory-heap.org/~avp/projects/guile-ssh
GNU General Public License v3.0
65 stars 13 forks source link
c distributed-computing guile libssh lisp scheme ssh

-- mode: org; --

[[./doc/logo-v2.png]]

Guile-SSH is a library that provides access to the [[https://en.wikipedia.org/wiki/Secure_Shell][SSH protocol]] for programs written in [[https://www.gnu.org/software/guile/][GNU Guile]] interpreter. It is built upon the [[https://www.libssh.org/][libssh]] library.

[[https://github.com/artyom-poptsov/guile-ssh/actions/workflows/guile2.2.yml][https://github.com/artyom-poptsov/guile-ssh/actions/workflows/guile2.2.yml/badge.svg]] [[https://github.com/artyom-poptsov/guile-ssh/actions/workflows/guile3.0.yml][https://github.com/artyom-poptsov/guile-ssh/actions/workflows/guile3.0.yml/badge.svg]] [[https://github.com/artyom-poptsov/guile-ssh/actions/workflows/fedora.yml][https://github.com/artyom-poptsov/guile-ssh/actions/workflows/fedora.yml/badge.svg]] [[https://github.com/artyom-poptsov/guile-ssh/actions/workflows/guix.yml][https://github.com/artyom-poptsov/guile-ssh/actions/workflows/guix.yml/badge.svg]]

Files:

Directories:

Files are usually installed according to the prefix specified to =configure= script, =/usr/local= by default. Building and installing gives you:

Libraries, in =${prefix}/lib=:

Guile modules, in =${GUILE_SITE}/ssh=:

All the modules will be compiled and produced .go files will be installed to =site-ccache= directory which is something like this: =${libdir}/guile/2.0/site-ccache/ssh/=.

Documentation in Info format, in =${prefix}/share/info/=:

Examples, in =${prefix}/share/guile-ssh/examples=:

The library can be installed by the following means:

Thanks for all the people who helped with packaging of Guile-SSH!

Also there is a [[https://hub.docker.com/r/avvp/debian-guile/][Docker image]] based on Debian GNU/Linux that contains the latest version of GNU Guile and Guile-SSH installed -- give it a try!

For a basic explanation of the installation of the package, see the INSTALL file.

But to make the long story short, you can try run the following in the project directory -- those commands will configure, build, check and install Guile-SSH in your system:

+BEGIN_EXAMPLE

$ autoreconf -vif $ ./configure $ make $ make check $ make install

+END_EXAMPLE

Please note that you will need [[https://www.gnu.org/software/automake/][Automake]] 1.12 or later to run self-tests with =make check= (although the library itself can be built with older Automake version such as 1.11, just leave out the =make check= step).

important You probably want to call configure with the =--with-guilesitedir= option so that this package is installed in Guile's default path. But, if you don't know where your Guile site directory is, run =configure= without the option, and it will give you a suggestion.