Which man page describes the usage of the top-level RPM spec file macros that are defined in RPM source files directly? I mean, %setup, %buildroot and the like, which are not in /usr/lib/rpm. Looking up the %setup options in a tutorial at rpm.org or searching through the source code isn't best of convenience.

6 Answers 6


The Fedora Project hosts the best documentation on RPM out there in html format:


See also:


Prior to these resources, my go to guide was Maximum RPM (which you also found):



Some of them are documented in Maximum RPM, Taking the RPM Package Manager to the Limit by Edward C. Bailey.

Section Macros: Helpful Shorthand for Package Builders describes %setup and %patch macros.


There is no man page for that, but you can create a minimal spec file using rpmdev-newspec from rpmdevtools package.


It's crazy that there is no fundamental public reference for the .spec file format which have been heavily used by multiple distributions for more than a decade.

You can jam a %dump into your spec and then try building (redirect stderr out to a file). Depending on where you put the %dump you get whatever macros existed at that moment. This is not a substitute for real documentation... but might keep you going.


As far as I am aware no such documentation exists within the man pages. Even if you review all the items available in the rpmbuild and rpm man pages it does not detail those directives.


Most of sources linked in the other answers don't seem to mention %autosetup. (At least not directly.)

There is this "RPM Reference Manual", which does:


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .