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 |
|
|
* http://wiki.mandriva.com/en/Build_System_Details |
14 |
|
|
* http://wiki.mandriva.com/en/Development/Tasks/Packaging/BuildSystem/Theory |
15 |
|
|
* http://wiki.mandriva.com/en/Development/Tasks/Packaging/BuildSystem/Overview |
16 |
|
|
* https://wiki.mageia.org/en/Packagers_Howto_start |
17 |
|
|
|
18 |
rda |
6446 |
Objects: |
19 |
|
|
|
20 |
|
|
* source code |
21 |
|
|
* spec file |
22 |
|
|
* source package |
23 |
|
|
* compiled package |
24 |
|
|
* packages repository |
25 |
|
|
* system image |
26 |
|
|
* ? |
27 |
|
|
|
28 |
|
|
Roles: |
29 |
|
|
|
30 |
|
|
* distribution release manager |
31 |
|
|
* build system admin |
32 |
|
|
* packages repository admin |
33 |
|
|
* packager |
34 |
|
|
* system (scheduled/triggered tasks) |
35 |
|
|
|
36 |
rda |
6445 |
---- |
37 |
|
|
## Tools |
38 |
|
|
|
39 |
|
|
It currently comprises: |
40 |
|
|
|
41 |
|
|
* bcd |
42 |
|
|
* iurt |
43 |
|
|
* youri |
44 |
|
|
* mgarepo |
45 |
|
|
* web |
46 |
rda |
6446 |
* draklive (in soft/draklive and soft/draklive-install) |
47 |
rda |
6445 |
|
48 |
|
|
|
49 |
|
|
### bcd |
50 |
|
|
|
51 |
|
|
* BCD a new tool to build Mandriva ISO. |
52 |
|
|
* License: GNU LGPL 2.1 |
53 |
|
|
|
54 |
|
|
* works: manually (can be automated?) |
55 |
|
|
* for: distribution release manager |
56 |
|
|
* input: distribution repository + specific configurations |
57 |
|
|
* output: installable ISO image of the distribution (what about live images? other images?) |
58 |
|
|
|
59 |
rda |
6446 |
### draklive |
60 |
|
|
|
61 |
|
|
* draklive is... |
62 |
|
|
* License: GNU GPL 2+ |
63 |
|
|
|
64 |
rda |
6447 |
* works: manually or automated |
65 |
rda |
6446 |
* for: distribution release manager |
66 |
|
|
* input: distribution repository + specific configuration |
67 |
|
|
* output: |
68 |
|
|
|
69 |
rda |
6445 |
### iurt |
70 |
|
|
|
71 |
rda |
6447 |
* Descriptions taken from header docs: |
72 |
rda |
6445 |
* iurt: compare and rebuild packages on different architecture |
73 |
|
|
* emi: upload packages in queue when all the mandatory architectures are done |
74 |
|
|
* ulri: compare and rebuild packages on different architecture |
75 |
|
|
* TODOs are in comments in the code, should be checked for current validity. |
76 |
|
|
* License: GNU GPL v2+ |
77 |
|
|
|
78 |
rda |
6447 |
* iurt docs: |
79 |
|
|
* http://wiki.mandriva.com/en/Development/Howto/Iurt |
80 |
|
|
* http://wiki.mandriva.com/en/Development/Tasks/Packaging/IurtAnalysis |
81 |
|
|
|
82 |
rda |
6445 |
* works: manually |
83 |
|
|
* for: packager |
84 |
|
|
* input: ? |
85 |
|
|
* output: ? |
86 |
|
|
|
87 |
|
|
### youri |
88 |
|
|
|
89 |
|
|
* YOURI stands for "Youri Offers an Upload & Repository Infrastucture". |
90 |
|
|
* It aims to build tools making management of a coherent set of packages easier. |
91 |
|
|
Managing a package repository involves many tasks, such as keeping packages |
92 |
|
|
tree tidy, generating packages indexes, synchronising bug report system, |
93 |
|
|
running coherency checks, checking for available updates, etc... |
94 |
|
|
Instead of a gazillion project-specific scripts, we aim to provide a generic |
95 |
|
|
package-format independant framework, so as to build coherent and robust tools. |
96 |
|
|
|
97 |
|
|
* Components: |
98 |
|
|
* youri-check allows to check packages |
99 |
|
|
* youri-upload allows to upload packages |
100 |
|
|
|
101 |
|
|
* License: Perl License |
102 |
|
|
|
103 |
|
|
* works: automatically and manually? |
104 |
|
|
* for: buildsystem/repository admin? |
105 |
|
|
* input: ? |
106 |
|
|
* output: ? |
107 |
|
|
|
108 |
|
|
### mgarepo |
109 |
|
|
|
110 |
|
|
* mgarepo is the tool used to manage RPM packages in a subversion repository |
111 |
|
|
on Mageia. |
112 |
|
|
* It is a fork of the repsys tool used by Mandriva. |
113 |
|
|
* It is used to create, tag releases, generate .src.rpm, generate changelog, |
114 |
|
|
and request new package releases for build. It mostly acts as a interface |
115 |
|
|
to svn(1) commands and small task scripts run that on the build system side |
116 |
|
|
over ssh(1). |
117 |
|
|
* For more information, see mgarepo(8) |
118 |
|
|
* The discussion on the development of mageiarepo takes place on the |
119 |
|
|
Mageia developers mailing list. |
120 |
|
|
* License: |
121 |
|
|
* Howtos: https://wiki.mageia.org/en/Mgarepo |
122 |
|
|
|
123 |
|
|
* works: manually |
124 |
|
|
* for: packager |
125 |
|
|
* input: ? |
126 |
|
|
* output: ? |
127 |
|
|
|
128 |
|
|
### web |
129 |
|
|
|
130 |
|
|
* hosts components to report various states in the build system |
131 |
|
|
(upload queue, uploaded packages and build results, etc.) |
132 |
|
|
* License: |
133 |
|
|
|
134 |
|
|
* works: auto |
135 |
|
|
* for: anyone willing to checkout status info about the whole system |
136 |
|
|
* input: various data sources in the system (TODO details) |
137 |
|
|
* output: HTML documents and parsable data structures (JSON, text) |
138 |
|
|
|
139 |
|
|
---- |
140 |
|
|
## Code |
141 |
|
|
|
142 |
|
|
Code is available in: |
143 |
|
|
|
144 |
|
|
- [Subversion](svn://svn.mageia.org/svn/soft/build_system), |
145 |
|
|
- [Web view](http://svnweb.mageia.org/soft/build_system). |
146 |
|
|
|
147 |
|
|
--- |
148 |
|
|
## TODO & BUGS |
149 |
|
|
|
150 |
|
|
* 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) |
151 |
|
|
and use it for further bugs. |
152 |
rda |
6447 |
* see and compare/update from: |
153 |
|
|
* http://wiki.mandriva.com/en/Development/Tasks/Packaging/BuildSystem/Improvements |
154 |
|
|
* https://wiki.mageia.org/en/SummerOfCode2012#Projects_Proposals |
155 |
|
|
* |
156 |
rda |
6445 |
|
157 |
|
|
|
158 |
|
|
---- |