Category Archives: google summer of code

Setting up a VM for doing GSoC work (part 3)

For previous post, see: Setting up a VM for doing GSoC work (part 2)

After following the previous configuration steps, Neeraj was able to get the following working inside VMWare VMPlayer:

  • FreeBSD-10-CURRENT from a snapshot ISO
  • X working and displaying graphics
  • GNOME desktop
  • 600 binary packages installed, consisting of X, GNOME, and other utilities

Here is a screenshot:

Gnome Desktop




Setting up a VM for doing GSoC work (part 2)

For previous post, see Setting up a VM for doing GSoC work

Since Neeraj is using a Windows 7 machine, where FreeBSD is in a VM, I asked him to install the following programs under Windows:

In the FreeBSD VM, I asked him to add this to /etc/rc.conf :


and this to /etc/ssh/sshd_config :

PermitRootLogin yes

This allowed him to (1) log into the VM via SSH using Putty, (2) transfer some files to and from the VM using WinSCP

Configuring sshd is documented in the FreeBSD Handbook here:


One point of confusion for Neeraj was that some config files are located in /usr/local/etc (for certain ports),but the certain config files are under /etc.  For example, the  sshd config files are under /etc/ssh/  (and not /usr/local/etc/ssh/).  Depending on the Linux distribution, on Linux there is generally no /usr/local directory, and all config files go under /etc.  This is one slight point of confusion for users moving from Linux to FreeBSD.  Nothing too difficult, but something worth noting.

Using github for GSoC work

These days, a lot of open source projects and even startup companies are using git and Github to host their code and do rapid development.  Although the FreeBSD project’s SCM is Subversion,
it is still possible to use Github to work with FreeBSD thanks to the work of FreeBSD developers who have set up scripts which mirror the FreeBSD code in Github (see: ).

Using the Github repository, it should be possible for a GSoC student to:

  1. Look at the FreeBSD source code at
  2. Create their own copy of the FreeBSD code in Github by following the instructions at “Fork a Repo”,
  3. Check out the FreeBSD code from their Github copy and rebuild the world and kernel by following the instructions at “Rebuilding world”
  4. Modify the code, debug the kernel, and do other fun stuff by reading “Developer’s handbook”,
  5. Follow some of the ideas in Alfred Perlstein’s blog post for Basing a Commerical Product on FreeBSD Using Git



It would be fun to try this all out!!

Setting up a VM for doing GSoC work

I am helping Neeraj Rawat set up a VM so that he can do FreeBSD development for Google Summer of Code (GSoC).

I am interested in learning what the “Out of the Box Experience” is like for students and newcomers to FreeBSD.  The technologies that students are exposed to today, and the development environments that they are comfortable in on Linux/Unix systems is far different than when I started using Unix systems in 1992 when I was a  chemical engineering student at the University of Toronto.

Neeraj likes the Geany IDE.  This a simple graphical IDE is written using the GTK2 toolkit.  Luckily, there is a FreeBSD port of Geany.

Neeraj’s home computer is a Windows 7 box, and he is using VMWare Player to run FreeBSD in a virtual machine.

Since Neeraj wants to work on file system stuff with FUSE, I am asking him to use FreeBSD-10-CURRENT, instead of FreeBSD 9.1 release.

I told Neeraj to do the following:

  1.   Install that image into a Virtual Machine, or on a dedicated PC computer using the instructions at:
  2. Once the system is booted up, create a configuration file /usr/local/etc/pkg.conf and in this file has one line:packagesite:
  3. Use the “pkg” utility to install packages, as documented here:
  4. Install some basic packages with these commands:pkg install devel/git-subversion devel/subversion shells/bash shells/zsh
    pkg install x11/xorg x11-drivers/xf86-input-vmmouse x11-drivers/xf86-video-vmware
    pkg install x11/gnome2
    pkg install devel/geany


  5. Edit /etc/rc.conf and add these entries:gnome_enable=”YES”

    This is covered in these links:

Neeraj is not finished yet.  One of the steps where we got stuck was in step (3).  Neeraj had typed:


and not


Apparently for the “pkg” utility, in the pkg.conf file, the “packagesite:” must have a space after the colon and before the URL, otherwise it will fail.  When the FreeBSD ports team gets all the infrastructure in place to build FreeBSD pkgng packages, we will be able to delete this line and not use a 3rd party provider of FreeBSD packages for 10-CURRENT.

See more details at: Setting up a VM for doing GSoC work (part 2)


Google Summer of Code 2013

Every year Google funds a project called Google Summer of Code .  Google works with different open source projects, and actually pays students to hack on open source projects during their summer break.  If a student is interested in participating in Google Summer of Code (GSoC), they must write a proposal for a project that they want to work on for a specific open source project, and submit it.  These proposals are evaluated by the open source project and Google.  If approved, the student can work on their project, but must work with a mentor in the open source project.

FreeBSD has participated in GSoC for many years.

A few months ago, Neeraj Rawat, who is a computer science student at Indian Institute of Technology, Delhi (IITD) sent me an e-mail and asked if I could mentor him on a FUSE file system project for FreeBSD.  I have never done this before, so agreed.  I am very interested in bringing new blood into the FreeBSD project.  I am interested in learning what the pain points are for new developers to start with FreeBSD, so as a project, we in FreeBSD can improve things.  Pedro Giffuni has also agreed to mentor this project.  Pedro has a lot of experience with FreeBSD file systems and FUSE.

GSoC has a published schedule for when the GSoC work must start, and when it must end.  Neeraj has submitted his proposal, and we will learn if it is accepted by the end of May 2013.  Hopefully the proposal will be accepted, and we can do some interesting things over the summer with FUSE and FreeBSD!