• pkg-config: Sanity-checking package dependencies

    A while ago, I posted a series of pkg-config related messages: 1, 2 and 3. They were intended to give some background knowledge about that program, to let me easily explain something else: how pkg-config can be used to sanity-check packages — that is, to ensure that the libraries they depend on are the correct ones. In pkgsrc, direct dependencies are specified by including special buildlink3.mk files. These files have a default version specification in them, so that a reasonable value is kept somewhere centralized.

  • Recent pkgsrc changes

    Eww, it has been a very long while since I wrote the previous post, and even more since I did any serious changes in pkgsrc. Real life tasks get in the middle and take too much time (fortunately, this stressful period is about to end). However, during the last few days, I've been able to work a bit on pkgsrc, so I'd like to comment the changes I've done. First of all, GNOME has been brought up to 2.

  • Articles: Making packager-friendly software (part 2)

    More or less a month ago, the first part of my Making packager-friendly software article was published at ONLamp.com. I was happy to receive comments from several people saying that they liked it (sorry if I haven't replied to you yet; I've been very busy during the past few weeks). Now it's the time for the second (and last) part, which has just seen the light. It deals with recursive dependencies, handling of configuration files, unprivileged builds, the make utility, build infrastructure oddities and some details about code portability.

  • Modifying the environment from scripts

    Two days ago, a friend of mine was trying to modify the environment (the CLASSPATH) from within a shell script. Her intention was to run the script and then start working with Java on the same shell were the script was run. This didn't work. In order to explain why, I'm going to review the three different ways to run scripts and how they are related to the current environment.

  • Increasing RAM to 1GB

    Since I bought my latest workstation (summer of 2003), I'd been running with 512MB of RAM. During all this time, I was "angry" seeing how the system used swap space when it was somewhat loaded — e.g., GNOME running with a bunch of applications in the background (Epiphany, Evolution, aMule, Gaim, Beep Media Player...) and compiling some stuff. You know, when the system uses the swap, the performance (or at least, the responsiveness) decreases dramatically.

  • pkgsrc: Linux distributions

    As you may already know, pkgsrc is a packaging system that works on many different operating systems — not just NetBSD. Linux is included among these. pkgsrc will work fine on most Linux distributions, but IMHO, there are some that are more pkgsrc-friendlier than others (basically because their original packaging system may be limited). First of all, there is (or was, since the homepage seems to be dead) Bluewall GNU/Linux, which claimed to be a distribution including pkgsrc as its default packaging system.

  • Articles: Making packager-friendlier software (part 1)

    During the past summer, I started writing an article which details a set of serious problems I usually find when packaging third party utilities. These problems are very annoying, but usually not difficult to fix. They are generally caused because the original software authors are not packagers in most cases, so they are not aware of the things described here. Summarizing: the article analyzes these issues and gives some advice to solve them, in the aim that software developers make easier to package applications.