1. A method of selecting program patches for installation into computer systems, where the patches are organized into patch chains each having a root, the method comprising the steps of: obtaining a base context identifier; searching for a patch in a context corresponding to the base context identifier; obtaining a system description corresponding to a system, the system description comprising more than hardware version and operating system version information; and filtering patches found in the search to remove patches not applicable to the system.