comparison PACKAGING @ 435:0a01e1c4ea54

documentation: added some notes about the importance of preserving our /opt/freecalypso private directory hierarchy
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 04 Nov 2018 21:55:19 +0000
parents
children
comparison
equal deleted inserted replaced
434:3ec8ef8b2d37 435:0a01e1c4ea54
1 It has been brought to the Mother's attention that some people don't like the
2 way our FC host tools are designed to be installed under /opt/freecalypso as
3 opposed to some standard location like /usr/local, and that some people have
4 been patching our Makefiles and code to move our installed binaries (and perhaps
5 some of the support files as well) to other locations which they like better.
6
7 PLEASE DON'T DO IT, especially if you are making a package or a build or setup
8 or install script to be used by more than just you. FC host tools are a very
9 complex package with a lot of interrelations between different tools, many
10 tools in our suite internally invoke other tools by their /opt/freecalypso/bin
11 absolute pathnames, some tools are designed to be invoked both by human users
12 and by other tools (rvinterf is a prime example), and there are many support
13 files used by various tools. If you try to outsmart the Mother and change the
14 install location to something other than what I designed it to be, you will
15 inevitably break something, and you probably won't notice the breakage because
16 a typical casual user only uses a very small subset of our tools. Furthermore,
17 if you move the install location, you will certainly break our various
18 additional tools which are not included in the core FC host tools package but
19 are meant to be installed on top of it, as all of them expect and require the
20 /opt/freecalypso directory hierarchy described in doc/opt-freecalypso-tree.
21
22 If your goal is to have our installed binaries accessible with a standard PATH
23 without adding /opt/freecalypso/bin to it, the correct solution is to list the
24 binaries installed in /opt/freecalypso/bin and make a symlink to each of these
25 binaries from /usr/bin or from /usr/local/bin or from wherever you like. Use
26 symlinks, don't move the binaries themselves! If you move the actual binaries,
27 you will break those tools which internally invoke other tools, which we do a
28 lot.
29
30 If you still dislike the whole idea, consider the way Firefox does it: official
31 release binaries from Mozilla are meant to be installed under /usr/lib/firefox
32 or /usr/lib/firefox-$VERSION, the stuff inside that directory looks nothing like
33 FHS, it is private to Firefox just like our /opt/freecalypso directory hierarchy
34 is private to FreeCalypso, and the user makes one symlink from /usr/bin/firefox
35 to /usr/lib/firefox-$VERSION/firefox or wherever the full complex package
36 resides. If you can live with Firefox and other major application packages
37 having their own non-FHS private directory trees, you can surely live with
38 FreeCalypso doing the same.
39
40 Why did we make our prefix /opt/freecalypso and not /usr/lib/freecalypso or
41 /usr/local/freecalypso? Because there are many, many places where the full
42 absolute pathname needs to be typed, and the location we chose is the shortest
43 among other sensible options.
44
45 Anyone who is going to make binary packages of our FC host tools (presumably
46 for use on systems on which compilation from source is difficult) and wishes to
47 have their packaging officially endorsed by the upstream MUST follow these
48 guidelines:
49
50 * The complete set of tools and support files MUST be included as if one built
51 and installed our package from the official source, without omitting or
52 breaking any part which you might consider unimportant.
53
54 * Everything MUST be installed under /opt/freecalypso exactly as designed by
55 the Mother; symlinks to binaries under /opt/freecalypso/bin from a more user-
56 friendly location may optionally be included.