# Mageia build system & tools ***This is an attempt to summarize, document and organize the whole tools making the buildsystem here at Mageia.*** ## Big picture TODO _show_ what are all the pieces of the build system, how they interact, who interacts with these, and what are the basic actions of each actor, and expected reactions. See possible docs: * http://wiki.mandriva.com/en/Build_System_Details * http://wiki.mandriva.com/en/Development/Tasks/Packaging/BuildSystem/Theory * http://wiki.mandriva.com/en/Development/Tasks/Packaging/BuildSystem/Overview * https://wiki.mageia.org/en/Packagers_Howto_start Objects: * source code * spec file * source package * compiled package * packages repository * system image * ? Roles: * distribution release manager * build system admin * packages repository admin * packager * system (scheduled/triggered tasks) ---- ## Tools It currently comprises: * bcd * iurt * youri * mgarepo * web * draklive (in soft/draklive and soft/draklive-install) ### bcd * BCD a new tool to build Mandriva ISO. * License: GNU LGPL 2.1 * works: manually (can be automated?) * for: distribution release manager * input: distribution repository + specific configurations * output: installable ISO image of the distribution (what about live images? other images?) ### draklive * draklive is... * License: GNU GPL 2+ * works: manually or automated * for: distribution release manager * input: distribution repository + specific configuration * output: ### iurt * Descriptions taken from header docs: * iurt: build packages inside clean chroots * emi: upload packages in queue when all the mandatory architectures are done * ulri: * sends packages to the build nodes for each architecture * collects built packages and logs * TODOs are in comments in the code, should be checked for current validity. * License: GNU GPL v2+ * iurt docs: * http://wiki.mandriva.com/en/Development/Howto/Iurt * http://wiki.mandriva.com/en/Development/Tasks/Packaging/IurtAnalysis * works: manually * for: packager * input: source package * output: compiled packages ### youri * YOURI stands for "Youri Offers an Upload & Repository Infrastucture". * It aims to build tools making management of a coherent set of packages easier. Managing a package repository involves many tasks, such as keeping packages tree tidy, generating packages indexes, synchronising bug report system, running coherency checks, checking for available updates, etc... Instead of a gazillion project-specific scripts, we aim to provide a generic package-format independant framework, so as to build coherent and robust tools. * Components: * youri-check allows to check packages * youri-upload allows to upload packages * License: Perl License * works: automatically and manually? * for: buildsystem/repository admin? * input: ? * output: ? ### mgarepo * mgarepo is the tool used to manage RPM packages in a subversion repository on Mageia. * It is a fork of the repsys tool used by Mandriva. * It is used to create, tag releases, generate .src.rpm, generate changelog, and request new package releases for build. It mostly acts as a interface to svn(1) commands and small task scripts run that on the build system side over ssh(1). * For more information, see mgarepo(8) * The discussion on the development of mageiarepo takes place on the Mageia developers mailing list. * License: * Howtos: https://wiki.mageia.org/en/Mgarepo * works: manually * for: packager * input: ? * output: ? ### web * hosts components to report various states in the build system (upload queue, uploaded packages and build results, etc.) * License: * works: auto * for: anyone willing to checkout status info about the whole system * input: various data sources in the system (TODO details) * output: HTML documents and parsable data structures (JSON, text) ---- ## Code Code is available in: - [Subversion](svn://svn.mageia.org/svn/soft/build_system), - [Web view](http://svnweb.mageia.org/soft/build_system). --- ## TODO & BUGS * please check out [our quite extensive Bugzilla](https://bugs.mageia.org/buglist.cgi?query_format=advanced&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=BuildSystem&product=Infrastructure) and use it for further bugs. * see and compare/update from: * http://wiki.mandriva.com/en/Development/Tasks/Packaging/BuildSystem/Improvements * https://wiki.mageia.org/en/SummerOfCode2012#Projects_Proposals * ----