The Centos 7 libvirt source rpm was taken from: http://vault.centos.org/centos/7/updates/Source/SPackages/libvirt-1.2.17-13.el7_2.3.src.rpm It's possible to resolve the source rpm based on the yum repos: $ yumdownloader --source --urls libvirt The libvirt source code was forked under .../cgcs/git/libvirt. Notes: - The branch is based on upstream tag v1.2.17-maint. - Then each RedHat patches have been committed one by one in the same order specified in the RedHat spec (actually this was automated to use 'git am' for each of the patches mentionned in the spec). - The last patch from RedHat is tagged 'libvirt-1.2.17-13.el7_2.3'. - After this tag, all the patches are port from R2. The libvirt git repository doesn't come with the ./configure script (and its dependancies). This has to be built using autoconf (but the libvirt releases comes with those, releases are generated using 'make dist'). One caveat is that bootstrap is made to be executed in a git tree. Trying to execute it out of tree, like the Centos build environment, was unsuccessfull so far. The current workaround for now is to commit the configure scripts in the libvirt git repo: $ NOCONFIGURE=1 ./autogen.sh --copy $ NOCONFIGURE=1 ./autogen.sh --copy # Remove all .gitignore temporarily for showing modified files $ find . -name .gitignore | xargs rm $ git add -A $ git reset HEAD .gitignore # Repeat last command for all .gitignore files removed $ git commit Autogen is executed twice. The first time soft links are created under build-aux/. Running it a second time makes bootstrap copying them and replacing the soft links (there is most likely a smarter way to do this).