My git clone of the Cyrus CVS repository
C Perl Perl6 M4 Groff Yacc Other
Latest commit cdc7279 Jun 20, 2016 @elliefm elliefm stristr: just use size_t
Failed to load latest commit information.
backup include <stdio.h> where needed in backup-specific source files Apr 22, 2016
com_err/et Remove ALL tabs Jun 15, 2015
cunit Alt Namespace: support Alt Folders and INBOX subfolders May 14, 2016
depot Remove ALL tabs Jun 15, 2015
docsrc ipurge: add -v (verbose) option and disable default verbosity Jun 10, 2016
lib stristr: just use size_t Jun 20, 2016
master master: make better use of select() return value semantics May 20, 2016
netnews Alt Namespace: support Alt Folders and INBOX subfolders May 14, 2016
tools vzic-parse.c: squash implicit declaration of function ‘ensure_directo… Jun 17, 2016
.arcconfig Add .arcconfig to rI (T15) Mar 2, 2015
.gitignore README: create from, so version can be dynamic Jun 7, 2016
INSTALL fix docsrc in read-only source build Jun 17, 2016
SMakefile README: create from, so version can be dynamic Jun 7, 2016 Add pkg-config support for libcyrus and libcyrus_min Jun 20, 2012



# 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 all install

exit 0

"configure" is no longer in the repository because it's built from
"", 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 (, 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/

- announce to:

- update
  links to new version
- update
  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/

b) frontend server

%define cyrus21
%define sasl2

%define uses_readwrite

%define wsadmin /afs/

%define is_imap
%define is_saslauthd
%define is_frontend

%include /afs/

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) []
Email Address []

- 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