]> arthur.barton.de Git - netatalk.git/blob - doc/DEVELOPER
23abc35d6f31b07be4633a9d8e9bebc680470626
[netatalk.git] / doc / DEVELOPER
1 Information for Netatalk 1.5 Developers
2 =======================================
3
4 For basic installation instructions, see the INSTALL file.
5
6
7 netatalk is an implementation of the AppleTalk Protocol Suite.  The
8 current release contains support for EtherTalk Phase I and II, DDP,
9 RTMP, NBP, ZIP, AEP, ATP, PAP, ASP, and AFP.  The complete stack looks
10 like this on a BSD-derived system:
11
12     AFP
13      |
14     ASP    PAP
15       \   /
16        ATP RTMP NBP ZIP AEP
17         |    |   |   |   |
18    -+---------------------------------------------------+- (kernel boundary)
19     |                    Socket                         |
20     +-----------------------+------------+--------------+
21     |                       |     TCP    |    UDP       |
22     |          DDP          +------------+--------------+
23     |                       |           IP              |
24     +-----------------------+---------------------------+
25     |                Network-Interface                  |
26     +---------------------------------------------------+
27
28 DDP is in the kernel.  "atalkd" implements RTMP, NBP, ZIP, and AEP.  It
29 is the AppleTalk equivalent of Unix "routed".  There is also a
30 client-stub library for NBP.  ATP and ASP are implemented as
31 libraries.  "papd" allows Macs to spool to "lpd", and "pap" allows Unix
32 machines to print to AppleTalk connected printers.  "psf" is a
33 PostScript printer filter for "lpd", designed to use "pap".  "psorder"
34 is a PostScript reverser, called by "psf" to reverse pages printed to
35 face-up stacking printers.  "afpd" provides Macs with an interface to
36 the Unix file system.  Refer to the appropriate man pages for
37 operational information.
38
39
40 Compilation
41 ===========
42    The `configure' shell script attempts to guess correct values for
43 various system-dependent variables used during compilation.  It uses
44 those values to create a `Makefile' in each directory of the package.
45 It may also create one or more `.h' files containing system-dependent
46 definitions.  Finally, it creates a shell script `config.status' that
47 you can run in the future to recreate the current configuration, a file
48 `config.cache' that saves the results of its tests to speed up
49 reconfiguring, and a file `config.log' containing compiler output
50 (useful mainly for debugging `configure').
51
52    If you need to do unusual things to compile the package, please try
53 to figure out how `configure' could check whether to do them, and mail
54 diffs or instructions to the address given in the `README' so they can
55 be considered for the next release.  If at some point `config.cache'
56 contains results you don't want to keep, you may remove or edit it.
57
58    The file `configure.in' is used to create `configure' by a program
59 called `autoconf'.  You only need `configure.in' if you want to change
60 it or regenerate `configure' using a newer version of `autoconf'.
61
62
63 Tools for Developers
64 ====================
65 1. Libtool
66 Libtool encapsulates the platform specific dependencies for the
67 creation of libraries. It determines if the local platform can support
68 shared libraries or if it only supports static libraries.
69
70 Netatalk currently requires libtool 1.4 or higher (1.4b for OpenBSD).
71
72 Documentation: http://www.gnu.org/software/libtool/
73 Program: (see the GNU mirrors) /gnu/libtool/libtool-1.4.tar.gz
74
75 2. GNU m4
76 GNU m4 is an implementation of the Unix macro processor. It reads
77 stdin and copies to stdout expanding defined macros as it processes
78 the text.
79
80 Documentation: http://www.gnu.org/software/m4/
81 Program: (see the GNU mirrors) /gnu/m4/m4-1.4.tar.gz
82
83 3. Autoconf
84 Autoconf is a package of m4 macros that produce shell scripts to
85 configure source code packages.
86
87 Documentation: http://www.gnu.org/software/autoconf/
88 Program: (see the GNU mirrors) /gnu/autoconf/autoconf-2.52.tar.gz
89
90 4. Automake
91 Automake is a tool that generates  'Makefile.in' files.
92
93 Documentation: http://www.gnu.org/software/automake/
94 Program: (see the GNU mirrors) /gnu/automake/automake-1.5.tar.gz
95
96 Optional
97 ========
98 5. OpenSSL
99 The OpenSSL Project is a collaborative effort to develop a robust,
100 commercial-grade, full-featured, and Open Source toolkit implementing
101 the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
102 v1) protocols as well as a full-strength general purpose cryptography
103 library.
104 This is required to enable DHX login support.
105
106 Get everything at http://www.openssl.org/ 
107
108 6. TCP Wrappers 
109 Wietse Venema's network logger, also known as TCPD or LOG_TCP. These
110 programs log the client host name of incoming telnet, ftp, rsh,
111 rlogin, finger etc. requests. Security options are: access control per
112 host, domain and/or service; detection of host name spoofing or host
113 address spoofing; booby traps to implement an early-warning system.
114 TCP Wrappers can be gotten at ftp://ftp.porcupine.org/pub/security/
115 Netatalk uses TCP Wrappers to authorize host access when using
116 afpovertcp. It should be noted that if DDP is in use, the connection
117 will still be allowed as TCP Wrappers do not impact DDP connections.
118
119 7. PAM (Pluggable Authentication Modules for Linux) 
120 Linux-PAM provides a flexible mechanism for authenticating
121 users. PAM was invented by SUN Microsystems.
122
123 Author: Andrew Morgan <morgan@linux.kernel.org>
124
125 Linux-PAM is a suite of shared libraries that enable the local system
126 administrator to choose how applications authenticate users.
127
128 You can get the Linux PAM documentation and sources from
129 http://www.kernel.org/pub/linux/libs/pam/
130
131 8 Berkeley DB version 3
132 Berkeley DB is a programmatic toolkit that provides fast, reliable,
133 scalable, and mission-critical database support to software
134 developers. BDB 3 can downloaded from
135 http://www.sleepycat.com/download.html
136 Netatalk's CNID database uses the library and header files from BDB3.