update the licence text and proide an explicit copy of LGPL2.1 and GPL3
[deb_libnfs.git] / README
... / ...
CommitLineData
1LIBNFS is a client library for accessing NFS shares over a network.
2
3LIBNFS offers three different APIs, for different use :
41, RAW : A fully async low level rpc library for nfs protocols
5This API is described in include/libnfs-raw.h
6it offers a fully async interface to raw XDR encoded blobs.
7This api provides very flexible and precice control of the RPC issued.
8
9examples/nfsclient-raw.c provides examples on how to use the raw API
10
112, NFS ASYNC : A fully asynchronous library for high level vfs functions
12This API is described by the *_async() fucntions in include/libnfs.h.
13This API provides a fully async access to posix vfs like functions such as
14stat(), read(), ...
15
16examples/nfsclient-async.c provides examples on how to use this API
17
18
193, NFS SYNC : A synchronous library for high level vfs functions
20This API is described by the *_sync() fucntions in include/libnfs.h.
21This API provides access to posix vfs like functions such as
22stat(), read(), ...
23
24examples/nfsclient-sync.c provides examples on how to use this API
25
26
27
28ROOT vs NON-ROOT
29================
30When running as root, libnfs tries to allocate a system port for its connection
31to the nfs server. When running as non-root it will use a normal
32ephemeral port.
33Many NFS servers default to a mode where they do not allow non-system
34ports from connecting.
35These servers require you use the "insecure" export option in /etc/exports
36in order to allow libnfs clients to be able to connect.
37
38Some versions of Linux support special capabilities that can be assigned to
39programs to allow non-root users to bind to system ports.
40This is set up by running
41 sudo setcap 'cap_net_bind_service=+ep' /path/to/executable
42When libnfs is linked against an executable with this special capability
43assigned to it, libnfs may be able to use system ports even when executing
44under the privilege of a non-root user account.
45
46This is highly non-portable so IF this works on your linux system, count
47yourself lucky.
48
49
50
51PLATFORM support
52=================
53As of now this is tested with linux, MacOSX and Apple iOS.
54
55Linux: - tested with Ubuntu 10.04 - should work with others aswell
56Cygwin: - tested under 64bit win2k8.
57MacOSX: - tested with SDK 10.4 (under Snow Leopard) - should also work with later SDKs and 64Bit
58iOS: - tested with iOS SDK 4.2 - running on iOS 4.3.x
59FreeBSD:- tested with 8.2
60OpenSolaris
61Windows:- tested on Windows 7 64 and Windows XP 32 using Visual Studio 10 (see README.win32.txt for build instructions)
62
63
64Cygwin
65------
66Configure with './configure --enable-tirpc' since cygwin only supports ti-rpc and not classic rpc.
67