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