Advice needed - moving GNOME help files into langpacks

Martin Pitt martin.pitt at ubuntu.com
Sun Aug 30 09:44:58 BST 2009


Hello Matthew, hello Shaun,

Matthew East [2009-08-27 23:19 +0100]:
> I've had a chat this evening with Shaun Mccance, the Gnome yelp
> maintainer. It seems that yelp gets its paths from rarian, and rarian
> gets its paths from the content of the omf files. So we can patch the
> omf files (seems to me to be a big job), patch rarian, or use the
> symlink idea of Loïc.
> 
> I've pasted the conversation here and hope that it helps! I'm afraid I
> was asking rather uninformed questions, as I don't have a good
> understanding either of how yelp works, or of how Ubuntu packaging
> works. But hopefully it takes things forward a little.
> 
>  http://pastebin.ubuntu.com/260590/

Thanks for this conversation! To clarify why we need this dance in the
first place:

<mdke_> Martin can't put these files in /usr/share/gnome/help because that will break upgrades
<shaunm> because it seemed straightforward enough to me to just drop the extra files in the right place

One assumption from dpkg (and most probably rpm as well) is that a
particular file can only be shipped in one package (at a time). Thus
if you have a file /usr/share/gnome/help/foo/foo.xml, which is
currently shipped by foo, and then you install a language pack which
also ships that file, the package installation will fail. We can
enforce that foo is upgraded before the language pack installation, or
that the langpack will overwrite files from foo, but that would
require said list of 50ish "Replaces:" declarations.

This isn't just a transitional problem either: people can install
third-party .debs, or locally built packages which include the help
files at the original place, and they would again be uninstallable due
to file conflicts.

Now, patching the omf files isn't much work at all, it can happen
automatically during package build in pkgstriptranslations: while
removing the gnome help files, it could also apply some seddery to the
omf files to change /help/ to /help-langpacks/. However, we'd still
have the same file conflict problem with the omf files themselves.

<shaunm> now, that won't work for mallard documents
<shaunm> which basically means empathy

Shaun, what do you mean here? The current empathy in Karmic (2.27.5)
seems to use the standard gnome help/omf system.

So it seems to me that the langpacks should ship the help files in
/usr/share/gnome/help-langpack/ and the omf files in
/usr/share/omf-langpack/, with the paths mangled accordingly 
(*/help/* → */help-langpack/*). Then a two-line rarian patch would fall
back to /usr/share/omf-langpack/ if the requested file does not exist
in /usr/share/omf/. With that order, locally installed files always
get preference, which is what we want.

With that we avoid a symlink tree which would clutter packages and
potentially cause bugs and problems with dangling symlinks, and we
retain the possibility of changing the implementation easily, since we
just have one tiny central patch in rarian.

I have the rarian patch ready now, and first experiments work very
well.

Thanks for all your input!

Martin
-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
Url : https://lists.ubuntu.com/archives/ubuntu-desktop/attachments/20090830/210304de/attachment.pgp 


More information about the ubuntu-desktop mailing list