 Welcome to Gentoo Universe, an aggregation of weblog articles on all topics written by Gentoo developers. For a more refined aggregation of Gentoo-related topics only, you might be interested in Planet Gentoo.
July 02, 2009
So with GCC 4.4 and glibc 2.10, C++ support went, once again, stricter. Now, leaving aside all my possible comments on a language for which there is still an absolute vacuum of actual implementations years after publishing, let just look at what the problem is this time around.
The main issue, in which glibc 2.10 is also related, is that the C-style string functions now return pointers with the same constant modifier as they are given; so if you look for a characters in a constant string, it’ll return a constant string pointer, and vice-versa if you give it a variable string, it’ll return you a variable string pointer (more here if you’re bored).
This means that the following code will build fine with either GCC 4.3 or glibc 2.10 but will fail when both of those (or more recent) versions are used:
#include <cstring>
int main() {
char *foo = strchr("ciao", 'a');
}
% g++-4.3.3 test-const.cc -o test-const
% g++-4.4.0 test-const.cc -o test-const
test-const.cc: In function ‘int main()’:
test-const.cc:4: error: invalid conversion from ‘const char*’ to ‘char*’
The error from the compiler is quite real: you’re mixing up different type of variables, although in this particular instance you’re not doing anything wrong with it, but for instance take the following code rather than the one shown earlier:
#include <cstring>
int main() {
char *foo = strchr("ciao", 'a');
*foo = 'e';
}
This code is trying to change something that it shouldn’t; in particular, given the pointer is now pointing inside a literal, which is then inside the .rodata section of the ELF and in a shared, non-writeable area of memory, when executed this will cause a segmentation fault (a crash, for those not used to this terminology). But it can get less obvious and more sneaky, since instead of a literal, you could have a parameter, declared constant.
Of course, whenever you have a variable or a parameter that is declared constant, but is not actually residing in read-only memory areas (like .rodata), you’re just a cast away from having it non-constant. But then you’d be seeing the cast, and that would be like a yellow light sign. On the other hand, with the old method of just having the function cast away the constant modifier, it was less obvious at first sight.
Okay so we know what the problem is, why the error was introduced, let’s go down to business with what the problem is. I have seen more than a few patches out there that, to make software build on GCC 4.4/glibc 2.10 simply cast away the constant modifier, C-style:
#include <cstring>
int main() {
char *foo = (char*)strchr("ciao", 'a');
}
This is wrong. You should not do that. Why? Because you’re hiding a problem; in more than half the cases, the solution is simply to change the declaration of the variable:
#include <cstring>
int main() {
const char *foo = strchr("ciao", 'a');
}
Of course, this does not cover all the cases; there are a few when the pointer is actually used to change memory areas. In those cases, since fixing the issue might be overkill, I’d highly suggest a different syntax:
#include <cstring>
int main() {
char *foo = const_cast<char*>(strchr("ciao", 'a'));
*foo = 'e';
}
This uses the explicit const_cast keyword from C++, and the very fact that it’s an eyesore in the code should be enough to scream “Workaround!”, which is what it is in truth.
So please, don’t just cast it away C-style, give it a bit more thoughts, please!
|
website downage (July 02, 2009, 18:17 UTC)
Apparently, if you forget to pay your ISP bills for three months, they'll cut off your access. Hmm, whoops. That's why my blog as well as *.larrythecow.org went down for a few days.
I signed up for a Linode (and did automatic billing), and I'll be moving the sites there rather soonly. That'll save us all from other responsibility-addled issues. Well, financial ones at least.
|
New Council - Expectations? (July 02, 2009, 17:23 UTC)
Ok, we got a new council, I'm still there so thank you for renewing the trust on me =)
Looks like that less people found me or what I did that compelling to make me into the council, so surely I did something wrong. Solar got the first place so his cleanly cut ways are perceived better.
I started polling people about what they feel about Gentoo and what they'd like. The first thing I noticed is that people are sick of endless discussions on marginal stuff and even more sick of outside projects trying to push it's agenda on Gentoo using the shovel-in-throat way.
Second item is about trying to make the place nicer for everybody and better involve our large userbase. We used to be the nicest distribution regarding attitude towards newcomers and slow learner, now other distributions are better. We could re-learn from them.
That's what I perceived so far. As I said before I see the council just as the last resort to get something decided if we, developers, cannot find a large agreement. Solar likes more to be proactive in my opinion. You liked him so I guess we as council should try to push people express themselves and get new&interesting stuff done instead of discussing which is the new way to define a quantity next to infinity or why embedding information somewhere is right or wrong in theory.
That said, how wrong I am so far and how we could get Gentoo to improve even more?
|
Some time ago a user approached us and asked about a user guide...we told that it was a good idea and he should start writing it as we weren't too motivated to get that started. Marc Murphy provided a basic guide and extended it over the months to come but the Emacs team did not move to review it or whatever. Today I quit being a slacker, updated the guide a bit and added it to our official Emacs repository for everyone to see. It is not publishable but a good start and if something is missing or wrong, please point that out via Bugzilla or by direct email to the Emacs team. If you can provide patches we would be lucky, but also some unformatted text is welcome, we can integrate it into the GuideXML document.
Edit: There is a HTML version to make proof-reading easier. Yes, I know the image is missing and yes a lot of information is also still missing.
|
July 01, 2009
Christian Ruppert (idl0r) asked me today whether --as-needed makes software faster or smaller. I guess this is one of the most confusing points about --as-needed; focus of tons of hearsay, and with different assertions all around the place. So I’ll do my best to explain this once and for all.
In perfect conditions, that is, if --as-needed were not doing anything at all, then it wouldn’t be changing anything. The flag is not magical, it does not optimise the output at all. The same exact result you would have if libtool wasn’t pushing all crap down the line, and if all the build systems only requested the correct dependencies.
When it does matter is when overlink is present. To understand what the term overlink refers to check my old post that explains a bit what --as-needed does, and shows the overlink case, the perfect link case, and what really happens.
Now, of course you’ll find reports of users saying that --as-needed makes software faster or smaller. Is this true, or false? It’s not easy to answer one straight answer because it depends on what it’s happening with and without the flag. If with the flag there are libraries loaded, directly and indirectly, that are not used (neither directly nor indirectly), then the process spawned from the executable will have less libraries loaded in the address space, and thus both be faster to load (no need to read, map in memory, and relocate those libraries) and smaller in memory (some libraries are “free” in memory, but most will have relocations, especially if immediate bindings (“now” bindings) are used, like happens for setuid executables.
Indeed, the biggest improvements you can have when comparing the with and without cases in a system, or in software, that uses immediate bindings. In that case, all the symbols from shared objects are bound at load, instead than at runtime, so the startup time for the processes are cut down sensibly. This does not only involve hardened systems, or setuid binaries, but also applications using plugins, that may be requesting immediate bindings (to reject the plugin, rather than aborting at runtime, in case of missing symbols).
|
I was over at a friend's house yesterday, and I saw something on her refrigerator door. It was a small of Buddhist proverbs relating to difficult times and tough situations. At first I didn't pay much attention to any of the writings, but instead opened the door and got some ice out of the freezer. However, as I shut the door I started to read the first proverb.
Once I had finished reading the first piece, I was so captured by the interwoven simplicity and wisdom that I couldn't help but read the remainder of the writings. Having found such a large amount of wisdom and vast understanding, I decided that it would be selfish of me not to share them with everyone. I have therefore decided to post one per day here on my blog, and also to share some of my own thoughts regarding each respective proverb.
So, for today the first piece of Buddhist wisdom for difficult times is:
Things falling apart is a kind of testing and also a kind of healing. We think that the point is to pass the test or to overcome the problem, but the truth is that things don't really get solved. They come together and they fall apart. Then they come together and fall apart again. It's just like that. The healing comes from letting there be room for all of this to happen: room for grief, for relief, for misery, for joy.
--Pema Chodron
The dichotomy that is initially established by the first line (a test and a way of healing) indicates a type of optimism that one might not readily see during a struggle. Firstly, healing is a fairly indisputable positive process, correct? Even if the healing process itself is difficult, the intended outcome (being a healed state) is universally recognised as positive. Secondly, a test in the traditional sense can have a positive or a negative outcome—one can either pass it or fail it.
At first, that seems like it could net a doubly positive result (passing the test and healing), or a null result (failing the test, but possibly still attaining a healed state). However, I don't believe that sentiment is what Chodron intended. As indicated by the second line, the outcome isn't the important part of the test or of the healing process. Rather, the processes themselves are the most crucial elements. Being a part of those processes, and allowing them to occur in their natural manner will give one the opportunity to find a medium between passivity and activity in one's own life.
When thinking of that medium between passivity and activity, it might be beneficial to picture a game of Tetris. While one can't choose the pieces that are going to come next in the continuous progression, one can manipulate the piece's orientation and position in the overall grid of the game. I believe that Chodron was trying to get us to understand that though we can't sit back and just watch our lives happen to us, we do have to realise our limited control over events and their juxtapositions. This idea is further portrayed in the closing sentence, where she says that the “healing comes from letting there be room for all of this to happen.” When one can accept that there will be rough and turbulent times along with the great ones, then one can be more at peace with the current situation, whether pleasureful or painful. The comfort may come in knowing that no situation is permanent, and that one does have an ability to change the situation in certain ways (though not all ways). This idea is not limited to Buddhism, but is also prominent throughout the Judeo-Christian tradition, especially throughout Israeli folklore involving King Solomon.
|:| Zach |:|
|
After having encrypted my home partition as described here I encountered a strange problem. After each time I suspend to RAM all partitions on the MMC card are gone.
I'm running Gentoo sources 2.6.29-r5. I also tried Tuxonice sources 2.6.24-r9 but it has the same special effect. My MMC controller is the Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter. Perhaps suspend is just broken for it or something with my config is not right:(
So for now I'll just have to live without suspend to RAM and ensure that it doesn't do suspend to RAM as a powersaving measure.
|
June 29, 2009
A foreword, this post is mainly aimed at fellow devs or people doing a lot of ebuild work.
As many of you might know, bumping ebuilds is often not the hardest thing to do but to ensure a good QA, a number of little things have to be checked. There are various ways to go with QA, in no specific order:
- build with stricter package manager settings than usual (think FEATURES="test stricter")
- carefully read/grep throug build.log (a lot more tedious)
- verifying some files don't contain known bugs (gtk-doc, intltool)
- check that the user just gets the locales s/he asked for
- check that no lib is using a built-in when it should use a system lib
- check that RDEPEND/DEPEND actually match what the ebuild needs
and there is obviously a lot more that could go wrong that you don't always think about. Sure that's what ~arch and the infamous tinderboxes are for, some might say, but what if you could check for most of this with no extra cost for you than renaming the ebuild and trying to build it. Here comes the portage hooks (don't know if other PM supports this).
Let's take a real world example, recently intltool had a seriously buggy release (filled as gentoo bug #577133) and now most upstreams using intltool are shipping tarballs with these broken rules. With portage hooks, I wrote a little snipped that would tell me if there was not enough or actually too much locales installed for a given LINGUAS setting (ok that's not exactly it, but let's say it works this way). Then collected a list of md5sum of problematic files and wrote the following in /etc/portage/bashrc:
#!/bin/bash
post_src_prepare() {
if [ ! -e "${S}/po/Makefile.in.in" ]; then
return 0
fi
checksum=$(md5sum "${S}/po/Makefile.in.in" | cut -f1 -d' ')
tempfile=$(tempfile)
cat >> $tempfile <<EOF
26d0fa167a5a49e7f2b57b99d08c6586
f81285d13b63167be6981aad0e1a2038
955fb57559c7d112f749e185fc34e07f
EOF
if grep -q "$checksum" $tempfile; then
eerror "Bad intltool rules detected"
die "Bad intltool rules detected"
fi
}
And then any package using those bad rules will just die after src_prepare. No wasted time building broken stuff anymore. This example is obviously not perfect, yadi yada, but it's just here to show a lot can be achieved without touching portage code directly. Actually interesting tests would probably be gladly integrated into a PM so don't hide it if you write some. I'll try to drop a rewrite of this using my git hooks model in my dev space if there is interest in it.
|
LinuxTag kudos! (June 29, 2009, 07:30 UTC)
LinuxTag 2009 is over. I slept 12 hours after that, slightly less than the total of sleep I got throughout the four days. But it was amazing. There’s so many people I have to thank that made this a unique experience. Here’s my attempt at a partial list. Thanks to…
- All visitors for keeping us busy through discussions, compiling buttons together, and by accepting all our sneaky attempts to hand out flyers.
- Gentoo e.V. for covering the costs for printing flyers, buttons, banner, sweets and drinks.
- Alex Legler for designing the flyers, the banner, making sure they get printed in time, and manning the booth.
- Sebastian Pipping for designing both the t-shirts and word cloud with me, and giving valuable of feedback on the booth presentation. He also organized sweets and the diner table of Tuesday evening.
- Christian Faulhammer for manning the booth longer than anybody else; he helped out throughout all four days, from the first minute until his train left.
- Tobias Scherbaum for approving all our funding requests; being there even at a busy time and organising the two Gentoo book samples.
- Wernfried Haas and Claudia, for creating and hanging up the great Larry prints again. What would a Gentoo booth be without them?
- Sebastian Dyroff for driving all the boxes to the exhibition grounds and back to my place, and staying at the booth for quite a while.
- Luca Barbato for being around every now and then, while not busy at the ffmpeg booth.
- Florian Streibelt for fixing the presentation machine, providing some hardware on short notice and his booth service.
- Daniel Sturm for lending the button machine and buying all supplies, and manning the booth.
- Fabian Groffen for taking the long drive from the Netherlands, and work the booth despite partying.
- Valentin Haenel for being at the booth on Saturday.
- Torsten Schmits for manning the booth on Friday. (Hope you get better soon!)
- Björn Tropf for preparing the flyer with Alex and being there two days.
- Gordon Malm for proof-reading and improving the flyer.
- Tobias Kral and an unknown messenger for getting the stickers and mouse pad to the event.
- Benedikt Böhm, Christian Parpart, and Hanno Boeck for stopping by at the booth and saying hello.
- All LinuxTag helpers for all the work they did, including full-time catering. Special thanks to Daniel, Sebastian Pipping and Fabian for participating in that.
- All corporate sponsors of the event, they paid for catering and parts of the Social Event.
- Fedora for the free pizza on Friday.
- Ubuntu Berlin for the barbeque on Saturday.
- All those who offered help for next year. We will come back to you, LinuxTag 2010 is June 9 to 12.
Let me finish with a few bytes of statistics. There were more than 10 000 visitors, we sold 39 t-shirts, drank 34 bottles of Mate and 10 bottles of water, and ate 3 kg of sweets. Ohh, and here’s us again:
 Last row, from the left: rbu, grobian, sping, fauli behind dertobi123, a3li, Claudia and amne. Front row: Florian, Sebastian Dyroff, Dan Levin.
|
June 28, 2009
Yesterday I had a once in lifetime experience to attend a live Celtic ( and not only ) concert.
Loreena McKennitt is on a Mediterranean Tour. Yesterday she visited Patras to perform an amazing, 2 hour long, concert.
My mind was traveling back into medieval times during the whole time. Her beautiful voice in conjunction with the variety of mystical sounds produced by the fabulous musicians created an outstanding atmosphere.
Check out the Gallery
|
Today I finally put online my new website based on the fsws framework. While still not ready for release, right now it can generate in a single call (but with dual pass!) the whole site, the page sitemap (compliant with the specification) and even the robots.txt file (my reason to generate it with the rest of the site is that it keeps a pointer to the sitemap, and at the same time, you can ignore a whole subtree much more easily, by just setting parameters on the various pages).
The nice thing about fsws is in its very lightweight output: the whole site I wrote for my friend is less than 300k, and requires almost no server-side handling at all. The only thing that I’m forced to do is some playing with Apache’s mod_rewrite to change the content type of the pages, because Internet Explorer (who else?) fails to handle properly-served XHTML content (and asks to save the pages instead of opening them).
But together with this particular quirk, I also keep another piece of code, that works quite alike a web application, even if it’s self-contained inside the webserver configuration: a sanity check for the browser, based on the user agent, just like my antispam filter in this blog. It checks for both older browser versions and particular user agent signatures that indicate the presence of adware, spyware and viruses on the requesting user’s system.
When these signatures are identified, all the requests for actual pages are redirected to an error-like page that warns the user about the problem and ask him (or her) to update or change browser, or to install and use an antivirus. Now, since the site is entirely static and there is no user interaction with the server-side components beside the HTTP server itself, there is no real need for me to discard requests coming from unsafe clients, so my only reason to actually implement this type of code is public service.
I haven’t implemented the same trick on my website, yet. I’m still a bit conflicted about its usage. From one side, applying it means that part of the internet users will be unable to even view my site, which being even my professional site, might be a not so sound business move; from the other point of view, if most of the sites out there (with the obvious exclusion of those providing tools like browsers and antivirus) were to refuse requests from IE6 and other old browsers, maybe their widespread user would be put to a stop.
And to which extent should I (we) be refusing requests? Having a minimum base version for any browser is a good start, but there is more to that. As I noticed, there are quite a few Windows spyware, adware, and trojans (especially dialups) that register themselves as part of the Internet Explorer user agent. I have no idea why they do that, maybe it’s to pay some kind of provision to the trojan’s authors, but we could be using this kind of information to notify the users about malware presence on their systems.
Unfortunately, there doesn’t seem to be a comprehensive database of user agent identifiers, although with a bit of search over a sample you can easily find a lot of useful data; and also, since the whole check right now is handled through a simple redirection, I have no way to provide the user with any kind of feedback about what kind of malware is in their system. I guess that using some quick javascript inside the error page itself would be able to solve this.
|
I just received word from Josh that the OpenBox3 HOWTO that I started writing quite a while back is now in the official Gentoo documentation repository! Josh went through and made some changes to the draft version, and as far as I can tell, they were:
- Commented out ~arch applications in order to stick with the stable branch
- Removed the notes about mixing stable/unstable branches
- Some syntactical changes to my XML
So, if you have a desire to try a really neat window manager with few dependencies and that offers a huge amount of customisability, feel free to read the OpenBox Guide
Thank you Josh!
|:| Zach |:|
|
Theora - the benchmark (June 28, 2009, 14:50 UTC)
There are many discussions about how Theora should be used and about how it smokes x264 somehow.
I do not believe it or at least I don't believe the proofs till I try myself.
Any of the Theora zealots reading could please provide a reproducible benchmark so everybody could see for themselves how good/bad Theora is?
A script that fetches the new theora encoder, ffmpeg, takes an original, produces two videos using theora and h264 (no audio), same bitrate for both and in the end outputs cpu and memory usage would be great.
|
LinuxTag - day after (June 28, 2009, 14:41 UTC)
I'm eventually back home, I'm dead tired, the c-base party was great in many ways (people, food, place) and ending the night (actually starting the morning) playing Go with beer and music was _quite_ fun (thanks again for the games =))
I'll try to wrap up everything in a short post before falling asleep completely: the LinuxTag had been a wonderful experience I had been more there as FFmpeg developer and less as Gentoo developer (mostly because I had to man the FFmpeg booth mostly since we aren't that many and that I failed to chat in a proficuous with the gentoo people even if we spent the evening in the same place most of the time =| In the end I had a refreshing conversation about Gentoo with rbu luckily and I managed to chat a bit more with fauli just before he was leaving...)
Was quite fun going at the end of the event to the fsfe stand to do explain the FFmpeg stance about patents, Theora (more will follow) and why, in our humble opinion at least, isn't correct to propose^Wactually shove down to the web users throat such codec just because of some claims that are yet to be validated...
The discussion was quite pleasant mostly because to my surprise fsfe people there weren't zealots, so the whole discussion discussion even evolved to touch more interesting topics, like reverse engineering, making sure our license is respected and actually multimedia, with a brief discussion on containers, codec and streaming (that part actually started from an explanation why Theora isn't that perfect fruit of opensource that is claimed and why Ogg has many
shortcomings as container and why in multimedia you do not have one-size-fit-all solutions... )
|
New stuff, good stuff (June 28, 2009, 11:54 UTC)
Recently, a few larger packages on alpha have seen major updates.
There are caveats here and there. Thus, I'll point them out in this
post.
xorg-x11-7.4 and xorg-server-1.5
After long last, we've stabilized xorg-server-1.5 and xorg-x11-7.4
(plus their dependencies, naturally). The largest blocker for this was
the lack of kernel support for PCI accesses on alpha. Since 2.6.30 fixed
that and due to the pressure from the X11 guys to get rid of old versions
(and sundry other packages), we moved to 2.6.30 as stable vanilla kernel
and .29-r5 as stable gentoo-sources.
However, not everything is peachy. The glint driver, which is used
for the Permedia cards that came with many earlier PCI-only Alphas (like
the 500au and XP1000) does not work. There's a bug report (freedesktop
bug #21546, referenced from g.o bug #268626)
but no X11 dev has seen fit to react to it. I've been told that the
failure is the result of a changing API and a lack of update to the glint
driver. If you do use such a card and want to use recent X11 I suggest
bugging the X11 people about it; ideally, via the report mentioned above.
Regarding Kernel 2.6.30, there have been reports of SMP compile
failures on LKML, but I have been unable to reproduce those. Feel free to
bug me if you encounter them.
glibc 2.9
A few minutes ago, I stabilized glibc-2.9_p20081201-r2 for Alpha. It
has been running on all of my alphas for a while now, without any
noticeable flukes (besides one, which I'll detail below). Armin76 has
rebuilt his testing chroot with it and found no errors either, so I'm
quite sure this'll work out nicely.
The one caveat isn't a bug in glibc per se but actually one in
Netfilter. Under certain circumstances, a race condition can be
triggered in Netfilter which results in a silently dropped DNS packet
which in turn results in a timeout when connecting. I noticed this a few
months ago and hunted it down.
The main ingredients are: a machine running a glibc of the 2.9
series, an SMP Netfilter machine and low latency between the two. What
happens is that newer glibc resolvers rapid-fire the two requests (ipv4
and ipv6/A and AAAA) that are triggered by gethostbyname(). Due to the
specifics this sometimes triggers a race condition in the Netfilter code
it traverses on your router/firewall. The easiest solution right now is
to add "options single-request" to your resolv.conf. This will make
lookups slower but not perceptibly so unless you do a really large
number of them per second. If you occasionally experience delays when
connecting (typically with SSH) and it's not a delay on the other
side, you might want to try the fix described above. Details on the bug
can be found in my post to
net-devel.
The fix to Netfilter is very much the opposite of trivial, I am told.
And even if it were fixed tomorrow, it would take quite a while to phase
out the old code.
|
June 27, 2009
OpenBox HOWTO updated (June 27, 2009, 20:40 UTC)
Since I had a little bit of extra time today, I decided that I would make some minor changes to my OpenBox3 HOWTO. Though it has not yet been committed to the official documentation repository, I do think it is finally in a "publishable" state. The changes that were made to this third draft from the second one were:
- Fixed some grammatical errors
- Updated package list information
- Added note about keywording/unmasking packages
- Changed xorg-x11 references to xorg-server
- Added a nicer example of menu.xml entries
I'm still wanting to add some links to the relevant portions of the Handbook for the sections on keywording and unmasking packages. However, when I try to link to the Gentoo Handbook which is broken down in specific chapters and sections ("perfect for online viewing"), I get XML parsing errors regarding the equal signs contained in the links. For instance, the URL for keywording section is:
gentoo.org/doc/en/handbook/handbook-x86.xml?part=3&chap=3#doc_chap2
Also, I should note that the draft on my Gentoo Developer page is NOT current. I will update it as soon as I can, but I don't have my keys on this work laptop.
That's all for now, and I hope you all have a wonderful day!
|:| Zach |:|
P.S. Just for reference, the previous drafts and the progress of my OpenBox3 HOWTO can be found in Gentoo Bug #256693.
|
I have written before that, over CMS- or Wiki-based website, I prefer static websites, and that with a bit of magic with XSL and XML you can get results that look damn cool. I also have worked on the new xine site which is entirely static and generated from XML sources and libxslt.
When I wrote the xine website, I also reused some of the knowledge from my own website even though the two of them are pretty different in many aspects: my website used one xml file per page, with an index page, and a series of extra stylesheets that convert some even higher level structures into the mid-level blocks that then translated to XHTML; the xine website used a single XML file with XInclude to merge in many fragments, with one single document for everything, similarly to what DocBook does.
Using the same framework, but made a bit more generic, I wrote the XSL framework (that I called locally “Flameeyes’s Static Website” or fsws for short) that is generating the website for a friend of mine, an independent movie director (which is hosted on vanguard too). I have chosen to go down this road because he needed something cheap, and he didn’t care much about interaction (there’s Facebook for that, mostly). In this framework I implemented some transformation code that implements part of the flickr REST API, and also a shorthand to blend in Youtube videos.
Now, I’m extending the same framework, keeping it abstract from the actual site usage, allowing different options for settig up the pages, to rewrite my own website with a cleaner structure. Unfortunately it’s not as easy as I thought, because while my original framework is extensible enough, and I was able to add in enough of my previous stylesheets’ fragments into it without changing it all over, there are a few things that I could probably share again between different sites without needing to recreate it each time but require me to make extensive changes.
I hope that once I’m done with the extension, I’ll be able to publish fsws as a standard framework for the creation of static websites; for now I’m going to extend it just locally, and for a selected number of friends, until I can easily say “Yes it works” – the first thing I’ll be doing then would be the xine website. But I’m sure that at least this kind of work is going to help me getting better understanding of XSLT that I can use for other purposes too.
Oh and in the mean time I’d like to pay credit to Arcsin whose templates I’ve been using both for my and others’ sites… I guess I know who I’ll be contacting if I need some specific layout.
|
Qt 4.5.2 changes (June 27, 2009, 18:48 UTC)
This is basically a heads-up for Qt users on Gentoo. We are about to add the new 4.5.2 release to portage. With this release we have changed a few things. We no longer have certain useflags enabled by default that are already enabled by the desktop profile. This means that if you are not using the desktop profile, you should look if any useflags have changed and decide which ones you want to enable. Or otherwise, that you no longer need to disable them if you want a minimal install.
We also have removed the need for the libX11 dependency in qt-core and a couple of other non-gui modules. So you can now for example have a server-only install of quassel with minimal dependencies. The libX11 dependency is now only pulled by packages that really need it.
Another thing that changed is that we dropped the custom-cxxflags useflag. After a long period of testing we haven’t come across any problems with “advanced” cxxflags in Qt 4.5, so now we always let the Qt modules be built with the user-specified flags. As this is an eclass level change, this means also users of the stable branch will see this change. An emerge --newuse world will trigger a recompile of Qt, but this means you will get better optimizations.
|
June 26, 2009
links for 2009-06-26 (June 26, 2009, 12:02 UTC)
PulseAudio and quirks (June 26, 2009, 10:04 UTC)
Seems like even my previous post about PulseAudio got one of the PA-bashers to think I’m a nuisance for their “cause”, whatever that is. For this reason I’d like to try to explain some of the quirks regarding PulseAudio, distributions, quirks and so on. Let’s call this a bit of a backstage analysis of what’s going on about Linux and audio, from somebody that has little vested interested in trying to roll the thing for PulseAudio.
The first problem to address relates to the comments that KDE people find PulseAudio a problem; I guess this has to be decomposed in a series of multiple problems: Lennart is a GTK/GNOME guy, so he obviously provided the original tools for GTK/GNOME. For a while I was interested in writing the equivalents for KDE (3) but I never had the time; now that I also moved to GNOME independently, I sincerely have no intention to write KDE tools for PA… but one has to wonder why nobody in KDE went out of his/her way to try doing this before. It’s not like it had to be part of KDE proper, it would have been okay to be an unofficial standalone application.
There is also another problem: most of the KDE guys who do see problems with PulseAudio are most likely using Phonon with xine-lib backend, configured to use the PulseAudio output plugin. Given I’m the one I wrote most of it originally, I can say that it sucks big time. Unfortunately I have had no time to work on that lately, I hope I might have that time in the future, but the two years I spent between hospitals seriously indebted me to the point I’m doing about 18 hours of work a day on average. For those who do want to use xine-lib with Pulse, I’d like to suggest the long route: set up the ALSA Pulse plugin, and then let xine just use ALSA.
There is of course another problem for KDE: while GNOME historically had no problem with force in dependencies that are Linux-specific or that work most of the time just on Linux (think about HAL adoption for instance), and relied on the actual vendors to do the eventual porting, KDE strives to work most of the time on multiple operating systems, including as of KDE 4 also Mac OS X and Windows. Now you might like this or not, but it’s their choice; and the problem is that while there is some kind of PulseAudio support for Windows, at least OSX is pretty badly shaped (also on my radar).
For what concerns distribution support, it is true that Lennart usually just care about Fedora; you have to accept this as part of the deal given RedHat is – as far as I know at least, Lennart feel free to correct me if I’m wrong – the one vendor paying his bills. Now of course we’d all love to support all the distributions at the same time, but the only way that’s possible is if multiple maintainers do coordinate; I’ve been doing my best to pass all the patches upstream when I’ve added them to Gentoo, and I see Colin Guthrie from Mandriva doing the same. One thing I can “blame” Lennart for (and I told this to him before, too!) is not creating a GIT branch with the cherry-picked patches he applies on the Fedora packaging for us to pick up… and the fact that he doesn’t like neither making releases or leaving access to others to do so.
To be honest, there is little different in this from what other projects do with distributions like Ubuntu when they are paid by Canonical. I think this is obvious, everybody looks at their little garden first. But this is not something that should concern us I guess. Gentoo has been quite out of the loop for what concerns PulseAudio, and I’m sorry, that was mostly my fault. I’m doing my best to let us update as soon as possible, but it’s not just that simple, as I already explained .
Then let me just say something about Lennart’s refusal to support system mode (which is available and advertised in Gentoo since PulseAudio entered the tree): I can’t blame him for that. First, his design for PulseAudio is based on providing something that works for the desktop use case. Something along the lines of Windows’s or OSX’s audio subsystems, neither of which provide anything akin to system mode. And indeed PulseAudio, by design, can handle the same situations, including multi-user setups with fast user switching. The fact that a system mode exists at all is due to the fact that I for one needed something like it on my setup, hacked it around for Gentoo, and then Lennart made my life easier implementing some extra bits on PulseAudio proper, but it was certainly not his idea.
What people complain about usually is the need for an X session (not strictly true, PulseAudio will start just fine in SSH — it would probably be possible to even fix it up so that it would tunnel audio just like you can tunnel X!), and the fact that audio does not continue to work when X exits (also not strictly true, if your audio player is running in screen it would be working just fine; it’s the fact that the media player crashes that makes your audio stop). Additionally people complain about the security problem of wanting to have all the processes to run under the same user, rather than allowing them to be on different users, like mpd.
Well, some complains are valid, other are not: it is true that PulseAudio does not work in multi-seat-multi-user environments, at least not with a single audio device, it is unfortunate and I don’t know if it’ll ever do work in that situation without a system mode. It is also true that running processes as different users for privileges separation does not work without system mode. But both these options are walking quite away from the the desktop design that PulseAudio is implementing; sure they are valid use cases, just like embedded systems (Palm Pre uses PulseAudio if you didn’t notice that before), but they are not what Lennart is interested in himself; at the same time I don’t think he’d be stopping anyone to improve the system mode support for those, as long as it wouldn’t require the desktop setup to make compromises.
Because the idea is, as usual in any software design, the one that you have to take compromises; Lennart wants the best experience for what concern desktop systems, and he compromises that system mode is not part of his plan, and it shouldn’t be hindering him. At the same time, while he does get upset when people ask for support about it, and he wrote why it’s not supported he hasn’t removed it (yet — if I was him, at this point I could have just removed it out of spite!). So colouring him as the master of evil does not seem the very best idea — and especially that makes me picture him in the part of Warren in the Trio, from Buffy’s season six.
Oh and a final note: it doesn’t have to surprise that Lennart and Fedora don’t care about running mpd and other services as different users, there are probably quite a few reasons for this. I cannot speak for Fedora, given I’m not involved in it, but my suppositions are that firstly the ALSA dmix plugin is somewhat scary from a security point of view (for me too) because it uses shared memory between processes from different users to do the mixing, and the second is that Fedora does a lot to use SElinux even on standard desktops. This is much tighter than separating privileges with different users since it forces the processes to behave as instructed. Unfortunately on Gentoo the SElinux support seems to have gone for good, at least to me.
|
LinuxTag: Day 3 (June 26, 2009, 09:59 UTC)
Time flies and so here we already are on Day 3 at LinuxTag in Berlin. We are almost sold out on T-Shirts, lots of people are running around with a Gentoo button on their shirt and we are sitting in “Larry’s Hackcenter”, stabilizing packages and wrangling Security bugs.
Some pictures:
 Fauli and sping approve of Gentoo
 Windows Server 2008 running Gentoo Prefix, yay!
 How did Knurt the Flying Saucer get there?
 Robert (rbu) operating the button machine.
 The view from Larry's Hackcenter to the rest of the world.
|
June 25, 2009
The Emacs team is collecting ancient and normally obsolete tarballs we once provided. We collected a lot of them already but are still missing some. So if you have one of the following in your DISTDIR, please mail them to us (emacs@g.o): ebuild-mode-1.0.tar.gzebuild-mode-1.1.tar.gz
If you by any chance used the Emacs overlay and installed some packages from there, we are still looking for: ebuild-mode-1.4.tar.bz2emacs-daemon-0.3.tar.bz2emacs-daemon-0.4.tar.bz2emacs-daemon-0.5.tar.bz2emacs-daemon-0.6.tar.bz2eselect-emacs-0.1.tar.bz2eselect-emacs-0.2.tar.bz2eselect-emacs-0.3.tar.bz2
Thanks to flameeyes and Frank Krömmelbein for providing all of them.
|
Just when I said that I was resuming my work as a PulseAudio maintainer in Gentoo, Lennart released a 0.9.16-test1 tarball. This was my cue to enter the scene upstream: the first test at packaging this in Gentoo failed, for a series of different reasons, some of which are internal (we don’t have the latest version of udev available yet, I hope we will by the time PulseAudio 0.9.16 final is releasd), but most are due to upstream changes that didn’t take into consideration some corner cases that Gentoo, as usual, gets to deal with.
So you won’t see the test1 (rc1) ebuild in the tree at all, you’ll probably have to wait for test2, and even that will require some work. For now I’ve fixed all the build- and run-time issues I’ve seen in the released tarball and git repository; plus I’ve been able to get it to properly build fully on both (Gentoo/)FreeBSD and OpenSolaris (with Prefix). I haven’t been able to experiment with actually having it playing yet, but it’ll come there at one point.
Unfortunately there are still a few shady details that I or someone else has to take care of. For instance, the tests still fail consistently: last time I tried them I got two failures on Yamato, one related to IPv6 enabled in PulseAudio build, but not enabled for the kernel, resulting in the IP ACL test asseting out (now I’ve fixed it, by warning of the case, and ignoring it as a failure); the other is the mixing test, which fails for everybody because it doesn’t know anything about the 24-bit and 24-bit-in-32-bit sample types; this I extended to support 24-bit, but was unable to do anything about the 24-bit-in-32-bit because I couldn’t grok it properly.
On non-Linux operating systems (FreeBSD and OpenSolaris), I had to work on a few more issues, like implicit declarations (there still is one in OpenSolaris), shadowed names, and of course there is some slight porting to be done, which I have nowhere near finished yet: the shm (Shared Memory) support in FreeBSD is imperfect, and for neither operating systems I’ve implemented the “get process name” function.
Okay I’m not able to provide a 100% porting to all the operating systems out there, but I still think I can do a bit to help out by making sure that PulseAudio won’t need to be extensively patched by all the porters out there. And until Lennart actually gets around merging my patches, you can find all them at gitorious so you can test them.
|
LinuxTag 2009 (June 25, 2009, 10:12 UTC)
After Robert posted the first photos yesterday, I have to do some status report: We have - a MacBook showing an installation screencast
- an Intel machine with a Gentoo installation running Windows in a virtual machine...and in there a Gentoo Prefix
- Compile Your Own Gentoo Button, we have all materials and different designs
- inspection copies of both German Gentoo books
- T-shirts for sale, and they sell great. If you live in Germany you can write an email to rbu, maybe we reorder after the exhibition
We were just filmed by German Linux Magazin, so you can hear rbu and myself talk about our stand a bit (only two questions though) as soon as it goes online. If you are near Berlin come visit us.
|
June 24, 2009
Almost two months after sane-backends-1.0.20 appeared upstream I finally managed to complete the first ebuild attempt.
It took me so long because
- there were a few internal changes with the new version and I wanted to check if the ebuild is still OK
- I made SANE_BACKENDS a USE_EXPAND variable now. So you can see which backends are available and enabled without reading the ebuild or the SANE homepage. Well, and it gets a lot harder to attempt building non-existant backends as some people tried in the past for understandable reasons.
- I can't complain about too much spare time and I hardly ever get to do anything that takes more than an hour or two, and I was new to the USE_EXPAND business.
Some frontends (including sane-frontends xscanimage) fail(ed) to compile with this version because a hardly ever needed flag named SANE_CAP_ALWAYS_SETTABLE which was not part of the official API (though in sane.h) has been removed. If you run into problems because of this please let the maintainer of the frontend know, it is not really sane-backends' fault.
|
As most of you probably know, about 2 months ago, I retired from Gentoo. I have been using Fedora as my “distribution of choice” on my laptop since that time, and I have been very impressed with it on the whole.
However, there have been a number of niggles which have been putting me off using Linux for a laptop. It’s highly likely that less “advanced” users wouldn’t experience the same issues I’ve been having, but none the less. I’ll outline the issues I’ve been having, then expand upon each of them in turn.
- Photo management software (F-Spot) is not particularly feature-rich, is slow and relatively buggy
- Need to fiddle around with things to get, for example, VPN connections working
- Hibernate/suspend doesn’t work
- Not much in the way of “set and forget” backup solutions
Although F-Spot does what it needs to do (mostly), it is extremely basic, and doesn’t offer solutions such as colour curve adjustment, converting images to black and white, scaling images, cropping images, and so on (unless I’ve missed something). It also doesn’t allow you to organise your photos quite as well as other photo management software, such as Aperture and Lightroom. I discovered a bug in my installation, which left both the F-Spot developers and me scratching our heads: attempting to export photos to Flickr crashes F-Spot if I launch it from Gnome’s menu. If I launch it from the terminal, I have no such issues… The options haven’t changed, and I can’t work out any way to pipe the error messages from when I launch it from Gnome’s menu to a file…
I use the VPN functionality quite a bit these days to connect to the University’s VPN whilst not on the University network. Although I have managed to get the VPN working thanks to one of my friends, I had to fiddle around with adding and modifying keys in the GConf editor, which I really should not have had to do. It might be possible to do it all through NetworkManager’s interface (I know that some of the options were available in the “Advanced Settings” dialog), but it was still a nuisance to sort it all out (and it was also undocumented. DO NOT WANT.)
Hibernate and suspend do not work on my ThinkPad T61. I’d suspect that this has something to do with using discreet nVidia graphics, but I would still like such features to work out of the box. I’ve had this laptop since Feb ‘08, and I’ve *still* not managed to get it working. With the MacBook Pros, you can just close it and wander off: everything just works.
Linux doesn’t really have a “set and forget” backup system such as Time Machine. With Time Machine, you set it up to backup to $external_harddisk, and it does it all for you. You just plug your MacBook in, and it automatically starts backing up in the background. You don’t have to think about it at all until you need it, at which point, you just fly back in time through their shiny interface, and you’re sorted. It really is quite nice.
I guess that I’m just “shifting” my expectations somewhat now that I’ve been at university for a year. At the beginning of the year, I was happy to fiddle around with things to get them to work. I was happy to make tarballs and scp or rsync them to remote locations to back things up. I was using Gentoo, and happy to sit through long compiles and reinstalls. Now, though, I just want things to work. I don’t want to have to fiddle around with obscure settings to make it work. I don’t want to have to sit through long compiles. I guess I want to be able to use my computer for what I want to use it for, without being side-tracked along half a dozen different mini-projects to be able to complete my main goal.
On top of that, Macs are shiny. I think that the Apple LED Cinema Display which has been designed specifically to go with the MacBook Pro is amazing, and just perfect for what I want. It allows me to compromise on the display resolution on the MacBook Pro itself (the MacBook Pro has a 13″ screen which operates at 1280×800. I’m a huge fan of portability, so I want to get the smallest model I can.), as I can just plug it in to instantly upgrade my resolution.
I think I shall probably write a number of blog posts about the software which I currently use and compare it to what I plan to use. Doing so should help me confirm the “upgrade route” I’m going to take, and how I’m going to manage my files and hobbies.
|
LinuxTag - day 1 (June 24, 2009, 09:20 UTC)
After about 4 years I eventually managed to get there! Today is the first day and I'm actually sort of manning the FFmpeg Booth and from time to time I could happen to be in the Gentoo one as well.
In the FFmpeg stand we are showing BBB high res in a big LCD screen from a small beagleboard. The operating system image is obviously Gentoo as well the other system present showing some jumpy Japanese idol video (not my idea).
See you! (Pictures will come later)
|
I am very pleased to announce that Avogadro has been nominated as a finalist in the SourceForge community choice awards this year. We are in the "Best Project for Academia" category, and I would like to encourage you to vote for Avogadro.
This is a real honour for all of us, and I appreciate all of you who nominated Avogadro. We are all pushing very hard on polishing Avogadro, getting ready for our 1.0 release. It would be absolutely amazing to see Avogadro win this award, so please vote for us.
There are also some other really nice projects in there too, such as Lancelot, ClamAV, phpMyAdmin and RepRap. So please take a few moments to place your vote, and tell your friends!
Update: You can vote even without a SourceForge account - just enter your email address and verify your vote.
|
June 23, 2009
Exactly two weeks ago today my son was born, weighing in at 8 lbs 13 oz and measuring 21 inches long. Louise and I have named him William Aaron Alexander Hanwell, our new addition has been thriving after a bumpy start. I would like to claim first foetal attendee of a KDE conference, getting him off to a brilliant start listening to some great technical talks in Jamaica. I know most people play classical music to their unborn children, but we like to be different I need to find him a KDE baby grow!

You can see him in the above photos just minutes after his birth, and a little more relaxed the next day in his hospital crib. Not wanting to be too run of the mill he was consistently breach, delivered by C-section and had his cord wrapped around his neck 2.5 times. Not a problem for that kind of delivery, but it would have been had we had the natural birth we were hoping for. As he was born in the US he also manages to get dual nationality (US by birth, UK from us), whilst his poor old Dad is still waiting to hear back about his H-1B visa...
I think three days prior Carsten's wife gave birth too, and I believe Mauricio will also be growing his family later this year. So the KDE Edu developers all seem to be expanding their families this year, I guess the greater question is whether this was a coordinated effort As with all true geek babies I will be setting him up with his own blog and online photo album, mainly so that our family and friends back home will be able to keep up with him as he grows.
So far I am really enjoying being a new father, although aware that this isn't the only big change over the summer!
|
Gentoo word cloud poster (June 23, 2009, 00:19 UTC)
Robert (rbu@gentoo) and I have started playing with wordle.net yesterday and created this Gentoo word cloud with it:
Here’s the SVG source file (licensed under CC-BY-SA 3.0).
We made a 120×70 cm² poster from that for LinuxTag, cutting and glueing pieces together ourselves today. Please excuse the image quality.
3D excerpt view:
Full view, on table:
Gentoo wordle and Robert/rbu:
I’ll try to provide some kind of “sources” (for reproduction of variations at least) next:
Worldle text input
ACCEPTLKEYWORDS ACCEPTLKEYWORDS ccache choice choice choice community community community compilation compilation control customization customization debug distcc documentation documentation ebuilds ebuilds ebuilds empowerment eselect eselect flame~wars FreeBSD GCC GCC Gentoo Gentoo Gentoo Gentoo Gentoo Gentoo Gentoo Larry Layman Linux Linux make.conf make.conf OpenRC optimization overlays overlays overlays package.mask Paludis perfection pkgcore portability portability Portage Portage Portage Portage~Prefix slots source~code source~code source~code speed speed USE USE USE USE USE USE USE USE volunteer~developers webapp-config webapp-config world~file Forums Wiki Summer~of~Code Summer~of~Code Bugzilla repoman USELEXPAND you kernel wireless stage server bash unicode rsync GRUB Foundation sunrise free~software free~software open~source open~source handbook catalyst gentoolkit colors colors baselayout sandbox genkernel etc-update crossdev
Note, that we produces underscores from big “L”s and cutting them down with Inkscape. No, really.
Further wordle settings were:
- Font = Meloche RG Bold
- Layout = Straight Edges + Mostly Horizontal
- Color = Ghostly + A little variance
With a small “patch” for net-print/poster we made it produce pages that overlapped strongly:
--- poster-20050907/poster.c
+++ poster-20050907/poster.c
@@ -949,7 +949,7 @@
"/posteryb %d def\n"
"/do_turn %s def\n"
"/strg 10 string def\n"
- "/clipmargin 6 def\n"
+ "/clipmargin 150 def\n"
"/labelsize 9 def\n"
"/tiledict 250 dict def\n"
"tiledict begin\n"
For normal posters that’s no use but for our case with words scattered on a white background it allowed flexible cutting of pages so we had to hurt no letters, in hope to produce a higher quality result.
Come by at the booth to see it with your own eyes
|
June 22, 2009
A small challenge (June 22, 2009, 19:37 UTC)
So here's one of those small things that go beyond the limits of my patience, bit might be very easy for others:
Bug 267267, the virtualbox stabling, is on hold for now.
The trigger is a pre-stripped .so. VBox uses kbuild, which has a severe lack of documentation.
I haven't been able to find a way to sanely disable that behaviour. If you have the skills - show the world how awesome
you are by writing a patch for any VBox version between 2.1.4 and 2.2.4, attach it to the bug and enjoy that smug
feeling of superiority.
If you don't have the skills, don't worry. You'll get there one day if you keep on working on it.
Find a simpler bug and try to fix it. Try to fix one bug every day. After 5 years you'll have
fixed over a thousand bugs (hey, some days off in between are acceptable) and learned a lot!
|
Working on stuff (June 22, 2009, 18:58 UTC)
In the last weeks I've picked up a few packages mostly because someone pointed me at them and there were lots of open bugs.
I've "inherited" virtualbox like that (although Jokey and X-Drum are still doing an awesome job whenever they have the time),
I've mostly taken over xen for now (even though I don't use it at the moment and test it in *ahem* VirtualBox).
Samba is another one of those packages that many people use, but few devs maintain. But it's a lot harder to test, so I
mostly leave it alone for now.
So I'm beginning to wonder - what packages are "orphaned", where did users provide and test patches and no dev is around?
How can we improve our response time to users so that they are happy and keep helping us, and how do we
notice that a package doesn't get the love it deserves?
My current mechanism for that is quite crude and biased - if I notice enough people complaining I have a look,
and if the build system doesn't make me want to get drunk I start playing around with it until a few bugs are closed.
Maybe we need a "Package Fix" team of users and devs?
The users could cooperate on collecting bugs for a "topic" like samba and test them, and the devs can give assistance
and then commit the fixes. It would most likely be quite fun to cooperate like this, might be a theme for a bugday -
but who has the time for that?
If you have an open bug with a fix that hasn't been committed feel free to Mail Me
or drop by in #gentoo-bugs on irc.freenode.net. I can't promise much, my time is limited and sometimes things just don't
work out as expected, but still I try. And maybe it gets a few old bugs killed - that would be worth it :)
|
Planning for PulseAudio (June 22, 2009, 18:42 UTC)
Thanks to Betelgeuse I finally have audio again on Yamato (again, thanks! — on a different note, this actually made me find out that there absolutely is a bug in ALSA that causes mmap to kill PulseAudio both with the ICE1712 and the HDA drivers), so I’m resuming my duty as PulseAudio maintainer. This is the reason why PulseAudio jumped to version 0.9.15-r50 in ~arch. So what’s up with that?
My current plans in respect to PulseAudio are trying to get 0.9.15 in stable to replace the ancient 0.9.9. What has stopped PulseAudio to go stable up to this point has been exactly two dependencies: OpenRC and libtool 2.2. Originally, the idea was to keep PulseAudio only compatible with OpenRC and no longer with baselayout 1; it was supposed to go stable pretty soon and the baselayout 1 init script was so scarily incomplete that we simply preferred not have to support it.
Unfortunately, there is still no date for OpenRC to go stable, if it’ll go at all in its current form. At the same time, Lennart has seriously warned against system wide mode (even though there are still valid use cases for which Gentoo often is used!) so keeping the new versions off from stable for a “minor” feature that is not even recommended to be used sounds like a bad plan.
For this reason I’ve now split the ebuild in two versions: one will keep the system mode support, with the system mode warnings, the init script and all the niceties, and the other won’t, and won’t depend on OpenRC at all; the latter is what is supposed to go stable and what stable users should locally unmask if they want PulseAudio.
Let me state again: if you want newer PulseAudio and you’re in stable explicitly request the -r1 version, not the -r50!.
Unfortunately while I should be able to ask for stable right away for what concerns time and bugs, there are a few dependencies, which include libtool 2.2 which is not stable yet (and I think it should be, the tinderbox haven’t found many libtool 2.2 bugs lately and quite a few packages started requiring that, rather than just a generic libtool that 1.5 is compatible with).
I still have no real plans for the realtime support; while Lennart released rtkit (does anybody find it concerning that Linux started having packages with names vaguely similar to those from Apple’s OS X?), it needs a patched kernel, which means I should probably be pestering our kernel team to get those patches included before we can actually provide it, even optionally.
This week I hope to be able to work on mpd too, so that the Gentoo packaging plays nice with PulseAudio (right now the fact that you have to run it with a different user forces you to use a systemwide instance).
|
|