Fix typoes and grammar

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
master
Adam D. Barratt 14 years ago
parent fa6b95e0b3
commit 644caa3f31

@ -25,7 +25,7 @@ they have undergone some degree of testing in unstable. The goal of
this software is to do this task in a smart way, allowing testing
to be always fully installable and close to being a release candidate.
Britney source code is splitted in two different but related tasks:
Britney's source code is split between two different but related tasks:
the first one is the generation of the update excuses, while the
second tries to update testing with the valid candidates; first
each package alone, then larger and even larger sets of packages
@ -36,14 +36,14 @@ after the update than before.
In order to analyze the entire Debian distribution, Britney needs to
load in memory the whole archive: this means more than 10.000 packages
for twelve architectures, as well as the dependency interconnection
between them. For this reason, the memory requirement for running this
for twelve architectures, as well as the dependency interconnections
between them. For this reason, the memory requirements for running this
software are quite high and at least 1 gigabyte of RAM should be available.
Britney loads the source packages from the `Sources' file and the binary
packages from the `Packages_${arch}' files, where ${arch} is substituted
with the supported architectures. While loading the data, the software
analyze the dependencies and build a directed weighted graph in memory
analyzes the dependencies and builds a directed weighted graph in memory
with all the interconnections between the packages (see Britney.read_sources
and Britney.read_binaries).
@ -93,12 +93,12 @@ does for the generation of the update excuses.
1. If there is a `remove' hint for the source package, the package
is ignored: it will be removed and not updated.
2. For every binary package build from the new source, it checks
2. For every binary package built from the new source, it checks
for unsatisfied dependencies, new binary package and updated
binary package (binNMU) excluding the architecture-independent
ones and the packages not built from the same source.
3. For every binary package build from the old source, it checks
3. For every binary package built from the old source, it checks
if it is still built from the new source; if this is not true
and the package is not architecture-independent, the script
removes it from testing.
@ -133,7 +133,7 @@ does for the generation of the update excuses.
a subsequent `unblock-udeb' hint.
7. If the suite is unstable, the update can go ahead only if the
upload happend more then the minimum days specified by the
upload happened more than the minimum days specified by the
urgency of the upload; if this is not true, the package is
ignored as `too-young'. Note that the urgency is sticky, meaning
that the highest urgency uploaded since the previous testing
@ -214,12 +214,12 @@ RCONFLICTS = 10
class Britney:
"""Britney, the debian testing updater script
"""Britney, the Debian testing updater script
This is the script that updates the testing_ distribution. It is executed
This is the script that updates the testing distribution. It is executed
each day after the installation of the updated packages. It generates the
`Packages' files for the testing distribution, but it does so in an
intelligent manner; it try to avoid any inconsistency and to use only
intelligent manner; it tries to avoid any inconsistency and to use only
non-buggy packages.
For more documentation on this script, please read the Developers Reference.
@ -366,7 +366,7 @@ class Britney:
An easy-and-simple log method which prints messages to the standard
output. The type parameter controls the urgency of the message, and
can be equal to `I' for `Information', `W' for `Warning' and `E' for
`Error'. Warnings and errors are always printed, and information are
`Error'. Warnings and errors are always printed, and information is
printed only if the verbose logging is enabled.
"""
if self.options.verbose or type in ("E", "W"):
@ -442,7 +442,7 @@ class Britney:
The method returns a tuple. The first element is a list where
every item represents a binary package as a dictionary; the second
element is a dictionary which maps virtual packages to real
packages that provide it.
packages that provide them.
"""
packages = {}
@ -542,7 +542,7 @@ class Britney:
# register real packages
if a[0] in packages and (not check_doubles or pkg not in packages[a[0]][RDEPENDS]):
packages[a[0]][RDEPENDS].append(pkg)
# register packages which provides a virtual package
# register packages which provide a virtual package
elif a[0] in provides:
for i in provides.get(a[0]):
if i not in packages: continue
@ -705,7 +705,7 @@ class Britney:
l = line.split()
if len(l) != 3: continue
# read the minimum days associated to the urgencies
# read the minimum days associated with the urgencies
urgency_old = urgencies.get(l[0], self.options.default_urgency)
mindays_old = self.MINDAYS.get(urgency_old, self.MINDAYS[self.options.default_urgency])
mindays_new = self.MINDAYS.get(l[2], self.MINDAYS[self.options.default_urgency])
@ -732,9 +732,9 @@ class Britney:
def read_hints(self, basedir):
"""Read the hint commands from the specified directory
The hint commands are read from the files contained by the `Hints'
The hint commands are read from the files contained in the `Hints'
directory within the directory specified as `basedir' parameter.
The name of the files has to be the same of the authorized users
The names of the files have to be the same as the authorized users
for the hints.
The file contains rows with the format:
@ -824,7 +824,7 @@ class Britney:
def write_controlfiles(self, basedir, suite):
"""Write the control files
This method write the control files for the binary packages of all
This method writes the control files for the binary packages of all
the architectures and for the source packages.
"""
sources = self.sources[suite]
@ -992,7 +992,7 @@ class Britney:
packages = [self.binaries[suite][arch][0][p][SOURCE] for p in packages]
# if the dependency can be satisfied by the same source package, skip the block:
# obviously both binary packages will enter testing togheter
# obviously both binary packages will enter testing together
if src in packages: continue
# if no package can satisfy the dependency, add this information to the excuse
@ -1011,21 +1011,21 @@ class Britney:
return True
# Package analisys methods
# Package analysis methods
# ------------------------
def should_remove_source(self, pkg):
"""Check if a source package should be removed from testing
This method checks if a source package should be removed from the
testing distribution; this happen if the source package is not
testing distribution; this happens if the source package is not
present in the unstable distribution anymore.
It returns True if the package can be removed, False otherwise.
In the former case, a new excuse is appended to the the object
attribute excuses.
"""
# if the soruce package is available in unstable, then do nothing
# if the source package is available in unstable, then do nothing
if pkg in self.sources['unstable']:
return False
# otherwise, add a new excuse for its removal and return True
@ -1048,11 +1048,11 @@ class Britney:
return True
def should_upgrade_srcarch(self, src, arch, suite):
"""Check if binary package should be upgraded
"""Check if a binary package should be upgraded
This method checks if a binary package should be upgraded; this can
happen also if the binary package is a binary-NMU for the given arch.
The analisys is performed for the source package specified by the
The analysis is performed for the source package specified by the
`src' parameter, checking the architecture `arch' for the distribution
`suite'.
@ -1071,7 +1071,7 @@ class Britney:
source_u[MAINTAINER] and excuse.set_maint(source_u[MAINTAINER].strip())
source_u[SECTION] and excuse.set_section(source_u[SECTION].strip())
# if there is a `remove' hint and the requested version is the same of the
# if there is a `remove' hint and the requested version is the same as the
# version in testing, then stop here and return False
if src in self.hints["remove"] and \
self.same_source(source_t[VERSION], self.hints["remove"][src][0]):
@ -1132,7 +1132,7 @@ class Britney:
anyworthdoing = True
# if there is nothing wrong and there is something worth doing or the source
# package is not fake, then check what packages shuold be removed
# package is not fake, then check what packages should be removed
if not anywrongver and (anyworthdoing or not self.sources[suite][src][FAKESRC]):
srcv = self.sources[suite][src][VERSION]
ssrc = self.same_source(source_t[VERSION], srcv)
@ -1148,7 +1148,7 @@ class Britney:
excuse.addhtml("Removed binary: %s %s" % (pkg, tpkgv))
if ssrc: anyworthdoing = True
# if there is nothing wrong and there is something worth doing, this is valid candidate
# if there is nothing wrong and there is something worth doing, this is a valid candidate
if not anywrongver and anyworthdoing:
excuse.addhtml("Valid candidate")
self.excuses.append(excuse)
@ -1164,7 +1164,7 @@ class Britney:
def should_upgrade_src(self, src, suite):
"""Check if source package should be upgraded
This method checks if a source package should be upgraded. The analisys
This method checks if a source package should be upgraded. The analysis
is performed for the source package specified by the `src' parameter,
checking the architecture `arch' for the distribution `suite'.
@ -1210,7 +1210,7 @@ class Britney:
excuse.addhtml("Ignoring %s urgency setting for NEW package" % (urgency))
urgency = self.options.default_urgency
# if there is a `remove' hint and the requested version is the same of the
# if there is a `remove' hint and the requested version is the same as the
# version in testing, then stop here and return False
if src in self.hints["remove"]:
if source_t and self.same_source(source_t[VERSION], self.hints['remove'][src][0]) or \
@ -1273,7 +1273,7 @@ class Britney:
else:
update_candidate = False
# at this point, we check what is the status of the builds on all the supported architectures
# at this point, we check the status of the builds on all the supported architectures
# to catch the out-of-date ones
pkgs = {src: ["source"]}
for arch in self.options.architectures:
@ -1417,7 +1417,7 @@ class Britney:
if invalid[i] not in revdeps:
i += 1
continue
# if there dependency can be satisfied by a testing-proposed-updates excuse, skip the item
# if the dependency can be satisfied by a testing-proposed-updates excuse, skip the item
if (invalid[i] + "_tpu") in valid:
i += 1
continue
@ -1441,7 +1441,7 @@ class Britney:
"""Produce and write the update excuses
This method handles the update excuses generation: the packages are
looked to determine whether they are valid candidates. For the details
looked at to determine whether they are valid candidates. For the details
of this procedure, please refer to the module docstring.
"""
@ -1496,7 +1496,7 @@ class Britney:
if ("-"+src) in upgrade_me: continue
if src not in sources['testing']: continue
# check if the version specified in the hint is the same of the considered package
# check if the version specified in the hint is the same as the considered package
tsrcv = sources['testing'][src][VERSION]
if not self.same_source(tsrcv, self.hints["remove"][src][0]): continue
@ -1546,7 +1546,7 @@ class Britney:
def newlyuninst(self, nuold, nunew):
"""Return a nuninst statstic with only new uninstallable packages
This method subtract the uninstallabla packages of the statistic
This method subtracts the uninstallable packages of the statistic
`nunew` from the statistic `nuold`.
It returns a dictionary with the architectures as keys and the list
@ -1563,8 +1563,8 @@ class Britney:
To calculate the uninstallability counters, the method checks the
installability of all the packages for all the architectures, and
tracking dependencies in a recursive way. The architecture
indipendent packages are checked only for the `nobreakall`
tracks dependencies in a recursive way. The architecture
independent packages are checked only for the `nobreakall`
architectures.
It returns a dictionary with the architectures as keys and the list
@ -1576,14 +1576,14 @@ class Britney:
nuninst = {}
# local copies for better performances
# local copies for better performance
binaries = self.binaries['testing']
systems = self.systems
# for all the architectures
for arch in self.options.architectures:
if requested_arch and arch != requested_arch: continue
# if it is in the nobreakall ones, check arch-indipendent packages too
# if it is in the nobreakall ones, check arch-independent packages too
if arch not in self.options.nobreakall_arches.split():
skip_archall = True
else: skip_archall = False
@ -1596,7 +1596,7 @@ class Britney:
if not r:
nuninst[arch].add(pkg_name)
# if they are not required, removed architecture-indipendent packages
# if they are not required, remove architecture-independent packages
nuninst[arch + "+all"] = nuninst[arch].copy()
if skip_archall:
for pkg in nuninst[arch + "+all"]:
@ -1786,7 +1786,7 @@ class Britney:
# If a conflict is detected, it tries to handle it calling the handle_conflict
# method; if it can't be resolved, then it returns False.
def satisfy(pkg, pkg_alt=None, pkg_from=None, system=system, conflicts=conflicts, excluded=[]):
# if it is real package and it is already installed, skip it and return True
# if it is a real package and it is already installed, skip it and return True
if pkg in binaries[0]:
if pkg in system:
if type(pkg_from) == list:
@ -1856,7 +1856,7 @@ class Britney:
if conflicting in binary_u[PROVIDES] and system[conflicting][1] == [pkg]: continue
if op == '' and version == '' or check_depends(binary_u[VERSION], op, version):
# if conflict is found, check if it can be solved removing
# already-installed packages without broking the system; if
# already-installed packages without breaking the system; if
# this is not possible, give up and return False
output = handle_conflict(pkg, conflicting, system.copy(), conflicts.copy())
if output:
@ -1878,7 +1878,7 @@ class Britney:
else: binary_c = None
if op == '' and version == '' or binary_c and check_depends(binary_c[VERSION], op, version):
# if conflict is found, check if it can be solved removing
# already-installed packages without broking the system; if
# already-installed packages without breaking the system; if
# this is not possible, give up and return False
output = handle_conflict(pkg, name, system.copy(), conflicts.copy())
if output:
@ -1887,7 +1887,7 @@ class Britney:
del system[pkg]
unregister_conflicts(pkg, conflicts)
return False
# register the conflict)
# register the conflict
if block[0] not in conflicts:
conflicts[block[0]] = []
conflicts[block[0]].append((name, version, op, pkg))
@ -1928,7 +1928,7 @@ class Britney:
def doop_source(self, pkg):
"""Apply a change to the testing distribution as requested by `pkg`
This method apply the changes required by the action `pkg` tracking
This method applies the changes required by the action `pkg` tracking
them so it will be possible to revert them.
The method returns a list of the package name, the suite where the
@ -2093,8 +2093,8 @@ class Britney:
def iter_packages(self, packages, selected, hint=False, nuninst=None):
"""Iter on the list of actions and apply them one-by-one
This method apply the changes from `packages` to testing, checking the uninstallability
counters for every action performed. If the action do not improve the it, it is reverted.
This method applies the changes from `packages` to testing, checking the uninstallability
counters for every action performed. If the action does not improve them, it is reverted.
The method returns the new uninstallability counters and the remaining actions if the
final result is successful, otherwise (None, None).
"""
@ -2109,7 +2109,7 @@ class Britney:
else:
nuninst_comp = self.nuninst_orig.copy()
# local copies for better performances
# local copies for better performance
binaries = self.binaries['testing']
sources = self.sources
systems = self.systems
@ -2517,7 +2517,7 @@ class Britney:
def hint_tester(self):
"""Run a command line interface to test hints
This methods provides a command line interface for the release team to
This method provides a command line interface for the release team to
try hints and evaulate the results.
"""
self.__log("> Calculating current uninstallability counters", type="I")
@ -2555,7 +2555,7 @@ class Britney:
"""Process hints
This method process `easy`, `hint` and `force-hint` hints. If the
requested version is not in unstable, than the hint is skipped.
requested version is not in unstable, then the hint is skipped.
"""
hintinfo = {"easy": "easy",
"hint": 0,
@ -2598,8 +2598,8 @@ class Britney:
def sort_actions(self):
"""Sort actions in a smart way
This method sorts the list of actions in a smart way. In details, it uses
as base sort the number of days the excuse is old, then reordering packages
This method sorts the list of actions in a smart way. In detail, it uses
as the base sort the number of days the excuse is old, then reorders packages
so the ones with most reverse dependencies are at the end of the loop.
If an action depends on another one, it is put after it.
"""
@ -2670,7 +2670,7 @@ class Britney:
def old_libraries(self):
"""Detect old libraries left in testing for smooth transitions
This method detect old libraries which are in testing but no longer
This method detects old libraries which are in testing but no longer
built from the source package: they are still there because other
packages still depend on them, but they should be removed as soon
as possible.

Loading…
Cancel
Save