Experiments, adventures, and consequences
I've been doing a fair amount of experimentation on my machines. Been playing with XBMC, Boxee, Ubuntu, and bleeding-edge Xfce and Freedesktop software stacks on Gentoo.
HTPC
First, I tinkered with the HTPC. It's a Zotac MAG, dual-core Atom 330 with nVidia ION graphics. It's just the thing for at 1080p media center. It was running an experimental community-built version of XBMC, installed back in January or February. While it was nice because it was extremely minimal, with just enough operating system to boot straight into XBMC, it was very buggy, and definitely alpha-quality.
So I wiped the disk and installed straight-up Ubuntu 10.04.1, and then installed XBMC and Boxee. I'm still tinkering with it; I need to setup the remote control I just bought, and I need to configure it to load a media center on boot, rather than the Gnome desktop. There have been a few hardware growing pains, mostly related to getting HDMI sound working correctly, and forcing 1080p output -- detected my TV as a 720p device, so I had to fiddle with the nVidia utility to fix that. Also had to do a lot of tweaking in XBMC and especially Boxee to output sound over HDMI.
I'm somewhat familiar with XBMC, but I've wanted to try Boxee for awhile now. It's supposed to be more user-friendly than XBMC, offering a simplified interface based on the XBMC code. It also has that whole "social media" aspect, whatever that's about. Its real attraction is the user-friendliness; I hate having to do so much manual configuration in XBMC. I need something that my wife and I can just pick up and use; no hassle, no tinkering.
Initial XBMC impressions
It works somewhat better than the version I used several months ago. However, most of the video plugins are buggy and/or completely broken, as are some of the helper programs and utilities. All that's supposed to change, though, with the next XBMC release. Supposedly there's an entirely new architecture, so maybe I'll finally get to watch my favorite shows and stream local media a bit easier, with better content scraper integration.
There are some things that don't work -- nothing on SyFy, and all too often the existing network TV plugins don't work for all advertised shows. Mythbusters in particular is very buggy, offering only partial listings for 5 or 6 seasons, and those are extremely low-quality Flash streamed from some third-party download site. Still, my wife can watch her crime shows and 80s favorites, while I can get a fair amount of Mythbusters and other Discovery shows.
Initial Boxee impressions
Useless. Slow. Hard to configure. Totally not what I thought it'd be like. Boxee didn't offer any of the easy internet TV watching I thought it'd have, instead offering a couple hundred useless channels for things I've never heard of. I expected it to have better integration with regular network TV, the same ones I can watch in a web browser. I expected a nice presentation of content, with the video wrapped in a full-screen Boxee experience. I expected hi-def streaming content; instead, the few shows I'm interested in are only available in stuttering low-quality Flash. Why bother, when I can watch The Guild in gorgeous 1080p on my Xbox?
At least XBMC has somewhat working plugins for several networks. Apparently XBMC plugins don't work that well (or at all) on Boxee. I gave up trying to make 'em work. All too often the shows are streamed from stuttering, blocky Flash videos. I tried using the integrated Boxee web browser to watch things like Hulu, but that turned out to be an even slower, laggier disaster.
On the hardware side, it was harder to get HDMI sound working on Boxee than on XBMC. And even though I have all the right VDPAU libraries installed, and I'm using the latest nVidia driver (195.x), nothing on Boxee seems to be accelerated. Even 720p content streamed from my LAN stutters, with the audio occasionally lagging the video. XBMC doesn't have this problem, so I know it's not the graphics stack.
Boxee is definitely beta. Maybe everything will work fantastically on the Boxee Box, but I don't want to spend another $200+ dollars on essentially the exact same hardware. I want to like Boxee, I really do. But at this point, XBMC works where Boxee fails, and even though its user interface is more cumbersome, it still lets me watch videos and play music.
Initial Ubuntu impressions
Slick. Very slick. Installation from a USB key went very well. While I tried to do everything from the commandline in Gentoo, using syslinux and whatnot, none of the Ubuntu guides on creating LiveUSB media worked. I ended up just compiling Unetbootin and Qt4 on my Xfce laptop. Unetbootin worked perfectly on the first time, giving me a bootable 4GB USB stick loaded with Ubuntu 10.04.1.
Installation was simple and straightforward, with minimal user interaction. I did a bit more, because I wanted to create a custom partition layout, but otherwise the end-user part of the process was done in just a minute. The rest of the install proceeded automatically, booting me into a bright, shiny Gnome desktop. After a minute or so a few notifications popped up, advising me to install the proprietary nVidia driver and install some software updates. That took just a couple of clicks. Sweet! Oh, the joys of binary package management.
Even though the HTPC only runs a lowly 1.6ghz dual-core Atom chip with a mere 2GB RAM, the desktop still feels pretty responsive. Firefox starts up as fast or faster than my 1.5ghz Core2Duo laptop with twice the RAM. In my experience, Gnome is always pretty heavy, feeling fairly clunky and somewhat slow even when backed by speedy CPUs and gobs of RAM. Nautilus and Evolution windows always seem to load much slower than Thunar and Claws Mail, or even PCManFM and Thunderbird. Still, despite the anemic hardware, my Gnome experience in Ubuntu is surprisingly pleasant. Nothing seems particularly slow to start on a fresh login. The boot process itself could be faster, though; it takes more'n'a minute to get logged in. I need to cut that down to 10 seconds or less to get a true HTPC "instant-on" experience.
There are some quirks in most ION devices related to suspend and USB wakeups, and my Zotac MAG is no exception. I need to do some commandline hacking to get the computer to suspend every time, and to wake only when a button is pushed on the remote. And configuring LIRC is a whole 'nother deal.
But still, I'm liking what I see. Ubuntu 10.10 will be released next month, and it promises even more improvements and nifty app integration than 10.04.
Laptop
In fact, I liked my brief experience with Ubuntu 10.04 enough to download a daily LiveCD beta of 10.10, "Maverick Meerkat." I plan to create a LiveUSB and install it on my "Linux playground" partition. I've gotten just a taste of how Ubuntu works when using it as a special-purpose media center; now I want to see how it works as a mobile desktop OS.
The last time I had Ubuntu on my laptop, it was Ubuntu Studio 8.04 a few years ago. It lacked polish, lacked the cohesive desktop experience Ubuntu is known for. Its sole advantages were that it was optimized for media production, featuring a low-latency kernel and tons of preinstalled music software, with easy access to much more. I experienced numerous issues with JACK and my USB-to-MIDI adapter, though, so my plans for tinkering with music were shelved.
I'll see how vanilla Ubuntu works on my laptop, and if it goes well, I may look into converting it into a low-latency/realtime audio production environment. I'm very interested in being able to quickly, easily use this machine to create tunes and link up with my piano. There's been a lot of progress in the Linux audio world in two years.
Gentoo
I turned my Gentoo install into a bleeding-edge hardmasked/~arch/stable Xfce testbed. I decided to dump HAL and setup PolicyKit, ConsoleKit, udisks, upower, udev, that whole stack. Originally I wanted just to try out the experimental PackageKit features for Portage, which was a recent GSoC project. I knew that would require most of the aforementioned software stack, so I thought, "As long as it has to be installed anyway, why not dump HAL, too?"
One thing led to another, and pretty soon I had upgraded to Xserver 1.9, disabled HAL, rebuilt world a few times for USE flag changes, and pretty well screwed my system. Reconfiguring my input devices for xorg.conf.d
took awhile, and I've been besieged by other difficulties. That's the problem with a source-based distro, and the problem of running Xfce in particular: nothing is especially integrated, and in a lighter environment like Xfce (compared to Gnome), there isn't much code that's designed for a HAL-less system. Apps written for *Kit/udisks/upower are either only available in git, or still unported. A binary distro like Ubuntu would integrate all that stuff forcibly, by writing their own code if need be, so that various actions that require PolicyKit authentication would pop-up windows, prompting for passwords. None of that happens on my Gentoo system.
I ended up adding the Xfce overlay and adding several hardmasked 4.7/live versions of packages just to get udisks/upower support, which helped some. However, several bits of Xfce and other daily applications just don't have the right code yet. So xfdesktop doesn't display icons when drives are plugged, cameras won't always mount and make their photos available, and not all power management options work, even when the user has the right PolicyKit credentials. That's on top of having to reconfigure pretty much my entire working environment due to changes between 4.6 and 4.7 -- everything from panel applets and their configs, to Thunar and window manager preferences. Despite USE="sound"
installing libcanberra for event support, and adding sound-theme-freedesktop
, event sounds cannot be enabled in the appropriate dialog, because Xfce doesn't believe libcanberra is installed. It's the same for Pidgin -- it doesn't believe there's a working sound framework, either. I have to give it commands like "aplay /some/dir/foo.wav" for each kind of event.
The whole thing, is, quite frankly, a bloody mess. And all because I wanted to get some experimental Portage toys from an overlay. It's my fault, I admit, and even after 8 hours of hacking at it, I'm probably nowhere near finished, assuming it's even possible to get all the bleeding-edge pieces to play nicely together.
(Side note: I would like to thank my fellow Gentoo developer Samuli for taking the time to answer my numerous Xfce-related questions and do a bit of troubleshooting along the way. Thanks, man!)
So, what's to learn from my adventures? First, trying to put everything back to its previous state would take another two days of work, if it's even possible! Second, the price for living on the bleeding edge of *Kit integration is too high. I don't mind running the occasional ~arch package, or using git X11 driver stacks like xf86-video-*, Mesa, and libdrm. But basic hardware abstraction stuff is nothing to be fooling around with. Not being able to use pluggable devices, enable Bluetooth, or properly adjust power management on a laptop is too high a price for being forward-thinking. I wish I'd stayed with my boring HAL system. While deprecated and a pain to configure, at least it worked reliably. More important, maintenance was nonexistent; it was simply a matter of copying several .fdi
files into the right directory when I first compiled and installed my desktop. After that, I didn't have to touch a thing.
The HAL-less desktop is supposed to be the future for every Linux distribution out there. I can only hope it is still some ways off, to give upstream coders more time to get their applications in order, so that distributions don't have to do much patching or extensive repackaging and integration, and so that the end-users don't have to spend hours configuring everything to their liking.
Searching the desktop with Pinot and Catfish
I was looking around for desktop search frameworks today, specifically something with a gtk frontend and that required the fewest resources to run.
I discovered Pinot, a dbus-based file index/monitor/search tool. It even comes with a minimal gtk+ interface. I found few reviews on Pinot, and even fewer recent reviews comparing it to other search frameworks like Strigi, Tracker, and Beagle. I also discovered Catfish, a lightweight frontend to several different search services. There's not much out there on integrating Catfish and Pinot, so I forged ahead and wrote my own code, then did some trial-and-error experiments.
All ebuilds are available on my overnight overlay. Instructions for adding the overlay are on the wiki.
Writing the ebuilds
The only ebuild I found for Pinot is sadly out-of-date, and is completely incorrect. Also, it depends on libtextcat, and I never found an ebuild for that.
So, I wrote my own ebuilds for the latest versions of Pinot and libtextcat.
Not content with Pinot's minimal gtk+ interface, I decided to try Catfish, a PyGtk frontend for several different search engines, including Pinot. Catfish is made by the same developer of Midori, a well-respected lightweight WebKit browser. While Catfish's development has been stalled for two years, I figured it was worth a shot, since its user interface is friendlier than Pinot's.
Catfish, like Pinot and libtextcat, is not in Portage, but there is an open bug for its inclusion. However, the ebuild for the latest version needed updating, as it didn't include Strigi or Pinot. So I rewrote it and added descriptive metadata.xml
entries for Catfish's and Pinot's USE flags.
There's still a bit of work left on the Catfish ebuild, since there's a QA warning about not leaving precompiled Python object files in /usr/share/catfish
. However, the application itself works perfectly. Just need to clean up the install process so that the bytecode doesn't clutter up the filesystem.
Pinot
On first run, Pinot will take a long time to index your files. I pointed it at my user's /home/
directory, which contains 51,000+ files, totaling 9.3GB on a Reiser3 filesystem with tail
enabled. That operation took probably half an hour, and that's on a fast SSD! All of Pinot's indexes and databases take up 455MB, bringing my total /home/
usage to about 9.7GB. Pinot typically used about 50% of my CPU while doing so, sometimes dropping down to the 20s and 40s.
However, since Pinot is on a fast SSD, and it's running off a 2.3Ghz dual-core Athlon backed by 4GB RAM, I didn't notice any performance hit while indexing. I'm not running any special kernels or schedulers (like BFS) either; just vanilla-source-2.6.35.4
. There was no noticeable lag or slowdown, despite viewing two Thunar windows, working with four terminals, and browsing nine Firefox tabs. My system was only laggy when compiling Pinot and its dependencies.
Once my /home/
was indexed, I searched around. Queries were pretty much instantaneous. There's no easy way to measure the speed of each query, since it's much too fast to time with a stopwatch. That's probably mostly because of the SSD -- as it is, without a desktop indexer/search app, most similar queries take less than a second. Once the initial filesystem index is complete, Pinot drops back to just monitoring directories if you've told it to do so, relying on the inotify
feature in the kernel. That drops CPU and memory usage to zero, as near as I can tell. Nice!
Pinot's greatest advantage on my system, at least, is not its speed, but its usefulness for easily finding deeply buried files and folders.
Interestingly, even though Pinot by default is not supposed to index Git, CVS, or SVN repositories, it seems to ignore that setting. Searching for "catfish" turns up a document named catfish tricks
and all the ebuilds and git logs that have "catfish" in the title. Apparently Pinot's regex filter isn't very reliable. I probably need to add in another asterisk to disable searching or indexing of any files within a git
directory.
Catfish
Catfish mostly works as expected, though it defaults to using "find" rather than "pinot" as its search engine. I haven't yet found a way to set it to use Pinot as the default search provider. Catfish is quick to load, and its layout is fairly intuitive. Sometimes, however, it will just stop working with Pinot, and even though Pinot has indexed my entire home directory, Catfish won't return any search results, though I can get those results by using Pinot's interface. The rest of the time it works great.
Besides offering a friendlier UI for searches, Catfish's real strengths are its useful options, both for presentation and for tying in with my desktop's filemanager. With a couple of commandline switches, Catfish can display thumbnails of various filetypes, use larger icons in search results, use various wrappers for opening and working with files, or even use powerful regex search methods. No, it won't have the awesome preview capabilities of Gloobus, but you also don't have to install all of Gnome to get similar features.
Right out of the box, Catfish will allow you to open files and folders obtained from your search results just by clicking them. I don't know if that works for all filemanagers, but it works with Thunar, which is all I ask.
I like to use Catfish in combination with another powerful feature of Thunar: custom actions. Since Thunar lacks a built-in search bar (aside from a rudimentary go-to alphabetical list when you press a key), how do you integrate a search utility? One way is by adding search functions to the right-click menu.
- Open a Thunar window, and go to Edit -> Configure custom actions.
- Click the plus icon: +. Give the action a helpful title, description, and icon. "Search" is pretty standard among icon sets, so there should always be one available even when you change themes.
- Add the action command:
catfish --path=%F
- Now go to the Appearance Conditions tab. I left the file pattern as * and checked all boxes, so that no matter where I browse or click, I can launch a Catfish search.
- Save the new action and exit Thunar. The next Thunar window you launch will let you right-click anywhere in the browser to open a Catfish search.
You can add any commandline switch you like to the catfish
command; just run catfish --help
to see the available options.
Thunar's custom action feature is pretty nifty; there are all kinds of things you can put in the context menu. It comes with an example to open a terminal in the current directory. You can create actions to launch applications with a root prompt, convert one image type into another, play media, print or email documents, and more. If you can script it, you can write a trigger for it and stick it in the context menu. Just read the custom actions documentation for many more examples of what you can do with Thunar. Neat!
Looking forward
So, will I keep using Pinot and Catfish? Possibly. While I am leery of any process like Pinot that writes so often to my SSD, and I'm not at all happy with its database size compared to my actual directory size, I do like that it's fast, and responsive. It doesn't seem to have the huge memory leaks or lag that Strigi/Nepomuk do in KDE. In fairness, KDE is trying to get us to believe in the power of the "semantic desktop," while Pinot and Catfish just want to create an easy frontend for finding stuff, without worrying about associating them with various files or activities.
As long as the database doesn't get too much larger, or the indexing/monitoring services use too many resources, I'll keep it around. I've got five+ years of accumulated files in various folders, with more constantly being loaded to and from offline backups. Pinot and Catfish can help with my hard drive spring cleaning, and help me locate stuff that I've just plain forgotten about. The older you get, the less you remember, right?
What I'd really like is a search bar built-in to Thunar, maybe in the upper right corner, backed by Pinot. That'd place everything I need right up front, without having to drill down through right-click menus.
* * *
Speaking of Thunar:
Do you use Thunar? Do you use Dropbox? Xfce developer Mike Massonnet posted a message to the xfce-dev list this morning with a link to a new project: Thunar Dropbox. It integrates the Dropbox service right into your favorite lightweight filemanager. No longer do you have to run Nautilus just to use Dropbox easily. Now you can use it within Thunar.
August Xfce desktop
This month's Xfce desktop:
icons: awoken
gtk+: axiomd
xfwm4: axiomd
background: The Crown of the Sun
cursor: Obsidian xcursors
The uncluttered version that shows off the wallpaper and conky configuration:
I built my environment around the wallpaper, an image of a solar eclipse, bringing out the haunting beauty of the sun's corona. I cropped this photo from APOD to fit my screen dimensions.
With such a beautiful cosmic backdrop, I had to search for matching theme elements. I used the same window manager and gtk+ theme, axiomd. It's nice and dark, with moon dust highlights.
It's been a long, long time since I last installed conky. I decided to give it another go, now that it's capable of doing beautiful things with Cairo and Lua. I was especially impressed by this configuration I found on the Arch Linux forums.
I made a few modifications to the ring meter scripts for conky. The end result is pretty decent, considering I haven't done much heavy tweaking yet. You'll need to emerge conky
with the lua-cairo
and lua-imlib
USE flags set, or else the scripts won't function.
The rings frame the corona, with just a touch of transparency to blend it into the deeper space backdrop. From left to right, the rings measure: CPU core 2 load, memory usage, /usr/portage
, /
, and CPU core 1 load. Adding, removing, shrinking, or expanding rings is pretty easy. The ring scripts are well-commented. The biggest obstacle I've run into so far is adapting the configs to my screen size, ensuring that items are placed just right. I could tweak the ring's curvature to precisely match the eclipse, but it's close enough as it is.
I picked up the icon set because it's very attractive for both dark and light environments. It's very flexible, with numerous alternative icon versions, extra standalone icons, many distribution logos, and a number of helpful scripts inside the tarball. I used one of the included Gentoo logos as my Xfce menu icon.
The mouse cursor theme is glossy and dark, yet it has a few blue animations to add a splash of color. To get it, run emerge obsidian-xcursors
.
Applications
In the foreground, Decibel Audio Player is running in the "mini" mode, playing a beautiful track by Planet Boelex.
Thunar is the filemanager open in the background. An Xfce terminal displays an eix-sync
operation.
Running in the panel are an assortment of application launchers, including customized dropdown menus for frequently used programs.
After the Xfce menu, launchers, and taskbar, the notification area holds the tray icon for Decibel Audio Player. Then a genmon applet that runs my lastsync.sh
Portage script. After genmon, there are plugins for volume control, the Orage clock, and local weather.
Now that I'm using conky, I can probably find a way to integrate the weather, clock, and Portage sync script with the existing ring meters, or even run it in another instance off to the side. Anything to reduce my crowded top panel.
Documentation status report, part 2
Been meaning to provide a follow-up to the last documentation report for a few days now, as well as a couple other news items.
Gentoo in the press
LWN ran an article on Linux distributions for PowerPC machines. Gentoo gets the top mention.
Package maintenance
I had the treecleaner team remove a package I maintain, WhaawMP. I hadn't used it in a long time and was no longer interested in maintaining it. Upstream seemed to be dead, and there were several user interface bugs and crashers in daily use. Also, I didn't want to put in the work on trying to make the ebuild comply with the stupid Python3 stabilization forced on all our users. Thanks to Jeremy for punting it. If you're looking for a lightweight video player alternative, please read the comment I left on the bug. bug 315067
Documentation status
Now, down to the docs work I've done, mostly on the 21st and 22nd, after the last status report. The biggest news is that I finished rewriting the handbooks for the autobuilds. In two days, I did four architecture handbooks. I put in some long hours, but it felt good to finally have them all done.
Handbook updates
- Sparc: updated the handbook for the autobuilds. Also fixed the kernel config "conditionals" by adding in version strings to the handbook index code, so that the latest stable version magically appears in the guide. Truly XSL is an awesome thing. The former GDP lead once said that writing for the handbook is almost like programming it. The code is designed to take variables, drop them in place for given conditions, and to test for those conditions depending on the presence of other variables (which we call "keys"), which architecture you're viewing, etc, and then drop those variables in to the rendered page. Once the XSL framework is in place, though, maintaining the GuideXML in the handbooks is much easier. We just drop the newest variable for LiveCD ISO size into the appropriate arch index, and it shows up as "115 MB" in that handbook. You can see some of our keys and how we use them.
- PPC: updated handbook for the autobuilds. bug 260403, bug 292726, bug 234310
- PPC: fixed the abstracts in the index. There was a lot of abstracts in the toplevel index. Abstracts are supposed to be in each chapter, so that the index just picks them up and includes them in the rendered page. Our XSL is frickin' amazing.
- PPC: removed the warning and kernel config for voluntary preemption. I asked the PPC team if this old warning was still valid, and it turns out that the preempt code in the kernel actually works okay. Thanks to Joe for investigating.
- PPC64: updated handbook for the autobuilds. bug 260403, bug 292726, bug 234310
- MIPS: updated handbook. MIPS still doesn't have weekly stages or LiveCDs. Because MIPS media dates back to 2008, there are some things I can't fix in the handbook, like using
eselect
for profile management. If it's not in the stages or CDs, I can't document it. The profiles in particular have been significantly reworked for 10.0, and like everything else, will require some heavy rewrites in the handbook. The team is aware of how ancient their releases are, and are working to put out new media for more recent MIPS chips. bug 260403, bug 292726, bug 234310 - AMD64: fixed a broken link to the AMD64 FAQ
Desktop doc updates
- Xfce guide: updated the
firefox
package name. I was watching #gentoo-commits and happened to notice that nirbheek changed the name frommozilla-firefox
to justfirefox
.
Other doc updates
- OpenRC migration: added a note on kernel module variables and how OpenRC assigns priority. bug 269349
- vpnc guide: updated the kernel configuration and adjusted the GuideXML to match coding standards. Thanks to tanderson for reporting via IRC. Also changed the text on vpnc overwriting
/etc/resolv.conf
. Old versions didn't overwrite it, but recent releases do. bug 330345 - Optimization guide: I updated the GCC documentation links to point at the 4.4 series, since it's been stable for awhile now. The links were pointing to the old 4.3 series.
Project page updates
Website updates
- Where: removed the last reference to 2008.0 media, as the handbooks have all been switched to the autobuilds. Only HPPA still referred to the 2008.0 LiveCD, since that's the last available release. That information has been in the HPPA handbooks for a long time.
- Contact: added another note saying that PR does not provide user support. We've been getting a lot of emails asking us for support, so I've been adding notes to our project page and the toplevel contact page.
- Lists: updated the list of mailing lists with information on closed and inactive list. Thanks to Jeremy for the patch. bug 291860
Documentation status report
I've been smashing documentation bugs left and right since getting back from vacation, as well as searching out old documents and project pages and fixing 'em up.
Most of the updates have been to the installation & Portage handbooks, but there are many changes to the other documentation, including the desktop guides for graphics cards, and my Xfce guide. There's even a new doc on Logcheck, written by one of our developers.
Here's a brief summary of what I've done in the last week:
New documentation:
- Logcheck guide: Thanks to phajdan.jr. bug 322223
Handbook updates:
- Change ccache recommendation; it's really only for developers: bug 327945
- Use layman rather than gensync for working with Portage overlays: bug 305047
- Add another note on IA32 emulation in the kernel for (non-)multilib users: bug 326691
- Fix file verification process for the Alpha, AMD64, ARM, HPPA, IA64, and x86 handbooks: bug 283402. This was an old one: when we went to the weekly media autobuilds, Release Engineering signed the files with a new GPG key, and changed how the files were signed. All the handbooks need to be updated, as they still have the old keys and instructions from the previous release.
- Update installation instructions for the autobuilds. Completed Alpha, AMD64, ARM, HPPA, IA64, and x86: bug 283402, bug 292726, bug 260403. Still need to do PPC, PPC64, Sparc, and possibly MIPS, if they have sufficiently recent media.
- Use -march=core2 for recent Intel EM64T chips, rather than the old -march=nocona. Fix MCE section of kernel config. Add new Atom processor type: bug 323381
- Update Grub documentation links. Upstream removed all grub legacy instructions in favor of grub2, which won't be stable any time soon. Fixed the handbooks and other docs to use the offsite Grub Wiki: bug 328679
- Fix a missing fstab. Gave ARM the same generic fstab example as the other arches: bug 328095
- category/package move for
chkrootkit
Desktop doc updates:
- Xfce guide: Change USE flags for opera; no longer needs qt-static. bug 328087
- nVidia guide: Use new driver installation methods. Add links to xorg-server guide to get X configured before dealing with nVidia-specific issues. Update kernel and module info. bug 307481
- ATI FAQ: General cleanups. Add R800 (Evergreen) info. Remove old GATOS project text. Update Catalyst availability section.
Other doc updates:
- FAQ: Update Grub documentation link. Update gcc -march info for x86 and AMD64. Fix internal GuideXML code. bug 328679
- Quickinstall guides (x86, LVM2+RAID): Fix ccache recommendation. bug 327945
- LDAP guide: use more recent 2.3 configuration file shipped with the ebuild. bug 325497
- SHOUTcast guide: Miscellaneous typo fixes. bug 323401
- IPv6 guide: update
net-dns/totd
info now that it's stable. Fix GuideXML and minor text issues throughout. bug 326771. This doc presents an ongoing problem, because it recommends a package it shouldn't. I sent an email to the gentoo-dev mailing list asking for help with this one. - AMD64 FAQ: Update Flash installation info. Adobe decided to drop 64-bit versions (again) beginning in version 10.1, and our developers had to mask 10.0 for security reasons. This means that there is no Adobe Flash for non-multilib profile users. And nspluginwrapper is (once again) too unstable, so 32-bit Flash with a 64-bit browser is not recommended. Probably will have to install
firefox-bin
or some other 32-bit browser. Stupid Adobe. - UTF-8 guide: Fix wrong category for the Xfce terminal, leftover from when it was moved out of xfce-extra. bug 328977
- Fix metadoc index for retired developers and add logcheck guide entry
Project page updates:
- Overlays userguide: Extensive GuideXML, grammar, etc. rewrites to make the guide more readable and more helpful. Add more instructions for things like keywording packages per the Portage handbook. Add SCM homepage links. This series of updates was prompted by bug 305047, the gensync to layman change.
- GUIs: Update retired developers
- PR: Add note stating that PR does not offer user support, and list available support resources. Hopefully this will cut down on the amount of support requests the PR team receives in our inbox every month.
Website updates:
- IRC: Add the Qt project channel, #gentoo-qt. bug 328665
One of my fellow developers, jkt, has been helping out a bit in the last couple of weeks, closing bug 301840 and bug 325885. This was especially important when I was on vacation and then out sick. I'm always happy when someone besides me steps up and gets our docs into shape. Thanks, Jan!
So that's about it. There are still plenty of open documentation bugs, but the list has shrunk significantly. My biggest project now is to finish the rest of the handbooks for the weekly autobuild instructions. The rest of our open bugs will require just as many hours and days to fix, as large portions of our handbooks and guides will need to be rewritten. Hopefully I can at least get the autobuild updates done in the next few days.
June Xfce desktop
This month's Xfce desktop was inspired by old Japan.
icons: Feel of Japan
gtk+: Simplistica
xfwm4: axiomd
background: The Great Wave off Kanagawa
cursor: Obsidian xcursors
The icon set is very pretty, with lots of creative touches. It can be a little hard to tell what an icon represents, but the more time I spend with this set, the easier it is to recognize items. Sadly, this set only had one release, and it's still incomplete.
The gtk+ theme Simplistica (from April's desktop) returns for June's desktop. Its colors add an old-time feel to the desktop. The blue menu rollovers even match up with the wave colors of the background image.
The window manager theme is the darker variant of axiom, a simple, elegant theme. Its deep hue provides richly contrasts the sandy, woody tones of the gtk+ theme, and suggests dark, stormy skies to match the waves of the background image.
The wallpaper is a famous woodblock print by Hokusai, from the series 36 Views of Mount Fuji, and a simple Google search turns up any resolution you could want. The Great Wave is one of my favorite works. It was on my February calendar, and now it's on my desktop. The image isn't quite the rustic picture of ancient Japan that I'd like - that would take a couple of weeks to locate - but it's still pleasing. Sakura, from last month's desktop, is another good choice, but variety is the spice of life. The Great Wave goes well with my SLiM login theme, Wave.
I picked the mouse cursor theme because it reminds me of wet ink on rice paper, and it has occasional blue animations that match the wave colors. It's available in Portage; you can install it by running emerge obsidian-xcursors
.
The uncluttered version that shows off the wallpaper:
Applications
Thunar is the filemanager open in the foreground. An Xfce terminal shows an update to Gnumeric being compiled in the background.
Running in the panel are an assortment of application launchers, including customized dropdown menus for frequently used programs.
In the panel, I changed the default Xfce menu button (the blue X on the far left) to use a different icon; look in /usr/share/pixmaps
for the four menu icons shipped with Xfce. Right click the menu button to change the icon. Since you have to supply the full path, it means that when you change icon themes, any menu icon included will not automatically be applied to the menu button. You'll have to change it manually every time you change your theme.
After the launchers and taskbar, the notification area holds the tray icons for Claws Mail and Pidgin. Then a genmon applet that runs my lastsync.sh
Portage script. After genmon, there are plugins for volume control, the Orage clock, and local weather.
May Xfce desktop
This month's mostly warm, occasionally cool and windy weather inspired me to create a working environment that called to mind the pleasant days of springtime. The wallpaper is suitably natural, with pale blossoms and soft shadowed reflections at the water's edge.
icons: Crashbit
gtk+: Lila-Xfce
xfwm4: axiom
background: sakura
cursor: gentoo-xcursors
The gtk+ colors were chosen to complement the lavender cherry tree blossoms. While Xfce includes a gtk+ theme with matching colors, Xfce-Cadmium, one of the Lila themes had better-looking widgets. Cadmium is still a good choice, as are Lila-Simple and Lila-Industrial.
The icon set is an older version of Crashbit. The window manager theme "axiom" was chosen because it picks up the neutral background colors. Most themes are designed to pick up one of the primary colors, but that made things too purplish. The Lila project offers a couple of xfwm4 themes, but both are too harsh for this desktop.
The final piece of the theme is the mouse cursor. Normally I just use the Vanilla DMZ cursor theme, but I thought I'd try out a cursor set created specifically for Gentoo, which you can install by running emerge gentoo-xcursors
. It even comes with an animated Znurt for "working" operations. The light on his head pulses rapidly while you wait. Cute, very cute. The Lila project also has a few cursor themes, but I decided to stick with the Gentoo theme, because of Znurt.
The uncluttered version that shows off the wallpaper:
It's a pleasantly warm background, medium contrast, so it's easy on my eyes at all times. Plus, the water complements my SLiM theme, Wave.
Applications
Thunar is the filemanager open in the background. An Xfce Terminal displays the working directory for my LogJam fork. (Ebuilds in the overnight overlay.)
The weather plugin is running in the panel, displaying the local forecast, just after the very flexible Orage clock and my lastsync.sh
script in the genmon plugin.
Also visible: the Xfce Task Manager and Decibel Audio Player. Decibel is running in Playlist mode, playing the album Raja by Planet Boelex. The album is beautiful, relaxing, entrancing. It's freely available at Soft Phase.
Building a home NAS
Problem
I need to get a NAS. A small one, due to physical space constraints. Yet it still needs to hold 3 or 4 drives. Cheap, too. Ideally I'd spend $150, but I can do more if need be. Total cost must be less than $400.
The single media storage drive in my desktop workstation has run out of room, and the box itself has become increasingly unreliable due to overheating and flaky parts. So before the thing dies and takes my drive with it, I should stick it in a separate box, along with two other drives, and thus put all my home media needs in one easily accessible place. I need to get a NAS that can hold at least 3-4 drives.
Options
There are two ways of doing that:
1. Buying a NAS device.
Synology, Buffalo, QNAP, and others make 2-to-4 drive NAS boxes with decent firmware and web interfaces, and are guaranteed Linux/Mac compatible, which is good for all my machines. The downside is that they typically cost $300 - $500 new, which is more than I want to pay. I've checked eBay, but NASes from these vendors and others are purchased very quickly, as there's a thriving resale market. Even used, the devices command a very high price. QNAP, which seems to have the best NAS devices (according to Small Net Builder, would be my first choice based on firmware features and reputation, but the few 4-bay NASes on eBay are still too expensive, and they're sold within just a couple of hours or days.
2. Building my own NAS device.
In theory, this could be much cheaper than purchasing a NAS from a vendor. The downside is that I have to buy the components, assemble them, hope they all work, find a decent NAS operating system, hope it installs, configure it, and hope it works, and then carefully administer updates and other things I don't want to be bothered with.
That's why I was so set on getting a small QNAP or DiskStation -- the firmware and web UI are already in place, and easy-to-use. I just want to put in the drives and set my sharing services. Paying a slightly higher price in exchange for less hair pulling seemed like a worthy trade. On the other hand, choosing my own NAS OS means support for certain things all the vendor-supplied NAS OSes lack, like better filesystem support, or running all kinds of sharing services without being limited to what's in the firmware, for example UPnP/DLNA.
That brings me to the next part:
Requirements
These things will determine what kind of NAS I purchase or assemble, and what operating system I install.
Media serving
1. UPnP: The UPnP server needs to support streaming to normal UPnP clients and an Xbox 360. There's an ION-based HTPC (Zotac MAG) and an Xbox 360 in the living room, attached to the home network.
Right now the HTPC has XBMC installed, but it's so frustrating to configure I may switch to Boxee or some other more user-friendly HTPC OS. Still, at least it does UPnP, which the easiest way to stream something from the desktop workstation, without having to setup Samba or NFS.
Currently, I run uShare from my desktop workstation whenever we want to watch something in the living room. The workstation has all the media files. However, to access them from the HTPC or the Xbox 360, I have to close all networked programs, turn off iptables, and then start the uShare service on the desktop. Not ideal.
2. MPD: Once the NAS is set up, I figure it's a smart idea to just use streaming players, since there won't be any local playback, except for audio CDs on the workstation. All other music will be on the NAS hard drives.
3. iTunes: We do have a Mac on the network, so I probably need iTunes server support via something like Firefly. That way no matter what's connected, it can still receive media streams.
File serving
1. Samba: The universal file sharing protocol. NFS is too unreliable. Samba can be used by anything and everything. The HTPC needs always-on access to the NAS. Same for the workstation and laptops -- they need to transfer content to and from the NAS.
The downside in Linux, at least, is needing to setup transparent Samba mounts for Xfce. It took me quite awhile to figure out how to setup Thunar, FuseSMB, FUSE, gvfs, and Gigolo. That's far, far too much effort, but at least it works when I needed to send stuff to the HTPC's hard drive over the network. Thunar is not a network-aware file manager, nor are there any plans to make it that way.
2. rsync: Useful for backups, as well as other things, I'm sure.
Filesytems
Right now, all my media is on ReiserFS, ext3, and vfat drives. I have two spare drives formatted with ReiserFS but nothing's on 'em, so I can always reformat if necessary. Whatever NAS or NAS OS I choose, it needs to support these filesystems, preferably read and write. I really don't want to have to swap files around when installing, simply because the OS doesn't support a certain filesystem.
Interface
1. Web GUI: The most important: an easy-to-use, preinstalled web user interface. I don't have the first clue on how to install and configure one myself, and I don't want to learn. It needs to already be there. Setting up a NAS should be mostly painless, so it should already provide easy configuration for Samba, access controls, media serving protocols, scheduled backups, and other bits.
2. SSH: I've discovered that with my HTPC and routers, SSH access is sometimes a lot quicker than going through a web GUI. In the case of the XBMC HTPC, sometimes it's ,em>required for upgrades and troubleshooting. There probably aren't many NAS OSes that don't offer SSH access, but it is something to check.
Which one?
If I buy a NAS, I'm at the mercy of the manufacturer for firmware updates, bug fixes, and new features. If I build my own, then the problem is which OS do I choose?
I probably won't choose Gentoo, given that nothing is ready ahead of time. Plus compiling on a low-power NAS box isn't fun. Stock Debian is right out: again, nothing's setup for serving or the web UI.
FreeNAS is often mentioned, but it has subpar filesystem support, and as a BSD, its nomenclature is quite different from Linux. Hardware support is another issue: it doesn't support as much common hardware (such as NICs) as Linux does, based on a survey of low-power Atom and ARM platforms.
Full-on server operating systems, like Ubuntu Server, seem rather bloated, and most of them aren't setup for the NAS role; they're made to be web servers, not media servers for small home networks.
The rest of the server OSes I've come across are designed as firewalls, gateways, or domain controllers, and only offer FTP access -- there's no real file sharing.
* * *
So, what are your thoughts on cheap home NAS devices? Have you built your own? Which OS did you use? What'd you pay for it? Did you buy a vendor-made NAS? Which one and why?
Lemme know!
Late April Xfce desktop
It's only been two weeks since my last awesome desktop, but already I've found a new look. Where mid-April's look was grungy, stormy, and dark-toned, my newest desktop is sleek, airy, and light. It exudes a reserved warmth; perfect for the approaching summer. Lots of light wood, airy spaces, pale blue skies, and soft shadows.
icons: Simplistica
gtk+: Simplistica
xfwm4: Rezlooks-gtk
background: Shards
The uncluttered version that shows off the wallpaper:
The downside to such a beautifully bright environment is that it's too bright when using the computer in dim light. 'Specially late at night or early in the morning. Dark themes with lower contrast are a bit easier on the eyes in those cases.
The Simplistica icon set is comprehensive and well-designed: It's intuitive and it has more icons than even Tango, at least on my machine. Every icon looks good, though I wish there were a few more mimetype icons, for example .txt
and .xml
. Something like the appearance of the .zip
and .tar
icons.
Applications
Thunar is the filemanager open in the background. Check out those icons.
The weather plugin is running, displaying the local forecast.
That image editor is Fotoxx. When you need to make quick touchups or corrections to pictures, give Fotoxx a shot. It's way faster than The Gimp, and easier to use. There's an ebuild available in my overlay, though I need to update the ebuild for the 10.x releases.
Also visible is xfrun4, a popup application launcher that remembers your most recent commands. It's pretty nifty; I like its autocomplete feature.
April Xfce desktop
Behold this month's Xfce desktop.
icons: Smokikon
gtk+: Shiki-Colors
xfwm4: Shiki-Colors
background: paleis by Steven Schreurs
The uncluttered version that shows off the wallpaper:
It's nice and grungy, though the gtk theme's blue highlights aren't quite dark enough. A simple color mod would fix that. I do like Shiki's unified titlebar; it lends an elegant touch. Someone needs to port Shiki to the Rezlooks engine, since Clearlooks is just too smooth, too nice for the grungy wallpapers I favor. Also, there aren't nearly enough decent grunge icon sets. Everything's too bright, too shiny, too smooth, too 3D, etc.
Applications
As usual: Decibel for playing music, and Thunar as the filemanager.
Highlighted in the panel menu is PyRoom. An ebuild for it is available in overnight.
The album featured in Decibel is Rain on Mars by Koalips. It's freely available at archive.org.