1Fedora::Rebuild(3) User Contributed Perl Documentation Fedora::Rebuild(3)
2
3
4
6 Fedora::Rebuild - Rebuilds Fedora packages from scratch
7
9 Main goal is to rebuild perl modules packages for Fedora. The rebuild
10 is driven from bottom to top, i.e. from perl interpreter to modules
11 depending on intermediate modules. This way, it's possible to upgrade
12 perl interpreter to incompatible version and to rebuild all modules
13 against the new interpreter.
14
15 Procedure is following: We have a set of source package to rebuild. We
16 distill all build-time dependencies for each source package. We ignore
17 non-perl dependencies as we focus on Perl only.
18
19 We select all source packages that do not depend on anything and push
20 them into Koji to rebuild. Obviously, the only fulfilling package is
21 Perl interpret only.
22
23 Once the first subset of packages is rebuilt, we gather their binary
24 packages and distill their binary provides. These freshly available
25 provides are put into new set of available provides. At the same time
26 we remove the rebuilt subset from original set of all source packages.
27
28 Then we wait for build root rotation in Koji to get rebuilt binary
29 packages available in build root.
30
31 (Of course we could get provides of new binary packages from koji
32 repository after rotation and we can get provides through repoquery
33 instead of inspecting binary packages manually.)
34
35 If package rebuild fails, the package is removed from future
36 consideration.
37
38 Then we return to start of this procedure to select other subset of
39 source packages whose build-time dependecies can be satisfied from set
40 of binary provides we have obtained till now.
41
42 This loop cycles until set of source packages is empty.
43
45 Because mass rebuild is long term issue and lot of intermediate
46 failures can emerge, one must be able to resume failed rebuild process.
47
48 Safe resume is assured by proper logging. Once a package has been
49 rebuilt, its name is logged into list of done packages. Restarting
50 rebuild program with the same arguments loads done packages, remove
51 them from set of remaining packages, and populates list of available
52 provides. In additon, packages whose rebuild failed are removed from
53 set of remaining packages.
54
56 Petr Písař <ppisar@redhat.com>
57
59 Copyright (C) 2011, 2012, 2013, 2014 Petr Pisar <ppisar@redhat.com>
60
61 This program is free software: you can redistribute it and/or modify it
62 under the terms of the GNU General Public License as published by the
63 Free Software Foundation, either version 3 of the License, or (at your
64 option) any later version.
65
66 This program is distributed in the hope that it will be useful, but
67 WITHOUT ANY WARRANTY; without even the implied warranty of
68 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
69 General Public License for more details.
70
71 You should have received a copy of the GNU General Public License along
72 with this program. If not, see <http://www.gnu.org/licenses/>.
73
74
75
76perl v5.32.0 2020-07-28 Fedora::Rebuild(3)