Collect the source files of the application and any new updates.
Write the specification file containing packaging scripts run by the RPM engine and a file list.
Run the RPM Engine with flags to build the package.
Notice that the RPM procedure is rather loose. The developer can decide which source files to include in the package. Other files, such as libraries and basic operating system components, may be simply pointed to in the reference data as dependent packages. This means that the end user must make sure that all packages that the developer assumed were already installed are, in fact, on the system.
When the user installs an RPM, the scripts (written by the developer, not created by an automated standard) are run and tell the user the following information:
If dependent components need to be installed
If there are installed components that conflict with files in the package
The version range of dependent components and conflicting components