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.

[table th=”0″]
Architectures, 45
Categories, 162
Packages, 17471
Ebuilds, 37518
[/table]

[table]
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%
[/table]

gmn-portage-stats-2014-06

Security

The following GLSAs have been released by the Security Team
[table tablesorter=”1″ id=”glsas”]
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
[/table]

Package Removals/Additions

Removals

[table]
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
[/table]

Additions

[table]
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
[/table]

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
[table]
Bug Activity, Number
New, 1388
Closed, 977
Not fixed, 259
Duplicates, 158
Total, 5734
Blocker, 5
Critical, 18
Major, 66
[/table]

Closed bug ranking

The following table outlines the teams and developers with the most bugs resolved during this period
[table]
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
[/table]
gmn-closed-2014-05

Assigned bug ranking

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

[table]
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
[/table]
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.