Post a Comment
Or worse, you download the source, and the original programmer assumed that certain things are installed - and thus, never mention them as dependencies. I remember when I was compiling things on Solaris there would be atleast 5 different dependencies the maintainers would never mention in their website.
One would assume that these people, with atleast a minimal university programming skill set would remember the cardinal rule of 'never make assumptions about the end users computer configuration".
Unfortunately, sometimes the odd dependency gets in there without you realising you're depending on it.
Even more confusing can be libraries that that can have different features/sub-dependencies depending on what options it was compiled with. Some libraries I have used even install different headers depending what how you compiled them.
Every piece of software has a certain set of assumptions about the end-users computer (e.g. sh is installed is a fair assumption), but sometimes one mistakenly makes the wrong assumption: "I thought that was present on every system" type assumptions. Often it's best to create a chroot build environment only containing your expected dependencies built with the most minimal features, just to test it.
Of course, the every once in a while I think developers expect you to read the source code yourself and work out the dependencies 
I had this problem when trying to install a plugin for R from R-cran recently. Most of the dependancies were easy to find but one Fortran one was totally obscure. It turned out (after a having to do a web search) that it was for was for libblas. Their seems to be a lot of confusion about the naming of the required BLAS libraries on Linux (maybe on other Unix like systems too).
The LSB still has convoluted view on things.
1. They want you to use a different loader? One which isn't present on most distroes by default (e.g: requires the lsb package) AND is achievable only by using their version of the compiler? What about other compiled languages then, like D or Pascal?
2. They don't support static/smart linked binaries. Those are the best way to get proper compatibility across distributions and they completely ignore them.
The only good thing on this app checker is that it tells you which libs you use are present in which of the major distributions.




