Contributing to OpenSolaris
By jkini on Oct 16, 2007
Who can become OpenSolaris contributor:
A contributor can be an individual or a company/institution. A copyright in the name of the contributor is placed into the files contributed by the individual. If its a company/institution, then the company/institution will hold the copyright.
How to become OpenSolaris contributor:
Register at opensolaris.org Link: https://www.opensolaris.org/register.jspa
Download Sun Contributor Agreement (SCA). The agreement is available on http://www.opensolaris.org/os/about/sun_contributor_agreement.
Print the Sun Contributor Agreement, fill it and sign it. Follow the instructions on the above link to submit it.
You'll be given a SCA number and your email address will be added to firstname.lastname@example.org. You can also join this alias by sending a blank mail to email@example.com.
That's it. You are a contributor.
What to Pickup:
Go through the Communities and Projects page. Follow up on the archived mails, join the discussions to know what everyone is working on. Give feedback. Throw ideas. Comment on the design. Select an area of interest. Start working on it. Check out the documentation on http://docs.sun.com. All the man pages, exported interfaces, configurations (with examples) are available here.
What to contribute:
You can contribute any code that you have written. For e.g. a new driver that you have written, a fix for a bug that you have discovered, an enhancement, new features, anything that you have written.
Some Bugs and Request for Enhancements (RFE) in OpenSolaris are opened up for the community. These are marked with the keyword oss-bite-size. The list of this bugs can be found on http://www.opensolaris.org/os/bug_reports/oss_bite_size. Select a bug you wish to work on. Note that you select one which has a empty "Responsible Engineer" column. Even if a Bug/RFE is marked oss-bite-size, an engineer inside Sun might have picked this up for different reasons (it is part of a project, required for another fix to work, high impact, etc).
You can also search for a bug/RFE of your interest on http://bugs.opensolaris.org and choose to work on it even if its not marked oss-bite-size. These bugs are a bit more complicated though.
Note that the request for sponsorship is sent after the contribution is ready. It has happened earlier that a contributor sends a request for sponsorship while somebody inside Sun is already working on it. With increasing number of contributors, it might as well be another contributor in future.
The status of all contributions can be tracked from http://www.opensolaris.org/os/bug_reports/request_sponsor. All the bugs/RFEs for which a fix has been submitted by an OpenSolaris contributor has a keyword request-sponsor in it.
When you pick up a bug/RFE please not the following things:
The Responsible Engineer field of the bug must be empty
request-sponsor keyword should not be present in Keywords field. If this keyword is there, then that means another contributor is working on this bug/RFE.
http://src.opensolaris.org/source lists many source gates. These are project source gates. The main Solaris gate is onnv. Some of the bugs are against the project gates and some are against open sourced software which is just bundled with Solaris. Make sure the fix for the bug you pick up goes into the onnv gate.
How it works:
Once you have selected a bug/RFE to work on, send a mail to firstname.lastname@example.org stating that you want to work on this bug. Also give a reasonable time frame by which you'll come back with the contribution. This is required because the opensolaris.org page does not track contributors who are currently working on a bug. It only tracks already submitted contributions. One of the members of the alias will verify if another contributor is working on it or any Sun Engineer is working on it. This will prevent duplicate efforts and any disappointment later.
After you are ready with your code change, do a thorough testing. Testing is necessary even if its a small and obvious change.
When you are ready with your contribution, send a mail to email@example.com asking for sponsorship. One of the sponsors would pick up your request and work with you to get your contribution integrated into OpenSolaris. The sponsor will keep you updated on the progress.
request-sponsor alias contains all the contributors and all the \*sponsors\*. The sponsor's job is to mediate with the contributor and commit the contributor's source into OpenSolaris. No, its not monetary sponsorship. A list of sponsors is available at http://www.opensolaris.org/os/community/on/crt/advocates.
Things to keep in mind:
License. Your code should not violate any of the license terms. I'm not a license expert to elaborate on that.
Please remember that Solaris promises backward compatibility. Any shell script or program written for earlier versions of Solaris MUST work on later versions. Changing the output format of a command, the behavior of its options, systemcall parameters, any documented behavior (manpage, docs.sun.com), is a no-no. Well, this can be done to a minimal level by filing an ARC case.
Any new code/modifications that you submit must be tested, even if it is an obvious and simple modification. The sponsor would be verifying your test results as well as performing more tests which are required before integration.
What you need:
This is the official distribution of OpenSolaris. Download this from http://www.opensolaris.org/os/downloads. The starter kit media can be ordered to your postal address from http://get.opensolaris.org.
Solaris Express is available for both sparc and x86. Only 64 bit kernel is available for Sparc version. Solaris sparc does not support 32 bit kernel anymore. The x86 version of Solaris Express can be run in both 32bit and 64bit.
This page lists some more utilities along with it. Solaris and Sun Studio is free. Sun Studio contains the compiler and IDE. If you want to modify Solaris, you'll need it.
512 MB and 5GB is required to install Solaris. If you want to build, modify and test and keep aside another 10GB.
You'll need an account with Sun Download Center. The account is free as well.
Another way is to install from Belenix (http://www.belenix.org). This is the live CD version and can be installed from the LiveCD itself. Belenix runs 32bit kernel and is available for x86 platform only. Belenix can also be downloaded from a torrent. Nexenta and Schillix are also LiveCD distributions of Solaris(x86).
If you are compiling Solaris source then you'll need this. This can be downloaded from the above link for Solaris or from http://developers.sun.com/sunstudio/downloads/index.jsp. Sun Studio contains compilers and a basic IDE as well. For working on Solaris code you'll need the compilers but the IDE is not necessary. If you are developing your own software, then you can use gcc or NetBeans IDE.
Some more download links
Solaris download link and documentation: http://opensolaris.org/os/downloads/on
Solaris source and BFU archives: http://dlc.sun.com/osol/on/downloads/current
Solaris source mercurial repository ssh://firstname.lastname@example.org/hg/onnv/onnv-gate.
Solaris and other supporting software downloads: http://opensolaris.org/os/downloads
Note that while both Solaris and Sun Studio is available for free, the support service is not free.
The BFU archives are generated for every build and can be used to upgrade a Solaris system. Make sure you read the documentation on how to BFU before using it.
The OpenSolaris Developer's Reference Guide is a must for those who work in kernel land (drivers, modules) or on OpenSolaris source itself. Its a good reference if you are developing your own application as well.
Check out the Open Solaris User Groups on the Projects page. Go through the mail archives and post your questions here for any help.
Building Solaris: http://www.opensolaris.org/os/community/on/devref_toc/devref_4/ and http://www.blastwave.org/articles/BLS-0050/index.html (with screenshots)
Additional Softwares for Solaris: http://www.blastwave.org.
Man Pages and Documentation: http://docs.sun.com