The %package directive is used to control the creation of subpackages. The subpackage name is derived from the first name tag in the spec file, followed by the name specified after the %package directive. Therefore, if the first name tag is:
Name: foo
and a subpackage is defined with the following %package directive:
%package bar
the subpackage name will be foo-bar.
The -n option is used to change how RPM derives the subpackage name. When the -n option is used, the name following the %package directive becomes the complete subpackage name. Therefore, if a subpackage is defined with the following %package directive:
%package -n bar
the subpackage name will be bar.