#!/bin/sh

#
# This is internal documentation for Computing Services at 
# Carnegie Mellon University. 
#
# Please refer to doc/readme.html for the 'real' README.
#
#

smake -d init mf checkdepend all install

exit 0

"configure" is no longer in the repository because it's built from
"configure.in", and it's really annoying to keep checking it in only
to realize that you don't understand the changes because they're all
autoconf spew.

to build configure:
   sh SMakefile

to build:
   smake init all 

then, as admin (suid binaries on AFS)
   smake -d install

If you get the error 'can not find sources', make sure imap/imap.c is mode a+r.

----
To make a release:
- make sure the version number is correct (Makefile.in, imap/version.h)
- add upgrade notes to doc/install-upgrade.html
- add changes to doc/changes.html
- make sure that contrib/drac_auth.patch applies cleanly
- commit to repository
- make dist

- tag the CVS repository with cyrus-release-Major-Minor-Revision

- upload tarball to /afs/andrew.cmu.edu/system/archive/cmu/anonftp/pub/cyrus

- announce to:
    info-cyrus
    comp.mail.imap
    cyrus-announce
    freshmeat.net

- update cyrusimap.web.cmu.edu:/usr/www/htdocs/downloads.html
  links to new version
- update cyrusimap.web.cmu.edu:/usr/www/htdocs/imapd
  from tarball

---
to bring up a new Andrew Cyrus server:

package.protos for:
a) backend server

%define cyrus21
%define sasl2

%define is_imap
%define is_backend
%define is_saslauthd
%define usesvxfs

%define multiple_lun

%define hasuser.permits
F /etc/user.permits
%define hasroot.permits
F /etc/root.permits

%include /afs/andrew.cmu.edu/wsadmin/cyrus2/src/cyrus.proto

b) frontend server

%define cyrus21
%define sasl2

%define uses_readwrite

%define wsadmin /afs/.andrew.cmu.edu/wsadmin

%define is_imap
%define is_saslauthd
%define is_frontend

%include /afs/andrew.cmu.edu/wsadmin/cyrus2/src/cyrus.proto

c) smtp server
???? - Larry?

----

Repackage, Reboot, (and redepot/repackage again)

- Key the machine (imap, lmtp, smtp, pop, and put them in /imap/conf/srvtab)
  - remove the rcmd (and smtp?) key from /imap/conf/srvtab
- frontends also need mupdate key
- create k5 keys:
/usr/local/etc/ktutil srv2key
chgrp cyrus /etc/krb5.keytab
chmod g+r /etc/krb5.keytab
- Generate an SSL key for the machine and install to /imap/conf/server.pem
  (preferrably signed correctly)

Something like:
mail-fe3:sun4x_58:/imap/conf# openssl req -new -x509 -nodes -out /imap/conf/serv
er.pem -keyout /imap/conf/server.pem
Using configuration from /usr/local/lib/openssl/openssl.cnf
Generating a 1024 bit RSA private key
............++++++
..........++++++
writing new private key to '/imap/conf/server.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Pennsylvania
Locality Name (eg, city) []:Pittsburgh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Carnegie Mellon University
Organizational Unit Name (eg, section) []:Andrew Systems Group
Common Name (eg, YOUR name) []:mail-fe3.andrew.cmu.edu
Email Address []:advisor@andrew.cmu.edu 

- is it a backend? run tools/mkimap (as cyrus!)

----------------------------------------------------------------------

To use Insure++
 . uncomment appropriate lines from SMakefile
 . copy psrc to /.psrc
 . make sure environment variables HOME and (maybe) USER
   are properly set
 . mkdir /tmp/insure; chmod 777 /tmp/insure
