Package: libmono-cil-dev Version: 2.10.8.1-5 Steps to reproduce: 1. Some developer uses Mono in Debian/Ubuntu and makes a software that requires NUnit to build. 2. She checks the contents of the file /usr/lib/pkg-config/mono-nunit.pc in his system, and decides that this version of nunit is good to be required (i.e. 2.6.0). 3. She goes and places a pkg-config check in his configure.ac, checking for mono-nunit >= 2.6.0 version. 4. She commits her software to github. 5. Some user finds the software of this developer in gitorious (for example), he checks it out in his Linux OS, and tries to compile it. 6. Given that the Mono version of his OS is a bit old, he decides to use mono from git master (so he checks out mono, and compiles it, and installs it). 7. He then tries to compile the Mono-based software he cloned from gitorious before.
Expected results: The configure script should fail and tell him to install NUnit 2.6.0 or above. Current results: Configure works, because mono's upstream mono-nunit.pc version has Mono's version (3.2.7 as of this writing) in it[1], not NUnit's version, but compilation fails (i.e. because the developer used some NUnit API that is available in 2.6.0, but not in 2.4.8, which is the version that mono provides[2]). [1] https://github.com/mono/mono/blob/master/data/mono-nunit.pc.in [2] https://github.com/mono/mono/blob/master/mcs/nunit24/CommonAssemblyInfo.cs The culprit here is the fact that debian's mono packaging logic makes mono-nunit.pc be a symlink to nunit.pc. If that wasn't the case, this bug wouldn't exist. Some people in oftc#debian-cli state that the symlink is to avoid maintaining two versions of a library, which is fair enough. But then, one could avoid maintaining two versions of this library by simply not installing mono-nunit.pc instead of making it symlink to other package's pc file. One might say that the real bug is mono's upstream: "the version in mono-nunit.pc shouldn't be mono's version number, but 2.4.8, which is the version that mono embeds". To that I would reply: "fair enough, but even if you fix the bug upstream, the harm is already done for all the mono versions prior to your bugfix, so I think it's also good to fix this at the packaging level". The commits that introduced this symlink are: http://anonscm.debian.org/gitweb/?p=pkg-cli-libs/packages/nunit.git;a=commitdiff;h=87332208 http://anonscm.debian.org/gitweb/?p=pkg-mono/packages/mono.git;a=commitdiff;h=95518558