[Rpm-maint] base package or devel package?

Mark Hatle mark.hatle at windriver.com
Thu Aug 28 15:00:28 UTC 2008

"base" package items are generally those required at runtime.  Executables,
shared libraries, configuration files etc.

"devel" package items are generally those required to build or link software
against this component.
Non-soname links to shared libraries (if you don't know what this is skip it),
libtool achives, .a static libraries, headers, pkgconfig, etc.

The list below is an alternative way to breakup the package that is more SuSE
oriented.  Fedora and other environments have different "standard" breakdown
structures.  So whatever you are targeting with your package, you will want to
find out what their policies are.  (Note, base/devel is a minimal breakdown
everyone uses.)


Pavol Rusnak wrote:
> holmes86 wrote:
>> I am a make rpm newbie.I have a question now.when I was making rpm 
>> package,I don't know which parts are base package and which parts are devel
>> package one? Is they any rule? thanks very much!
> Rough explanation:
> Assume project called foo, we could split into following packages:
> * base package - foo - binaries (eg. /usr/bin/*) - documentation (could go
> into separate foo-doc if very large) - icons, desktop files, etc.
> * shared library package - libfooXXX (XXX is .so major number eg libfoo3 for
> libfoo.so.3.24.3) - only library! (/usr/lib/libfooXXX.so.*)
> * devel package - libfoo-devel (no XXX here) - .so symlink -
> /usr/lib/libfoo.so - includes - /usr/include/* - pkgconfig file -
> /usr/lib/pkg-config/*
> We usually do not package .a or .la files (you could avoid building .a with
> --disable-static passed to configure, you have to manually delete .la files
> though).
> Base package should require libfoo-devel and devel package should require
> particular lib package (libfooXXX).
> Hope that helps.

More information about the Rpm-maint mailing list