Rog rio Brito: Some recent Debian activities
I have been occasionally working on some Debian-related tasks.
Chrony
One of those was to get chrony is a slightly better shape, by using, at
least, a patch system (indeed, I "modernized" its packaging with the format
"3.0 (quilt)"), put it in a git repository and would like to receive some
comments on what I have so far.
The bug Debian bug #694690 contains a very brief description of my
intentions and of the problems that I see in the current package. IMVHO, it
is a very nice NTP client and server and it could even be used as the
default for Debian, once it gets in shape. There is at least another
high-profile distribution, namely Fedora, that
switched to chrony as its default NTP software. We can certainly take a
look at what they are doing and join forces here.
MongoDB
Another package where I spent some time was with mongodb:
MongoDB is a tricky package that is only built for 2 arches: amd64 and
i386. The version in unstable for i386 was 2.0.x (roughly the same as for
wheezy), which the version in unstable for amd64 was 2.4.1, which has many
features that 2.0 lacks.
The packaging of it is a bit tricky, since the source tree has bazillion
embedded/convenience libraries (e.g., Google's v8, Mozilla's spidermonkey,
BOOST, Google's Snappy, PCRE 3 etc.). Up to version 2.4.1-2, it used all
these convenience copies, which is of course, a problem for a distribution
like Debian.
I changed part of the build process to use the libraries that we
already have in Debian and, as Antonin Kral uploaded this newer version,
unsurprisingly the binary packages are smaller (especially if you take into
account that a handful of the libraries may already be installed on the
system).
A few hours later, Antonin uploaded a new upstream version, which means that
we now have better MongoDB packages to play with. I am, in fact, really
playing with MongoDB as my first NoSQL database, since
10gen is giving an introductory course on how it works and my
motivation was to get what we have in Debian in shape for the course.
You can say that I am a firm believer of the "eat your own dogfood"
principle.
Regarding MongoDB only being built for i386 and amd64, the BTS
has a patch to enable building for kFreeBSD, but the patch is for the
2.0 series and the code has changed so drastically in relation to the 2.4
series that there is no hope of it applying. It would be super nice to have
MongoDB working on kFreeBSD and on HURD also, though.
nocache
There is a very nice command line program called
nocache
that was packaged
by Dmitry Smirnov (and just approved by the FTP masters!) whose packaging I
briefly reviewed per Dmitry's request and this is an amazing utility whose
purpose is to bypass/minimize file system caching for a program.
This is especially useful when you are making backups (reading lots of files
that would, otherwise, fill the filesystem cache, even if they are not used
frequently) or if you are just streaming one file (possibly larger than the
system's RAM) to another computer and you have no need to use the file
immediately after that.
It performs its job by using the LD_PRELOAD
mechanism and using
posix_fadvise
's flag POSIX_FADV_DONTNEED
for the files that will be
touched.
Post note
Oh, just one aside: for the readers of Debian Planet and other aggregation
services which are not Debian Developers/Maintainers, I contributed to these
packages without being the maintainer of them, just scratching some itches
and contributing back what I produced.