1Fedora::Rebuild(3)    User Contributed Perl Documentation   Fedora::Rebuild(3)
2
3
4

NAME

6       Fedora::Rebuild - Rebuilds Fedora packages from scratch
7

DESCRIPTION

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

SYNCHRONIZATION

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

AUTHOR

56       Petr Písař <ppisar@redhat.com>
57

COPYING

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.1                      2021-01-27                Fedora::Rebuild(3)
Impressum