Cyrus SML ACAP server, version v0.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:

  1. Compile and install the Cyrus SASL library, available from ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/.
  2. Compile and install the frontend ACAP interface:
       % cd frontend
       % ./configure
       % make
       % make install
    
  3. Add the following line to the "/etc/services" file if it isn't already there:
       acap      674/tcp
    
  4. Add the following line to the "/etc/inetd.conf" file:
       acap  stream  tcp  nowait  root  /usr/cyrus/bin/frontend  frontend
    
  5. 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.
  6. 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".

  7. Start the backend ACAP process:
       % ./backend-acapd
    
  8. 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.
    % 
    
  9. Enjoy!

Source distribution installation

  1. First, follow all the steps up to "start the backend ACAP process" in "Binary distribution installation".
  2. Compile 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.

  3. Compile the backend:
       % cd backend
       % .../bin/sml-cm
       Standard ML of New Jersey, Version 110.0.6, October 31, 1999 [CM; autoload enabled]
       - CM.make ();
       ...
       - SMLofNJ.exportFn ("backend", AcapServer.cmd);
    
  4. Start the backend ACAP process:
       % .../bin/sml-cm @SMLload=backend.x86-linux
    
  5. Continue with the binary distribution instructions.