aboutsummaryrefslogtreecommitdiffstats
path: root/doc/bcd.pod
diff options
context:
space:
mode:
Diffstat (limited to 'doc/bcd.pod')
-rw-r--r--doc/bcd.pod158
1 files changed, 158 insertions, 0 deletions
diff --git a/doc/bcd.pod b/doc/bcd.pod
new file mode 100644
index 0000000..237d929
--- /dev/null
+++ b/doc/bcd.pod
@@ -0,0 +1,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-2010 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.
+
+extra-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