From Mageia wiki
Jump to: navigation, search

Iurt

iurt is a collection of tools to create an automatic rebuild system. It contains the rebuild script, iurt, as well as the scheduler, ulri, and the upload script, emi.


Note: For a quick start please have a look at Packagers_Mentoring_Howto#iurt.

How to get it

Just install iurt using

  urpmi iurt

The source code is available at http://gitweb.mageia.org/software/build-system/iurt/

How to use it

There are usage examples in the mentoring howto even for cross-compiling e.g. i586 packages on an x86_64 system, which is quite a common case for packagers.

For everything else, please refer to http://wiki.mandriva.com/en/Iurt for now.

Here is one link to archive.org as the mandriva wiki doesn't exist anymore:

Configuration

For each distro version be want to build, you must create a configuration file in the home of the user running iurt. This file is a perl script which will be loaded as a configuration variable. E.g. to recompile on cauldron, you must create a file named ~/.iurt.cauldron.conf.

When using iurt, the --distro option is here to decide which config file has to be built. Make use of the option --help_config to be sure your config file is ok.


Here is an example:
{
    home => "/home/mageia/",
    cache_home => "/home/mageia/.bugs/",
    supported_arch => [ 'i586', 'x86_64' ],
    upload => "kenobi:/home/mageia/uploads/",
    local_home => "/export/home/mageia/",
    unwanted_packages => '^monotone-',
    repository => '/mnt/BIGDISK/dist/',
    rsync_to => "mageia\@qa:/var/www/html/build/iurt/",
    admin => 'warly@mageia.org',
    sendmail => 1,
    packager => 'Iurt the rebuild bot <warly@mageia.org>',
    install_chroot_binary => '~warly/files/rpm-rebuilder/install-chroot-tar.sh',
    distribution => 'Mageia Linux',
    vendor => 'Mageia',
    basesystem_media => ''
}
  • home your home dir, defaults to $HOME;
  • cache_home where to store the iurt cache (for cooker this cache is about 3 MB), defaults to $HOME/.bugs/;
  • upload where to copy resulting packages, defaults to $HOME/uploads/;
  • local_home where to build packages (this can be different from you $HOME if you are on NFS and you want to compile locally), defaults to $HOME;
  • unwanted_packages if you do not want to compile a certain package, you can enter here a regexp, defaults to nothing;
  • repository is the location of your local packages, note that your packages must be in a Mageia like structure;
  • rsync_to can be set if you want to send the reports on another machine, the default is to do nothing;
  • admin who to spam with all the warning messages. Default is nothing;
  • sendmail if a warning mail will be sent for encountered error. Default is not to send mail;
  • packager field used as packager tag and mail origin. Default is 'Iurt';
  • install_chroot_binary program to create and manage chroot, it is not yet packaged and needs to be fetched for the CVS. Default is install-chroot-tar.sh;
  • vendor default is Mageia;
  • distribution default is Mageia Linux;
  • basesystem_media to select which media will be used to create the initial chroot.

To have a full listing of available options, use iurt --config-help --distro cauldron so that you can debug your default values.

Note: at the first run iurt will be quite slow because it will need to scan all the packages to populate its cache.

Note2: It is highly recommended to use the same tree as Mageia, for storing your repository: /some/path/cauldron/$arch/media/main