| [0] | I brought my bike along, for transport and exploring. This involved packing a bit of extra stuff, borrowing a friend's Tranzbag, arriving early at the airport to get it boxed to ensure a safer journey, picking it up in Dublin, and somehow getting it to Limerick, where I'd have to reassemble it. I wasn't really looking forward to the trip. It turned out to be stressless, as I said. The boxing cost me 10 Franks at the airport and was completed in less than 5 minutes, nobody at the check-in counter said anything, as if it was the most normal thing for them to check in bikes, some dude retrieved the box in Dublin and placed it on my cart, and while I was waiting, I found out that I wouldn't have to hop on a coach (bus) to go to the Dublin train station, catch a train to Limerick, and then finish the last mile in a taxi: a bus operates fairly regularly directly from Dublin airport to Limerick, taking four hours for the journey. That's about how long it would have taken me via the train station, but I only had to pay 19 the train itself would have been 25 , plus the taxi charges. The coach driver was curious when he saw the box, but I didn't have to pay extra, and after watching Airport on my laptop and listening to the new Katatonia album, I found myself with my bag and the bike next to the university's main entrance, with Mel and Daren on the way to pick me up. Five minutes later, I was in my home-to-be-for-five-weeks. |
"Pbuilder is great (and cowbuilder even more so). First of all, it makes setting up and upgrading chroots easier (even easier than dchroot etc.), but it will also handle dependencies and do install/removals (well, technically it won't remove stuff, the chroot is just thrown away afterwards). That way, pbuilder helps getting build dependencies right, and ensures the package is currently buildable (not with some library package you still happen to have on your system, but that has been removed from Debian; not uninstallable for some reason etc.). This makes the job easier for porters, since a FTBFS is less likely to be an error in packaging by the maintainer... At some point I had like 6 pbuilder chroots... woody, sarge, unstable, woody with some backports, sarge with SELinux backports, unstable with experimental. Sure, we don't need debhelper either? After all, it just does some cp and mvs, doesn't it? There IS some benefit in having stuff automatized in a standard way; even though we could all do our chroots ourselves, I want to express my thanks to the pbuilder (and cowbuilder) authors and maintainers for making life EASIER for me. A lot easier. I could live without, but I would probably not keep that many chroots."Ken Bloom added:
"One important feature of a pbuilder chroot is that pbuilder installs build-dependencies as you ask it to build debian packages, and removes them as soon as it finishes building the packages. In this sense, pbuilder is specifically intended to replicate the buildd environment, so you can find out whether your packages will break on a buildd (e.g. whether you've remembered to include all of the build-deps in debian/control, because things will break on the buildds if you forgot to add a build-dep because the build-dep was just lying around on your system (or in your unstable chroot)."Sven M ller wrote:
"Well, pbuilder has several benefits, but the most important one to me is that it restarts from a clean system (only base packages + build-essentials installed) on each build. Sure this adds to the time needed for the build, but it also makes sure that I get all build-deps right and that the whole build process is as reproducible as possible."Ben Hutchings commented:
"The major difference between pbuilder's approach and simply building in a chroot'ed installation is that pbuilder tries to build on a minimal system plus the specified build-dependencies. If you always build with pbuilder or similar it's much less likely that you will miss a build-dependency or otherwise produce a package that can't be auto-built elsewhere."I take the clean chroot point as a clear benefit, but it still strikes me that there are easier ways to do the same thing (rsync --delete) without all the waiting around for pbuilder on my slow mipsel. I guess that's the difference with debhelper: debhelper use doesn't seem to slow me down.
"Guten Abend! Ich hei e Knabe!" "Freut mich! Jonny Watanabe." "Kommen Sie aus Tokio?" "Nein! Ich komm' aus Buffalo!"I also updated my Wikitravel German user page with my newly-learned personal information. We'll see how that progresses over the next few weeks. tags: deutsch goethe-institut class buffalo
Binary file parsing is difficult. There is a lot of byte swapping,
offset computation and magic bit mask handling involved. Add to that the
fact that many binary formats were reverse-engineered and do not even have a
public spec, are so convoluted that there is no way to write a decent parser,
or have so many buggy writer implementations that the readers
need to accommodate for that.
Media players, web browsers and email clients are probably
the most exposed ones. These programs are full of bugs, not
more than any other program, but more dangerous bugs. Admit
it, you just play any video you find on the Intarweb, click any image link and read your email
(seriously, even mutt uses antiword to read .doc
attachments). It is no longer necessary to have network listening services to
be exposed to security issues, the users themselves listen to the world.
Using my fuzzing tool zzuf that
I eventually decided to release, I found more than 40 bugs in common Unix
tools, popular media players and other utilities, simply by reading valid
files and slightly corrupting them. The most scary ones are the media player
bugs:
| VLC | MPlayer | xine | FFmpeg (ffplay) | GStreamer (gst-launch) | mpg321 | ogg123 | |
| MP3 | robust | SIGSEGV | robust | robust | robust | robust | N/A |
| Ogg Vorbis | robust | SIGSEGV | robust | SIGSEGV | SIGSEGV | N/A | robust |
| MPEG-1 | SIGSEGV | SIGSEGV | SIGSEGV | SIGSEGV | robust | N/A | N/A |
| MPEG-2 | SIGSEGV | SIGSEGV | robust | SIGSEGV | SIGSEGV | N/A | N/A |
| MPEG-4 AVI | SIGSEGV | SIGSEGV | SIGSEGV | SIGSEGV | deadlock? | N/A | N/A |
| FLAC | robust | SIGSEGV | robust | heap corruption | robust | N/A | SIGFPE |
| Ogg Theora | robust | SIGSEGV | robust | SIGSEGV | robust | N/A | N/A |
| WMV | SIGSEGV | SIGSEGV | N/A | SIGSEGV | robust | N/A | N/A |
| AAC | heap corruption | SIGSEGV | SIGSEGV | N/A | N/A | N/A | N/A |
| AC-3/A52 | SIGSEGV | robust (I KID YOU NOT) | robust | SIGSEGV | N/A | N/A | N/A |
Next.