1 |
I am planning on moving the install locations of all the rox-base/* and |
2 |
rox-extra/* applications from their current location (/usr/lib/rox) to |
3 |
something a little more FHS-correct[1] and tolerant of multilib support. |
4 |
|
5 |
The main reason for this change is that I got a bug from amd64 because |
6 |
the /usr/lib path is hard-coded all over the place (ie, not multilib |
7 |
compliant), but it's always sort of bugged me that these packages are |
8 |
in /usr/lib - They're not actually libaries (except for rox-clib). |
9 |
These rox applications are a new special case that don't fit into the |
10 |
FHS, called "Application Directories"[2], and I need a good place to |
11 |
put them. |
12 |
|
13 |
Please note that every rox application creates a symlink in /usr/bin |
14 |
which runs the application regardless of where it exists in the |
15 |
filesystem, so from an end-user perspective this doesn't really |
16 |
matter. (Except a small bit of migration when I actually do move these |
17 |
packages, which will be the topic for another day). |
18 |
|
19 |
I'd like input from any interested parties on where the proper |
20 |
location may be. Here are some ideas with their justifications and |
21 |
problems, as I see them: |
22 |
|
23 |
/usr/libexec/rox - libexec isn't actually in the FHS (that I could |
24 |
see), and /usr/libexec is usually assumed to contain executable |
25 |
code, so it may be a "safe" place to put things. That said, libexec |
26 |
is considered by some to be dead or about to disappear[3], so it may |
27 |
not be the right place to go. |
28 |
|
29 |
/usr/rox - This isn't in the FHS either, I would be creating it. The |
30 |
problem is that the FHS specifically says "Large software packages |
31 |
must not use a direct subdirectory under the /usr hierarchy." |
32 |
|
33 |
/opt/rox - This is FHS-safe, but the gentoo convention is to |
34 |
reserve /opt for binary packages only, and these appdirs are not. |
35 |
|
36 |
/usr/bin/rox-desktop - This may be the most correct, since the FHS |
37 |
does allow subdirectories here, and doesn't explicitly prohibit new |
38 |
ones. Also, these are actually executable commands. The problem is |
39 |
that (at least considering my currently installed packages) no one |
40 |
else has created any subdirectories in /usr/bin. I don't know if |
41 |
that's a problem. Also, I can't use the name 'rox' in this place |
42 |
because that conflicts with a filename from rox-base/rox. |
43 |
|
44 |
I'm currently tending toward one of the last two, but am open to |
45 |
suggestions to persuade me toward or away from any of these, or |
46 |
any other, better suggestion. |
47 |
|
48 |
Inside this new location I will be further reorganizing the packages so |
49 |
most apps will be inside an 'Apps' subdirectory of this new location, |
50 |
and rox-lib will be in a 'lib' subdirectory. |
51 |
|
52 |
Now, one last thing to consider is rox-clib, which is actually a C |
53 |
library. However, thanks to the way rox software works with application |
54 |
directories, it doesn't need to be in the normal library search |
55 |
path at all to function properly. I think that it would make |
56 |
sense then for me to also take it out of /usr/lib altogether, and |
57 |
instead put it alongside rox-lib in the new location. It already has |
58 |
an internal directory structure that provides a unique location for any |
59 |
32- versus 64-bit versions of itself. |
60 |
|
61 |
Thanks for your help! |
62 |
|
63 |
[1] http://www.pathname.com/fhs/ |
64 |
[2] http://rox.sourceforge.net/desktop/AppDirs |
65 |
[3] http://article.gmane.org/gmane.linux.gentoo.devel/44751 (and others) |
66 |
|
67 |
-- |
68 |
Jim Ramsay |
69 |
Gentoo/Linux Developer (rox) |