I am planning on moving the install locations of all the rox-base/* and
rox-extra/* applications from their current location (/usr/lib/rox) to
something a little more FHS-correct[1] and tolerant of multilib support.

The main reason for this change is that I got a bug from amd64 because
the /usr/lib path is hard-coded all over the place (ie, not multilib
compliant), but it's always sort of bugged me that these packages are
in /usr/lib - They're not actually libaries (except for rox-clib).
These rox applications are a new special case that don't fit into the
FHS, called "Application Directories"[2], and I need a good place to
put them.

Please note that every rox application creates a symlink in /usr/bin
which runs the application regardless of where it exists in the
filesystem, so from an end-user perspective this doesn't really
matter.  (Except a small bit of migration when I actually do move these
packages, which will be the topic for another day).

I'd like input from any interested parties on where the proper
location may be.  Here are some ideas with their justifications and
problems, as I see them:

/usr/libexec/rox - libexec isn't actually in the FHS (that I could
  see), and /usr/libexec is usually assumed to contain executable
  code, so it may be a "safe" place to put things.  That said, libexec
  is considered by some to be dead or about to disappear[3], so it may
  not be the right place to go.

/usr/rox - This isn't in the FHS either, I would be creating it.  The
  problem is that the FHS specifically says "Large software packages
  must not use a direct subdirectory under the /usr hierarchy."

/opt/rox - This is FHS-safe, but the gentoo convention is to
  reserve /opt for binary packages only, and these appdirs are not.

/usr/bin/rox-desktop - This may be the most correct, since the FHS
  does allow subdirectories here, and doesn't explicitly prohibit new
  ones. Also, these are actually executable commands.  The problem is
  that (at least considering my currently installed packages) no one
  else has created any subdirectories in /usr/bin.  I don't know if
  that's a problem.  Also, I can't use the name 'rox' in this place
  because that conflicts with a filename from rox-base/rox.

I'm currently tending toward one of the last two, but am open to
suggestions to persuade me toward or away from any of these, or
any other, better suggestion.

Inside this new location I will be further reorganizing the packages so
most apps will be inside an 'Apps' subdirectory of this new location,
and rox-lib will be in a 'lib' subdirectory.

Now, one last thing to consider is rox-clib, which is actually a C
library.  However, thanks to the way rox software works with application
directories, it doesn't need to be in the normal library search
path at all to function properly.  I think that it would make
sense then for me to also take it out of /usr/lib altogether, and
instead put it alongside rox-lib in the new location.  It already has
an internal directory structure that provides a unique location for any
32- versus 64-bit versions of itself.

Thanks for your help!

[1] http://www.pathname.com/fhs/
[2] http://rox.sourceforge.net/desktop/AppDirs
[3] http://article.gmane.org/gmane.linux.gentoo.devel/44751 (and others)

-- 
Jim Ramsay
Gentoo/Linux Developer (rox)

Attachment: signature.asc
Description: PGP signature

Reply via email to