aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: b6fa71e55eae4574e46e1a97eb7e8e48fcf44540 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# 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.

----
## Tools

It currently comprises:

 * bcd
 * iurt
 * youri
 * mgarepo
 * web


### 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?)

### iurt

 * No READMEs. Descriptions taken from header docs:
   * iurt: compare and rebuild packages on different architecture
   * emi: upload packages in queue when all the mandatory architectures are done
   * ulri: compare and rebuild packages on different architecture
 * TODOs are in comments in the code, should be checked for current validity.
 * License: GNU GPL v2+

 * works: manually
 * for: packager
 * input: ?
 * output: ?

### 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.



----