A system and method for providing file data, such as a set of files for
updating a computer system, in a self-contained package, in which the
package size is significantly reduced via delta compression. A build
mechanism examines files to be distributed, and generates a
self-contained package containing files and deltas. To this end, a
directed graph is built from the sizes of the various base file and delta
file possibilities, and a minimum spanning tree computation selects the
files that result in the smallest package. A base file may have multiple
deltas applied to synthesize multiple files, and any base file may itself
have been previously synthesized from another base file and a delta. A
client extraction mechanism, optionally provided with the package, works
with the contents of the package as directed by a manifest to synthesize
target files from the base files and the contained deltas.