# Revision history [back]

Some of these things you might already know, but I'm trying to write an answer that would benefit all readers.

You should install source packages as a non-root user. In order to do this, you need to install the package rpmdevtools. To build a source tree from an rpm package you also need rpm-build.

dnf download --source gcc

If you have not already done so, create a directory hierarchy for rpm development:

rpmdev-setuptree

This will create a directory tree under ~/rpmbuild although it is not strictly necessary - the required directories are created one by one by other commands.

Then you can install the source package:

rpm -ivh gcc-5.3.1-6.fc23.src.rpm

At this point you probably don't have the necessary dependencies installed and without them the following steps won't work. So at this point as a root user or sudo install the missing dependencies:

sudo dnf builddep gcc

Check out the spec file name in ~/rpmbuild/SPECS and then unpack sources and apply patches:

rpmbuild -bp ~/rpmbuild/SPECS/gcc.spec

Take a look at various options of the rpmbuild command with rpmbuild --help or man rpmbuild

Also check out the available documentation: rpm -qd rpm-build and rpm -qd rpmdevtools

Of course you can do all this a the root user, but it is not recommended.