Package: doxygen Version: 1.7.4-2 I maintain libgadu, which is one of many packages that use doxygen for generating its API documentation (in this case in libgadu-doc). I'm writing because of the new lintian check for embedded JavaScript libraries which also affects libgadu-doc. While this problem affects more than libgadu-doc, let's focus on this case for sake of simplicity.
I've seen #622147 and #625956, however I feel they do not address the core of the problem, which is the fact that calling doxygen when building src:libgadu embeds a copy of jquery.js inside the libgadu-doc binary package. It seems that in order to rid of the embedded copy, the libgadu-doc maintainer would need to hunt down such jquery.js file and replace it with a symlink to the file provided by libjs-jquery. However from libgadu's POV that's not the right approach: - libgadu-doc treats doxygen as a service - it points it at some source files, and expects a bunch of HTML files in the output directory. The exact names or paths of these files are not generally its concern (maybe apart from the main index.html). In particular which JavaScript libriaries doxygen decides to use for the documentation it generates is an implementation detail. - It might change between doxygen versions in various ways: the name or exact path of the embedded file could change, or it might decide to use a completely different jquery implementation altogether. Or might even stop using jquery at all! And that's all completely fine, and it must not require any action on part of libgadu-doc maintainer. Otherwise simple rebuilds against a new doxygen would be unsafe! I think instead we should use the technology we already have in Debian for dynamically generating binary package dependencies at build time. Here's my proposal: whenever doxygen is used during libgadu-doc build, it should: 1) install symlinks to /usr/share/javascript/jquery/jquery*.js rather than outputing the file contents 2) add misc:Depends=libjs-jquery to debian/libgadu-doc.substvars How this should be implemented is an open question. I don't think the doxygen binary should be modified to edit Debian build-specific files, but I could imagine: - doxygen emitting a list of jquery.js file paths it created during a run, - a wrapper for doxygen, which would accept a path to the debian directory, and the name of the package being built (libgadu-doc in this case). This wrapper would parse the list emitted by doxygen, replace files with symlinks, and edit the appropriate .substvars file. Implementing this proposal will obviously require some work, but I think it will be an overall win given the number of packages which use doxygen and currently end up with embedded copies of jquery. Moreover, when such mechanism is implemented, it can probably be used in other packages whose role is similar to doxygen. -- Marcin Owsiany <porri...@debian.org> http://marcin.owsiany.pl/ GnuPG: 1024D/60F41216 FE67 DA2D 0ACA FC5E 3F75 D6F6 3A0D 8AA0 60F4 1216 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org