]> arthur.barton.de Git - netatalk.git/blob - doc/DEVELOPER
60a5ec7e28206618710f84c3b7afcb8c0cde876a
[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 Documentation: http://www.gnu.org/software/libtool/
71 Program: (see the GNU mirrors) /gnu/libtool/libtool-1.3.5.tar.gz
72
73 2. GNU m4
74 GNU m4 is an implementation of the Unix macro processor. It reads
75 stdin and copies to stdout expanding defined macros as it processes
76 the text.
77
78 Documentation: http://www.gnu.org/software/m4/
79 Program: (see the GNU mirrors) /gnu/m4/m4-1.4.tar.gz
80
81 3. Autoconf
82 Autoconf is a package of m4 macros that produce shell scripts to
83 configure source code packages.
84
85 Documentation: http://www.gnu.org/software/autoconf/
86 Program: (see the GNU mirrors) /gnu/autoconf/autoconf-2.13.tar.gz
87
88 4. Automake
89 Automake is a tool that generates  'Makefile.in' files.
90
91 Documentation: http://www.gnu.org/software/automake/
92 Program: (see the GNU mirrors) /gnu/automake/automake-1.4.tar.gz
93
94 Optional
95 ========
96 5. OpenSSL
97 The OpenSSL Project is a collaborative effort to develop a robust,
98 commercial-grade, full-featured, and Open Source toolkit implementing
99 the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
100 v1) protocols as well as a full-strength general purpose cryptography
101 library.
102 This is required to enable DHX login support.
103
104 Get everything at http://www.openssl.org/ 
105
106 6. TCP Wrappers 
107 Wietse Venema's network logger, also known as TCPD or LOG_TCP. These
108 programs log the client host name of incoming telnet, ftp, rsh,
109 rlogin, finger etc. requests. Security options are: access control per
110 host, domain and/or service; detection of host name spoofing or host
111 address spoofing; booby traps to implement an early-warning system.
112
113 TCP Wrappers can be gotten at ftp://ftp.porcupine.org/pub/security/
114
115 7. PAM (Pluggable Authentication Modules for Linux) 
116 Linux-PAM provides a flexible mechanism for authenticating
117 users. PAM was invented by SUN Microsystems.
118
119 Author: Andrew Morgan <morgan@linux.kernel.org>
120
121 Linux-PAM is a suite of shared libraries that enable the local system
122 administrator to choose how applications authenticate users.
123
124 You can get the Linux PAM documentation and sources from
125 http://www.kernel.org/pub/linux/libs/pam/