Software life on computer is only started by installation, after this it require constant update - bug fixes and new features should be delivered to the customer.
[b]Change[/b] Bug fix or new feature is Change - set of changed and new files to fix problem or to introduce new functionality. This set is in general case random set of files selected to be all in one putback. Like library change may require all programs which uses this library be changed also (or may not require as well). Some fix in some program let say webserver may require fixes and changes in different unrelated libraries. So files from single change may very well be from different DU - different packages. In general all files which belongs to the fix depends on each other meaning that one changed or new file will not work properly if other file is not changed (or delivered if new). This dependency is always mutual. We can not deliver changed library and not deliver corresponding changes in program which uses it, as well as we can not deliver changed program without delivering libraries which support this changes. However this dependency are not as strict as dependency for installation - if for example program is not installed on the computer at all than we do not have to deliver new changed version of this program together with changed library, it is OK to deliver only library changes. So files may belong to different DU - different packages and all files must be deployed only all together as a single transaction. Ultimately we face new file property here - version. We already have for file list of files which this one depends on. Now we have version and we have another dependency list which include different files for certain version. For installation we should check if all files from dependency list is available (already installed or will be installed at same transaction). For update we should check if all files from dependency list [b][i]if exists[/i][/b] available with listed version or higher. This set of files need to be delivered to customer computers, most natural way is to have single bundle where all files present - anyway they can not go separately, but only all together. --------------------------------------------------------------------------------------------- [b]Reality check[/b] Patches is what currently represents changes. Patch contain all changed files in form of delta packages which patchadd apply to the system. If package not installed on the system, then patchadd skips delta package. Currently patches in Solaris have revisions and mechanism of accumulation for changes. I am not talking about this yet which is related to next topic - dependency between changes (I described dependency inside change). So for now let me say that single change can be represented as a patch (in first revision of the patch). vassun This message posted from opensolaris.org
