-$Header$
+README file for creating Moira*
-This is SMS version 2.0. See the file INSTALLATION in this directory
-for instructions on building and installing SMS. Contents of this
-distribution:
+This is the root directory of MIT Athena's Moira service management
+system source code.
-backup: source to smsbackup & smsrestore. Depends on files in ~/db
+The Makefiles are set up so that the source tree can be
+separate from the tree(s) containing binaries. We have
+found this useful since we have to have separate sets of binaries,
+for different platforms.
-bin: `make install' will put binaries here that are only used on the
- sms server machine, not needed on clients. This should be a
- duplicate of /u1/sms/bin on the sms machine.
+The default value of the root of the Moira source tree
+(this directory) is /mit/moiradev/src. You can set it
+to something else by specifying, for example, "make SRCDIR=/x/y/z"
+if you want the source in /x/y/z.
-clients: contains subdirs with source to each of the client programs
+Here are the steps for building the Moira source.
-db: Database code: scripts and programs to create a database
+1. Create a directory to hold the tree of object files,
+ say it's /foo/bar/baz.
-dbck: database consistency checker
+2. Cd to that directory and run the command:
-dcm: the Data Control Manager
+ make -f /x/y/z/util/makeconfig SRCDIR=/x/y/z
-doc: Documentation
+ where /x/y/z is the root of the source tree (not necessary
+ if the root is /mit/moiradev/src). This creates the necessary
+ directories and copies Makefiles into them.
-et: Sources to com_err stuff. This is a private copy so that the
- com_err() routine supports printf style arguments.
+3. Cd to util/imake.includes. Read through config.Imakefile, turning
+ on appropriate flags for your installation, and setting the paths
+ to your include files, libs, etc for Kerberos Hesiod and Zephyr.*
+ Note that we are not licensed to distribute gdss, so it is not
+ included in this distribution. Therefore you will probably not
+ want to define it. Change SRCTOP appropriately.
-gdb: Noah Mendelsohn's GDB library (which forms the core of our RPC
- mechanism) This is a private copy because the startup
- negotiation is different.
+4. Cd to include. Read through moira_site.h adjusting the paths to
+ what you want on your system. Also change the #define of
+ MOIRA_SERVER to be the name of the server you are planning on
+ using.
-gen: server config file generators. These are the programs that
- extract info from the database. The shell scripts that
- install the files are also here.
+5. Still in the top of the object directory (/foo/bar/baz
+ of Step 1), type "make world" (or "make world SRCDIR=/x/y/z).
-include: include files. Has soft links to header files in other dirs.
- Reference include/foo.h as <foo.h>, and add a -I../include in
- your Makefiles.
+ Note: the mmoira client uses X11r4 and motif 1.1.
-lib: Random libraries, including an improved version of malloc which does
- "scribble checking" to verify that you aren't trashing your address
- space. This dir includes soft-links to files in other dirs.
+ Notes on building the server: When building the server (if you are
+ using Ingres) make sure to define the environment variable
+ II_SYSTEM appropriately, and add the ingres/bin directory to your
+ path. Building the server also requires having perl in your path.
+ It is only used in one place, in order to get around an ingres
+ bug that sets certain field sizes incorrectly when doing an ascii
+ dump of the database, causing data to be lost. The perl script is
+ src/backup/esql_fix.pl.
-man: man pages for SMS programs
+6. Run "make install". You may want to check that programs
+ are installed where you want. Then add the appropriate
+ directories to your PATH environment variable.
-reg_svr: the daemon to handle the back end of user registration
-
-regtape: a program to read the tape from the registrar's office
-
-regtest: a sample of what the homedirectory for "register" should look like
-
-rpc: The code for the RPC mechanism: libsms.a is built here.
-
-server: smsd & libsmsglue.a come from here.
-
-ss: sources to libss.a, the line parser used by smstest.
-
-test: smstest
-
-update: Routines for performing updates to servers (including its own
- GDB-based RPC).
+* Moira and Hesiod are registered trademarks of the Massachusetts
+Institute of Technology (MIT). Kerberos, and Zephyr are trademarks of
+MIT. No commercial use of these trademarks may be made without prior
+written permission from MIT.