Gentoo Monthly Newsletter: May 2014

Gentoo News

Interview with Brian Dolbec (dol-sen)

by David Abbott

1. Hi Brian, tell us about yourself.

I’m a wannabe scientist/inventor that never did take the full plunge into that career path.
I’m married with 28 and 14 year old daughters, four dogs, one cat, several aquariums of fish…
And despite what many readers or other developers may expect or think: I’m not in an IT career. I’m a journeyman refrigeration mechanic with a gas ticket. I install, repair furnaces, rooftop heating/cooling equipment, computer room cooling systems etc.

2. Bring us back to your start with electronics and computers.

I’ve been taking things apart, seeing how they are built, and work since I was 9 or 10 years old.
Things from really old tube radios, appliances, etc.When I was in 7th grade, my teachers wife worked taking care of people in a care home. One of her patients was an electronics teacher crippled with polio. He asked a classmate and myself if we would to help him with things from repairing, modifying his HAM and CB radio equipment, to modifying his home built 3 wheel vehicle that he steered with buttons under his elbows.
Computer work started years later, my first machine was a used Atari 400 with a cassette player drive. Programming in basic. I had an apple IIe compatible for a year or so, then while returning to college, taking science (physics, chemistry) and computer programming courses (mostly coded in pascal) on a VAX 11 and/or x86 pc’s, my next one was an Atari 520ST (first production run) which I still have today.

3. How did you get involved with open source?

After installing gentoo, I had soon started working on porthole which was a new project at that time. I was also new to python and had not done any coding in many years. It was primarily porthole that brought me to doing work in gentoolkit, layman, portage and other tools in gentoo.

4. What path did you take to become a Gentoo developer?

I had been working around portage for many years with porthole development. Which led me to begin working on gentoolkit in order to create working api’s for other tools to use. It was that and layman work that got me into helping mentor GSOC projects. I first became a staffer as I was a coder, not an ebuild developer. It was one year later I took the plunge and completed the developer quiz and became a full developer.

5. Tell us about your mentor and the process to become a developer?

There have been many people over the years that I’ve learned from.
But my most important mentor in developing my coding skills has been Brian Harring
His knowledge of how to do things in an efficient, fast way continues to amaze and inspire me.

6. What aspects of Gentoo do we need to keep and what could we get rid of?

hmm… Keep the good coding skills and efforts into improving Gentoo as a whole, get rid of the major bikeshedding over who’s right and who’s wrong…

7. Tell us about Porthole (The portage frontend) http://porthole.sourceforge.net/ and what skills you learned from it?

Python programming, knowledge of data acquisition using portage’s API’s, learning to do things with less code, more adaptable and robust with less long term maintenance required. I’ve rewritten areas of porthole’s code several times as it evolved and grew. Sadly, I’ve been neglecting porthole these past few years. I keep getting distracted with other projects in need of help, re-writes, updates, or even new projects like gentoo-keys which was spawned from dev-python/pyGPG which I created to handle gpg signed list verification for layman. Layman’s code also spawned a small new python lib (dev-python/ssl-fetch) that will be used in several tools soon. I split that code out of layman to re-use in mirrorselect for fetching files from api.gentoo.org.

8. You have become a proficient Python programmer, how did you do it?

Coding, making mistakes, fixing them. Learning better faster ways to accomplish something from others.
But, one of my key strong points is my ability to quickly see the big picture. The details you can figure out along the way with help from others as the need arises. Many new programmers get stuck focusing on the details without knowing how they should be put together. Hint, think of a jigsaw puzzle, when you get one, you have the finished picture on the box to use as a reference of what it should look like. This makes it easier to figure out where a piece might fit. The same holds true for any programming task. You need to know what the end goal is and how it might fit together. Adjustments are made along the way so that you end up with a completed code block, then you move along to the next one.

9. Walk me through the steps you do to write python code, test, and your editor of choice etc.

see above answer… Current preferred editor is Geany, 2nd is Scite which I used for many years and still do for some things.

10. Catalyst (the tool used for building Gentoo releases) is in the process of a major overhaul, what has been done, who is helping you and what needs to be completed?

I got started working on catalyst so that the default location for the portage tree (gentoo ebuild tree) can be relocated. The catalyst code base was in sad shape with paths hard-coded throughout the code. It even had paths used as both a variable name and value in places. Its code base still had (questionable to poor) code copied from early portage code which has long since been replaced. The code had also been modified by the releng team which (not being proficient in python) used bad examples to modify its operation. The bulk of the rewrite work has and is being done by Trevor King and myself. With others contributing to improvements, additions to portions of it. Currently I’m in the middle of migrating all the changes from a development branch (3.0) into the master branch of the repository. Once that is caught up, the rewrites will continue. There are still too many areas of code to improve or rewrite to list them here.

11. Tell us about your other projects you are currently working on?

Gentoo-keys – A gpg key management and verification tool. Designed to manage all aspects of Gentoo’s gpg keys, developer keys and verification of things like the release media, commits to Gentoo’s ebuild tree, layman’s repositories etc.

Mirrorselect – a mirror selection tool for Gentoo. I did the 2.2 re-write and some additional work adding more features in the 2.2.1 release.

Ssl-fetch – A breakout lib which wraps dev-python/requests code and does verified ssl fetching of files and handles use of headers and timestamps to prevent re-downloading of data which hasn’t been modified.

pyGPG – A universal gnupg wrapper lib that is capable of mining all data available from gpg calls and puts that info into python available data types.

Layman – overlay management tool.

Portage – I am the current (temporary) lead after Zac took an extended break from gentoo. I am spear-heading a new plugin-sync system for it which will make portage more versatile and ease future maintenance and make it expandable with third party installable sync modules. You can look forward to a possible squashfs sync module. Work is being done to have Gentoo’s infrastructure be able to supply sqaushfs tree images. So encourage Micheal Gorny and the Gentoo infra team to complete that work.

Elogviewer – I’m maintaining the package, did code review for recent updates. I have a recent version bump to do at time of this writing.

Gentoolkit – Various python based modules, enalyze, equery, eclean, the new python based revdep-rebuild rewrite (some final debugging, fixes)

Catalyst – Gentoo Stage building tool, major re-write

A new small python based breakout lib for easy compression/decompression handling. It comes from my work in the catalyst rewrite, but could be useful in other tools. I have yet to create and name it as a standalone project.

12. What open source software can you not live without at home and at work?

dev-vcs/gitg, dev-util/geany, dev-vcs/git, Hexchat, xfce4 desktop environment,…

13. Which open source programs would you like to see developed?

gtk+:2 branch of gitg. It has gone to a gnome 3 look now which IMHO is yuk. It also lost the git blame feature currently in its re-write.

14. Age old question for Gentoo, how can we get more help?

Reducing the bikeshedding and name calling type attitudes present in some mail lists. Continue being an innovative leading Linux distribution building system.

15. Describe your desktop setup (WM/DE)?

Intel core-2 quad core based system with a shiny new SSD drive (Thank you Alec)
2 – 24 inch widescreen monitors
Basic xfce4 desktop, 14 virtual desktops, is a mix of Mac like toolbars and retro theme.
A hexchat window, toolbars, etc. in the left monitor, right monitor for main working apps windows, terminals

16. Tell us about your boxes and home network setup?

Not much to tell really. There’s my main desktop, an old 11 year old laptop, several printers. I have an old x86 box that I setup for a small server and router, but need to work on it. A hard drive failed on it due to a power failure. I have a 24 port gigabit switch. I still haven’t wired up this new house yet with lan everywhere. My wife and kids have some ipads, an Acer netbook.

17. What would be your dream job?

Working on some inventions, ideas I have for energy efficiency, earth friendly, and just plain cool ot fun :)

18. What gives you the most enjoyment within the Gentoo community?

Doing (hopefully) great coding work and having users really like what I’ve done to ease their work or save their system.
Mentoring students into doing better coding, being a more versatile developer.

19. What gives you the most enjoyment outside the Gentoo community?

Family

Help with samba-4 packages needed!

by Lars Wendler

Currently Gentoo’s samba team is severely understaffed. This has slowed down development of samba packages and its direct dependencies to a level where we cannot foresee when it is convenient to finally remove the mask on samba-4 and give it a wider range of testing from our users. There are a couple of automagic dependencies that need attention. Unfortunately samba upstream does very little to resolve these issues so we need people knowing the new build system of samba-4 to write patches for us. Furthermore samba-4 requires app-crypt/heimdal as kerberos provider which leads to packages blocking each other because they require app-crypt/mit-krb5 which cannot be installed together with heimdal.

This is a call for help getting as many blocker bugs from [1] fixed as possible. Once all these blockers are solved, unmasking samba-4 is the next logical step.

[1] https://bugs.gentoo.org/489762

Council News

This month the council addressed two issues brought up by the community.

In the aftermath of Heartbleed many are questioning the default configuration of packages like OpenSSH/OpenSSL, etc. If we had not enabled tls-heartbeat by default then Gentoo would have been immune to the recent troubles.

The council took up discussion, but felt that trying to make a one-size-fits-all policy wasn’t going to be practical. Maintainers were encouraged to follow upstream (which in the case of Heartbleed would have meant being vulnerable), but decisions are going to remain in the hands of individual maintainers. Specific issues can still be escalated to Council.

The other matter which came up concerned pkg-config files. Everybody can agree that upstream should be providing these when applicable, but there was disagreement over what should be done with upstream drops the ball. The crux of the argument was that not including them makes life more difficult for packages using the libraries on Gentoo, while including them can cause developers working on Gentoo to make assumptions that will cause problems on other distributions. The council decided that the current policy in the devmanual was not adequate and struck it down. In general maintainers will be given discretion to create pkg-config files not provided by upstream, but there will be guidelines around when this is done. The guidelines themselves need to be written, approved, and published to the devmanual.

Finally it was noted that election season is coming up, and the next Council meeting will be the last one of this term. Stay tuned for further details from the election team.

sys-power/upower update

>=sys-power/upower-0.99.0 has entered ~arch and has deprecated support for sys-power/pm-utils and hibernate/suspend in favor of using sys-apps/systemd.
If you suddenly notice that your favorite package no longer has capability for hibernate/suspend and you want them back, we have created a compatibility package sys-power/upower-pm-utils which will give you the old UPower back.
For example, Xfce 4.11+ has support for UPower 0.99 and it has copied the sys-power/pm-utils code from before UPower dropped it, and therefore hibernate/suspend should work with both versions, but this is likely untrue for most of the other packages.
Check out this forum post for more information.

Infrastructure News

Hosting sponsors needed
The Gentoo Infrastructure team is currently searching for hosting sponsors in Europe. We ask that sponsors contribute to Gentoo in one of two ways:

  1. A donation of at least two physical machines including space, power and 10Mbits of bandwidth (burstable to 50Mbit). This is the most common option that organizations prefer. Sponsors typically have existing dedicated space for their business and host hardware for Gentoo in that space.
  2. Donation of at least 12U space, 15A, and 10Mbits of bandwidth (burstable to 50Mbits).

In the latter case, the Gentoo Foundation can provide the server hardware (but not power, bandwidth, or rackspace / a rack.) In both cases we prefer the sponsor to provide remote hands for the machines.

Sponsors will received ads on ads.gentoo.org (the ad sidebar to the main site), postings on the sponsors page, as well as news items posted to www.gentoo.org.

Interested parties should contact infra@gentoo.org.

Sponsors often ask to host official Gentoo mirrors. Note that the Gentoo mirror network is not currently seeking new mirror sponsors at this time.
The gentoo infrastructure team has had significant operational problems with virtual machines and Gentoo Hardened. We see this as a pretty significant preference for physical hardware over solutions like Xen or VMWare.

Gentoo Developer Moves

Summary

Gentoo is made up of 236 active developers, of which 30 are currently away.
Gentoo has recruited a total of 798 developers since its inception.

Changes

The following developers have recently changed roles:

  • Jauhien Piatlicki joined the emacs, physics, science, mathematics and lxqt teams
  • Yury German joined the security team
  • Yixun Lan joined the proxy-maintainers, ARM and cjk teams
  • Peter Wilmott joined the ruby team
  • Julian Ospald joined the multilib and sound teams
  • Vlastimil Babka joined the kernel team
  • Michael Palimaka joined the lxqt team
  • Manuel Rueger joined the ARM team
  • Agostino Sarubbo left the KDE team
  • Brian Evans joined the MySQL team
  • Mikle Kolyada joined the embedded and dev-embedded teams.

Additions

The following developers have recently joined the project:

Moves

The following developers recently left the Gentoo project:
None this month

Portage

This section summarizes the current state of the portage tree.

Architectures 45
Categories 162
Packages 17471
Ebuilds 37518
Architecture Stable Testing Total % of Packages
alpha 3591 538 4129 23.63%
amd64 10762 6209 16971 97.14%
amd64-fbsd 0 1576 1576 9.02%
arm 2634 1722 4356 24.93%
arm64 436 30 466 2.67%
hppa 3051 488 3539 20.26%
ia64 3176 595 3771 21.58%
m68k 575 93 668 3.82%
mips 4 2379 2383 13.64%
ppc 6809 2388 9197 52.64%
ppc64 4313 876 5189 29.70%
s390 1460 332 1792 10.26%
sh 1656 402 2058 11.78%
sparc 4119 899 5018 28.72%
sparc-fbsd 0 319 319 1.83%
x86 11418 5259 16677 95.46%
x86-fbsd 0 3236 3236 18.52%

gmn-portage-stats-2014-06

Security

The following GLSAs have been released by the Security Team

GLSA Package Description Bug
201405-28 x11-wm/xmonad-contrib xmonad-contrib: Arbitrary code execution 478288
201405-27 dev-libs/libyaml LibYAML: Arbitrary code execution 505948
201405-26 net-misc/x2goserver X2Go Server: Privilege Escalation 497260
201405-25 dev-php/symfony Symfony: Information disclosure 444696
201405-24 dev-libs/apr Apache Portable Runtime, APR Utility Library: Denial of Service 339527
201405-23 media-libs/lib3ds lib3ds: User-assisted execution of arbitrary code 308033
201405-22 net-im/pidgin Pidgin: Multiple vulnerabilities 457580
201405-21 net-irc/charybdis Charybdis,ShadowIRCd: Denial of Service 449544
201405-20 media-libs/jbigkit JBIG-KIT: Denial of Service 507254
201405-19 app-crypt/mcrypt MCrypt: User-assisted execution of arbitrary code 434112
201405-18 net-misc/openconnect OpenConnect: User-assisted execution of arbitrary code 457068
201405-17 net-analyzer/munin Munin: Multiple vulnerabilities 412881
201405-16 dev-lang/mono Mono: Denial of Service 433768
201405-15 sys-apps/util-linux util-linux: Multiple vulnerabilities 359759
201405-14 dev-ruby/ruby-openid Ruby OpenID: Denial of Service 460156
201405-13 x11-libs/pango Pango: Multiple vulnerabilities 268976
201405-12 net-analyzer/ettercap Ettercap: Multiple vulnerabilities 340897
201405-11 app-backup/bacula Bacula: Information disclosure 434878
201405-10 dev-ruby/rack Rack: Multiple vulnerabilities 451620
201405-09 media-gfx/imagemagick ImageMagick: Multiple vulnerabilities 409431
201405-08 app-antivirus/clamav ClamAV: Multiple vulnerabilities 462278
201405-07 x11-base/xorg-server X.Org X Server: Multiple vulnerabilities 466222
201405-06 net-misc/openssh OpenSSH: Multiple vulnerabilities 231292
201405-05 net-misc/asterisk Asterisk: Denial of Service 504180
201405-04 www-plugins/adobe-flash Adobe Flash Player: Multiple vulnerabilities 501960
201405-03 net-irc/weechat WeeChat: Multiple vulnerabilities 442600
201405-02 net-libs/libsrtp libSRTP: Denial of Service 472302
201405-01 sys-fs/udisks udisks: Arbitrary code execution 504100

Package Removals/Additions

Removals

Package Developer Date
sci-geosciences/gempak pacho 03 May 2014
gnome-extra/evolution-kolab pacho 03 May 2014
www-apache/mod_ruby pacho 03 May 2014
x11-misc/suxpanel pacho 03 May 2014
kde-base/kdeartwork-sounds johu 09 May 2014
kde-base/kdnssd johu 09 May 2014
kde-base/kwallet johu 09 May 2014
games-puzzle/krosswordpuzzle johu 10 May 2014
app-portage/udept pacho 11 May 2014
media-libs/libj2k pacho 11 May 2014
media-gfx/cfe pacho 11 May 2014
media-gfx/yablex pacho 11 May 2014
app-admin/osiris pacho 11 May 2014
sys-power/cpufreqd pacho 11 May 2014
net-irc/ctrlproxy pacho 11 May 2014
x11-misc/pogo pacho 11 May 2014
sci-geosciences/openstreetmap-icons pacho 11 May 2014
dev-python/telepathy-python pacho 11 May 2014
media-tv/huludesktop pacho 11 May 2014
app-admin/lcap pacho 11 May 2014
www-apache/mod_chroot pacho 11 May 2014
dev-util/dissy pacho 11 May 2014
dev-libs/clens ulm 12 May 2014
dev-java/randomguid ulm 12 May 2014

Additions

Package Developer Date
net-wireless/openggsn zx2c4 01 May 2014
x11-misc/urxvt-font-size radhermit 02 May 2014
kde-misc/baloo-kcmadv dilfridge 02 May 2014
dev-ruby/dotenv-deployment graaff 03 May 2014
dev-java/headius-options tomwij 03 May 2014
gnome-extra/gnome-commander hwoarang 03 May 2014
mate-extra/caja-extensions tomwij 04 May 2014
media-gfx/eom tomwij 04 May 2014
x11-misc/mozo tomwij 04 May 2014
dev-ruby/descendants_tracker graaff 05 May 2014
gnome-extra/cinnamon-desktop tetromino 06 May 2014
gnome-extra/cinnamon-settings-daemon tetromino 06 May 2014
gnome-extra/cinnamon-session tetromino 06 May 2014
app-i18n/tagainijisho calchan 06 May 2014
dev-ruby/nio4r mrueg 07 May 2014
gnome-extra/cjs tetromino 07 May 2014
gnome-extra/cinnamon-menus tetromino 07 May 2014
app-crypt/paperkey mrueg 07 May 2014
dev-ruby/rinku mrueg 07 May 2014
gnome-extra/cinnamon-control-center tetromino 08 May 2014
net-wireless/cinnamon-bluetooth tetromino 08 May 2014
dev-python/aniso8601 radhermit 08 May 2014
dev-python/flask-restful radhermit 08 May 2014
dev-python/polib tetromino 09 May 2014
dev-db/soci jauhien 09 May 2014
dev-db/cppdb jauhien 09 May 2014
dev-python/sexpdata jauhien 10 May 2014
gnome-extra/cinnamon-screensaver tetromino 10 May 2014
sys-block/zram-init jauhien 10 May 2014
sci-chemistry/propka jlec 11 May 2014
dev-python/oslo-vmware vadimk 11 May 2014
sys-boot/winusb yac 11 May 2014
app-arch/xarchiver ssuominen 11 May 2014
dev-util/android-studio jauhien 11 May 2014
dev-ruby/fssm vikraman 11 May 2014
dev-ruby/compass vikraman 11 May 2014
dev-python/rax-scheduled-images-python-novaclient-ext prometheanfire 12 May 2014
dev-python/os-virtual-interfacesv2-python-novaclient-ext prometheanfire 12 May 2014
kde-misc/milou johu 12 May 2014
net-wireless/btcrack zerochaos 12 May 2014
dev-python/pymysql grknight 13 May 2014
app-arch/defluff tomwij 14 May 2014
sci-biology/update-blastdb jlec 14 May 2014
x11-misc/calise tomwij 14 May 2014
dev-ruby/pdf-core mrueg 15 May 2014
dev-ruby/priorityqueue mrueg 15 May 2014
dev-ruby/expression_parser mrueg 15 May 2014
dev-ruby/ae p8952 15 May 2014
dev-ruby/ansi p8952 15 May 2014
dev-ruby/brass p8952 15 May 2014
dev-ruby/facets p8952 15 May 2014
dev-ruby/lemon p8952 15 May 2014
dev-ruby/qed p8952 15 May 2014
dev-ruby/rubytest p8952 15 May 2014
dev-ruby/rubytest-cli p8952 15 May 2014
dev-ruby/hashery p8952 15 May 2014
gnome-extra/cinnamon-translations tetromino 16 May 2014
net-libs/balde rafaelmartins 18 May 2014
dev-lang/rust jauhien 18 May 2014
sci-libs/libgeodecomp slis 19 May 2014
dev-java/netty-common tomwij 19 May 2014
dev-java/netty-buffer tomwij 19 May 2014
dev-ruby/rrdtool-bindings graaff 19 May 2014
app-leechcraft/lc-eleeminator maksbotan 20 May 2014
app-backup/snapper dlan 21 May 2014
dev-java/netty-transport tomwij 21 May 2014
games-strategy/0ad-data hasufell 21 May 2014
games-strategy/0ad hasufell 21 May 2014
www-servers/hiawatha hasufell 22 May 2014
www-apps/hiawatha-monitor hasufell 22 May 2014
media-fonts/ahem idella4 23 May 2014
x11-misc/sddm jauhien 24 May 2014
lxqt-base/liblxqt jauhien 25 May 2014
net-misc/lxqt-openssh-askpass jauhien 25 May 2014
lxqt-base/lxqt-qtplugin jauhien 25 May 2014
app-vim/gitgutter radhermit 25 May 2014

Bugzilla

The Gentoo community uses Bugzilla to record and track bugs, notifications, suggestions and other interactions with the development team.

Activity

The following tables and charts summarize the activity on Bugzilla between 01 May 2014 and 31 May 2014. Not fixed means bugs that were resolved as NEEDINFO, WONTFIX, CANTFIX, INVALID or UPSTREAM.
gmn-activity-2014-05

Bug Activity Number
New 1388
Closed 977
Not fixed 259
Duplicates 158
Total 5734
Blocker 5
Critical 18
Major 66

Closed bug ranking

The following table outlines the teams and developers with the most bugs resolved during this period

Rank Team/Developer Bug Count
1 Gentoo Security 109
2 Gentoo Linux Gnome Desktop Team 44
3 Gentoo Games 31
4 Gentoo KDE team 29
5 Gentoo's Team for Core System packages 26
6 Multilib team 24
7 Gentoo X packagers 21
8 Qt Bug Alias 20
9 Retirement Admin 19
10 Others 653

gmn-closed-2014-05

Assigned bug ranking

The developers and teams who have been assigned the most bugs during this period are as follows.

Rank Team/Developer Bug Count
1 Gentoo Linux bug wranglers 158
2 Gentoo Linux Gnome Desktop Team 93
3 Gentoo Security 53
4 Gentoo KDE team 47
5 Multilib team 41
6 Python Gentoo Team 35
7 Gentoo's Team for Core System packages 35
8 Default Assignee for New Packages 25
9 Qt Bug Alias 24
10 Others 876

gmn-opened-2014-05

Tip of the month

Would you like to know why a particular package is masked?
You can create a simple shell function like this:

whymask() {
    find /usr/portage/profiles/ -name '*.mask' -exec \
        awk -vRS= "/${*/\//.}/ {
                print \" \" FILENAME \":\", \"\n\" \"\n\" \$0 \"\n\"
        }" {} + | less
}

You can do `whymask sys-kernel/gentoo-sources` to get reasons as to why
a particular package is masked; very handy to quickly check something
up, especially for USE flag masks which Portage doesn’t explain.

You can do `whymask Gnome 3.12` to get the entire GNOME 3.12 mask,
piping it to `grep -v mask: > /etc/portage/package.unmask/gnome3` then
allows you to quickly update your GNOME 3.12 unmask; if you want this to
happen on sync, you can put this line in /etc/portage/postsync.d/gnome3
and make it executable such that it’ll be ran after every sync.

The magic trick here is that awk -vRS= “/…/” matches paragraphs; as
the record separator is empty, it takes the blank lines.
by Tom Wijsman

Heard in the community

Send us your favorite Gentoo script or tip at gmn@gentoo.org

Getting Involved?

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 gmn@gentoo.org.

Comments or Suggestions?

Please head over to this forum post.

Bookmark the permalink.

Comments are closed.