1 |
rda |
6445 |
# Mageia build system & tools |
2 |
|
|
|
3 |
|
|
***This is an attempt to summarize, document and organize the whole tools making |
4 |
|
|
the buildsystem here at Mageia.*** |
5 |
|
|
|
6 |
|
|
## Big picture |
7 |
|
|
|
8 |
|
|
TODO _show_ what are all the pieces of the build system, |
9 |
|
|
how they interact, who interacts with these, and what are the basic actions |
10 |
|
|
of each actor, and expected reactions. |
11 |
|
|
|
12 |
rda |
6447 |
See possible docs: |
13 |
|
|
|
14 |
rda |
6489 |
* [BS details on Mandriva wiki](http://wiki.mandriva.com/en/Build_System_Details) |
15 |
|
|
* [Dev tasks, BS theory on Mandriva wiki](http://wiki.mandriva.com/en/Development/Tasks/Packaging/BuildSystem/Theory) |
16 |
|
|
* [Dev tasks, BS overview on Mandriva wiki](http://wiki.mandriva.com/en/Development/Tasks/Packaging/BuildSystem/Overview) |
17 |
|
|
* [Packagers HOWTO](https://wiki.mageia.org/en/Packagers_Howto_start) |
18 |
|
|
|
19 |
rda |
6446 |
Objects: |
20 |
|
|
|
21 |
|
|
* source code |
22 |
|
|
* spec file |
23 |
|
|
* source package |
24 |
|
|
* compiled package |
25 |
|
|
* packages repository |
26 |
|
|
* system image |
27 |
|
|
* ? |
28 |
|
|
|
29 |
|
|
Roles: |
30 |
|
|
|
31 |
|
|
* distribution release manager |
32 |
|
|
* build system admin |
33 |
|
|
* packages repository admin |
34 |
|
|
* packager |
35 |
|
|
* system (scheduled/triggered tasks) |
36 |
|
|
|
37 |
rda |
6445 |
---- |
38 |
rda |
6489 |
## Tools included |
39 |
rda |
6445 |
|
40 |
rda |
6489 |
Packager tools: |
41 |
rda |
6445 |
|
42 |
rda |
6489 |
* mgarepo - the tool used to manage RPM packages in a subversion repository on Mageia. |
43 |
|
|
|
44 |
|
|
Building & pkg management tools: |
45 |
|
|
|
46 |
|
|
* iurt, emi & ulri |
47 |
|
|
* youri - the suite uploading and managing the RPM repositories after the builds |
48 |
|
|
|
49 |
|
|
Tools to build final images: |
50 |
|
|
|
51 |
|
|
* bcd - for installer ISOs |
52 |
|
|
* draklive - for live ISOs |
53 |
|
|
* ? |
54 |
|
|
|
55 |
|
|
Reporting tools: |
56 |
|
|
|
57 |
rda |
6445 |
* web |
58 |
|
|
|
59 |
|
|
|
60 |
rda |
6489 |
TODO testing tools? other final builds tools? how/where/when are isolinux/*, dosutils/*, misc/* and install/* (.iso and .img included) built in distrib/{arch}? |
61 |
|
|
|
62 |
|
|
Details follow. |
63 |
|
|
|
64 |
|
|
---- |
65 |
|
|
|
66 |
rda |
6445 |
### bcd |
67 |
|
|
|
68 |
|
|
* BCD a new tool to build Mandriva ISO. |
69 |
|
|
* License: GNU LGPL 2.1 |
70 |
|
|
|
71 |
|
|
* works: manually (can be automated?) |
72 |
|
|
* for: distribution release manager |
73 |
|
|
* input: distribution repository + specific configurations |
74 |
|
|
* output: installable ISO image of the distribution (what about live images? other images?) |
75 |
|
|
|
76 |
rda |
6446 |
### draklive |
77 |
|
|
|
78 |
|
|
* draklive is... |
79 |
|
|
* License: GNU GPL 2+ |
80 |
rda |
6489 |
* Code is in svn://svn.mageia.org/svn/soft/{draklive,draklive-install} |
81 |
rda |
6446 |
|
82 |
rda |
6447 |
* works: manually or automated |
83 |
rda |
6446 |
* for: distribution release manager |
84 |
|
|
* input: distribution repository + specific configuration |
85 |
|
|
* output: |
86 |
|
|
|
87 |
rda |
6445 |
### iurt |
88 |
|
|
|
89 |
rda |
6447 |
* Descriptions taken from header docs: |
90 |
pterjan |
6448 |
* iurt: build packages inside clean chroots |
91 |
rda |
6445 |
* emi: upload packages in queue when all the mandatory architectures are done |
92 |
pterjan |
6448 |
* ulri: |
93 |
|
|
* sends packages to the build nodes for each architecture |
94 |
|
|
* collects built packages and logs |
95 |
rda |
6445 |
* TODOs are in comments in the code, should be checked for current validity. |
96 |
|
|
* License: GNU GPL v2+ |
97 |
|
|
|
98 |
rda |
6447 |
* iurt docs: |
99 |
rda |
6489 |
* [iurt HOWTO on Mandriva wiki](http://wiki.mandriva.com/en/Development/Howto/Iurt) |
100 |
|
|
* [iurt analysis on Mandriva wiki](http://wiki.mandriva.com/en/Development/Tasks/Packaging/IurtAnalysis) |
101 |
rda |
6447 |
|
102 |
rda |
6445 |
* works: manually |
103 |
|
|
* for: packager |
104 |
pterjan |
6448 |
* input: source package |
105 |
|
|
* output: compiled packages |
106 |
rda |
6445 |
|
107 |
|
|
### youri |
108 |
|
|
|
109 |
|
|
* YOURI stands for "Youri Offers an Upload & Repository Infrastucture". |
110 |
|
|
* It aims to build tools making management of a coherent set of packages easier. |
111 |
|
|
Managing a package repository involves many tasks, such as keeping packages |
112 |
|
|
tree tidy, generating packages indexes, synchronising bug report system, |
113 |
|
|
running coherency checks, checking for available updates, etc... |
114 |
|
|
Instead of a gazillion project-specific scripts, we aim to provide a generic |
115 |
|
|
package-format independant framework, so as to build coherent and robust tools. |
116 |
|
|
|
117 |
|
|
* Components: |
118 |
|
|
* youri-check allows to check packages |
119 |
|
|
* youri-upload allows to upload packages |
120 |
|
|
|
121 |
|
|
* License: Perl License |
122 |
|
|
|
123 |
|
|
* works: automatically and manually? |
124 |
|
|
* for: buildsystem/repository admin? |
125 |
|
|
* input: ? |
126 |
|
|
* output: ? |
127 |
|
|
|
128 |
|
|
### mgarepo |
129 |
|
|
|
130 |
|
|
* mgarepo is the tool used to manage RPM packages in a subversion repository |
131 |
|
|
on Mageia. |
132 |
|
|
* It is a fork of the repsys tool used by Mandriva. |
133 |
|
|
* It is used to create, tag releases, generate .src.rpm, generate changelog, |
134 |
|
|
and request new package releases for build. It mostly acts as a interface |
135 |
|
|
to svn(1) commands and small task scripts run that on the build system side |
136 |
|
|
over ssh(1). |
137 |
|
|
* For more information, see mgarepo(8) |
138 |
|
|
* The discussion on the development of mageiarepo takes place on the |
139 |
|
|
Mageia developers mailing list. |
140 |
|
|
* License: |
141 |
rda |
6489 |
* Howtos: [mgarepo](https://wiki.mageia.org/en/Mgarepo) |
142 |
rda |
6445 |
|
143 |
|
|
* works: manually |
144 |
|
|
* for: packager |
145 |
|
|
* input: ? |
146 |
|
|
* output: ? |
147 |
|
|
|
148 |
|
|
### web |
149 |
|
|
|
150 |
|
|
* hosts components to report various states in the build system |
151 |
|
|
(upload queue, uploaded packages and build results, etc.) |
152 |
|
|
* License: |
153 |
|
|
|
154 |
|
|
* works: auto |
155 |
|
|
* for: anyone willing to checkout status info about the whole system |
156 |
|
|
* input: various data sources in the system (TODO details) |
157 |
|
|
* output: HTML documents and parsable data structures (JSON, text) |
158 |
|
|
|
159 |
|
|
---- |
160 |
|
|
## Code |
161 |
|
|
|
162 |
|
|
Code is available in: |
163 |
|
|
|
164 |
|
|
- [Subversion](svn://svn.mageia.org/svn/soft/build_system), |
165 |
|
|
- [Web view](http://svnweb.mageia.org/soft/build_system). |
166 |
|
|
|
167 |
|
|
--- |
168 |
|
|
## TODO & BUGS |
169 |
|
|
|
170 |
|
|
* 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) |
171 |
|
|
and use it for further bugs. |
172 |
rda |
6447 |
* see and compare/update from: |
173 |
rda |
6489 |
* [Dev tasks for BS improvement on Mandriva Wiki](http://wiki.mandriva.com/en/Development/Tasks/Packaging/BuildSystem/Improvements) |
174 |
|
|
* [Proposals for SoC 2012](https://wiki.mageia.org/en/SummerOfCode2012#Projects_Proposals) |
175 |
rda |
6447 |
* |
176 |
rda |
6445 |
|
177 |
|
|
|
178 |
pterjan |
6448 |
---- |