cml(4) cml(4)NAME cml - configuration master list format DESCRIPTION The Configuration Master List (CML) defines each and every file in the standard A/UX product, and is used to produce and control the A/UX distributions. The CML is also used by autorecovery(8), to bring the system up in (minimum) mul- tiuser mode. The CML files are ASCII text files, containing one record (line) per filename entry, sorted in order by filename. Each record contains multiple tab-separated fields, describ- ing a single file. Each field contains one or more sub- fields; if more than one, the subfields are separated by colons. The first subfield contains either a filename, a rule for determining the validity of the file, or textual information relating to the file. Additional subfields (if present) contain recognized values associated with the given rule. No field may be empty; that is, the first subfield must al- ways contain at least one (nonblank) character. To indicate ``no rule,'' the character - is used. Value subfields (that is, subfields past number 1) may be null or missing if they do not apply in the given case. The subfields must occur in the specified order, however. Possible additional subfields are given in parentheses after each field name. For exam- ple, a partial record might contain - r:m /unix f - <>:100 =>:529799000 u:root... Currently there are 18 recognized fields in a record. 1. master_rule A string field indicating the master rule for inter- preting the validity of this file. The legal rules and their ``valid if'' conditions are $ If the first character of the master_rule field is $, the field and subfield delimiters (normally tab and :) are substituted, respectively, by the char- acters represented by the four hex digits follow- ing the $; that is, if the first line contains $407c, the field and subfield separators will be @ (hex 40) and | (hex 7c). Any changes to these delimiters take effect immediately and remain in effect until the next $ change. The $ rule may be used at any point in the CML file where the field and subfield delimiters must be changed. April, 1990 1
cml(4) cml(4)# signifies a ``no-op'' condition; the remainder of this record is to be taken as a comment and no calculations are to be performed for any field. The # rule is a way to ignore information for a given file. - Evaluate, in order, the remaining rules in this record to determine the validity of this file. 2. autorecovery_rule[:autorecovery_value] A string field indicating the autorecovery rule re- quired for interpreting the validity of this file. The legal rules and their ``valid if'' conditions are r This file is required for autorecovery. - This file is not required for autorecovery. The following value is recognized. autorecovery_value A string indicating the type of use for which the autorecovery rule applies. The legal value type is m Files which are necessary to bring the system up in multiuser mode. 3. filename A string field containing the fully qualified filename of the file being described. A fully qualified filename starts with a slash and gives the unambiguous placement of the file in the directory hierarchy. (In some cases a filename can not be fully qualified. Any filename not beginning with a slash is assumed to describe a file that may occur in multiple directories (such as .login). Such files are not used in au- torecovery.) 4. file_type A string field containing the file type. The legal file types are d The file is a directory. f The file is a normal file. b The file is a block special file. c The file is a character special file. p The file is a named pipe. 2 April, 1990
cml(4) cml(4)l The file is a symbolic link. s The file is a socket. 5. linked_file_name If the file named by filename is a symbolic link (file_type== l), this field contains the fully quali- fied pathname of the file to which filename is linked. If filename does not exist on startup, it is created by linking to linked_file_name. If the file named by filename is one of a set of multi- ple hard links (file_type≠ d && line count > 1), this field contains the fully qualified pathname of the aphabetically first file (ASCII sort order) of the set. If a file does not exist on startup and linked_file_name == filename, it is created by retriev- ing a copy from the eschatology file system. If a file does not exist on startup and linked_file_name ≠ filename, it is created by linking to linked_file_name. If there is no linked_file_name, this field contains -. 6. size_rule[:size_value_1:size_value_2) A string field indicating the size rule for interpret- ing the validity of this file by examining its file length. The legal rules and their ``valid if'' condi- tions are <> size_minimum < actual_file_length < size_maximum == actual_file_length = size_exact 0= actual_file_length = size_exact || actual_file_length = 0 % size_exact - size_pct% < actual_file_length < size_exact + size_pct% - no size_rule, hence always true The following values are recognized. size_value_1 This is a decimal number which contains the size_minimum or size_exact depending on the size_rule specified. For files which do not have lengths (such as the special files) this value is always 0. size_value_2 This is a decimal number which contains the April, 1990 3
cml(4) cml(4)size_maximum or size_pct when required by the size_rule. size_pct is a decimal percentage (0 < size_pct < 100). If the rule is <>, an empty field indicates that there is no set maximum lim- it. 7. time_rule[:mtime_value] A string field indicating the time rule for interpret- ing the validity of this file. The legal rules and their ``valid if'' conditions are == actual_mtime = mtime_value => actual_mtime > mtime_value - No time rule, hence always true. The following value is recognized. mtime_value A decimal number containing the appropriate modif- ication time of the file, as required by the time_rule. 8. ownership_rule[:file_user:file_group] A string field containing the ownership rule for deter- mining the validity of this file. The legal rules and their ``valid if'' conditions are u actual_user = file_user g actual_group = file_group b actual_user = file_user && actual_group = file_group - No ownership rule, hence always true. The following values are recognized. file_user A string containing the user name. file_group A string field containing the group name. 9. permissions_rule[:file_mode] A string field containing the permission rule for determining the validity of this file. The legal rules and their ``valid if'' conditions are == actual_file_mode = file_mode 4 April, 1990
cml(4) cml(4)- No permissions rule, hence always true. The following value is recognized. file_mode An octal numeric field containing the read/write and other file modes. Note that 0 < file_mode < 07777. 10. major_minor_rule[:major_number:minor_number] A string field indicating the major/minor rule for in- terpreting the validity of this file. The major_minor_rule, if specified, is ignored unless the file is a device (file_type = character or file_type = block). The legal rules and their ``valid if'' condi- tions are == actual_major_number = major_number && actual_minor_number = minor_number - Not a device, hence, always true. The following values are recognized. major_number A decimal number containing the appropriate major device number required by the major_minor_rule. minor_number A decimal number containing the appropriate minor device number required by the major_minor_rule. 11. version_rule[:version_value:version_minimum:version_maximum] A string field indicating the version rule for inter- preting the validity of this file by looking for a ver- sion number. If a file is made up of several modules, the version number used will be found in the ``main'' module, as part of a specifically formatted ``key ver- sion string.'' The legal rules and their ``valid if'' conditions are <> If version number is present, version_minimum < actual_version_number < version_maximum == If version number is present, version_minimum = actual_version_number version_maximum, if defined, is ignored. April, 1990 5
cml(4) cml(4)*<> Version number must be present, and version_minimum < actual_version_number < version_maximum *== Version number must be present, and version_minimum = actual_version_number version_maximum, if defined, is ignored. - No version rule, hence always true. The following values are recognized. version_value A string indicating the formats of version numbers which are possible for a file. The legal format type is s An SCCS (see sccs(1)) version number in a ``key version string'' of the following form @(#)Copyright Apple Computer, Inc 1986 Version 1.2 which is produced by a string containing SCCS keywords as follows: %Z%Copyright Apple Computer, Inc 1986\tVersion %I% where \t is a tab. version_minimum A string field containing the earliest allowable version number. version_maximum A string field containing the maximum allowable version number. An empty field indicates that there is no maximum allowable version number lim- it. 12. checksum_rule[:checksum_value] A string field containing the checksum rule for inter- preting the validity of this file by computing the checksum. The legal rule and its ``valid if'' condi- tion is s Compute and compare the checksum, using the algo- rithm of sum(1), which produces a 16-bit checksum. - No checksum rule, hence always true. 6 April, 1990
cml(4) cml(4)The recognized value for this rule is checksum_value A decimal number containing the checksum value. An empty field, with no numeric value whatsoever, indicates that no checksum is to be computed. (The checksum value of a zero-length file is 00000). 13. special_rule A string field indicating any special rules and values required for interpreting the validity of this file. (Reserved at this time). 14. reserved_4 Reserved for future use. 15. reserved_3 Reserved for future use. 16. reserved_2 Reserved for future use. 17. reserved_1 Reserved for future use. 18. description A text field containing a description of the file. The description field may be stored separately from the other fields in a special description file. In this case, each record in the description file will contain two tab-separated fields: the full pathname of the described file followed by a one line description. The description file, like the rest of the CML will be sorted by filename. FILES /etc/eschatology/init2files Those files which are required by autorecovery. /etc/eschatology/otherfiles The balance of the CML (those files not required for autorecovery). /etc/eschatology/descriptions The description file. SEE ALSO autorecovery(8). April, 1990 7