Hi,

At the Utrecht BSP[1] we had some discussion about file paths, which is
relevant for this bug as well. Here's what we found.

Summary: Package data should be in /usr/share; unpackaged data should be
in /usr/local/share; configuration should be in /etc.

Reasons:

- /usr/share is owned by the system. That means packages can install
  things there, but the system administrator must not. Therefore it is
  not acceptable to require unpackaged themes to be installed there.

- /etc has shared ownership; the system may add new files there, but may
  not destroy user changes. However, an extra limitation is that only
  config files should be there. (This forbids "put it in /etc".)

- /usr/local/share is owned by the system administrator. Packages must
  not put any files there, other than a structure of empty directories
  (to help the system administrator putting the files in the right
  place). The FHS is pretty clear that this is the place where
  unpackaged add-ons (like drupal themes) should be installed.[2]

- If data in /usr/share conflicts with data in /usr/local/share, the
  latter should take precedence. That way, the system administrator can
  override the package defaults.

Now, if the package doesn't support this sort of behaviour, you should
try to get as close as possible:

- Put everything in /usr/share, but config files in /etc. Use symlinks
  to make the package understand it.

- If possible, set up two theme folders (one for default themes in
  /usr/share, the other in /usr/local/share). If drupal doesn't support
  this, either add support for it, or dynamically add symlinks to
  /usr/share for themes installed in /usr/local/share, when the "please
  update my system"-link is used.

A comment in the report mentions that it is desirable to be compatible
with non-Debian installations. This is true. For this reason, I suggest
two things:

- Check how Drupal is normally installed on other systems. If this is
  compatible with the FHS, consider if this approach should be used for
  Debian as well.

- If you need to add support for things, send it upstream and try to
  convince them that this is the Right Way to do it (using the FHS as
  proof).

Thanks,
Bas

[1] http://wiki.debian.org/BSP/2012/10/nl/Utrecht
[2] Literally: "Locally installed software must be placed within
    /usr/local rather than /usr [...]"
    Themes are clearly "software" in this context.

Attachment: signature.asc
Description: Digital signature

Reply via email to