Downgrading Debian packages
5 October 2011 11:13:17
Debian, for future reference, my software
After upgrading my Debian (unstable) workstation a few days I found X to be
awfully slow. Also, X would refuse to load Nvidia's proprietary driver due to
ABI incompatibility. ABI issue was easily "resolved" with an option
in X.org's configuration, but slowness was still there. Driver update a day
later only solved the ABI issue. Another day later I grew tired of X's slowness
and decided to do something about it. I decided to downgrade X. Unfortunately
it wasn't that easy.
Ever needed to downgrade a package with too many dependencies to count?
plan-downgrade.pl may help.
Read more.
Permalink | Comments (0)
GStreamer stuff for future reference
10 August 2011 11:53:50
for future reference
Do you have a dump from /dev/dvb/adapter#/dvr# but can't play it with
GStreamer (using decodebin2)? Can other application such as mplayer play it?
Make sure you use the right demuxer. I discovered that on my work computer
decodebin2 was using flutsdemux (from Fluendo) to demux the transport stream.
Skipping the details, this didn't work. FFmpeg's ffdemux_mpegts did.
For future reference
- Play data dump from a DVB device (also: one source, multiple sinks)
- gst-launch-0.10 filesrc location=input.ts ! ffdemux_mpegts name=demux demux.! queue ! ffdec_mpegvideo ! autovideosink demux.! queue ! ffdec_mp3 ! autoaudiosink
- Show which GST components are being used
- gst-launch-0.10 --gst-debug=GST_ELEMENT_FACTORY:3 ...
Permalink | Comments (0)
Conquest, an epic space empire game
5 April 2011 13:26:33
software
I've finally released a "backport" of Conquest, an epic space empire
game. This version compiles cleanly on GNU/Linux and fixes some annoyances and
bugs of the "original" Amiga port.
Get the sources or read
more about this premium quality project-killer.
Permalink | Comments (0)
Debian Squeeze, Apache 2 and chroot
28 March 2011 13:11:20
Debian, rant, software
Today, I upgraded chikan.katei.fi to Debian GNU/Linux Squeeze. I
prepared for the opration by going through release notes and reading about
possible caveats. Everything went smoothly from upgrading the kernel to
upgrading to GRUB2. Because I generally tend to believe that Debian maintainers
know it better than me, I often choose to replace my own configuration files
with maintainer versions -- only to merge my settings manually. When I was
supposed to be finished, I realised that my Apache 2 configuration wasn't quite
working as intended.
I spent quite some time trying to figure out why my virtual hosts were not
working. More precisely, why could Apache 2 find the configuration files and
accept DocumentRoot but not find the actual files it was serving. I
also noticed that disabling ChrootDir option would make things work
just like magic. Eventually I realised that Apache root process was chrooted to
one directory and the workers in another under the main root. This didn't look
healthy as symlinks at worker root could no longer be followed.
A quick run of querybts revealed that Apache 2.2.10 had introduced a
new configuration option: ChrootDir. This caused mod_chroot
to chroot the main process and Apache to chroot the workers one step deeper. At
first I tried disabling mod_chroot, but I wasn't happy with Apache main process
being in the wild, and decided that built-in ChrootDir wasn't the way.
After some consideration I decided to compile a special version of mod_chroot
(or libapache2-mod-chroot). A version that would use configuration
keyword ModChrootDir instead. I know this was ugly but at least it did
the trick. It did the trick quite painlessly, I might add.
Lesson learned: Using obscure Apache 2 modules can be asking for trouble.
mod_chroot hasn't been updated for nearly four years so I should've known
better. Perhaps I should see if using built-in chroot would be a good idea
after all.
Permalink | Comments (0)
icasefile
27 February 2011 21:42:12
my software
Get your copy of icasefile while stocks last.
icasefile is a LD_PRELOADable wrapper for several libc functions such as
open(), stat() and chown(). It allows user to access files regardless of
filename case -- just like underlying filesystem was case-insensitive. If you
can't think of a reason why this would be useful, you don't need this toy.
Minimal project page with link to sources.
Permalink | Comments (0)