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)
signature.asc
Description: PGP signature