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 |
6446 |
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 |
rda |
6445 |
---- |
31 |
|
|
## Tools |
32 |
|
|
|
33 |
|
|
It currently comprises: |
34 |
|
|
|
35 |
|
|
* bcd |
36 |
|
|
* iurt |
37 |
|
|
* youri |
38 |
|
|
* mgarepo |
39 |
|
|
* web |
40 |
rda |
6446 |
* draklive (in soft/draklive and soft/draklive-install) |
41 |
rda |
6445 |
|
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 |
rda |
6446 |
### 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 |
rda |
6445 |
### 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 |
|
|
---- |