This month in GMN:
- 1 Gentoo News
- 2 Gentoo Developer Stats
- 3 Portage
- 4 Security
- 5 Package Removals/Additions
- 6 Bugzilla
- 7 Tip of the month
- 8 Getting Involved?
Interview with Tom Wijsman (TomWij)
(by David Abbott)
1. To get started, can you give us a little background information about yourself?
Tom Wijsman is my full name; TomWij is formed as a shorter nickname, taking the first three letters twice. 24 years is how long I’ve been alive and Antwerp, Belgium is where you can find me eating, hanging around, sleeping, studying, working and so on…
At university, I study the Computer Science programme with a specialization in Software Engineering. As the last year starts now, my student time is almost over.
Over the last years, a lot of programming languages have passed by there and on Gentoo Linux; which makes participation in both of them really worth it.
Besides programming, listening and playing some music is what I like to do. Currently I own an electric guitar, which sometimes is played on; but maybe I go for another instrument soon and practice in a more dedicated manner. Occasionally, I play FPS or RTS games too.
2. Tell us about your introduction to Gentoo?
The first look at Gentoo was when I was a dedicated enthusiast Windows user, who would run as much on Windows as possible. Once I’ve tried to set up a Windows / Linux combination by running SUA / Interix together with Xming, but as I barely knew Linux back then that didn’t come to a good end. Later, Linux was needed for university; as we needed to guarantee our software compiles and works on the lab computers that run Linux.
Having used another distribution in a virtual machine for some time; I discovered that it was slow without hardware virtualization, which we didn’t have yet back then. Something fast and small on a separate partition was needed; and thus, a small bit of space was cleaned out at the end of the partition and Gentoo was used to create a quite minimal setup with just what’s necessary to develop, compile and test.
When the need for that was over, the small partition was ditched; thus I have been using Windows for several years, but with Windows 8 going RTM and the changes that happened I started to realize that I wanted an OS that can be changed to what I like, instead of doing things the way in the limited amount of ways they can be done.
So, Gentoo Linux came back in mind; and that’s how I made the switch to it last year.
3. Describe your journey to become a Gentoo developer?
Not long after becoming an user of Gentoo, I decided to contribute back; so, I started to try to package some things that I used on Windows or which fitted the current needs back then. From there on I looked for ways to contribute, at which time I found a blog post that the kernel team is looking for users to help; there was too many users, so, I didn’t make the cut.
Apparently, none of them sticked to it; so, later I got back to try again and then the kernel lead mentored me. As this was a good opportunity, the next days were spent on studying the development manual and answering the quizzes as detailed as possible; I took a self-study approach here, looking back on it having seen every part of the devmanual certainly gains you a lot, as you can recall where things are and know enough to not break the Portage tree.
After a recruiter reviewed the quiz responses a year ago; I learned more during the review, that’s how I became Gentoo Developer and six months after I switched from Windows.
4. What are some of the projects you are involved with and the packages you help maintain?
Besides working on our Kernel releases, recently I have joined the QA and Portage team to keep the quality of our distribution high and improve repoman; in the longer end I plan to improve Portage and/or pkgcore when I get to learn their code base better. Other teams I am on are the Proxy Maintainers (to help Gentoo users maintain packages without them needing to become a Gentoo Developer); as well as the Java, Dotnet, Bug Wranglers and Bug Cleaners projects. The last two projects help get bugs assigned and cleaned up.
Next to those projects I maintain or help maintain some packages that I either personally use, am interested in or where work was needed. One of the last introduced packages is Epoch, a new minimal init system. It boots extremely fast on the Raspberry Pi.
5. I proxy-maintain a few packages myself. I am a staff member without commit rights. Its a great way to give back and also help maintain a package that you like and use. To prepare I did the ebuild quiz for my own understanding of ebuild writing and set up a local overlay to test my ebuilds. What are some other ways a user can become confident enough to maintain some packages?
The basic guide to write Gentoo Ebuilds is a guide that was started to cover the very first steps to writing an ebuild; this resource was previously non existing, it was written to close the gap between having no prior knowledge and the Gentoo Development Guide.
The Gentoo Development Guide is a great reference to find most details and policy one needs to know for writing ebuilds; when working in the terminal, checking out
man 5 ebuild can be handy to quickly look up syntax, variables and functions of the ebuild format.
Creating a local overlay allows you to start locally experimenting with ebuilds. When you feel confident you can request a hosted overlay (or create one yourself on a third party service like GitHub and file a similar bug requesting it to be added to the overlay list) or contribute to the Portage tree (through proxy maintenance or you can become developer if you want to) or an existing overlay.
When you do proxy maintenance, the proxy maintainers will help you by advising and reviewing the ebuild and letting you know how to improve it; if you work on an overlay, there are other mediums (where proxy maintainers are present as well) to ask questions or get your ebuild reviewed. For example, #gentoo-dev-help on the Freenode IRC network is helpful.
Besides that users are advised to run
repoman manifest && repoman full
to check for QA errors, QA keywords are explained in the last part of
man repoman it can help find common mistakes, as well as help increase the quality for it to be added to the Portage tree.
6. What do you think Gentoo’s strengths and weaknesses are both as a development platform and as a general purpose Linux Distribution?
That you can very easily patch up packages is a very nice feature, as well as the code that gets compiled by those packages; you can simply unpack the code;
ebuild unpack foo-1.ebuild
and write a patch for one or more file(s), then put the patch in /etc/portage/patches/app-bar/foo and there you have your patched code.
Besides patching up packages, the USE flag control in Gentoo is what makes Gentoo powerful. This controls the features of packages to allow you to have packages fit your usage rather than become bloated with features, libraries and other size hogs you never need. Alongside USE flag control becomes the ability to choose alternative libraries, alternative GUIs more; which is nice when you prefer the way something works or looks like.
What I think Gentoo could use more is more manpower; what made Gentoo powerful is its community, and its community is formed by users who contribute. And to this extent the amount of contributions determine how powerful Gentoo becomes.
If users are interested; they are welcome to contribute to Gentoo, to make it even more powerful than ever before. They don’t necessarily need much prior knowledge, there’s something for everybody; and if needed, we can help them learn more.
7. Can you describe your personal desktop setup (WM/DE)?
As desktop environment; I use GNOME 3, I’m glad to see the way they have progressed in terms of their user interface. GNOME 2 I’ve also used in the past, because I didn’t bother searching further too much; but didn’t really like GNOME 2’s UI. GNOME 3’s UI gets out of the way and I like how it focuses on the more typical user that has no special requirements.
Alongside that comes the requirement to run systemd; though that was in use long before running GNOME 3, as a while ago I was on XFCE and was experimenting around to see if systemd fits certain needs. It does; so does XFCE as well, so while I don’t really like it UI like with GNOME 2, I considered XFCE as an alternative DE to switch to. However, very recently I’m using MATE on top of GNOME 3; if GNOME 3 breaks, MATE is my new alternative DE.
The particular thing that I like about systemd is that it allows you to easily make a huge cut in boot time; while this kind of parameter has no good purpose in general, it does help as I need to test kernel releases and sometimes switch between NVIDIA and Nouveau module. The boot is down to two seconds after the boot loader hands over; at this point, you discover that the bootchart PNG export feature doesn’t allow you to scale the graph…
On the Raspberry Pi, Epoch gets the boot time down to seconds; as it was bothering that it previously took over a minute, as that is what running init scripts (which are shell) does together with all what they call when you run it on slow embedded hardware. Whereas Epoch is a daemon with a single configuration file that just starts a few processes and that’s it.
It also helped for bisecting as well as hacking up a reclocking patch for the Nouveau module a bit; while making it work on the NVIDIA card, the patch is still unstable and might break other cards and further improving it is quite a steep learning curve and a lot of work.
Other software that I use is AutoKey to quickly paste text that I need to repeat often (comments on bugs, e-mail responses, …); Chromium which I think is a browser that gets out of the way with its minimal interface; WeeChat (actively developed irssi clone with a ton of extra features); a mail client that does what I need (Claws Mail); and I could go on for hours, so, feel free to ask if you want to know more…
8. What are the specs of your current boxes?
Currently I own a Clevo W870CU barebone laptop that is put together; it features a Intel Corporation 5 Series/3400 Series Chipset, a Full HD 17 inch screen and enough interface ports. The processor in it is an Intel(R) Core(TM) i7 CPU Q 720. As hard disks I use a Intel X25-M 160 GB SSD and a Seagate Momentus 7200.3 320 GB HDD. There are also a NVIDIA GeForce GTX 285M, Intel Corporation WiFi Link 5100 and Realtek RTL8111/8168/8411 PCIE Gigabit Ethernet Controller inside.
As for the Raspberry Pi, it is a model B; you can find its specifications here. I gave it a 32 GB SD card with Gentoo on it where the 32 GB gives it some room before wearing it out. Alongside there are two external drives of a few terabytes to store big data and backups.
The Raspberry Pi here kind of acts like a cheap all-in-one NAS and/or media solution.
9. As a Gentoo Developer what are some of your accomplishments?
On the kernel team, the kernel eclass and genpatches scripts were adapted to bring support for experimental patches; this allows adding experimental patches to kernel packages using USE=experimental, without applying them by default. A condition for an experimental patch to be added is that applying the patch does not change the runtime behavior; in other words, we want changes to be guarded by a config option, in addition to USE=experimental. The eventual end goal is to have a lot of the regular experimental patches supported, to deduplicate work amongst kernel packages and our users.
Besides making improvements to the kernel packaging I maintain packages that I use and/or packages that need maintenance; at the moment, MATE is being brought to the Portage tree. Quality Assurance work I also do to keep the quality of the Portage tree high.
10. What would be your dream job?
While not having anything specific in mind, developing on “something” is what I have in mind.
In the context of the business world, that could be solutions that aid users with their daily tasks; in the context of the gaming world, maybe some indie game in the hope that it grows out; and last, I listen to music a lot, so, maybe within that context it could be some kind of computer science solution within that field.
Relying on yet-to-discover science is what I’d like to avoid, and rather rely on what is a given already; such that becoming popular is the only real risk. Once popularity has been obtained, then exploration might become an option; although one should not ignore that exploration can lead to popularity, but as said that is not without risk.
11. What users would you like to recruit to become Gentoo Developers?
Good question; many people are qualified, anyone that’s interested can expect help from us.
12. What gives you the most enjoyment within the Gentoo community?
Giving back to the community as an appreciation of what the community has given to me.
Gentoo Galaxy: Keeping History of Gentoo
(by Seemant Kulleen)
Gentoo Galaxy aims to make sure that Gentoo’s history is as accurate as possible, that every Gentoo developer’s contribution is acknowledged and valued. We’re starting with our list of Gentoo developers. We currently have all developers who have been active in Bugzilla and/or the 4 main CVS repositories throughout Gentoo’s history represented in a visualization here: http://kulleen.org/gentoo/galaxy
That page contains a list of developers for whom we need more information — we want to visualize everybody’s contributions. If you are or know a developer on that list, please get in touch with us via bugzilla. e-mail, twitter, google plus or IRC in #gentoo or #gentoo-dev.
Gentoo Foundation 2013 Treasure Summary
In the fiscal year 2013, for the period of July 1st through June 30th we had total assets of $73,494.40. Our main income was $7,000.00 from GSOC, next was donations thru paypal for $6,386.94 and the official Gentoo store generated $558.85 in commissions.
Our expenses totaled $3,396.01 with $2,399.23 to Gentoo GSoC 2012 mentor’s summit travel reimbursement.
Requests for Funds, Project Support, or Equipment
Requests for funds, project support, or equipment need to be sent to the Foundation in the form of a proposal. This proposal is to inform all trustees of the need (not all of them will be aware of the need or the background of the situation). The proposal process will also help to maintain a trusting relationship between the Foundation and its donors. Donors know and expect that without exception money will only be spent after a proposal and vote by the Board of Trustees. Additionally, the proposals will be archived to provide accountability for money spent.
Please review our policy documentation for more information.
Subject: Ruby 1.8 removal, Ruby 1.9 and Ruby 2.0 activated by default
The Gentoo Ruby team would like to inform you, that the default active ruby targets changed from “ruby19 ruby18″ to “ruby19 ruby20″.
It is about time, because Ruby 1.8 was retired by upstream in July 2013  and has got known security issues (CVE-2013-4164). In Gentoo, we’re going to remove the currently package.masked Ruby MRI 1.8 soon. All packages, depending on ruby, have been converted to support at least Ruby 1.9 or were added to the package.mask at the same time with Ruby 1.8. In case of issues during or after the upgrade, feel free to fill a bug at bugs.gentoo.org
If your currently eselected Ruby interpreter is ruby18, our recommendation is to change it to ruby19.  At the moment Ruby MRI 1.9 delivers the best possible support of all Ruby interpreters in tree.
Check the current setting via:
eselect ruby show
Change the current setting to Ruby MRI 1.9 via:
eselect ruby set ruby19
Gentoo Developer Stats
Gentoo is made up of 252 active developers, of which 38 are currently away.
Gentoo has recruited a total of 794 developers since its inception.
The following developers have recently changed roles:
Jason A. Donenfeld (zx2c4) Joined the systemd project
The following developers have recently joined the project:
None this month
The following developers recently left the Gentoo project:
None this month
This section summarizes the current state of the portage tree.
|Architecture||Stable||Testing||Total||% of Packages|
|201403-08||dev-perl/PlRPC||PlRPC: Arbitrary code execution||497692|
|201403-07||sys-apps/grep||grep: User-assisted execution of arbitrary code||448246|
|201403-06||net-libs/libupnp||libupnp: Arbitrary code execution||454570|
|201403-05||app-editors/emacs||GNU Emacs: Multiple vulnerabilities||398239|
|201403-04||dev-qt/qtcore||QtCore: Denial of Service||494728|
|201403-03||sys-apps/file||file: Denial of Service||501574|
|201403-02||dev-libs/libyaml||LibYAML: Arbitrary code execution||499920|
|201403-01||www-client/chromium||Chromium-V8: Multiple vulnerabilities||486742|
|x11-misc/slimlock||titanofold||10 Mar 2014|
|dev-libs/ido||ssuominen||15 Mar 2014|
|dev-ruby/ruby-bdb||mrueg||15 Mar 2014|
|www-servers/mongrel_cluster||mrueg||15 Mar 2014|
|virtual/emacs-cedet||ulm||17 Mar 2014|
|gnustep-libs/cddb||voyageur||17 Mar 2014|
|app-emacs/nxml-mode||ulm||17 Mar 2014|
|app-emacs/erc||ulm||17 Mar 2014|
|app-emacs/cperl-mode||ulm||17 Mar 2014|
|app-emacs/alt-font-menu||ulm||17 Mar 2014|
|app-emacs/u-vm-color||ulm||17 Mar 2014|
|app-emacs/eperiodic||ulm||20 Mar 2014|
|app-emacs/view-process||ulm||20 Mar 2014|
|media-sound/audio-entropyd||angelos||22 Mar 2014|
|app-emacs/http-emacs||ulm||23 Mar 2014|
|app-emacs/mairix||ulm||23 Mar 2014|
The Gentoo community uses Bugzilla to record and track bugs, notifications, suggestions and other interactions with the development team.
The following tables and charts summarize the activity on Bugzilla between 25 February 2014 and 27 March 2014. Not fixed means bugs that were resolved as NEEDINFO, WONTFIX, CANTFIX, INVALID or UPSTREAM.
Closed bug ranking
The developers and teams who have closed the most bugs during this period are as follows.
|1||Python Gentoo Team||76|
|2||Perl Devs @ Gentoo||63|
|3||Gentoo KDE team||47|
|5||Gentoo's Team for Core System packages||41|
|6||Gentoo's Haskell Language team||35|
|7||Gentoo Linux Gnome Desktop Team||31|
|8||GNU Emacs Team||29|
|9||Default Assignee for Orphaned Packages||28|
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||119|
|4||Gentoo KDE team||57|
|5||Gentoo Linux Gnome Desktop Team||57|
|6||Python Gentoo Team||52|
|7||Gentoo's Team for Core System packages||51|
|8||Gentoo's Haskell Language team||41|
|9||GNU Emacs Team||41|
Tip of the month
Gentoolkit has a little known utility called enalyze.
Enalyze analyzes the deployment information Gentoo keeps of all packages and checks this against the current settings status.
There are 2 sub-modules:
- the “analyze” module produces the reports, and
- the “rebuild” module which allows for rebuilding package.use, package.accept_keywords, and package.unmask files which can be placed in /etc/portage.
The difference between it and equery, is that equery does specific queries, while enalyze does complete reports. So, essentially it can be used as a tune up or repair kit for your gentoo system. It does not do everything for you, it does leave some of the decision making to you. But after reviewing the reports, you may want to edit your make.conf to optimize its settings. An interesting feature is that enalyze supports creation of new package.use, package.accept_keywords or package.unmask files based on the currently installed package information, your current profile and make.conf settings. Through it, enalyze can help you rebuild these files or remove obsolete entries from it.
Please note that it does not use or modify existing /etc/portage/package.* files
# enalyze analyze -v use
This produces a report of all use flags used by packages on your system as well as how they are used. It shows if a USE flag is enabled or disabled, and shows if the USE flag has a “default” setting (a summary of: a profile enabled USE flag, a global make.defaults USE flag, etc.) For each USE flag, the packages that use it are listed as well when called with the -v module option.
From that information you can edit your make.conf’s USE= and remove any flags that are already defaulted. if there is a flag that has more than a few packages using that setting, you could add it to the USE= instead of relying on having that flag in package.use for those packages.
When finished the above:
# enalyze rebuild use
Will generate a new package.use file (neatly sorted) of only the entries needed to preserve the current state of the packages installed. Once you check over the file, add some custom tweaks (to your satisfaction) you can replace the existing or missing file in /etc/portage.
It also runs completely as any user in the portage group. There is no need to run it with superuser rights. Any files generated are saved in the users home directory.
Tip: It is very useful for changing profiles too. Just run them to adapt to the new profile and the new defaults.
P.S. There is room for the utility to get many more reports and rebuild options. So, submit your requests (and hopefully code).
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.