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