Cyrus SML ACAP server, version 0.2
ACAP (Application Configuration Access Protol) is an Internet
standards-track protocol for remote preferences and other storage for
Internet applications such as web browsers or mail readers.
The Cyrus SML acapd is a fully functional, fairly stable ACAP
server. See the "notes" file for the current outstanding issues,
which most applications probably won't notice.
Binary distribution installation
Here's the step by step installation instructions:
- Compile and install the Cyrus SASL library, available from
ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/.
- Compile and install the frontend ACAP interface:
% ./configure
% make
% make install
- Add the following line to the "/etc/services" file if it
isn't already there:
acap 674/tcp
- Add the following line to the "/etc/inetd.conf" file:
acap stream tcp nowait root /usr/cyrus/bin/frontend frontend
- Restart inetd. Many systems provide an easy way to do this, but the
generic method is to find the process id of inetd (use /bin/ps -elf
on most systems), then kill -HUP pid.
- Create the ACAP directories:
% mkdir /var/acap
% mkdir /var/spool/acap
%
If you want to log connections (this could be a lot of data!)
create "/var/acap/log".
- Start the backend ACAP process:
% cd backend
% ./backend-acapd
- Try to connect to the ACAP server by hand:
% telnet localhost acap
Trying 127.0.0.1...
Connected to localhost.andrew.cmu.edu.
Escape character is '^]'.
* Acap (Implementation "SML Frontend, Carnegie Mellon Project Cyrus")
(ContextLimit "100") (Sasl "PLAIN" "ANONYMOUS" "GSSAPI" "KERBEROS_V4"
"DIGEST-MD5" "CRAM-MD5")
1 AUTHENTICATE "ANONYMOUS" "larry"
1 Ok (SASL {0}
) "Welcome"
2 SEARCH "/" RETURN ("*") ALL
2 ENTRY "" (("modtime" "19991210042235000000") ("entry" "") ("dataset.owner"
"$master") ("dataset.acl" ({13}
$anyone xrwia)))
3 LOGOUT
* BYE "have a nice day"
3 OK "LOGOUT completed"
Connection closed by foreign host.
%
- Enjoy!
Source distribution installation
- Compile SML/NJ. We
recommend version 110.0.6, available from:
ftp://ftp.research.bell-labs.com/dist/smlnj/release/110/.
If you're using Redhat Linux, the full RPM distribution
smlnj-110.0.6-0.i386.rpm
should be fine.
Otherwise, make sure to get 110-cm, 110-cml, 110-config,
110-ml-lex, 110-ml-yacc, 110-runtime, and 110-smlnj-lib, as well as
the appropriate binary package for your architecture.
- Make sure that the "sml" binary is in your path, and
continue with the binary direction instructions above. The configure
script will automatically detect "sml" and compile the backend.