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
|
=head1 NAME
bcd tools - A simple program to generate Mandriva's ISO
=head1 SYNOPSIS
bcd configuration.xml [options]
=cut
=head1 OPTIONS
=over 8
=item B<First arg must be:>
The XML configuration file
=item B<Second arg must be:>
stagex: update the stage1/stage2 in builddir
isolinux: update the isolinux in builddir
clean: clean the builddir and isodir
media: create the list of wanted packages, create all media in builddir,
link/copy packages in builddir/media, create the media.cfg,
and generate the hdtlist/synthesis
gendistrib: create the hdlists/synthesis in builddir (depends on the based_on tag)
rpmcheck: check the hdlist in the buildir
list: list all media and list of input/exclude (from the xml conf file)
mediarepo: list all medias availables in the repositery
checkrepo: rpmcheck main hdlists in the repositery
all: run all stage in order to get an ISO
md5: create MD5 sum of the ISO
resign: resign all rpms with a password and a gpg file
clean: clean previous urpmq log file
doble: check doble rpm in the media build_dir
kernel: compare kernel and keep the latest one
nodoble: don't check doble rpm in the media build_dir
html: generate a log report web page
info: parse the configuration file (usefull to check the XML syntax)
iso: create the final ISO from the builddir
verbose: be more verbose
=item B<extra arg:>
noiso: don't build the iso (md5, isohybrid) in case of 'all' process
copy: copy rpm instead of link them from the repositery
=back
=head1 EXAMPLES
the folowing example will do all step to create an ISO:
bcd mdv-20091.xml all
the following example will create the build dir without creating ISO:
bcd.pl mdv-20091.xml all noiso
same as above but copy packages instead of link them from the repositery:
bcd.pl mdv-20091.xml all noiso copy
the following will update the isolinux in the build directory:
bcd.pl mdv-20091.xml isolinux
to check the main hdlist in the repositery with rpmcheck
bcd.pl mdv-20091.xml checkrepo
clean the builddir and isodir
bcd.pl mdv-20091.xml clean
=cut
=head1 COPYRIGHT
Copyright (C) 2009-2011 Mandriva <aginies_@_mandriva.com>
=cut
=head1 DESCRIPTION
BCD is used to create Mandriva ISO.
features are:
- configuration file is in XML format
- use of genhdlist2 with file-deps
- support the add of an isolinux entry
- change the theme on all.rdz files
- just need an input and an exclude file for package list
- write media.cfg
- support of custom rpmsrate of compssusers.pl
- support of custom advertising
- support of custom stage2
- extra filter to remove doble packages (keep latest version)
- all sub-media supported (updates, testing...)
- create the iso HEADER
- use of urpmq to calculate deps/conflicts/suggests
- support of no-suggests option per media
- support extra external media with hdlists
- create an md5 file
- create a product.id file
- create a VERSION file
- speed up the process using previous urpmq --requires-recursive query
=cut
=head1 USER conf
Your user must have some sudo root right to be able to use chroot, urpmi,
rm, mount umount tools. IE: for user plop in /etc/sudoers file
plop ALL=(root) NOPASSWD:/bin/mount, /bin/umount, \
/usr/sbin/chroot, \
/usr/sbin/urpmi, \
/usr/sbin/urpmi.addmedia, \
/usr/sbin/urpmi.removemedia, \
/bin/rm
Moreover to speed up the process, each urpmq --requires-recursive queries
will be stored in /var/lib/bcd/ directory, so you should add an access to
this directory for the user you use.
chown plop.users /var/lib/bcd/
=cut
=head1 LISTS
input list:
list of rpm needed on the CD. Those list should contains the name
or the provides of a package. You may also use a CAT_XXX from the
rpmsrate file, with the wheigth parameter.
ie: of lists/input_main
INSTALL 1
CAT_X 1
CAT_GNOME 1
CAT_AUDIO 1
aumix
task-lxde
exclude list:
list of unwanted packages on the CD. Be carreful to do not exclude mandatory packages
or you CD will be unusable. Rpmcheck will report any bug in hdlists at the end of
the 'media' step process. Packages listed in exclude list will be removed from the
DVD at the end of the build process.
no-filter:
list of RPM you want to do not compare and the keep the latest one.
Usefull if you want to keep more than one version of a package.
=cut
=head1 ISSUE
- if you want to build ISO for x86_64 you must used an x86_64 system (due to urpmi)
- if hdlist/synthesis are corrupted in your repositery, you can't build ISO
=cut
|