summaryrefslogtreecommitdiffstats
path: root/doc/book-enea-linux-release-info/doc/eltf_params_updated_template_how_to_use.txt
blob: 7f1d3cbdb976f83f0b68b886f2f8fc7b0cc0b8fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
eltf_params_template_updated_howto_use.txt

This is a way to collect all parameters for an Enea Linux release
in one parameter file, easy to automatically update by ELTF regularly.

NOTE: Both the release info AND the open source books use parameters from
      here, but the XML file is inside the release info book directory.

NOTE: The manifest_conf.mk, or overridden by the environment variable
      MANIFESTHASH, contains the full tag (or hashvalue) for downloading
      the manifest when the books are built. The list of target
      directories are fetched from the manifest into the book.
      The eltf_params_updates.xml can all the time contain
      the final next complete tag e.g. refs/tags/EL6 or similar
      in the ELTF_PL_CLONE_W_REPO parameter command lines.

The ordinary book XML files use xi:include statements to include elements
from this parameter file. The book XML files can thus be manually edited.
Before editing, you must run "make init".
Any other text in the template or updated.xml file, outside the parts that
are included in the book, are not used but still all must be correct
DocBook XML files.

ELTF work:
 template => ELTF replaces ALL ELTF_xxx variables => updated XML file
    => push to git only if changed


eltf_params_template.xml  (in git)
   File used by ELTF to autocreate/update the real parameter
   file eltf_params_updated.xml.

eltf_params_updated.xml  (in git)
   Real parameter file where ELTF has replaced all ELTF_xx variables with
   strings, in several cases with multiline strings.
   No spaces or linefeed allowed in beginning or end of the variable values!


xi:include: Each parameter is xi:include'ed in various book files, using
   the IDs existing in the parameter files.
   In most cases the 1:st element inside an element with an ID is included
   using a format like eltf-prereq-apt-get-commands-host/1.
   In very few cases the element with the ID is included in the book, one
   example is the target section which has an ID, but which contains
   multiple subsections, one per target.
   All IDs in a book must be unique.

DocBook XML: All XML files must be correct DocBook XML files.

Do NOT edit/save the real *updated.xml file with XMLmind to avoid changes
   not done by ELTF. But it is OK to open the real file in XMLmind to
   check that the format is correct.

ELTF should autocreate a temporary "real" file but only replace
   and push the eltf_params_updated.xml if it is changed.


make eltf
   This lists all ELTF_xxx variables and some rules how to treat them

DocBook Format: All elements - rules:
   Several strict generic XML rules apply for all strings:
    1. No TABs allowed or any other control chr than "linefeed"
    2. Only 7-bit ASCII
    3. Any < > & must be converted to &lt; &gt; and &amp;
       Similar for any other non-7-bit-ASCII but avoid those!
    4. No leading spaces or linefeeds when replacing the ELTF_* variable
    5. No trailing spaces or linefeeds when replacing the ELTF_* variable
    6. Note: Keep existing spaces before/efter ELTF_* in a few cases.

DocBook Format: <programlisting> - rules: ELTF*PL* variables
   Several strict rules apply for the multiline string in programlisting
   in addition to the general XML rules above:
    7. Max line length < 80 char
    8. Use backslash (\) to break longer lines
    9. Use spaces (e.g. 4) to indent continuation lines in programlistings
   10. No trailing spaces on any line
   11. No spaces or linefeed immediately after leading <programlisting>
   12. No spaces or linefeed before trailing </programlisting>

DocBook Format: <ulink> - rules: ELTF_*URL* variables
   13. ELTF_*URL and corresponding ELTF_*TXTURL shall be identical strings
   14. Only if the URL is extremely long, the TXTURL can be a separate string

Each target has one section with target parameters:
       <section id="eltf-target-table-ELTF_T_MANIFEST_DIR">
        <title>MACHINE ELTF_T_MANIFEST_DIR - Information</title>
          ..... with many ELTF_ variables ....
       </section>

   15. If there is only one target. ELTF just replaces ELTF parameters

   16. It there are multiple targets. ELTF copies the section and appends the
       section the required number of times.
       Each section ID will become unique: eltf-target-table-ELTF_T_MANIFEST_DIR
       Each section title will become unique

Tables with target parameters in each target section:
   17. It is possible for ELTF to append more rows with one parameter each
       to these tables, because the entire tables are included in the book

Special - NOT YET READY DEFINED how to handle the optionally included
   Eclipse and its version, but this is a first suggestion:
   18. Just now ELTF can define ELFT_ECLIPSE_VERSION as a full string
       with both version number and name,
   19. MANUALLY if Eclipse is NOT included in the release,
       the release manager should manually set condition="hidden" on
       the entire section in the book XML about Eclipse



BELOW WE TRY TO EXPLAIN EACH ELTF_* variable, but always check with make eltf
if there are more new variables, missing in this description file.

_____________________________________________________________________________
ELTF_PL_HOST_PREREQ       Multiline list of host prerequisites, e.g. commands
                          like sudo apt-get install xxxx or similar.
                          First line = comment with the complete host name!
                          It is possible to include multiple hosts by just
                          adding an empty line, comment with host name, etc.
                          xi:include eltf-prereq-apt-get-commands-host/1
                          This is a <programlisting>...</programlisting>
                          Example:
# Host Ubuntu 14.04.5 LTS 64bit
sudo apt-get update
sudo apt-get install sed wget subversion git-core coreutils unzip texi2html \
   texinfo libsdl1.2-dev docbook-utils fop gawk python-pysqlite2 diffstat \
   make gcc build-essential xsltproc g++ desktop-file-utils chrpath  \
   libgl1-mesa-dev libglu1-mesa-dev autoconf automake groff libtool xterm \
   libxml-parser-perl

_____________________________________________________________________________
ELTF_PL_GET_REPO          Multiline commands to download the repo tool
                          xi:include eltf-getting-repo-install-command/1
                          This is a <programlisting>...</programlisting>
                          Example:
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH

_____________________________________________________________________________
ELTF_EL_REL_VER           General parameter string: The version of this Enea
                          Linux release. Major version and optional .Minor
                          Typically created from MAJOR and MINOR in enea.conf
                          MINOR in enea.conf is empty or contains a dot+minor
                          xi_include EneaLinux_REL_VER/1
                          This is a <phrase>X.x</phrase> used in many places.
                          Examples:
6
  or
6.1

_____________________________________________________________________________
ELTF_YOCTO_VER            General parameter string: Yocto version, created
                          from DISTRO in poky.ent
                          xi:include Yocto_VER/1
                          This is a <phrase>X.x</phrase> used in many places.
                          Example:
2.1

_____________________________________________________________________________
ELTF_YOCTO_NAME           General parameter string: Yocto name (branch), created
                          from DISTRO_NAME_NO_CAP in poky.ent
                          xi:include Yocto_NAME/1
                          This is a <phrase>X.x</phrase> used in many places.
                          Example:
krogoth

_____________________________________________________________________________
ELTF_YOCTO_PROJ_DOWNLOAD_TXTURL  General parameters. These two are IDENTICAL
ELTF_YOCTO_PROJ_DOWNLOAD_URL     strings with correct Yocto version string
                                 at the end, typically without "dot".
                          xi:include ULINK_YOCTO_PROJECT_DOWNLOAD/1
                          This is an <ulink url="...">...</ulink>
                          Example:
http://www.yoctoproject.org/downloads/core/krogoth/21

_____________________________________________________________________________
ELTF_EL_DOWNLOAD_TXTURL   General parameters. These two are IDENTICAL strings
ELTF_EL_DOWNLOAD_URL      and shall be the http:/..... address where
                          Enea Linux can be downloaded
                          Often containing same version as in ELTF_EL_REL_VER
                          xi:include ULINK_ENEA_LINUX_URL/1
                          This is an <ulink url="...">...</ulink>
                          Example:
http://linux.enea.com/6

_____________________________________________________________________________
ELTF_PL_CLONE_W_REPO      Multiline commands to run repo to clone everything.
                          Use the variable $MACHINE/default.xml (the text in
                          the book will list the avaiable values of MACHINE,
                          taken from the manifest repository)
                          xi:include eltf-repo-cloning-enea-linux/1
                          This is a <programlisting>...</programlisting>
                          Example:
mkdir enea-linux
cd enea-linux
repo init -u git://git.enea.com/linux/el_manifests-standard.git \
    -b refs/tags/EL6 -m $MACHINE/default.xml
repo sync

_____________________________________________________________________________
ELTF_ECLIPSE_VERSION      Optional general parameter string.
                          NOT YET READY DEFINED
                          Just now a release manage must manually set
                          condition="hidden" on the Eclipse section,
                          if Eclipse is not included in the release.
                          ELTF just replaces ELTF_ECLIPSE_VERSION with a full
                          string with "X.Y (name)"
                          It includes the ID and can only be ONCE in the book.
                          xi:include eltf-eclipse-version-row
                          Example.
4.5 (Mars)


_____________________________________________________________________________
ELTF_T_*                  All these are in each target (MACHINE) and ELTF
                          must separately replace them with strings for
                          each target
                          NOTE: All (except the MANIFEST_DIR) are in rows
                                in a table and ELTF can select to append
                                more parameters by adding more rows

_____________________________________________________________________________
ELTF_T_MANIFEST_DIR       This happens to be in two places. Must be exactly
ELTF_T_MANIFEST_DIR       the directory name in the manifest, e.g. same
                          as the MACHINE names in $MACHINE/default.xml.
                          In book: a) Part of section ID
                                   b) Part of section title
                          Examples:
p2041rgb
  or
ls1021aiot
  or
qemuarm

_____________________________________________________________________________
ELTF_T_NAME               Target specific: "Target Official Name"
                          NOT same as the target directory name in most cases.
                          In book: An <entry> element in a row
                          Examples:
P2041RGB
  or
LS1021a-IoT
  or
qemuarm

_____________________________________________________________________________
ELTF_T_ARC_DESC           Target specific: "Architecture and Description"
                          It can be a short identification string or
                          it can be a longer descriptive sentence.
                          In book: An <entry> element in a row
                          Examples:
Power, e500mc
  or
ARM Cortex-A7

_____________________________________________________________________________
ELTF_T_DS_TXTURL          Target specific: "Link to target datasheet. These
ELTF_T_DS_URL             two usually are IDENTICAL strings with correct
                          hyperlink to the target's official datasheet.
                          In book: an <ulink url="...">...</ulink>
                          Only if the link is VERY LONG, the text part shall
                          instead be a descriptive string (see 2:nd example).
                          NOTE: Also here no spaces or line-feeds!
                          Examples:
url="http://wiki.qemu.org">http://wiki.qemu.org
or
url="http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/qoriq-arm-processors/qoriq-ls1021a-iot-gateway-reference-design:LS1021A-IoT">link to NXP's datasheet

_____________________________________________________________________________
ELTF_T_POKY_VER           Target specific: "Poky version" created either
                          from POKYVERSION in poky.ent
                          or using a hashvalue with a leading string, in
                          which case it may be different per target.
                          In book: An <entry> in a row
                          Examples:
15.0.0
or
Git commit id: 75ca53211488a3e268037a44ee2a7ac5c7181bd2

_____________________________________________________________________________
ELTF_T_GCC_VER            Target specific: "GCC Version". Should be in poky
                          but not easy to find among various parameters.
                          ELTF would extract it from build logs building SDK
                          and it is possibly different per target.
                          In book: An <entry> in a row
                          Example:
5.3

_____________________________________________________________________________
ELTF_T_KERN_VER           Target specific: "Linux Kernel Version". Often
                          different per target.
                          In book: An <entry> in a row
                          Example:
3.12

_____________________________________________________________________________
ELTF_T_DRIVERS            Target specific: "Supported Drivers". This is a
                          comma-separated list of driver names.
                          ELTF should create the list in same order for each
                          target, e.g. alphabetic migth be OK.
                          In book: An <entry> in a row
                          Example:
Ethernet, I2C, SPI, PCI, USB, SD/SDHC/SDXC


_____________________________________________________________________________
ELTF_T_EL_RPM_TXTURL      Target specific: "Enea rpm folder for downloading
ELTF_T_EL_RPM_URL         RPM packages for this target". These two are
                          INDENTICAL strings with hyperlink to the web site
                          at Enea where the customer can download RPMs
                          Note: Often the ELFT_EL_REL_VER value and
                                the ELTF_T_MANIFEST_DIR are used in the link.
                          In book: an <ulink url="...">...</ulink>
                          Example:
url="https://linux.enea.com/6/ls1021aiot/rpm">https://linux.enea.com/6/ls1021aiot/rpm

_____________________________________________________________________________