The X.Org Endless Vacation of Code (EVoC)

For the last several years, X.Org was a participating mentoring organization in Google's most excellent Summer of Code (GSoC) program. That program provides approximately US$5000 to students to spend their summer developing code for an open source project. Each student proposes a project and is matched with an organization mentor who guides and evaluates the work. GSoC was great for X.Org; we saw more than a dozen students through it, and some of these students went on to be extremely active contributors to X.Org.

However, for whatever reason some students with good project proposals who would like to participate in GSoC have been unable to do so. Typically, this was because Google funded fewer high-quality GSoC proposals than we had available in a given year, or because the rigid timing of GSoC was entirely incompatible with a student's calendar.

Rather than lose out on getting students working on X, the X.Org Foundation Board voted in 2008 to initiate a program known as the X.Org Endless Vacation of Code (EVoC) program. The basic terms and conditions of this program are quite similar to Google's GSoC. We welcome international students and GSoC alumni. The key differences are that:

  1. an EVoC mentorship can be initiated at any time during the calendar year,
  2. the Board can fund as many of these mentorships as it sees fit.

We will also consider a broader range of proposals than GSoC: technical documentation is a specific area of interest for us.

A proposal will typically be for a period of three to four months of contiguous nearly-full-time work, with an initial payment of $500 and two further payments of $2250 upon completion of project milestones. The proposal should include a detailed proposed scope of work and schedule; see the X.Org GSoC Application page for more information about writing successful proposals. Proposals must acquire a lead mentor from the X.Org technical community in order to be accepted; if the student can help identify this person early, that will increase their chance of success.

Non-students may also participate in EVoC. Application and participation for non-students is the same as for students, with one exception: non-students will not be paid. The X.Org Foundation believes that paying non-students to help develop X leads to a variety of problems, not least of which is complicating the non-profit status of the Foundation. For EVoC purposes, a student is someone who is a half-time or more college or university student during, immediately before or immediately after their EVoC period. Secondary school students 18 years of age or older are also eligible; sadly, it is legally complicated to pay younger students.

At the current time, X.Org Board member Rob Clark robdclark AT gmail DOT com is the contact person for X.Org EVoC. All inquiries should be emailed to him, with a cc to

Steps for Students

First, find a project you're interested in. Students are welcome to either come up with an idea on their own or work up a proposal for an idea suggested by someone else. Lists of ideas that existing developers have come up with can be found at ToDo and Ideas.

Second, identify the specific sub-community involved with the project you're interested in. (The ideas list is categorized by community so this should be easy.) Note the IRC link, mailing list, or email address in the 'Where to ask questions' section from the ideas list.

You can learn about your chosen community's work by reviewing recent emailing list discussions, studying their roadmap, and looking at changelog activity from recent releases. Hanging out on the irc channels (listed below) and talking with people there is an excellent way to flush out ideas and/or possible mentors.

You will be most successful if you can solidly demonstrate that you're comfortable participating in and contributing to your chosen community. Students need to have at least a basic understanding of the following:

  • mailing lists
  • irc (graphics developers use #xorg-devel,#xorg, #dri-devel, #nouveau and #wayland to name a few.)
  • gcc
  • git
  • Be comfortable using a linux shell and command line

Next, find a potential mentor if you haven't already identified one. See the "Potential Mentors" list at the end of the ideas page. If you have trouble finding someone or initiating contact, email Rob Clark robdclark AT gmail DOT com for help. Arrange to go through the checklist (below) with them to verify you have everything you need before starting.

Finally, you'll be ready to write and submit the actual ?GSoCApplication and, if approved, start work.


In addition to GSoC requirements for the actual proposal there is:

  • Applicants can show proof of university attendence, either immediately preceeding session, or immediately following session.
  • Applicants must have a financial account, either checking or savings, in their own name, that is capable of wire transfers.
  • Applicants must already be involved with the project and known to the community. (This requirement is so that the majority of project time is spent on the actual project, not on figuring out build systems, contributions rules, etc.)
  • Applicants are in regular and close contact with their X.Org mentors.
  • Applicants are able to post public status reports to a blog and/or the development community's mailing list.
  • Applicants know their target programming language.
  • Applicants has successfully upstreamed a simple patch to demonstrate they know the process.

Checklist for Initial Mentor/Student Interview

The mentor should verify the following are all addressed before officially accepting the student for the program:

  • Review the student's proof of university attendance
  • Review the student's upstreamed patch
  • Is the student aware of the rules and regulations of GSoC?
  • Has the student indicated they satisfy all the requirements listed above?
  • Has the student verified they can accept (IBANN or SWIFT) wire transfers with their bank?
  • Does the student have a reliable internet connection for the duration of the program? What are their backup options if their connection is disrupted?
  • Does the student have the necessary computer hardware and a working development environment on an appropriate operating system version? What is their contingency plan in case it breaks?
  • Does the student have the required time availability? When do the students classes/finals end? When does the next session start? Does they have any other obligations between those dates (part-time jobs, vacations, family commitments, studies, etc.) How many hours per day do they expect to work?
  • Does the student have a blog set up and ready to post to? Or else would they prefer sending status reports to the project's public mailing list?

EVoC Administration