Welcome to the August issue of the Gentoo monthly newsletter!
As usual, you can discuss any aspect of this issue of the GMN in the corresponding forum thread. We look forward to hearing from you!
PHP4 removed from the Portage tree
All work on PHP4 was been discontinued by upstream on August 8. No more security or bug fixes will be released. PHP4 has already been hardmasked in the Portage tree since October 2007 (for security reasons), and now it has finally been removed from the tree.
If possible, you should upgrade to PHP5, which is still supported with bug and security fixes.
If you or your company have still not upgraded to PHP5, there is a PHP4 overlay available. However, running these older PHP4 packages on publicly accessible services is not recommended, as the packages still contain multiple security vulnerabilities.
The Gentoo Trustees held its monthly meeting on August 18. The agenda may be found here; the Trustees will vote at a later date on the proposed Foundation Bylaws.
Interview: Google Summer of Code Student Nandeep Mali
In the third of the series of interviews with our Summer of Code students, we chat with Nandeep Mali, who is working on "Setting Beacon Afloat". Find out more about him and the project by reading on!
GMN: Give us a brief introduction of yourself. Where are you from? Where and what do you study? What's your homepage or other means for fans to stalk you?
Nandeep: Hi folks! :) I am from India and completed my undergraduate (B.Tech) in Computer Engineering from NIT Jaipur this year in May. My homepage/blog used to be at miniorb.in but now it's just an empty domain awaiting some care. And one can always haunt me at my email or poking me at Freenode (alias = n9986).
GMN: Were you already involved with Gentoo and/or open source in general before acceptance into SoC? If yes, briefly tell us how you got involved and why you like writing open source code.
Nandeep:This summer has been my first plunge into this addictive activity. :D
I have been really interested in this whole front-end-for-the-network (read 'The Web') concept and wanted to vent out my energy into something more useful than looping around my localhost.
While searching for a nice project I came upon this interesting idea in Gentoo project pages. Knowing Anant (gamer buddy), I discussed with him the possibilities with Beacon. The helpful 'pong' by rane during the drafting stages helped me get around the Gentoo community. It was an awesome moment to see my project page show 'Application Accepted!'.
From then on I have come a long way, learning about Gentoo by hanging out #gentoo-dev and the mailing lists.
GMN: How has your experience with the Gentoo community been so far?
Nandeep: It's been a pleasure to be in touch with such efficient and very talented developers. The documentation is very well done and user contribution is also very easy. Despite some rumors about Gentoo not being fun loving I would say that people here are very good humored and professionals.
GMN: Please tell our readers a little about the project you're working on, and why you think it will be helpful to Gentoo users. What was your inspiration for starting the project? What do you expect to achieve with it?
Nandeep: The project is a kick start on a sleeping project 'Beacon' (and yes, we'll gladly accept the award for the best project name) which was created by Anant Narayanan in 2006 as his Summer of Code project. I am working on reviving this tool to, as put by rane, bring Gentoo documentation team out of the middle ages of online editing (vim and cvs). The code base was already strong and helped me get a good head start.
There are many possibilities with Beacon. The Rich text Editor will help save a lot of time and once integrated with the Documentation site it'll help easy wiki-like editing of the docs. The useful repodoc-web module which was already in place and the collaborative editor (like Google Docs) should have some interesting impacts on the way the Doc Team works.
In fact I typed out the answers to this interview in Beacon's Rich text Editor and probably saved the GMN some time. ^_^
GMN: What do you do when you're not coding? (hobbies, interests, favorite T.V. shows etc.)
Nandeep: Anime, Gaming, Music that my ears fancy (anything based on the mood), Tolkien fiction, Roald Dahl's twists and rampaging around on the web looking for random stuff. TV is an alien concept. And of course I never really thought of coding as work. :)
GMN: Thanks for your time!
Parallel merges: Zac Medico announces parallel builds for Portage and Jeremy Olexa has some initial tests.
More sets: Zac Medico tells us about new package sets available for the Portage 2.2 RC versions.
New IRC servant: As Jeeves, the IRC butler, reached its end of work life, Robin H. Johnson presents its replacement: Willikins.
Another ebook: Sven Vermeulen is discusses his work in progress on a Linux book, centered around Gentoo.
Gentoo was recently featured in the French edition of Linux Identity Magazine; several articles were contributed by Gentoo developers Olivier Fisette and Luis Francisco Araujo. Some of the articles are even available online (in French).
Tigase is a new Gentoo-based distribution. The project focuses on developing XMPP (Jabber) server and web, AJAX based clients.
The LiveCD contains the Tigase server, Drupal CMS and Dovecot IMAP4 server pre-configured to work together as one system. All services use the same user database for authentication. You can also post news on the example website directly from your Jabber client and also you can receive notifications about new comments and posts to your Jabber client. More details are available on the download page. The LiveCD demonstrates how Tigase's Jabber code can be integrated with other systems.
Even though the project's code is written in Java, the development platform was always Gentoo Linux, and all the Tigase servers are based on the Gentoo Linux. Selecting Gentoo for the LiveCD was a natural choice. It gives the developers plenty of flexibility and control over installed elements and the way they work with all installed programs. Additionally, the developers can easily update all packages using Portage.
The LiveCD is a 32-bit environment to make sure it will work on as many platforms as possible, but it was prepared and built on a 64-bit Gentoo installation. Despite the architectural differences, building the LiveCD is quite easy and smooth.
Tin Hat: A Hardened Gentoo-based LiveCD
Tin Hat is a LiveCD based on Hardened Gentoo. It aims to provide a very secure, stable, fast desktop environment that lives purely in RAM. It doesn't mount any filesystem from CD, but instead it is a huge disc image (2.3GB) that loads into tmpfs at boot. Tin Hat can also be run from a USB key for somewhat shorter boot times. Whether used from a CD or USB key, once Tin Hat is running in memory it's quite speedy, as it never has to access its boot media.
Tin Hat takes security quite seriously, even aiming for "zero information loss" -- its developers have taken steps to ensure that data is secured even if an attacker physically acquires the box. To protect against network/code exploits, Tin Hat layers GRSEC, PAX, and other nifty tricks. More information on Tin Hat's security, speed, and rationale may be found on its project page.
Tin Hat makes it easy to roll your own version via templates; you can even save a snapshot of a currently running Tin Hat system and use that as a base, complete with customizations, additional files, etc.
Want to try out Tin Hat? Get it here!
Using lsof to find open files and directories
Have you had problems deleting a file or unmounting a device even as the root user? More likely than not, your file or the directory where your device is mounted is simply being used by another user or application. This edition of Tips and Tricks shows you how to find who and what may be using the file or directory that you are having trouble with.
First install the lsof tool:
Code Listing 4.1: Installing lsof |
# emerge lsof
|
lsof lists the open files on the system. An open file can be a file that you are editing, reading with another program, or a directory that you are browsing. An example of how lsof can be used is to unmount a device that refuses to be unmounted. Let's say Larry the Cow mounted a CD-ROM a few days ago and now wants to unmount it. When he tries to unmount it, he gets the following error:
Code Listing 4.2: Unmounting a CD |
# umount /mnt/cdrom
umount: /mnt/cdrom: device is busy
umount: /mnt/cdrom: device is busy
|
Something has /mnt/cdrom open. Since Larry does not remember what it can be, he runs lsof to get the following:
Code Listing 4.3: Using lsof |
# lsof | grep /mnt/cdrom
bash 6453 larry cwd DIR 7,0 2048 1856 /mnt/cdrom
su 15774 root cwd DIR 7,0 2048 1856 /mnt/cdrom
|
The first two fields describe the process name and process ID, the third field is the user who owns the process, the forth field is file descriptor, followed by the type of file, device number, size of the file, node number, and finally the filename. The file descriptor is the type of the file, in this case it is cwd, or current working directory. This means that somewhere the user larry has his shell's directory pointed to /mnt/cdrom. Since Larry has too many shells open, he decides to narrow down which shell it might be:
Code Listing 4.4: Examining shells |
# lsof -R | grep /mnt/cdrom
bash 6453 6437 larry cwd DIR 7,0 2048 1856 /mnt/cdrom
su 15774 6453 root cwd DIR 7,0 2048 1856 /mnt/cdrom
|
An extra third field appears, which shows the parent process of bash and su. As you can see, su is the child of bash. This likely means that Larry ran su in the bash session that is keeping /mnt/cdrom busy. Next Larry finds the parent of the bash process:
Code Listing 4.5: Finding a parent process |
# ps aux | grep 6437
larry 6437 0.0 0.7 38880 24628 ? S Aug09 9:00 konsole [kdeinit] -session 10be696
|
Larry uses Konsole as his terminal program. Thus he knows that he must find the bash session somewhere in one of his Konsole windows. Larry finds the possible Konsole window by running pstree:
Code Listing 4.6: Looking for Konsole |
# pstree 6437
konsole-+-bash---python---{python}
|-2*[bash]
|-bash---su---bash---pstree
|-2*[bash---su---bash]
|-bash---su---bash---vi
|-bash---ssh
`-bash---su---bash---man---sh---sh---less
|
Using this information, Larry narrows down his guessing to four bash sessions where he ran su. To make /mnt/cdrom not busy he simply exits out of his su terminals and uses cd to get out of the /mnt/cdrom directory.
lsof can be used for different purposes. For example, you can use it to monitor your network connections:
Code Listing 4.7: Monitoring network connections |
# lsof -i TCP:22
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 6094 root 3u IPv4 9145 TCP *:ssh (LISTEN)
ssh 9962 andrey 3u IPv4 3489405 TCP larry.cow:35467>larry.bull:ssh (ESTABLISHED)
|
Here we see the sshd service that listens for ssh connections and an outgoing ssh session.
lsof also comes with some scripts in the /usr/share/lsof/scripts/ directory. Most will be useful in your quest to better spy on your users.
Gentoo is made up of 242 active developers, of which 43 are currently away. Gentoo has recruited a total of 649 developers since its inception.
The following developers recently left the Gentoo project:
Note: The number is higher than usual because several inactive developers were retired as per Gentoo policy. This operation is performed on a regular basis by the Undertakers project. |
The following developers recently joined the Gentoo project:
The following developers recently changed roles within the Gentoo project:
This section summarizes the current state of the Portage tree.
| General Statistics | |
| Architectures | 15 |
| Categories | 151 |
| Packages | 12839 |
| ebuilds | 24971 |
| Keyword Distribution | ||||
| Architecture | Stable | Testing | Total | % Packages |
| alpha | 3685 | 461 | 4146 | 32.29% |
| amd64 | 7203 | 4041 | 11244 | 87.58% |
| arm | 1590 | 112 | 1702 | 13.26% |
| hppa | 2712 | 567 | 3279 | 25.54% |
| ia64 | 3230 | 597 | 3827 | 29.81% |
| m68k | 494 | 21 | 515 | 4.01% |
| mips | 1004 | 787 | 1791 | 13.95% |
| ppc | 6366 | 2910 | 9276 | 72.25% |
| ppc64 | 3493 | 657 | 4150 | 32.32% |
| s390 | 1194 | 50 | 1244 | 9.69% |
| sh | 1407 | 62 | 1469 | 11.44% |
| sparc | 4852 | 1313 | 6165 | 48.02% |
| sparc-fbsd | 0 | 367 | 367 | 2.86% |
| x86 | 9432 | 3217 | 12649 | 98.52% |
| x86-fbsd | 0 | 2730 | 2730 | 21.26% |
Figure 6.1: Package distribution by keyword |
![]() |
The following section lists packages that have either been moved or added to the tree. The package removals come from many locations, including the Treecleaners and various developers.
| Package: | Removal date: | Contact: |
| dev-db/freecdb | 01 Aug 2008 | Akinori Hattori |
| mail-client/claws-mail-pdf-viewer | 03 Aug 2008 | Christian Faulhammer |
| Package: | Removal date: | Contact: |
| www-apps/knowledgetree | 09 Aug 2008 | Christian Hoffmann |
| dev-php4/ZendOptimizer | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/adodb-ext | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/creole | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/eaccelerator | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/ffmpeg-php | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/jargon | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/jpgraph | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-apc | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-crack | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-fileinfo | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-http | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-id3 | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-imagick | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-json | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-mailparse | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-memcache | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-pdflib | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-ps | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-radius | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-sqlite | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-tidy | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-translit | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-yaz | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/pecl-zip | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/php-java-bridge | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/phpdbg | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/phpunit | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/suhosin | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/syck-php-bindings | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/xcache | 09 Aug 2008 | Robin H. Johnson |
| dev-php4/xdebug | 09 Aug 2008 | Robin H. Johnson |
| Package: | Removal date: | Contact: |
| mail-mta/xmail | 24 Aug 2008 | Torsten Veller |
| Package: | Addition date: | Contact: |
| sci-chemistry/arp-warp-bin | 04 Aug 2008 | Donnie Berkholz |
| games-action/wordwarvi | 04 Aug 2008 | Michael Sterrett |
| sys-apps/ack | 04 Aug 2008 | Rajiv Aaron Manglani |
| media-libs/libass | 05 Aug 2008 | Alexis Ballier |
| media-sound/a2jmidid | 06 Aug 2008 | Alexis Ballier |
| www-apps/horde-dimp | 07 Aug 2008 | Gunnar Wrobel |
| app-doc/casting-spels-emacs | 08 Aug 2008 | Ulrich Müller |
| dev-libs/luafilesystem | 08 Aug 2008 | Matsuu Takuto |
| dev-util/luadoc | 08 Aug 2008 | Matsuu Takuto |
| app-emacs/bongo | 08 Aug 2008 | Ulrich Müller |
| app-emulation/virtualbox-guest-additions | 10 Aug 2008 | Markus Ullmann |
The Gentoo community uses Bugzilla (bugs.gentoo.org) to record and track bugs, notifications, suggestions and other interactions with the development team. The following chart summarizes activity on Bugzilla between 27 July 2008 and 29 August 2008.
Figure 7.1: Bug activity split-up |
![]() |
Of the 11946 currently open bugs: 14 are labeled blocker, 106 are labeled critical, and 422 are labeled major.
The developers and teams who have closed the most bugs during this period are as follows.
| Rank | Developer/Team | Bug Count |
| 0 | Others | 931 |
| 1 | Gentoo Linux Gnome Desktop Team | 65 |
| 2 | Gentoo's Team for Core System packages | 47 |
| 3 | Gentoo Security | 44 |
| 4 | Gentoo Games | 41 |
| 5 | Python Gentoo Team | 34 |
| 6 | media-video herd | 33 |
| 7 | Portage team | 27 |
| 8 | Gentoo Linux bug wranglers | 26 |
| 9 | Gentoo non-Linux Team | 26 |
Figure 7.2: Bug closed rankings |
![]() |
The developers and teams who have been assigned the most bugs during this period are as follows.
| Rank | Developer/Team | Bug Count |
| 0 | Others | 720 |
| 1 | Default Assignee for New Packages | 85 |
| 2 | Gentoo Security | 53 |
| 3 | Gentoo Linux Gnome Desktop Team | 30 |
| 4 | Gentoo KDE team | 26 |
| 5 | Gentoo's Team for Core System packages | 25 |
| 6 | Java team | 21 |
| 7 | Gentoo Toolchain Maintainers | 20 |
| 8 | Gentoo/BSD Team | 20 |
| 9 | Gentoo X packagers | 18 |
Figure 7.3: Bugs assigned rankings |
![]() |
The GMN relies on volunteers and members of the community for content every month. If you are interested in writing for the GMN, do write in to gmn-writers@gentoo.org with your articles in plaintext or GuideXML format.
Note: The deadline for articles to be published in the next issue is September 19, 2008. |
We solicit feedback from all our readers on the newsletter. If you have any ideas for articles, sections, or have anything to say about the GMN, don't hesitate to email us at gmn-feedback@gentoo.org.
You can also give us your feedback and comment on this particular issue of the GMN on the forum thread.
9. GMN subscription information
To subscribe to the Gentoo Monthly Newsletter, send a blank e-mail to gentoo-gmn+subscribe@gentoo.org.
To unsubscribe to the Gentoo Monthly Newsletter, send a blank e-mail to gentoo-gmn+unsubscribe@gentoo.org from the e-mail address you are subscribed under.
The Gentoo Monthly Newsletter is available in the following languages: