Interview with Chris Reffett (creffett)
1. Hi Chris, tell us about yourself.
I’m a Computer Science student studying at George Mason University in Fairfax, Virginia, USA, and I’m currently finishing my junior year. In my free time I read science fiction and play video games. I’m also a member of the student-run computing club and Linux user group on campus.
2. Bring us back to your start with electronics and computers.
Not all that much to say here; I’ve been playing with (and breaking) computers since I was about three years old. As my parents can attest, I managed to mess up my first computer within a few days of getting access to it, to the point of needing a complete reinstall.
3. How did you get involved with open source, and what path did you take to become a Gentoo developer?
I became involved in open source in high school; the school had a student-run Linux computer lab, and I joined the team in my second year. We used Gentoo heavily in the lab, and I ended up getting a lot of experience maintaining it there (and installing it—I made a point of grabbing any old odd-architecture hardware that came through the lab and putting Gentoo on it). I filed a few bugs and wrote a few in-lab ebuilds during my time there, but nothing too major.
Once I left and went to college, I decided I wanted to start actually contributing to Gentoo. The recruiters suggested a few different ways to contribute, and I ended up working with the KDE team, which put me on the road to becoming a dev.
4. Hows your programming skills and are they important in becoming a developer?
My programming skills aren’t anything special, enough to get through my classes and all that. I would say that the average developer needs to know enough programming to decipher error messages, do basic bash scripting, and understand how to read most code (to find and fix basic errors in packages). Entry-level knowledge, you don’t have to be a coding wizard.
5. Tell us about your mentor and the process to become a developer?
My mentor was tampakrap, the KDE team lead at the time, who has since ventured forth into the forbidden realms of the Infra team. After I had been contributing to the KDE team on bugzilla for a couple months, he asked if I was being recruited yet, and then if I wanted to become a dev. After that, I spent some time contributing to the KDE team repo, and was assigned tommy as my recruiter.
6. How can Gentoo improve?
One aspect of Gentoo that I think is both one of our biggest strengths and weaknesses is the very independent-minded culture among our developers. While this is not in itself a bad thing, it leads to a lot of instances where people refuse to cooperate or communicate, get very territorial about their packages, flamewars on gentoo-dev@, and so on. I think the project as a whole would be improved if developers were a little more civil and cooperative and a little less quick to shout at each other.
7. Tell us about some of the projects you are involved in.
I started out as a KDE team member, and am still a member (though recently I’m a lot less active there than I should be). Also, I am currently the sole developer in the theology team, though that isn’t so bad since it’s a small set of packages and the release schedules are pretty slow. I’m also one of the more recent inductees to the Security project (along with Pinkbyte and zlogene), a GLEP editor, and of course, I am a member of the QA team.
8. The QA project just made a overhaul, what does the project do, who is involved, where would you like to see it in 3 years?
The purpose of the Quality Assurance project is to help maintain consistency throughout the Portage tree and prevent things breaking. The project is also tasked with keeping documentation up to date. The current membership is available on the wiki, but every developer should be doing their part to minimize tree breakage (and this can be as simple as always running repoman when committing!).
Right now we are having a lot of growing pains, since we were handed a vague mandate of “maintain quality in the tree” (not particularly well defined in GLEP 48), had basically no notes or direction from the remains of the previous team, and as I’m sure you’ve noticed, have had our share of missteps as we figured everything out. I am listening to the complaints, though, and we will improve. In three years, I hope to see QA as a respected and reasonably non-controversial group of developers serving as the technical counterpart to the ComRel team. It’s a long way between where we are right now and that ideal role, though.
9. I see you as very organized and able to stay calm in flame wars, how do you do it?
Contrary to appearances, I am not all that calm when I’m in the middle of a flamewar, I just don’t show it. I do my venting outside of Gentoo channels, as several of my friends can attest, since I make a point of trying to be professional and calm when dealing with Gentoo matters. I also have gotten better at knowing when an argument is going nowhere and it’s most productive to just step away from the computer.
10. What are you learning from being a team lead?
Two things. First, that there are some decisions where no matter what you choose, somebody will be upset. Second, that people’s perception of you and your team is everything when you want people to cooperate.
11. What are your favorite programs?
Firefox for web browsing, Thunderbird for mail, Pidgin for IM/IRC.
12. Age old question for Gentoo, how can we get more help?
Proxy-maint is probably the first place I’d want to expand in order to get more help. My impression is that there are a lot of users out there who want their specific package in Portage and are willing to help out to that end, and so we should be welcoming them and helping them to maintain their ebuild (and hopefully, stepping up further and becoming devs).
13. Describe your desktop setup (WM/DE)?
KDE, of course, though for a long time now I’ve only really been using the WM and the terminal app, since most of the work I do is done on the command line.
14. Tell us about you boxes and home network setup?
Since I’m at college, there isn’t much of interest here. My main computer is a three-year-old laptop which dual-boots Windows (for games) and Linux. I also have a Pandaboard ES which I occasionally fiddle around with.
15. What gives you the most enjoyment within the Gentoo community?
Closing bugs. It’s always satisfying to be able to say that you’ve figured out an issue and fixed it.
16. What gives you the most enjoyment outside the Gentoo community?
Video games. I like games that involve building things, games that involve space, and strategy/tactics games.
17. What are your plans for the future, where do you see yourself 5 years from now?
I hope that in 5 years, I will still be doing Gentoo work. I also hope to be employed. That would be nice.
Google Summer of Code 2014
GSoC 2014 is going to start soon! We are right now in the middle of the community bonding period. Students and mentors are getting to know each others before projects start for real on May 20th. This is also the perfect time for them to review documentation and polish their plan for the entire project duration.
You are welcome to follow developments in the mailing list at gentoo-soc at gentoo.org or on Freenode in the #gentoo-soc channel. There you can interact with students, mentors, and offer suggestions.
We are excited about the four projects students will work on this year. Here they are:
netifrc on systemd
Student: Rabi Shanker Guha
Mentor: Robin Johnson
Short description: The goal of this project is to abstract away the tight dependence of netifrc on OpenRC and write a compatibility layer for netifrc to work with other init systems like Systemd
Gentoo Keys: Expansion and improvements
Student: Pavlos Ratis
Mentor: Brian Dolbec
Short description: I am interested in improving and expanding the capabilities of Gentoo Keys. Gentoo Keys is a Python based project that aims to manage the GPG keys used for validation on users and Gentoo’s infra servers. Gentoo Keys will be able to verify GPG keys used for Gentoo’s release media, such as installation CD’s, Live DVD’s, packages and other GPG signed documents. It will also be used by Gentoo infrastructure to achieve GPG signed git commits in the forthcoming git migration of the main CVS tree.
Student: Devan Franchini
Mentor: Matthew Summers
Short description: This project is aimed at adding python3 support to Layman while maintaining backwards compatibility with python2.7, as well as adding new features to the codebase.
Student: Yiyong Chen
Mentor: Sébastien Fabbro
Short description: The Micro Gentoo project goal is to create an extremely minimal Gentoo VM and fetch compiled files on-demand. These files are initially on a remote server. Meanwhile, the project also considers the smooth-secure OS updates and remote repositories selection. I would comprehensively base my work on the technologies of uCernVM, Chromeos and CoreOS, and then adapt them to Gentoo. The deliverables include Micro-Gentoo building scripts, updaters, eselect module and patches to genkernel, etc.
See you in #gentoo-soc!
(by Andreas K. Huettel)
We’ve got to catch up one council meeting, so some things have accumulated by now and I’m summarizing a bit more than usual…
First of all, “GLEP 63: Gentoo GPG key policies” is finally finalized. Yay! You can find the approved text version here . Most important part, if you want to follow the best practices you need a RSA (v4) 4096bit main key with expiry time of at most 3 years. Hard requirement for the main key is either DSA 2048bit or RSA (v4) >=2048bit and maximum 5 years expiry time. Anyway, this means we can actually start thinking about some marginally more advanced topics such as, say, even maybe sometime in the future signature verification!
Then… regarding the Filesystem Hierarchy Standard. Some debate had come up whether packages (i.e. udev, eudev, systemd) storing default config files in /usr/lib violate existing policies. End result of debate and motion was that this is OK and that no additional policy is required.
On the subject of base-2 (2^10) versus base-10 (10^3), kB versus KiB. Given that the council is heavily dominated by those SI-indoctrinated “scientists”, it didn’t really come as a big surprise that at least clear and unambiguous unit prefixes should be used. So here’s the adopted motion: “Whenever practical, developers are required to use unit prefixes defined in IEC 80000-13 (kB, KiB, etc) so that output is unambiguous. This does not require maintainers to patch upstream code to change its behavior, but they should be applied with code that originates in Gentoo.”
Next, we discussed some recent commits around virtual/libudev and the sequence of events that followed them. The feeling was that no additional policy is required at the moment, but that it would be useful to state the opinion of the council regarding these events. So, we wrote it up and sent an e-mail , please read it and keep it close to your heart.
Finally we would like to remind Petteri to upload the council meeting summary of June 2013! 🙂
Gentoo Developer Moves
Gentoo is made up of 232 active developers, of which 32 are currently away.
Gentoo has recruited a total of 794 developers since its inception.
The following developers have recently changed roles:
- Jonathan Callen (jcallen) has joined the multilib project
- Jason A. Donenfeld (zx2c4) has joined the radio herd
- The entire mobile-phone herd has been removed due to lack of maintainers and interest
No new developers have joined the project this month.
The following developers left the project (pending retirements since 2013)
- Stephanie J. Lockwood-Childs (wormo)
- Paul de Vrieze (pauldv)
- Torsten Veller (tove)
- Constanze Hausner (constanze)
- Dane Smith (c1pher)
- Robert Piasek (dagger)
- Zhang Le (r0bertz)
- Christian Parpart (trapni)
- Rajiv Aaron Manglani (rajiv)
- Mu Qiao (qiaomuf)
- Lukasz Damentko (rane)
- Olivier Crête (tester)
- Tim Sammut (underling)
- Serkan Kaba (serkan)
- Benedikt Boehm (hollow)
- Ron Gemeinhardt (timebandit)
- Andrew Gaffney (agaffney)
- Chris PeBenito (pebenito)
- Michele Noberasco (s4t4n)
The Ruby and Java projects are looking for help to keep jruby dev-java/jruby up to date and included in the portage tree. See this blog post and bug 442230 for more information. Moreover, proxy-maintainers are looking for new developers as well.
This section summarizes the current state of the portage tree.
|Architecture||Stable||Testing||Total||% of Packages|
|201404-07||dev-libs/openssl||OpenSSL: Information Disclosure||505278|
|201404-06||media-libs/mesa||Mesa: Multiple vulnerabilities||432400|
|201404-05||net-fs/openafs||OpenAFS: Multiple vulnerabilities||265538|
|201404-04||dev-ruby/crack||Crack: Arbitrary code execution||460164|
|201404-03||media-gfx/optipng||OptiPNG: User-assisted execution of arbitrary code||435340|
|201404-02||net-libs/libproxy||libproxy: User-assisted execution of arbitrary code||438146|
|201404-01||net-print/cups||CUPS: Arbitrary file read/write||442926|
|sys-apps/toybox||patrick||01 Apr 2014|
|kde-base/zeroconf-ioslave||johu||01 Apr 2014|
|dev-python/kivy-garden||slis||02 Apr 2014|
|dev-python/Kivy||slis||02 Apr 2014|
|dev-ruby/combustion||mrueg||02 Apr 2014|
|dev-libs/double-conversion||bicatali||02 Apr 2014|
|sci-libs/openlibm||bicatali||02 Apr 2014|
|dev-python/cryptography-vectors||radhermit||03 Apr 2014|
|media-libs/gstreamer-editing-services||eva||06 Apr 2014|
|app-admin/clog||tomwij||07 Apr 2014|
|dev-ruby/pygments_rb||mrueg||07 Apr 2014|
|app-i18n/libcangjie||naota||08 Apr 2014|
|sys-apps/netloc||alexxy||08 Apr 2014|
|mate-base/caja||tomwij||10 Apr 2014|
|dev-ruby/rkelly-remix||zerochaos||11 Apr 2014|
|app-emulation/rex-client||mduft||11 Apr 2014|
|xfce-extra/multiload-nandhp||ssuominen||11 Apr 2014|
|app-backup/duply||hwoarang||13 Apr 2014|
|dev-python/sparqlwrapper||idella4||14 Apr 2014|
|media-video/movit||patrick||15 Apr 2014|
|dev-python/cangjie||naota||16 Apr 2014|
|sys-infiniband/libmlx5||alexxy||16 Apr 2014|
|sys-infiniband/qperf||alexxy||16 Apr 2014|
|sys-infiniband/libocrdma||alexxy||16 Apr 2014|
|dev-python/pyringe||dastergon||16 Apr 2014|
|kde-base/baloo-widgets||johu||16 Apr 2014|
|kde-base/kfilemetadata||johu||16 Apr 2014|
|kde-base/baloo||johu||16 Apr 2014|
|dev-python/pyroma||dastergon||16 Apr 2014|
|dev-libs/libntru||hasufell||16 Apr 2014|
|sys-libs/ntdb||polynomial-c||17 Apr 2014|
|www-apps/jekyll||mrueg||18 Apr 2014|
|dev-ruby/awesome_nested_set||mrueg||18 Apr 2014|
|sec-policy/selinux-accountsd||swift||18 Apr 2014|
|net-analyzer/nagios-check_openvpn-simple||mjo||20 Apr 2014|
|dev-python/oslo-rootwrap||prometheanfire||20 Apr 2014|
|dev-python/oslo-messaging||prometheanfire||21 Apr 2014|
|dev-python/pycadf||prometheanfire||21 Apr 2014|
|dev-ruby/fivemat||zerochaos||21 Apr 2014|
|dev-python/python-saharaclient||prometheanfire||22 Apr 2014|
|dev-ruby/charlock_holmes||mrueg||22 Apr 2014|
|dev-ruby/forgery||mrueg||22 Apr 2014|
|kde-base/kqtquickcharts||kensington||22 Apr 2014|
|kde-base/artikulate||kensington||22 Apr 2014|
|app-admin/eselect-lua||mabi||22 Apr 2014|
|dev-python/pycollada||xmw||23 Apr 2014|
|app-i18n/ibus-cangjie||naota||24 Apr 2014|
|www-misc/zoneminder||dilfridge||25 Apr 2014|
|net-libs/libosmo-abis||zx2c4||26 Apr 2014|
|net-wireless/openbsc||zx2c4||26 Apr 2014|
|net-wireless/osmobts||zx2c4||26 Apr 2014|
|dev-ruby/actionview||graaff||26 Apr 2014|
|dev-libs/uchardet||maksbotan||26 Apr 2014|
|net-dns/dnscap||wschlich||26 Apr 2014|
|net-libs/liba53||zx2c4||26 Apr 2014|
|net-firewall/fwknop||tomwij||27 Apr 2014|
|net-misc/lcr||zx2c4||27 Apr 2014|
|app-arch/engrampa||tomwij||27 Apr 2014|
|app-editors/pluma||tomwij||27 Apr 2014|
|app-text/atril||tomwij||27 Apr 2014|
|media-libs/libmediaart||eva||27 Apr 2014|
|net-libs/libgfbgraph||eva||27 Apr 2014|
The Gentoo community uses Bugzilla to record and track bugs, notifications, suggestions and other interactions with the development team.
Closed bug ranking
The following table outlines the teams and developers with the most bugs resolved during this period.
|2||Gentoo KDE team||37|
|3||Python Gentoo Team||35|
|4||Gentoo Linux Gnome Desktop Team||34|
|9||Gentoo Linux MySQL bugs team||17|
Assigned bug ranking
The developers and teams who have been assigned the most bugs during this period are as follows.
|1||Gentoo Linux bug wranglers||90|
|3||Gentoo KDE team||55|
|4||Gentoo Linux Gnome Desktop Team||55|
|6||Python Gentoo Team||48|
|7||Gentoo's Team for Core System packages||44|
Tip of the month
Portage File List
What is Portage File List?
Portage File List collects which files are installed by which ebuild on users machines. It shares this data publicly for searching/browsing.
PFL needs Portage data from your system. The more ebuilds you have installed the better. The more exotic ebuilds you have installed the better. Every Gentoo user can help!
This will install a cron job that submits new data to the PFL servers every week. Don’t worry, your privacy remains protected as we are not collecting anything else than portage data, and we don’t store who sends what.
As a bonus you get /usr/bin/e-file a command line utility to search for files installed by ebuilds. It allows a user to search for files that are not installed on their system and figure out which ebuild they need to install in order to obtain it. E-file requires internet access to obtain its information from the PFL website and database. Pfl is quicker than equery to search for files (even if not installed locally), while equery is more powerful and gives more options to search. Equery is limited to currently installed packages only.
The equery program is installed with the app-portage/gentoolkit package, a collection of administration scripts for Gentoo.
Heard in the community
Send us your favorite Gentoo script or tip at firstname.lastname@example.org
Interested in helping out? The GMN relies on volunteers and members of the community for content every month. If you are interested in writing for the GMN or thinking of another way to contribute, please send an e-mail to email@example.com.