• QEMU

    Today, I decided to try the QEMU CPU emulator. I installed it and, after fighting several problems caused by incorrect flags passed to the compiler, I got it working. So I tried to install OS/2 Warp 4 as the client OS. The emulator is very fast, compared to others such as Bochs (yeah, well, they don't work the same way). I had some problems during the installation (strange crashes in the installer) but, after disabling the network installation, it seems to work properly now.

  • Automatic verification of PLISTs

    pkgsrc uses static file lists to register the contents of an installed package. A drawback of this approach is that the file list of a package may occasionally become out of sync with reality. I.e., it may omit some files that are really installed, thus leaving them orphaned, or specify extra files that are not really copied into place. There are multiple reasons that can cause this desynchronization, including careless updates, incorrect detection of dependencies or, even worse, files that are only installed depending on the OS you are running.

  • Monotone dedicated server

    Some weeks ago, I installed Monotone on my main machine to act as a dedicated server for Vigipac's source code. During the process, I had to write a rc.d script and configure multiple things to get everything working safely. The overall process is not difficult once you know how Monotone works, but it is quite time consuming and error prone (due to concrete file permissions, for example). So I thought I could share my work to make this process easier to other people and love pkgsrc even more ;-)

  • Kernel debugging tutorial

    I recently had two crashes while killing a process which are very likely to be caused by the kqueue code. I asked NetBSD's current-users@ mailing list about the issue and got an answer suggesting the reading of a paper. Greg Lehey, the author of the post, wrote a nice tutorial and a set of slides dealing with kernel debugging under BSD systems; these were prepared for the EuroBSDCon 2004 (though it looks like they were not presented).

  • NetBSD 2.0 beats FreeBSD 5.3 in server performance

    Gregory McGarry has published an article that benchmarks NetBSD 2.0 and FreeBSD 5.3 in multiple situations that can be of interest in production servers. This includes scalability, reliability and performance in areas such as sockets, threads, process creation... What's impressive is that NetBSD 2.0 outperforms FreeBSD 5.3 in almost all tests! Moreover, the areas in which it doesn't are not very important when it comes to real production servers. For example, the test that measures thread creation times doesn't reflect reality, because real servers won't manage that many threads.

  • Tracking down a deadlock

    Yesterday's night, I packaged Vino, a VNC server that integrates seamlessly with GNOME. After creating the package, I ran vino-preferences and saw it crash with the following assertion: assertion "next != 0" failed: file "/home/jmmv/NetBSD/src/lib/libpthread/pthread_run.c", line 130, function "pthread__next" Hmm, threading problems... so I started looking at Vino's code to see where the problem could be. Saw it was using threads, but it was not after half an hour or so until I noticed that they were disabled by default.

  • Epiphany's scrolling

    For a long time, I've been believing that Epiphany, the GNOME web browser, was broken when installed through pkgsrc. And I was starting to hate it. The problem I had was that trying to scroll the page using the keyboard resulted in a cursor moving around the document, instead of scrolling the whole page. Believe me, extremely annoying behavior, since it jumped across columns unexpectedly. My diagnostic was that I had hit some kind of compatibility problem between Epiphany and the version of Mozilla I had installed through the mozilla-gtk2 package.