diff options
author | Antoine Ginies <aginies@mandriva.com> | 2010-10-06 07:58:18 +0000 |
---|---|---|
committer | Antoine Ginies <aginies@mandriva.com> | 2010-10-06 07:58:18 +0000 |
commit | b364785ea90e60806aaaec56d15bcc70a74daf6d (patch) | |
tree | da257e1277bd0218929f12fde2e318657067eb16 /doc | |
parent | 46324a3fd9b86040b16dc3070b3a22438f7a616d (diff) | |
download | bcd-b364785ea90e60806aaaec56d15bcc70a74daf6d.tar bcd-b364785ea90e60806aaaec56d15bcc70a74daf6d.tar.gz bcd-b364785ea90e60806aaaec56d15bcc70a74daf6d.tar.bz2 bcd-b364785ea90e60806aaaec56d15bcc70a74daf6d.tar.xz bcd-b364785ea90e60806aaaec56d15bcc70a74daf6d.zip |
end of the move
Diffstat (limited to 'doc')
-rw-r--r-- | doc/bcd.pod | 158 | ||||
-rw-r--r-- | doc/conf.xml.pod | 268 | ||||
-rw-r--r-- | doc/conf.xml.tex | 365 | ||||
-rw-r--r-- | doc/howto_bcd.pdf | bin | 0 -> 133558 bytes | |||
-rw-r--r-- | doc/howto_bcd.tex | 594 | ||||
-rw-r--r-- | doc/mandriva-logo.jpg | bin | 0 -> 38289 bytes |
6 files changed, 1385 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 diff --git a/doc/conf.xml.pod b/doc/conf.xml.pod new file mode 100644 index 0000000..063f1e3 --- /dev/null +++ b/doc/conf.xml.pod @@ -0,0 +1,268 @@ +=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> + +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> + +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"> + <!-- WARNING this media must be named "Main" because main media is mandatory for all other media--> + <!-- Morever the "Main" media is always the Name use for an MDV repositery --> + <!-- futur feature will provide a way to specify another name for the basic repo of an MDV distribution --> + <!-- 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> + +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 extra-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/extra-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>yes</hdlist> + <synthesis>yes</synthesis> + +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 diff --git a/doc/conf.xml.tex b/doc/conf.xml.tex new file mode 100644 index 0000000..f512179 --- /dev/null +++ b/doc/conf.xml.tex @@ -0,0 +1,365 @@ +\section{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: +\begin{itemize} + \item \{nameid\} + \item \{version\} + \item \{arch\} + \item \{repo\}\{path\} + \item \{media\}\{list\}* + \item \{iso\}\{header\}* +\end{itemize} + +first it's an xml file +\begin{verbatim} +<?xml version='1.0'?> +\end{verbatim} + +name of the product +\begin{verbatim} +<productname desc="The Linux product"> +\end{verbatim} + +identification of the product, used for the name of the final ISO +\begin{verbatim} +<nameid>XtreemOS</nameid> +\end{verbatim} + +you should really care about this parameter, how many \textbf{urpmq} could you launch at the same time ? +10 is an high value, use it only on multi-core computer. + \begin{verbatim} +<nb_fork>10</nb_fork> +\end{verbatim} + +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. +\begin{verbatim} +<signature>/home/xtreemos/.signature.gpg</signature> +<rpmrc>/home/xtreemos/.rpmrc</rpmrc> +\end{verbatim} + +based\_on parameter defines 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. +\begin{verbatim} +<based_on>2009.0</based_on> +\end{verbatim} + +Arch parameter is mandatory, it will be also used to get the path of the Mandriva repositery +\begin{verbatim} + <arch>i586</arch> +\end{verbatim} + +path to the repositery (without version and arch) +\begin{verbatim} + <repo desc="Where is the repositery of the distribution"> + <path>/mnt/BIG/dis</path> + </repo> +\end{verbatim} + +so the full path of the Mandriva repositery will be in our example +\begin{verbatim} + </mnt/BIG/dis/2009.0/i586> +\end{verbatim} + +workdir is where you want to store the result of the build. Two directories +will be built, \textbf{build} to store the base of the DVD, \textbf{iso} to store the final ISO. +\begin{verbatim} + <workdir desc="Where is my working dir"> + <path>/home/xtreemos/build_bcd</path> + </workdir> +\end{verbatim} + +basename of log files, if you want you can change it, but this option +should not exist, i should remove it... +\begin{verbatim} + <tocopy_file>tocopy_plop</tocopy_file> +\end{verbatim} + +all Isolinux information +\begin{verbatim} + <isolinux desc="isolinux info"> + <defaultpath>isolinux</defaultpath> +\end{verbatim} + +if you want to point to a custom \textbf{isolinux} directory +\begin{verbatim} + <fullpath>/home/xtreemos/export_i386/isolinux</fullpath> +\end{verbatim} + +if you want to add a entry in your \textbf{isolinux.cfg}. In this example we add an HDT entry +(hardware detection tool) +\begin{verbatim} + <!-- 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> +\end{verbatim} + +some section are mandatory to keep the array structure of the xml file +\begin{verbatim} + <!-- keep this entry to create an array ref --> + <entry></entry> +\end{verbatim} + +if you want to copy extra files to the isolinux buildir +\begin{verbatim} + <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> +\end{verbatim} + +all information relatives to the installer (stage2) +\begin{verbatim} + <installer desc="path to the Mandriva installer (stage1/stage2)"> + <defaultpath>install</defaultpath> +\end{verbatim} + +if you want to use a custom installer, really usefull if you custom it +\begin{verbatim} + <fullpath>/home/xtreemos/export_i386</fullpath> +\end{verbatim} + +path to custom advertising (images used during slideshow) +\begin{verbatim} + <advertising> + <defaultpath>advertising</defaultpath> + <fullpath>/home/xtreemos/Build/pieces/advertising</fullpath> + </advertising> +\end{verbatim} + +full path and name of your patch for stage2 to copy in the \textbf{buildir/install} directory. This +is an option, leave it blank if you don't use a patch +\begin{verbatim} + <patch>/home/xtreemos/Build/pieces/patch-oem.pl</patch> + </installer> +\end{verbatim} + +Theme to use to patch \textbf{all.rdz} file. +Theme name will be used to install mandriva-release-THEMENAME and avoid +problem of mixing theme on a same product +\begin{verbatim} + <!-- theme must be available to path altx/all.rdz files --> + <theme name="mandriva-release-Free"> + <theme>Mandriva-Free</theme> + <bootsplash>Mandriva-Free</bootsplash> + <bootsplash_path>/usr/share/bootsplash</bootsplash_path> + <gfxboot_path>/usr/share/gfxboot</gfxboot_path> + </theme> +\end{verbatim} + +media section will defined wich media you want to use and you want to create on the DVD. +Keep in mind that it works like \textbf{urpmi} and \textbf{urpmq}, if you want to install a package, you need +all his dependencies, so for some specific package like restricted one on a 64bits product, +you need to use the extra parameter \begin{verbatim}<media_supp>Main,contrib,main32</media_supp>\end{verbatim} +to be sure that you will provide all needed deps. For each list bcd will add a media, and will add +\textbf{updates/backport/testing} if the tag is set to yes. Be sure you use a uniq media name, because \textbf{urpmi} +will not add a new media with a name wich already exist. +\begin{verbatim} + <media desc="media to take into account to build the ISO"> + <!-- WARNING this media must be named "Main" because main media is mandatory for all other media--> + <!-- Morever the "Main" media is always the Name use for an MDV repositery --> + <!-- futur feature will provide a way to specify another name for the basic repo of an MDV distribution --> + <!-- 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) +\end{verbatim} + +drop option is usefull to remove the media before the rpmcheck (usefull for media main32) +\begin{verbatim} + <drop>yes</drop> +\end{verbatim} + +remove\_noarch is used to remove all noarch packages from a media (usefull for media main32 on pwp64 and free64) +\begin{verbatim} + <remove_noarch>yes</remove_noarch> +\end{verbatim} + +input list for a specific media +\begin{verbatim} + <media_supp>Main,Main Updates,Contrib,Contrib Updates</media_supp>--> + <list name="Main" desc="Main_media"> + <!-- 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> +\end{verbatim} + +you can use an external media, but this media must have a \textbf{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. The \textbf{fullpath\_mediadir} option +must be the full path to RPM (no subdirectory release/updates/backport). +\begin{verbatim} + <!-- external media repositery with hdlists --> + <external name="xos"> + <fullpath_mediadir>/home/xtreemos/repo_xos/2009.0/i586/media/xtreemos/release</fullpath_mediadir> + </external> +\end{verbatim} + +Packages unwanted on the DVD are stored in exclude list. +They will be removed at the end of the installation process. +Just add the list of those packages in an exclude list. +\begin{verbatim} + <!-- 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> +\end{verbatim} + +Switch nosuggest options to yes if you don't want to use RPMS's suggests +\begin{verbatim} + <!-- nosuggests options should be yes or no --> + <nosuggests>no</nosuggests> +\end{verbatim} + +I will use the media name 'mediadir' and put it in the directory media/'destmedia' on the DVD. +\begin{verbatim} + <!-- will be taken in {repo}{version}{arch}/media --> + <mediadir>main</mediadir> + <destmedia>main</destmedia> +\end{verbatim} + +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. +\begin{verbatim} + <pubkey>release/media_info/pubkey</pubkey> + <file_pubkey>/path_to_file/the_pubkey</file_pubkey> +\end{verbatim} + +if you want to use backports, testing or updates sub-media, set option to yes. +Note: release media should be mandatory +\begin{verbatim} + <release>yes</release> + <updates>yes</updates> + <backport>no</backport> + <testing>no</testing> + </list> + <!-- keep this entry to create an array ref --> + <list></list> + </media> +\end{verbatim} + +all \textbf{media\_info} informations are in this section +\begin{verbatim} + <mediainfo desc="All files relatives to media_info dir"> +\end{verbatim} + +version will be used to generate a good media.cfg files (we don't use hdlits.cz since 2009.1 release) +\begin{verbatim} + <version>2009.0</version> +\end{verbatim} + +use 'fullpath' parameter to use custom rpmsrate/compssusers files +\begin{verbatim} + <!-- 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> +\end{verbatim} + +If you want to add an \textbf{urpmi} options to install packages. Be carreful +this can add or remove a lot of packages, and syntax in your list file can +lead to error. ie: firefox- in a list file without the parameter \textit{-a} will +lead to an \textbf{urpmi} error, because there is a lot of firefox packages wich +began with the strings firefox- +\begin{verbatim} + <urpmi_option>-a</urpmi_option> +\end{verbatim} + +If you want to do some extra filter to keep latest release of a packages on the DVD. +All packages listed in extra-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) +\begin{verbatim} + <filter>lists/extra-filter</filter> +\end{verbatim} + +media.cfg options, do a man gendistrib for more info +\begin{verbatim} + <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> +\end{verbatim} + +ISO section +\begin{verbatim} + <iso> +\end{verbatim} + +tag name and some extra parameters +\begin{verbatim} + <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>yes</hdlist> + <synthesis>yes</synthesis> +\end{verbatim} + +info used by the genisoimage tool +\begin{verbatim} + <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> +\end{verbatim} + +genisoimage paramaters +\begin{verbatim} + <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> +\end{verbatim} diff --git a/doc/howto_bcd.pdf b/doc/howto_bcd.pdf Binary files differnew file mode 100644 index 0000000..f21a855 --- /dev/null +++ b/doc/howto_bcd.pdf diff --git a/doc/howto_bcd.tex b/doc/howto_bcd.tex new file mode 100644 index 0000000..5cff1dc --- /dev/null +++ b/doc/howto_bcd.tex @@ -0,0 +1,594 @@ +\documentclass[oneside,a4paper,10pt]{article} +\usepackage{times} +\usepackage{graphicx} +\usepackage[T1]{fontenc} +\usepackage[english]{babel} +\usepackage{fullpage} + +\begin{document} + + +\title{HOW TO use BCD} +\author{Antoine Ginies} +\begin{center} + \includegraphics{./mandriva-logo.jpg} + % mandriva-logo.jpg: 950x239 pixel, 72dpi, 33.51x8.43 cm, bb=0 0 950 239 +\end{center} +\maketitle + +\tableofcontents + +\section{Summary} + +BCD try to be a simple tool to build ISO using \textbf{urpmi} to create a mini +chroot of the future system, and \textbf{urpmq} command to calculate dependencies +of packages on the future DVD/CD. + +\section{The environment} + +\begin{flushleft} +BCD is available in Mandriva subversion repository: +http://svn.mandriva.com/svn/soft/build\_system/bcd +\end{flushleft} + +\begin{flushleft} +Some release of BCD has been packaged, but you should use the svn version, because this tool is under development, and really unstable.... +All previous XML configuration's file are compatibles with previous version of BCD. +\end{flushleft} + +\begin{flushleft} + Create a user on the system: + \begin{verbatim} +adduser plop + \end{verbatim} +\end{flushleft} + +\begin{flushleft} + You must create a directory to store all \textbf{urpmq} queries. All queries done by \textbf{urpmq} per package +are stored in this directory + product-name-release-arch. To speed up the process of creating ISO, +next time you run BCD, it will check for each package in input list if there is a file wich contains the result +of the urpmq queries, if BCD found one then it will use it, else it will redo an +\textbf{urpmq --requires-recursives --sources package\_name} and store the result in a new file. +So if you have update your repository, you should clean this directory. If you have update some packages, +you should remove file relative to those packages, to redo the \textbf{urpmq} queries otherwise BCD will use +the old result of the \textbf{urpmq} queries, and this can lead to error if deps are no more the same. Moreover +if you change the tag \textbf{<nosuggests></nosuggests>} to yes or no, you must erase all +your previous queries. + + \begin{verbatim} +mkdir -p /var/lib/bcd + \end{verbatim} +\end{flushleft} + +\begin{flushleft} + Give you user RW on this directory: + \begin{verbatim} +chown plop.users /var/lib/bcd + \end{verbatim} +\end{flushleft} + +\begin{flushleft} + Give some \textbf{sudoers} right to your user: + \begin{verbatim} +vi /etc/sudoers +plop ALL=(root) NOPASSWD:/bin/mount, /bin/umount, \ + /usr/sbin/chroot, \ + /usr/sbin/urpmi, \ + /usr/sbin/urpmi.addmedia, \ + /usr/sbin/urpmi.removemedia, \ + /bin/rm + \end{verbatim} +\end{flushleft} + +\begin{flushleft} + Checkout the source of BCD: + \begin{verbatim} +svn co http://svn.mandriva.com/svn/soft/build_system/bcd + \end{verbatim} +\end{flushleft} + +\begin{flushleft} + Prepare your distribution repository, you should have + an access to it, or a local copy. + \begin{verbatim} +[plop@isobel /mnt/BIG/dis/official] 04:04:28pm +$ ls +2008.0/ 2008.1/ 2009.0/ 2009.1/ 2010.0/ iso/ +$ ls -r 2010.0 +x86_64/ SRPMS/ i586/ + \end{verbatim} +\end{flushleft} + +\begin{flushleft} + You need to install some tools and deps to be able to use bcd: + \begin{verbatim} +urpmi perl-File-Copy-Recursive sudo urpmi perl-Parallel-ForkManager \ + cdrkit-genisoimage cdrkit-isotools syslinux \ + gfxboot mandriva-gfxboot-theme drakxtools-backend \ + mandriva-Free-theme rpmtools + \end{verbatim} +\end{flushleft} + +\begin{flushleft} + Now your system is ready to build ISO. +\end{flushleft} + +\newpage +\section{configuration file} + +You need to have an XML configuration file. You should use +an example provided in this package and adapt it to your configuration file. + +\input{conf.xml.tex} + +\newpage +\section{architecture of a Mandriva DVD} + +A Mandriva CD/DVD contains: +\begin{itemize} + \item \textbf{autorun.inf} file and \textbf{dosutils} directory used under Windows OS to popup a dialog box + \item \textbf{i586} or \textbf{x86\_64} directory wich contains the installer and packages and other stuff +\end{itemize} + +In the \textbf{i586} or the \textbf{x86\_64} directory: +\begin{itemize} + \item \textbf{doc}: full doc of howto install a Mandriva linux system + \item \textbf{install} + \begin{itemize} + \item \textbf{extra/advertising}: all images used in the slideshow while installing + \item \textbf{images}: file used to boot the system + \item \textbf{stage2}: mdkinst.sqfs is the stage2 of the installer, rescue.sqfs is the rescue system. Those + two files are compressed in squashfs. + \end{itemize} + \item \textbf{isolinux}: contains file used to boot the CD/DVD, and all gfxboot stuff + \item \textbf{media} + \item \textbf{main}: a media with packages + \item \textbf{contrib}: another one with packages + \item \textbf{media\_info} + \begin{itemize} + \item \textbf{compssUsers.pl}: describe category to display in "select package to install" step + \item \textbf{file-deps}: Use the given file to know which file dependencies are used by other media (man \textbf{genhdlist2}) + \item \textbf{hdlists}: old wayt to describe media on the DVD/CD + \item \textbf{media.cfg}: describe the repository of the DVD/CD + \item \textbf{rpmsrate}: a package is selected if its category is selected and depending of its priority (5=high, 1=very low) + \end{itemize} +\end{itemize} + +\newpage +\section{Step by step process} + +\begin{itemize} + \item clean all previous build + \item create all needed directory + \item isolinux step + \begin{itemize} + \item erase all previous isolinux directory in the build dir + \item copy the \textbf{isolinux} dir in the build dir + \item add entry if specidifed in the configuration file (like HDT) + \item switch theme for all images in \textbf{isolinux/altX} directory + \end{itemize} + \item stage1 and stage2 + \begin{itemize} + \item copy all files from the \textit{install} dir to the build dir + \item update all \textbf{advertising} + \item copy \textbf{dosutils} tools in the build dir + \item copy the doc + \item copy the patch file if present + \end{itemize} + \item media step + \begin{itemize} + \item list all media configured, and report missing list file + \item create media directory in the build dir + \item copy all pubkey for each media and report missing one + \item create the \textbf{media/media\_info/media.cfg} file + \item copy the file-deps + \item copy the \textbf{rpmsrate} + \item copy \textbf{compssUsers.pl} + \item create a basic chroot of the futur Distribution (to be able to run urpmq) + \item mount loop distribution repository and external media in chroot + \item generate a list of rpm to copy and dependencies based on list files + \item concatenate all files + \item try to define the size of the DVD/CD (not yet implemented) + \item link or copy packages on the build dir + \item try to solve all doble issue of packages + \item remove all packages listed in exclude list + \item use \textbf{gendistrib} to create hdlists and synthesys + \item launch \textbf{rpmcheck} to check missing deps conflicts and other failure + \item use the rpmcheck's package list to solve missing deps using urpmq + \item re-link or copy packages on the build dir + \item re-try to solve all doble issue of packages + \item re-remove all packages listed in exclude list + \item re-launch \textbf{gendistrib} to create hdlists and synthesys + \item re-launch \textbf{rpmcheck} to check missing deps conflicts and other failure + \item umount all mountloop disrectory (distribution repository and extra media) + \item remove hdlist if no more needed (Mandriva version > 2010.0) + \item show the size of the DVD (not yet implemented) + \end{itemize} + \item ISO step + \begin{itemize} + \item create the \textbf{product.id} file + \item copy text files (INSTALL, README etc...) + \item create the idx + \item create the ISO + \item \textbf{isohybrid} the ISO + \item create the md5 and sha1 + \item create an html report web page + \end{itemize} +\end{itemize} + +\newpage +\section{list files} + +\begin{itemize} + \item 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 weight parameter. +\end{itemize} + +\begin{verbatim} +ie: of lists/input_main + INSTALL 1 + CAT_X 1 + CAT_GNOME 1 + CAT_AUDIO 1 + aumix + task-lxde +\end{verbatim} + +\begin{itemize} + \item exclude list: list of unwanted packages on the CD. Be carreful to do not exclude mandatory packages +or you DVD/CD will be not usable. 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/CD at the end of the build process. +\end{itemize} + +\begin{itemize} + \item extra-filter: list of RPM you want to compare to keep the latest one. Usefull for kernel and dkms release, +or if you are mixing release and udpates media. +\end{itemize} + +\newpage +\section{BCD options} + +\begin{itemize} + \item First arg must be the XML configuration file + \item Second arg must be + \begin{itemize} + \item stagex: update the stage1/stage2 in builddir + \item isolinux: update the isolinux in builddir + \item clean: clean the builddir and isodir + \item 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 + \item gendistrib: create the hdlists/synthesis in builddir (depends on the based\_on tag) + \item rpmcheck: check the hdlist in the buildir + \item list: list all media and list of input/exclude (from the xml conf file) + \item mediarepo: list all medias availables in the repositery + \item checkrepo: rpmcheck main hdlists in the repositery + \item all: run all stage in order to get an ISO + \item md5: create MD5 sum of the ISO + \item resign: resign all rpms with a password and a gpg file + \item doble: check doble rpm in the media build\_dir + \item kernel: compare kernel and keep the latest one + \item nodoble: don't check doble rpm in the media build\_dir + \item info: parse the configuration file (usefull to check the XML syntax) + \item clean: clean previous urpmq log file + \item html: generate a log report web page + \item iso: create the final ISO from the builddir + \item verbose: be more verbose + \end{itemize} + \item extra arg: + \begin{itemize} + \item noiso: don't build the iso (md5, isohybrid) in case of 'all' process + \item copy: copy rpm instead of link them from the repositery + \item verbose: verbose mode to report more info in the output + \end{itemize} +\end{itemize} + +\section{Examples of use} + +\begin{flushleft} +the folowing example will do all step to create an ISO: + \begin{verbatim} +bcd mdv-20091.xml all + \end{verbatim} +\end{flushleft} + +\begin{flushleft} +the following example will create the build dir without creating ISO: + \begin{verbatim} +bcd.pl mdv-20091.xml all noiso + \end{verbatim} +\end{flushleft} + +\begin{flushleft} +same as above but copy packages instead of link them from the repositery: + \begin{verbatim} +bcd.pl mdv-20091.xml all noiso copy + \end{verbatim} +\end{flushleft} + +\begin{flushleft} +the following will update the isolinux in the build directory: + \begin{verbatim} +bcd.pl mdv-20091.xml isolinux + \end{verbatim} +\end{flushleft} + +\begin{flushleft} +to check the main hdlist in the repositery with rpmcheck + \begin{verbatim} +bcd.pl mdv-20091.xml checkrepo + \end{verbatim} +\end{flushleft} + +\begin{flushleft} +clean the builddir and isodir + \begin{verbatim} +bcd.pl mdv-20091.xml clean + \end{verbatim} +\end{flushleft} + +\newpage +\section{XtreemOS example} + +\subsection{introduction} + +XtreemOS is an European project (http://xtreemos.eu/) to build and promote a Linux-based Operating System +to Support Virtual Organizations for Next Generation Grids. This project was one of the platform used +to develop and test BCD. + +XtreemOS GNU/Linux distribution is based on a Mandriva 2009.0 with updates, and and +external repository xtreemos, wich contains sub-media release, updates and testing. +We will explain the full configuration file for x864\_64 arch to help you understand the way +to create one for your need. + +\subsection{the xos64.xml file} + +The name of the product will be XtreemOS, we want to do only 5 fork of \textbf{urpmq} queries, this product is based on +a Mandriva 2009.0 product, and we want to build a DVD for x86\_64 architecture. +The repository of the distribution is available at /mnt/BIG/dis directory, and i want to +create my build dir and iso dir in the \textbf{/home/xtreemos/build\_bcd} directory. + +\begin{verbatim} +<?xml version='1.0'?> +<productname desc="The Linux product"> + <nameid>XtreemOS</nameid> + <nb_fork>5</nb_fork> + <based_on>2009.0</based_on> + <arch>x86_64</arch> + <repo desc="Where is the repositery of the distribution"> + <path>/mnt/BIG/dis</path> + </repo> + <workdir desc="Where is my working dir"> + <path>/home/xtreemos/build_bcd</path> + </workdir> +\end{verbatim} + +The prefix for log will be \textbf{tocopy\_plop}. BCD will use the installer in the \textbf{/home/xtreemos/export\_x86\_64} +directory, and use the \textbf{/home/xtreemos/Build/pieces/patch-oem.pl} patch. New advertising will be taken from +\textbf{/home/xtreemos/Build/pieces/advertising} directory. +if you want to use proprietary firmware in stage1 (from the non-free/initrd-firmware package) set the firmware option to yes. + + +\begin{verbatim} +<tocopy_file>tocopy_plop</tocopy_file> + <isolinux desc="isolinux info"> + <defaultpath>isolinux</defaultpath> + <firmware>yes</firmware> + <fullpath>/home/xtreemos/export_x86_64/isolinux</fullpath> + <entry> + </entry> + <!-- keep this entry to create an array ref --> + <entry></entry> + </isolinux> + <installer desc="path to the Mandriva installer (stage1/stage2)"> + <defaultpath>install</defaultpath> + <fullpath>/home/xtreemos/export_x86_64</fullpath> + <patch>/home/xtreemos/Build/pieces/patch-oem.pl</patch> + <advertising> + <defaultpath>advertising</defaultpath> + <fullpath>/home/xtreemos/Build/pieces/advertising</fullpath> + </advertising> + </installer> +\end{verbatim} + +Theme is the default one +\begin{verbatim} +<!-- theme must be available to path altx/all.rdz files --> + <theme name="Mandriva-Free"> + <bootsplash>Mandriva-Free</bootsplash> + <bootsplash_path>/usr/share/bootsplash</bootsplash_path> + <gfxboot_path>/usr/share/gfxboot</gfxboot_path> + </theme> +\end{verbatim} + +The first list is the Main one, we want to take into account all updates from this media, but +we don't want to take into account suggests for packages. Package choosen from the list, and all +dependencies will be stored into \textbf{media/main} directory of the DVD. +\begin{verbatim} +<media desc="media to take into account to build the ISO"> + <list name="main" desc="Main_media"> + <input name="base"> + <file>lists/input_main</file> + </input> + <!-- to create an array you must keep this even if it is empty --> + <input> + <file>lists/to_add</file> + </input> + <!-- 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> + <!-- nosuggests options should be yes or no --> + <nosuggests>yes</nosuggests> + <!-- will be taken in {repo}{version}{arch}/media --> + <mediadir>main</mediadir> + <destmedia>main</destmedia> + <pubkey>release/media_info/pubkey</pubkey> + <release>yes</release> + <updates>yes</updates> + <backport>no</backport> + <testing>no</testing> + </list> +\end{verbatim} + +We create the media \textbf{contrib}, taken from the Mandriva 2009.0 repository to be able to +get dependencies from packages for other media (here the XtreemOS media). We don't use list, +because we dont want to take packages from contrib except dependencies for packages in the XtreemOS media. +\begin{verbatim} + <list name="contrib" desc="Contrib_media"> + <!-- to create an array you must keep this even if it is empty --> + <input> + </input> + <input> + </input> + <!-- MANDATORY list of unwanted packages on the iso --> + <exclude name="exclude"> + <file>lists/exclude_contrib</file> + </exclude> + <!-- to create an array you must keep this even if it is empty --> + <exclude> + </exclude> + <!-- nosuggests options should be yes or no --> + <nosuggests>yes</nosuggests> + <!-- will be taken in {repo}{version}{arch}/media --> + <mediadir>contrib</mediadir> + <destmedia>main</destmedia> + <pubkey>release/media_info/pubkey</pubkey> + <release>yes</release> + <updates>yes</updates> + <backport>no</backport> + <testing>no</testing> + </list> +\end{verbatim} + +The \textbf{r\_xos} media is the XtreemOS release media. We need to use the previously defined Contrib media +to be able to solve dependencies for packages in this media. We don't want ot use \textbf{suggests} for packages, +and this media is not available in the Mandriva 2009.0 repository, but in an external directory. +We set the updates flag to yes to use all packages available in updates. +\begin{verbatim} + <list name="r_xos" desc="r_xos_media"> + <media_supp>Contrib</media_supp> + <input> + </input> + <!-- to create an array you must keep this even if it is empty --> + <input></input> + <!-- MANDATORY list of unwanted packages on the iso --> + <exclude name="exclude"> + <file>lists/exclude_main</file> + </exclude> + <exclude name="exclude"> + <file>lists/exclude_contrib</file> + </exclude> + <!-- to create an array you must keep this even if it is empty --> + <exclude> + </exclude> + <!-- nosuggests options should be yes or no --> + <nosuggests>yes</nosuggests> + <!-- will be taken in {repo}{version}{arch}/media --> + <mediadir>xtreemos</mediadir> + <destmedia>main</destmedia> + <external name="r_xos"> + <fullpath_mediadir>/home/xtreemos/Build/pieces/x86_64_xos_release</fullpath_mediadir> + </external> + <!-- + <fullpath_mediadir>/home/plop/iso/final/t/x86_64/media/main</fullpath_mediadir> + --> + <pubkey>release/media_info/pubkey</pubkey> + <release>yes</release> + <updates>yes</updates> + <backport>no</backport> + <testing>no</testing> + </list> +\end{verbatim} + +The product version is 2.1.1, and we use custom \textbf{compssUsers.pl} and \textbf{rpmsrate} file available in the +\textbf{/home/xtreemos/Build/pieces} directory. +\begin{verbatim} +<mediainfo desc="All files relatives to media_info dir"> + <version>2.1.1</version> + <!-- 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> + <filter>lists/extra-filter</filter> + <urpmi_option> --wget </urpmi_option> + <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> +\end{verbatim} + +Tag will be beta1, and we have definied some custom ISO header. All other option are standard one. +\begin{verbatim} +<iso> + <tag>beta1</tag> + <minor>1</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>yes</hdlist> + <synthesis>yes</synthesis> + <header desc="Iso header info"> + <systemid>XtreemOS Linux</systemid> + <volumeid>XOS-2.1.1-x86_64</volumeid> + <volumesetid>XtreemOS Linux - 2.1.1 - x86_64 DVD</volumesetid> + <publisherid>XtreemOS</publisherid> + <datapreparer>Mandriva BCD</datapreparer> + <applicationid>XtreemOS Linux - 2.1.1 </applicationid> + <copyrightid>XtreemOS Linux</copyrightid> + </header> + <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> +\end{verbatim} + +Resume of the XtreemOS example: + +\begin{itemize} +\item the build directory used to create the ISO will be:\textbf{/home/xtreemos/build\_bcd/build/XtreemOS-2.1.1-x86\_64} +\item the iso directory will be: \textbf{/home/xtreemos/build\_bcd/iso/XtreemOS-2.1.1-x86\_64} +\item ISO name will be: \textbf{XtreemOS-2.1.1-x86\_64.iso} +\item The chroot and logs are in \textbf{/tmp/XtreemOS-2.1.1-x86\_64} directory +\item all urpmq queris are stored in \textbf{/tmp/XtreemOS-2.1.1-x86\_64/urpmq} directory +\item previous urpmq queries were in \textbf{/var/lib/bcd/XtreemOS-2.1.1-x86\_64} directory +\end{itemize} + + +\subsection{running output} + + +\newpage +\section{ISSUES} + +\begin{itemize} +\item if you want to build ISO for x86\_64 you must use an x86\_64 system (due to \textbf{urpmi}) +\item if hdlist/synthesis are corrupted in your repositery, you can't build ISO +\item don't check for bad rpm +\item BCD do an ``urpmq --updates'' wich can be removed to speed up the process +\end{itemize} + +\end{document} diff --git a/doc/mandriva-logo.jpg b/doc/mandriva-logo.jpg Binary files differnew file mode 100644 index 0000000..ffc5829 --- /dev/null +++ b/doc/mandriva-logo.jpg |