782 Commits

Author SHA1 Message Date
Niels Thykier
3e9c1acb8e britney: Never strip multi-arch in dependencies
This causes Multi-arch dependencies like "pkg:i386" to show up as
unsatisfiable in excuses.

Previously, the dependency would be checked on the wrong architecture
(if available) and cause the package to become a valid candidate.  The
package would still be prevent from migrating as the installability
checker does not know of the "pkg:i386" package.

Signed-off-by: Niels Thykier <niels@thykier.net>
2012-02-10 14:48:01 +01:00
Adam D. Barratt
d1d5d9826e Merge branch 'master' of file:///srv/release.debian.org/git/britney2 2012-01-08 12:36:03 +00:00
Adam D. Barratt
a4f91cce41 Drop closing li tag from "valid candidate" messages
Although it's technically correct, none of the other messages include closing
tags, and at least grep-excuses isn't prepared to deal with closing tags.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2012-01-08 12:34:55 +00:00
Niels Thykier
edbd7f4563 Remove some unused fields and methods in excuse
In the unsat_deps case, it was used to update a field in the excuse,
but the field was never read anywhere.

Signed-off-by: Niels Thykier <niels@thykier.net>
2012-01-06 20:52:18 +01:00
Niels Thykier
d41bf54585 Convert all classes to "new-type" Python classes
Signed-off-by: Niels Thykier <niels@thykier.net>
2012-01-06 19:39:57 +01:00
Adam D. Barratt
1b0a85d879 Make Excuse a new-style class, so property decorators work as expected
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2012-01-06 15:21:14 +00:00
Niels Thykier
ed905b99c7 Made is_valid and dontinvalidate properties in Excuse
Use the is_valid in "html"-method to determine whether to write "Valid
candidate" or not.  This avoids the occasional:

 * Valid candidate
 * Invalidated by dependency
 * Not considered

Signed-off-by: Niels Thykier <niels@thykier.net>
2012-01-06 14:58:14 +01:00
Niels Thykier
85221000eb Read testing data files only once
Signed-off-by: Niels Thykier <niels@thykier.net>
2012-01-04 22:03:06 +01:00
Niels Thykier
44352da611 Re-added support for completing removals in tab-completer
The broken "do_hint" was caused by lack of versions in the resulting
hint.

Signed-off-by: Niels Thykier <niels@thykier.net>
2012-01-04 18:07:45 +01:00
Niels Thykier
8a1a43c965 Fixed the tab-completer in hint-tester
It was temporarily broken by commit 5814723.

Signed-off-by: Niels Thykier <niels@thykier.net>
2012-01-04 17:59:04 +01:00
Niels Thykier
5814723a08 Completer: use britney.upgrade_me instead of generate_package_list
generate_package_list had the unintended side-effect of regenerating
self.excuses (up top of the original excuses).

Signed-off-by: Niels Thykier <niels@thykier.net>
2012-01-04 16:38:22 +01:00
Niels Thykier
8900680cb1 Removed the notion of "depth" in britney
Presumably there once was a reason for having a notion of "depth",
but these days only 3 "values" were given as "maxdepth":

 * "easy" (for easy hint)
 *  0     (for "main run" or in a "hint"-hint)
 * -1     (for force-hint)

Signed-off-by: Niels Thykier <niels@thykier.net>
2012-01-04 14:20:33 +01:00
Niels Thykier
1c95bec3e9 Pre-append $B2dir/pythonX(.Y) to sys.path if it exists
This allows britney to load a python2.7 variant of the C module when
run under python2.7.

Note for python3, we add "python3" rather than "python3.Y".  This is
to reflect the include path in the python3 package in the archive.

Signed-off-by: Niels Thykier <niels@thykier.net>
2012-01-04 12:02:12 +01:00
Niels Thykier
5dc2888597 Removed unused return value from excuse_unsat_dep
Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-29 14:45:14 +01:00
Niels Thykier
ed21179110 Refactor installability test in iter_packages into separate method
Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-29 14:37:03 +01:00
Niels Thykier
f48897a3ba Make "affected" a set based on the usage of it
"affected" is not allowed to contain duplicates.  Since the current
method of removing any such duplicates is

  affected = list(set(affected))

then the order of affected is not important.

As a side effect, make get_reverse_tree return a set instead of a
list as its return value is always inserted into affected.

Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-29 14:30:51 +01:00
Niels Thykier
de8765e918 Removed compat-mode and (the now redundant) auto-hinter cmd option
Features like the auto-hinter, smooth-upgrades and removal of obsolete
source packages are now unconditionally enabled.

Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-29 14:10:31 +01:00
Niels Thykier
e26bc23818 Constant propagate "strict" variable
Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-29 13:54:43 +01:00
Niels Thykier
05c9979233 Removed even more stuff from dpkg.c
Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-27 11:39:57 +01:00
Niels Thykier
c9160d4ac3 Even more garbage collection of dpkg.c and even some of dpkg-lib.c
Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-26 15:04:56 +01:00
Niels Thykier
8bf3c3d606 More code removal from dpkg.c
Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-25 22:55:50 +01:00
Niels Thykier
7b96c2dfcd Removed unused C-API from dpkg.h
Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-25 22:42:44 +01:00
Niels Thykier
6774ed6877 Fixed a typo in the doxygen.conf file
Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-23 11:16:32 +01:00
Mehdi Dogguy
cabb9deec0 Migrate to python-apt 0.7.100 API
Refreshed original patch and added some minor clean up.

Signed-off-by: Niels Thykier <niels@thykier.net>
Closes: #645818
2011-12-18 21:42:14 +01:00
Niels Thykier
a717404f0d Use "key" instead of "cmp" when sorting excuses
Python3 has deprecated the "cmp" style sorting.

Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-18 21:06:39 +01:00
Niels Thykier
4a1bee1fc9 Import reduce via functools
In Python3 reduce must be imported from functools, python2.6
supports the import as a "nop".

Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-18 21:06:22 +01:00
Niels Thykier
b15a93459c Replaced "x.has_key(y)" with "y in x"
"has_key" is no longer supported for dict in python3.

Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-18 14:53:04 +01:00
Adam D. Barratt
beecac6f4d Remove non-sensical text from should_upgrade_src's docstring
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-12-15 21:31:44 +00:00
Adam D. Barratt
9327529ba8 Automatically remove obsolete source packages from testing.
An "obsolete source" is one which produces no binaries.  This situation
generally arises when all of the binaries which used to be produced by
the source package are now built by other sources.

Sooner or later such sources will probably be auto-crufted from unstable,
but there's no real reason to keep them in testing in the meantime.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-12-15 19:26:45 +00:00
Niels Thykier
bbbe0657fc Purged unused code from lib/britney-py.c
Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-14 09:52:10 +01:00
Niels Thykier
3f4f1b4c23 Refactored the "undo" code into its own method
Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-13 22:30:16 +01:00
Adam D. Barratt
d626dee30c Consistently format package names when processing hints.
The initial packages of a hint are HintItems, whereas other packages
considered whilst processing the hint will be MigrationItems.  In
either case, the version information is irrelevant during the output
of hint processing and only displaying it for some items is confusing
and distracting.  Therefore, whilst processing a hint we always use
unversioned names.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-12-12 19:47:49 +00:00
Julien Cristau
07c3de81de Update INSTALL for python2.5 → 2.6 switch
Signed-off-by: Julien Cristau <jcristau@debian.org>
2011-12-12 10:30:59 +01:00
Niels Thykier
917b848455 Simplified get_reverse_tree
Removed the "packages" variable from get_reverse_tree as it was just a
"list" variant of "seen".

Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-11 23:34:29 +01:00
Niels Thykier
b0ce8b4b7f Removed unused "excluded" argument for some methods
Remove unused "excluded" argument from get_dependency_solvers and
excuse_unsat_deps.  The argument was either always default or an empty
list.

Signed-off-by: Niels Thykier <niels@thykier.net>
2011-12-11 22:59:35 +01:00
Adam D. Barratt
19b5063cea Fix brown paper bug handling "hint"s with multiple package initial sets
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-12-07 22:37:49 +00:00
Adam D. Barratt
4b66ff8290 MigrationItem: use Python 2.6 property decorators for name / suite
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-27 18:18:53 +00:00
Adam D. Barratt
74aa9dfea8 Switch to using Python 2.6
Simply updating the include in britney-py.c, rebuilding and changing
the shebang of britney.py appears to be enough to make the switch in my
tests, so we just do that for now at least.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-21 19:23:06 +00:00
Adam D. Barratt
76b2449c1e Support implicit (t)pu hint items
If a hint item references unstable but its version is not correct for
that suite, we compare the version to the (t)pu version (if any) and
if a match is found update the item as if it had been explicitly
specified as applying to that suite originally.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-15 20:50:09 +00:00
Adam D. Barratt
1e7a372d81 MigrationItem: make the "suite" property read/write
Changing the suite requires update the item's canonical names, as these
need to reflect the new suite.

The property() function only applies to new-style classes, so we also
need to update MigrationItem to be new-style.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-15 20:45:51 +00:00
Adam D. Barratt
8eadbb71b3 MigrationItem: rename _build_name() to _canonicalise_name()
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-15 20:15:49 +00:00
Adam D. Barratt
2860576f1a MigrationItem: separate item name parsing from canonicalisation
This allows us to re-canonicalise the item's name if any of the item's
properties are altered without updating its name.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-15 20:13:03 +00:00
Adam D. Barratt
6de2f0ad22 Merge branch 'p-u' 2011-11-14 21:20:31 +00:00
Adam D. Barratt
f6ba71d0e9 Simplify hint override checking
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-14 19:52:42 +00:00
Adam D. Barratt
4f29a4334c Fix-up hint override logic
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-14 19:15:25 +00:00
Adam D. Barratt
f35342993c Hint: implement equality based on comparing string representations
This will work for "single package" hints, but should be extended to
consider "easy foo/1 bar/1" and "easy bar/1 foo/1" to be equivalent.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-14 19:13:16 +00:00
Julien Cristau
b76d9e189a Ensure package list contains exactly one item in convenience methods
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-14 18:29:43 +00:00
Adam D. Barratt
157b4ee947 Syntax tweak
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-14 18:28:32 +00:00
Adam D. Barratt
1107844e8b Pass the list of supported architectures to MigrationItem
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-11 13:30:53 +00:00
Adam D. Barratt
60b682a4c3 MigrationItem: support "$pkg/$ver/$arch" syntax
This relies on the caller supplying a list of valid architectures, and
assumes that none of the list entries are also valid version strings.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2011-11-11 13:28:04 +00:00