RPM을 만들기 위해서는 rpm-build와 rpmdevtools를 설치해야한다.
# yum install rpm-build rpmdevtools
rpmdev-setuptree 명령어로 RPM Build Directory를 만든다.
# rpmdev-setuptree
# yumdownloader --source 패키지명
Nova를 build하기 위해 Nova에 dependency가 있는 모듈들을 설치한다.
# yum-builddep /root/rpmbuild/SPECS/xxx.spec
생성된 patche는 SOURCES안에 위치해 있어야 하며 SPECS/openstack-nova.spec 파일에 patch 적용을 위한 수정한다.
1. Patch0007: new-patch.patch 추가.
2. %patch0007 –p1 추가
# vim ./rpmbuild/SPECS/openstack-nova.spec
…
Patch0001: 0001-Ensure-we-don-t-access-the-net-when-building-docs.patch
Patch0002: 0002-remove-runtime-dep-on-python-pbr.patch
Patch0003: 0003-Revert-Replace-oslo.sphinx-with-oslosphinx.patch
Patch0004: 0004-notify-calling-process-we-are-ready-to-serve.patch
Patch0005: 0005-Move-notification-point-to-a-better-place.patch
Patch0006: 0006-Set-the-volume-access-mode-during-volume-attach.patch
Patch0007: new-patch.patch
…
…
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1
%patch0004 -p1
%patch0005 -p1
%patch0006 -p1
%patch0007 -p1
…
마지막으로 Patch가 적용된 RPM을 만들기 위해서 다음과 같은 명령어를 실행한다.
# rpmbuild -ba ./rpmbuild/SPECS/openstack-nova.spec
명령어 실행이 끝난 후 /rpmbuild/RPMS/noarch/ 디렉토리에 RPM이 생성된다.