=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 The XML configuration file =item B 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) 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 info: parse the configuration file (usefull to check the XML syntax) iso: create the final ISO from the builddir =item B 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 Mandriva =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 urpmi to calculate deps/conflicts/suggests - create an md5 file - create a product.id file - create a VERSION file - support of no-suggests option per media - support extra external media with hdlists =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 =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 compare to keep the latest one. Usefull for kernel and dkms release. =cut =head1 ISSUE - if you want to build ISO for x86_64 you must used an x86_64 system (due to urpmi) - can't build dual arch ISO - if hdlist/synthesis are corrupted in your repositery, you can't build ISO =cut =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: name of the product identification of the product XtreemOS 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 2009.0 Arch parameter is mandatory, it will be also used to get the path of the MDV repositery i586 path to the repositery /mnt/BIG/dis so the full path of the Mandriva repositery will be in our example workdir is where you want to store the result of the build /home/xtreemos/build_bcd basename of log files tocopy_plop all Isolinux information isolinux if you want to point to a custom isolinux directory /home/xtreemos/export_i386/isolinux if you want to add a entry in your isolinux.cfg /usr/lib/syslinux/hdt.c32 hdt.c32 modules=modules.pci some section are mandatory to keep the array structure of the xml file if you want to copy extra files to the isolinux buildir /lib/modules/2.6.31-server-2mnb/modules.pcimap /usr/share/pci.ids all information relatives to the installer (stage2) install if you want to use a custom installer /home/xtreemos/export_i386 path to custom advertising advertising /home/xtreemos/Build/pieces/advertising full path and name of your patch for stage2 to copy in the buildir/install directory /home/xtreemos/Build/pieces/patch-oem.pl 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 Mandriva-Free /usr/share/bootsplash /usr/share/gfxboot media section will defined wich media you want to use and you want to create on the DVD lists/input_main lists/languages lists/xos_list 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 /home/xtreemos/repo_xos/2009.0/i586/media/xtreemos/release Packages unwated on the DVD, they will be removed at the end of the installation process lists/exclude_main switch nosuggest options to yes if you don't want to use RPMS's suggests no I will use the media name "mediadir" and put it in the directory media/'destmedia' on the DVD main main where to find the pubkey in the repositery (the path will be media/'mediadir'/'pubkey') release/media_info/pubkey if you want to use backports, testing or updates sub-media, set option to yes, note: release media should be mandatory yes yes no no all media_info informations are in this section version will be used to generate a good media.cfg files (we don't use hdlits.cz since 2009.1 release) 2009.0 use 'fullpath' parameter to use custom files /home/xtreemos/Build/pieces media/media_info rpmsrate compssUsers.pl file-deps if you want to add an urpmi options to install packages -a if you want to do some extra filter to keep latest release of a packages on the DVD lists/extra-filter media.cfg options yes yes no ISO section tag name and some extra parameters rc1 0 1 Download Devel basic no 700 media/media_info/media.cfg yes yes info used by the genisoimage tool
XtreemOS Linux XOS-2.0-i586 XtreemOS Linux - 2.0 - i586 DVD XtreemOS XtreemOS-Linux XtreemOS Linux - 2.0 XtreemOS Linux
genisoimage paramater -f -r -J -hide-rr-moved -nobak -cache-inodes -no-emul-boot -boot-load-size 4 isolinux/boot.cat build iso
=cut