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
|
=head1 conf.xml
Example of a commented conf.xml file. Keep in mind that most of those
parameters are correct, and you don't need to change whole of them.
Examples are available in this package, so please use one of them to
base your configuration.
You should only change those one:
{nameid}
{version}
{arch}
{repo}{path}
{media}{list}*
{iso}{header}*
Fully commented file:
---------------------
first it's an xml file:
<?xml version='1.0'?>
name of the product
<productname desc="The Linux product">
identification of the product
<nameid>XtreemOS</nameid>
you should really care about this parameter, how many urpmq could you launch at the same time ?
10 is an high value, use it only on multi-core computer.
<nb_fork>10</nb_fork>
If you want to resign you packages, define in wich file you store the password to sign RPMS, and the
gnupg file used to sign them. BCD can only sign for the moment all packages with the same key. It will
be able to sign later a media with a specific public key.
<signature>/home/xtreemos/.signature.gpg</signature>
<rpmrc>/home/xtreemos/.rpmrc</rpmrc>
based_on parameter define on wich version of Mandriva this product will be built.
This parameter define if we need synthesis or hdlists (since 2009.1 only synthesis are needed)
It will be use to get the path of the Mandriva repositery
<based_on>2009.0</based_on>
urpmqlogs paramater define the directory to store previous urpmq queries, if not defined the system will use the /var/lib/bcd dir.
<urpmqlogs>/home/plop/urpmqlogs</urpmqlogs>
Arch parameter is mandatory, it will be also used to get the path of the MDV repositery
<arch>i586</arch>
path to the repositery
<repo desc="Where is the repositery of the distribution">
<path>/mnt/BIG/dis</path>
</repo>
so the full path of the Mandriva repositery will be in our example
</mnt/BIG/dis/2009.0/i586>
workdir is where you want to store the result of the build
<workdir desc="Where is my working dir">
<path>/home/xtreemos/build_bcd</path>
</workdir>
basename of log files
<tocopy_file>tocopy_plop</tocopy_file>
define media used and excluded in the initial chroot
<chroot_media>Main,Main Updates</chroot_media>
<chroot_media_exclude>Main Backports,Main Testing</chroot_media_exclude>
all Isolinux information
<isolinux desc="isolinux info">
<defaultpath>isolinux</defaultpath>
if you want to use proprietary firmware in stage1 (from the non-free/initrd-firmware package) set the option to yes
<firmware>yes</firmware>
if you want to point to a custom isolinux directory
<fullpath>/home/xtreemos/export_i386/isolinux</fullpath>
if you want to add a entry in your isolinux.cfg
<!-- add hdt entry in syslinux.cfg -->
<entry name="hdt" desc="Main media">
<bin>/usr/lib/syslinux/hdt.c32</bin>
<label>hdt</label>
<kernel>hdt.c32</kernel>
<append>modules=modules.pci</append>
</entry>
some section are mandatory to keep the array structure of the xml file
<!-- keep this entry to create an array ref -->
<entry></entry>
if you want to copy extra files to the isolinux buildir
<tocopy name="pcimap">
<file>/lib/modules/2.6.31-server-2mnb/modules.pcimap</file>
</tocopy>
<tocopy name="ids">
<file>/usr/share/pci.ids</file>
</tocopy>
<tocopy></tocopy>
</isolinux>
all information relatives to the installer (stage2)
<installer desc="path to the Mandriva installer (stage1/stage2)">
<defaultpath>install</defaultpath>
if you want to use a custom installer
<fullpath>/home/xtreemos/export_i386</fullpath>
path to custom advertising
<advertising>
<defaultpath>advertising</defaultpath>
<fullpath>/home/xtreemos/Build/pieces/advertising</fullpath>
</advertising>
full path and name of your patch for stage2 to copy in the buildir/install directory
<patch>/home/xtreemos/Build/pieces/patch-oem.pl</patch>
</installer>
theme to use to patch all.rdz file
theme name will be used to install mandriva-release-THEMENAME and avoid
problem of mixing theme on a same product
<!-- theme must be available to path altx/all.rdz files -->
<theme name="mandriva-release-Free">
<bootsplash>Mandriva-Free</bootsplash>
<bootsplash_path>/usr/share/bootsplash</bootsplash_path>
<gfxboot_path>/usr/share/gfxboot</gfxboot_path>
</theme>
media section will defined wich media you want to use and you want to create on the DVD
<media desc="media to take into account to build the ISO">
<!-- name of the first media wich contains basesystem and kernels -->
<first_media>Main</first_media>
<update_prefix>Updates</update_prefix>
<!-- WARNING this first_media must be defined because this media is mandatory for all other media-->
<!-- Morever the first_media is always the Name use for an MDV repositery -->
<!-- use the supp_media option if you needed to use media option of urpmi, usefull for external media
wich need main and contrib to be installed, use the urpmi syntax of \-\-media (no space, media separated by coma)
<media_supp>Main,Main Updates,Contrib,Contrib Updates</media_supp>-->
<list name="Main" desc="Main_media">
drop option is usefull to remove the media before the rpmcheck (usefull for media main32)
<drop>yes</drop>
remove_noarch is used to remove all noarch.rpm from a media (usefull for media main32 on pwp64 and free64)
<remove_noarch>yes</remove_noarch>
This media contains SRPM, so we wants to calculate all buildrequires and put them in the ISO. All SRPMS will be stored in the <destmedia>
<srpm>yes</srpm>
input files
<!-- MANDATORY list of wanted packages on the iso -->
<input name="base">
<file>lists/input_main</file>
</input>
<input name="lang">
<file>lists/languages</file>
</input>
<!-- to create an array you must keep this even if it is empty -->
<input name="xos">
<file>lists/xos_list</file>
</input>
you can use an external media, but this media must have a media_info directory
you must use external media if this media is not available in the repositery.
IE: restricted32 packages on a PowerPack 64bits product
<!-- external media repositery with hdlists -->
<external name="xos">
<fullpath_mediadir>/home/xtreemos/repo_xos/2009.0/i586/media/xtreemos/release</fullpath_mediadir>
</external>
Packages unwated on the DVD, they will be removed at the end of the installation process
<!-- MANDATORY list of unwanted packages on the iso -->
<exclude name="exclude">
<file>lists/exclude_main</file>
</exclude>
<!-- to create an array you must keep this even if it is empty -->
<exclude>
</exclude>
switch nosuggest options to yes if you don't want to use RPMS's suggests
<!-- nosuggests options should be yes or no -->
<nosuggests>no</nosuggests>
I will use the media name "mediadir" and put it in the directory media/'destmedia' on the DVD
<!-- will be taken in {repo}{version}{arch}/media -->
<mediadir>main</mediadir>
<destmedia>main</destmedia>
where to find the pubkey in the repositery (the path will be media/'mediadir'/'pubkey')
If you want to specify a specific file to use as pubkey, leave <pubkey> empty.
<pubkey>release/media_info/pubkey</pubkey>
<file_pubkey>/path_to_file/the_pubkey</file_pubkey>
if you want to use backports, testing or updates sub-media, set option to yes, note: release media should be mandatory
<release>yes</release>
<updates>yes</updates>
<backport>no</backport>
<testing>no</testing>
</list>
<!-- keep this entry to create an array ref -->
<list></list>
</media>
all media_info informations are in this section
<mediainfo desc="All files relatives to media_info dir">
version will be used to generate a good media.cfg files (we don't use hdlits.cz since 2009.1 release)
<version>2009.0</version>
use 'fullpath' parameter to use custom files
<!-- set fullpath if you want to use an files in a non MDV repositery -->
<fullpath>/home/xtreemos/Build/pieces</fullpath>
<mediainfo_dir>media/media_info</mediainfo_dir>
<rpmsrate>rpmsrate</rpmsrate>
<compssusers>compssUsers.pl</compssusers>
<filedeps>file-deps</filedeps>
if you want to add an urpmi options to install packages
<urpmi_option>-a</urpmi_option>
If you want to do some extra filter to keep latest release of a packages on the DVD.
All packages listed in no-filter are NOT filtered: so if you have more than one
version of a package in the builddir, it will bypass the rpm comparaison.
For all other packages available in the builddir, BCD
will keep the latest one (rpm version comparaison)
<filter>lists/no-filter</filter>
media.cfg options
<askmedia desc="add for other media ?">
<todo>yes</todo>
</askmedia>
<suppl desc="add an external media ?">
<todo>yes</todo>
</suppl>
<xmlinfo>
<todo>no</todo>
</xmlinfo>
</mediainfo>
ISO section
<iso>
tag name and some extra parameters
<tag>rc1</tag>
<minor>0</minor>
<subversion>1</subversion>
<product>Download</product>
<branch>Devel</branch>
<type>basic</type>
<!-- dual arch not yet supported -->
<dualarch>no</dualarch>
<!-- SIZE is not YET USED !!! -->
<size>700</size>
<!-- media.cfg will be stored on genisoimage->{builddir}/{nameid}/{arch} -->
<mediacfg>media/media_info/media.cfg</mediacfg>
<hdlist>no</hdlist>
<synthesis>yes</synthesis>
isohybrid option
<isohybrid>
<options>--fatfirst</options>
</isohybrid>
info used by the genisoimage tool
<header desc="Iso header info">
<systemid>XtreemOS Linux</systemid>
<volumeid>XOS-2.0-i586</volumeid>
<volumesetid>XtreemOS Linux - 2.0 - i586 DVD </volumesetid>
<publisherid>XtreemOS</publisherid>
<datapreparer>XtreemOS-Linux</datapreparer>
<applicationid>XtreemOS Linux - 2.0</applicationid>
<copyrightid>XtreemOS Linux</copyrightid>
</header>
genisoimage paramater
<genisoimage desc="iso generation tool">
<options>-f -r -J -hide-rr-moved -nobak -cache-inodes -no-emul-boot -boot-load-size 4 </options>
<bootcat>isolinux/boot.cat</bootcat>
<!-- builddir and destdir will always use the workdir -->
<builddir>build</builddir>
<isodir>iso</isodir>
</genisoimage>
</iso>
</productname>
=cut
|