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-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:

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. 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:

Yury German (announcement)

Peter Wilmott (announcement)

Brian Evans (announcement)

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%

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.





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

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

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 \":\", \"

\" \"

\" \$0 \"

\" }" {} + | 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.

Please head over to this forum post.