mschwendt notes that people still misinterpret what files need to go into -devel. In particular, plugins are getting placed into -devel. Here's a proposed update.
Review guidelines update
MUST: Library files needed only at build-time must be put into a -devel package. See the Devel Packages Guideline if you are unclear on what these files are. [19]
Guidelines update
Devel Packages
If the software being packaged contains files intended solely for development, those files should be put in a -devel subpackage. The following are examples of file types which should be in -devel:
- Header files (e.g.
*.h
files) - Symlinks for the linker name of libraries (e.g.
%{_libdir}/libfoo.so
).
These types of files are often mistaken for development files but are needed at runtime so they should NOT be in the -devel subpackage:
- Symlink for the library SONAME (e.g.
%{_libdir}/libfoo.so.3
) - The file that actually contains the library (eg
%{_libdir}/libfoo.so.3.0.0
) - Shared objects which are plugins. These usually end with
*.so
like the library linker name but- are not placed directly within
%{_libdir}
- are not symlinks
- often do not start with
lib*
- are not placed directly within
A good rule of thumb is if the file is used for development and not needed for the base package to run properly, it should go in -devel.