The power of open source is incredible. Don’t believe me? Click here or here ;-) Contribution is something that makes open source projects most powerful. It has been proven with Linux a long time ago. Also, giant companies have started to believe in open source. Open source is not just about making a product free to use, what I believe is, it’s about giving users the freedom to do whatever they want to do with a product, with the source code.
But sometimes, I feel, is it always that easy to contribute? Well, that’s certainly a question. Being an user, it often needs some guidance to get started with something. Why do I believe that? Well, you will know, if you are in such a place, where you are the only person doing something alone ;-)
Eucalyptus comes with such a license, that allows its users to modify the codes as they want and if someone wants to contribute, s/he is always welcome to do so.
Detail on Contributing Code to Eucalyptus
So, how do we start?
Here is the few thing that we will be using,
1. A machines, with CentOS 6.3 installed
2. src.rpm of Eucalyptus 3.1.2
Set up build dependency repository,
cat <<EOF >/etc/yum.repos.d/builddeps.repo [builddeps] name=builddeps baseurl=http://downloads.eucalyptus.com/software/eucalyptus/build-deps/3.1/centos/6/x86_64/ gpgcheck=0 enabled=1 EOF
Configure the EPEL package repository,
yum install http://downloads.eucalyptus.com/software/eucalyptus/3.1/centos/6/x86_64/epel-release-6.noarch.rpm -y
Download the source RPM,
wget -nd http://downloads.eucalyptus.com/software/eucalyptus/3.1/centos/6/source/eucalyptus-3.1.2-0.210.el6.src.rpm
Download and install build-dependencies,
yum install -y rpm-build gcc make
Install the build dependencies for the source RPM,
yum-builddep --nogpgcheck -y eucalyptus-3.1.2-0.210.el6.src.rpm
Install the source RPM,
rpm -ivh eucalyptus-3.1.2-0.210.el6.src.rpm
At this point we have eucalyptus.spec file ready. Run the following commands to get the bits in the ~/rpmbuild/BUILD directory.
cd ~/rpmbuild/SPECS rpmbuild -bp eucalyptus.spec
Make a patch from the original bits,
cp -r eucalyptus-3.1.2 eucalyptus-3.1.2.orig vim eucalyptus-3.1.2/<file_that_needs_aid> diff -Npru eucalyptus-3.1.2.orig eucalyptus-3.1.2 > <name_the_patch>.patch cp <name_the_patch>.patch ~/rpmbuild/SOURCES/
Now, modify the spec file from the ~/rpmbuild/SPECS/ and add the patch into it.
Build SRPMs and RPMs,
rpmbuild -ba eucalyptus.spec
Test your newly created RPMs and contribute to the community.
Happy patching! :)
Contribution is not only limited to source code.
File bug reports: eucalyptus.atlassian.net
Send a pull request on Github: https://github.com/eucalyptus/
Also, tell us about your problem with Eucalyptus on Engage: engage.eucalyptus.com