[Pkg-mono-devel] Bits from the "Monodoc-Integration Hacker" :)

David Paleino d.paleino at gmail.com
Fri Oct 10 22:04:47 UTC 2008


Hello *,
I'm writing my work here, since it seems like the only one active on IRC
tonight is directhex :).
I've updated the wiki [0] a bit, but since I believe I found a working
solution, I'm proposing it here.
Please read the introduction paragraph on the wiki page, before continuing.

I believe I've found a solution to the monodoc integration issue. The current
approach uses a "local cache" in /usr/share/monodoc/manuals.d/, which is
created by dh_installmonodoc.

The maintainer who wants to use monodoc, *must* use dh_installmonodoc to
achieve his aim: providing documentation to mono users. Here's a step-by-step
"quick tutorial":

1) create a $package.installmonodoc (or just "installmonodoc", if your
source package produces only one binary) into debian/. The format is described
in the wiki [1].
2) use dh_installmonodoc in your binary target in debian/rules.
3) that's it!

dh_installmonodoc will then create /usr/share/monodoc/manuals.d/ if it doesn't
exist, and move the *.installmonodoc files to appropriate locations under this
path. "location*S*" is not a typo: the script just splits the .installmonodoc
into single-line files, named after the "name" in the monodoc XML.
This script will also add debhelper magic to .postinst and .postrm (provided
those scripts have a #DEBHELPER# inside them): it simply calls update-monodoc.

update-monodoc is another helper tool to be called by post{inst,rm}: it simply
reads the files under /usr/share/monodoc/manuals.d/ and write the appropriate
changes into /usr/lib/monodoc/monodoc.xml.
I've personally tested changing labels to nodes and adding nodes. Some work
still needs to be done (well, I didn't think about this until, ehm... *now*)
about removing a node (see wiki [2]).

You can find a first implementation of the overall thing at [3]. Please
remember to untar the tarball under /. This is a list of files contained
therein, if you need to "uninstall" it :)

$ tar tf monodoc-integration.tar.gz 
usr/
usr/bin/
usr/bin/update-monodoc
usr/bin/dh_installmonodoc
usr/share/
usr/share/man/
usr/share/man/man1/
usr/share/man/man1/update-monodoc.1.gz
usr/share/man/man1/dh_installmonodoc.1.gz
usr/share/debhelper/
usr/share/debhelper/autoscripts/
usr/share/debhelper/autoscripts/postrm-monodoc
usr/share/debhelper/autoscripts/postinst-monodoc
$ md5sum monodoc-integration.tar.gz 
ebdddb64363b3b71a7bf7a6afbaf1c84  monodoc-integration.tar.gz
$ sha1sum monodoc-integration.tar.gz 
b8a48b0d2e76c3dce4220d4a7d54f2205199aab6  monodoc-integration.tar.gz
$

Any comment/suggestion is very welcome,
David (who is going to work on nodes removal.)


[0] http://wiki.debian.org/Teams/DebianMonoGroup/MonodocIntegration
[1]
http://wiki.debian.org/Teams/DebianMonoGroup/MonodocIntegration#head-14bad7432793684ecf87f1e016a7ceca78bcfa6f
[2]
http://wiki.debian.org/Teams/DebianMonoGroup/MonodocIntegration#head-f4da4b517c2d85ab4198b83fcb5b2e35404697bc
[3] http://alioth.debian.org/~hanska-guest/monodoc-integration.tar.gz

-- 
 . ''`.  Debian maintainer | http://wiki.debian.org/DavidPaleino
 : :'  : Linuxer #334216 --|-- http://www.hanskalabs.net/
 `. `'`  GPG: 1392B174 ----|---- http://snipr.com/qa_page
   `-   2BAB C625 4E66 E7B8 450A C3E1 E6AA 9017 1392 B174
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
Url : http://lists.alioth.debian.org/pipermail/pkg-mono-devel/attachments/20081011/f7980738/attachment.pgp 


More information about the Pkg-mono-devel mailing list