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

Reply via email to