MPlayer, Matroska and you

2009-08-17 11:49 This issue was fixed a few hours ago. I have bumped MPlayer in our tree to SVN rev. 29532

I bumped MPlayer tonight. Aside from a new VDPAU option and some miscellaneous fixes, the most important news item is that this bump most likely will be built for you by GCC 4.4, at least if you’re up to date. This is going to break playback support of files that use the Matroska container format (these files tend to use the .mkv file extension). The relevant bug in MPlayer’s Bugzilla is Bug #1467. This bug is present in all versions of MPlayer in ::media, including those I removed tonight. There are a couple of ways to work around it:

  • Use -demuxer lavf. The bug is in the libmpdemux Matroska demuxer so you can use the one from libavformat
  • Build MPlayer with the new debug-option. The bug disappears when you enable debugging support (yay!)
  • Build MPlayer with an older compiler. GCC 4.3 is known to work

It is possible this bug won’t affect you if your system is amd64.
You can grab a sample Matroska file if you want or need to test.

The state of the Exherbo Onion

Two perly things have happened in Exherbo recently. First of all, I pushed an exheres for 5.10.1-RC1 last night. I have tested to ensure that it should be possible to up- and downgrade between 5.10.0 and 5.10.1 without any issues, so feel free to test it. You will however need to rebuild anything that links against libperl.so (reconcilio should take care of that for you) so keep an eye out. Yes, this includes vim[perl] ;). RC1 and any further RCs will stay masked for testing indefinitely. 5.10.1 will introduce some changes, notably in features introduced in the 5.10-series, that are not backwards compatible with 5.10.0 so if you feel courageous, install it and see if you can make any packages break.

The second news is perl6. Ingmar has done some bitchin’ awesome work on getting parrot and rakudo in a state where they actually compile and install! As a result you can now play with the current version of rakudo, compiled straight from SCM:

$ perl6 -e'say "Hello, world!"'
Hello, world!
$

Remember to buy Ingmar a beer if you meet him :-)

ハ, パ… what’s the difference?

We get a lot of patches from many people in our main #exherbo channel. When someone is around and have the time to pick them up it works very well but some patches tend to drown in the general noise when we are all too lazy or drunk to do something with them.

Well, not anymore! Our new patchbot ‘hacchi’ (ハッチ) lets you queue a patch for later review, remove a single patch or several at once and get a list of all the currently pending patches. It accepts three different commands:

!patchqueue http://dpaste.com/12345/plain ::arbor
Enqueues the patch.

!patchdone 12345
Removes all patches matching ’12345′, so ‘!patchdone arbor’ would remove all patches for arbor.

!patchlist
Prints the current number of waiting patches to the channel and privmsgs the list to whoever ran the commands. hacchi also responds to this command in private.

The shorthand notations !pq, !pd & !pl also exists.

If there are any patches in the queue, hacchi will nag the channel about them once an hour to ensure they won’t be forgotten.

This is not a substitute for leaving a decent comment with an explaination that states what the patch is supposed to fix!

You should obviously still feel free to highlight a specific dev if you think your patch should be reviewed and applied by that person.

Topic repositories! Use them!

During his various talks Bryan has mentioned the use of unofficial topic repositories in Exherbo – repositories hosting packages related to a specific topic that are either mostly or completely maintained by non-developers (and by non-developers I mean people who cannot push to the official Exherbo repositories). So far, we haven’t really seen any of those mainly because most people have just kept packages in their own repositories. It gets tedious to add a lot of personal repositories just to get the latest and greatest packages people maintain though and at the end of the day it’s easier to collaborate and coordinate efforts if we can keep the related packages together, so we’ve (and by we I really mean Ali Polatel) created a media-unofficial repository hosted at github. So far alip, replica and I have pushed our media-related packages there and the repository currently contains stuff like Audacity, ncmpcpp and envtag.

Now, the point of a topic repository isn’t to give any and all push access – we want to exert a proper level of QA, even if it is an unofficial repo. But as with the official ones, pinging one of us with a decent git format-patch is all you need to contribute stuff. If you want to contribute a new media-related package, please consider whether it would be better off in -unofficial. Keeping the number of packages that we (and by we I mean Exherbo developers) have to maintain is essential if we want to continue keeping the number of developers (and by developers I mean non-non-developers) near-constant (and we want that).

The name media-unofficial does not imply that the packages are of a lesser quality than those in media.git, it does not imply that Exherbo developes want nothing to do with them, it does not imply that the packages are of dubious legality. The packages in that repository are maintained by smart people (including current Exherbo developers and current and former Gentoo developers) and we expect the quality to be as good as any official Exherbo repository.

I like the idea of topic repositories when it’s possible to draw a somewhat clear line between relevant and irrelevant packages. The whole notion of restricting who can directly touch a set of packages should help keep people from stepping on each others toes while still letting those who want to do really crazy stuff with their packages (and keep them private thankyouverymuch) do that just by copying the exheres’ to their own repositories. I hope we will see more of these as Exherbo grows – repositories maintained by groups of users and (optionally) a couple of Exherbo devs. They do all the work and we take all the credit!

Oh, and regarding that last sentence… anyone who wants to start an unofficial scientific repository and add all those things I’ve been too lazy to package? Pretty please?

The worst thing…

The worst thing about Open Source Days [danish] isn’t choosing which talks to attend (I never have time for talks anyway). The worst thing is doing weird LaTeX hacks to get their logo placed correctly in the agenda
Turns out there’s this cool environment for wrapping figures in text named ‘wrapfig’ (gee, who thinks up all these names) that you can use for positioning an image a little more intelligently than the default, left-aligned placement. Alas, said environment (or something else – I am by no means a LaTeX guru), doesn’t play nicely with tables and as the majority of the page is made up by the actual agenda in a table, that means the logo ends up whereever it fits; in this case smack in the middle of the page. A lost cause? Of course not! <leonidas>This is LaTeX!</leonidas>. Take a look at this beauty:


\AddToShipoutPicture{
 \put(0,0){
  \parbox[b][420mm]{530mm}{
   \vfill
   \centering
   \includegraphics[width=60mm]{logo2008_small}
   \vfill
  }
 }
}

[courtesy of the same guy who wrote the aforementioned blagpost, Jesper Nyerup]

Of course, you might have to fiddle with the actual placement of the parbox but as far as I could tell from my experiments, this will place the image whereever you want it, no matter what is above or below it layerwise. At the point where Jesper pasted that, I had been driven to the nastier corners, fiddling with boundingboxes and another parbox-hack, none of which worked remotely as well as this solution.
An ugly hack, nonetheless, don’t use it if you can avoid it.

Also, this requires you to include the eso-pic package in your preamble.

Also, if you happen to attend Open Source Days on saturday, by all means come by the Exherbo user stand where we will be happy to act like the elistist bastards people assume we are and tell you exactly why you shouldn’t use Exherbo just yet.