DEVELOPING: Use Requested instead of Reported

Signed-off-by: Alexander Berntsen <bernalex@gentoo.org>
emaint merges: Replace .append() with .add() for set variables (bug 520542)

pkg_atoms and pkg_invalid_entries were changed to sets, but were not updated
in the function that added to them.
Fix porttree_root deprecation warnings

export PYTHONWARNINGS=d to see the warnings that this fixes.
package_tracker.match: account for unevaluated_atom

This fixes the match cache to properly account for
atom.unevaluated_atom, which is required since match_from_list output
depends on atom.unevaluated_atom (for IUSE matching logic). Note that
similar issues were also fixed in commits
d603f1440c814377fbc1965729fd9b6b008cf76d and
5438bb29c996d777b6343515995176912a7c137f.

X-Gentoo-Bug: 515230
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=515230
bin/misc-functions.sh: Empty flag variable 'error' before (re-)use

Prevent subsequent .png files from inheriting error status from earlier
file.

Reviewed-By: Michał Górny <mgorny@gentoo.org>
Acked-By: Brian Dolbec <dolsen@gentoo.org>
vdb: Preserve := when storing uninstalled dependency atoms

Make the slot operator processing code not remove the := operator from
vdb dependency entries when the underlying package is not installed.

This fixes a bug where dependencies like || ( A:= B:= ) were stored as
|| ( A:0/1= B ) if B was not installed. This especially confused
dependency comparisons in @changed-deps.

With this patch, Portage stores the original := (or :slot=) atom in the
vdb. This fixes the issue while preserving the same behavior in the
current dependency resolver.

Acked-by: Alexander Berntsen <bernalex@gentoo.org>
Acked-by: Brian Dolbec <dolsen@gentoo.org>
Reviewed-by: Zac Medico <zmedico@gentoo.org>
sets: Introduce @changed-deps to update packages which need dep changes

The @changed-deps set compares the RDEPEND and PDEPEND entries of
installed packages with the metadata of matching ebuilds, triggering
rebuilds whenever a difference in dependencies is detected.

This set can be used to force installed package metadata updates when
ebuild dependencies are changed in-place. In particular, it can be used
to restore dependency tree integrity after disabling --dynamic-deps.

Acked-by: Alexander Berntsen <bernalex@gentoo.org>
Acked-by: Brian Dolbec <dolsen@gentoo.org>
dep_check: fix bug #515230

This fixes dep_check so that graph packages do not mask non-graph
packages (in the same slot) unless the graph packages also match the
dependency atom being satisfied. This requires logic changes in both
_dep_check_composite_db._visible and dep_zapdeps.

Also, fix _dep_check_composite_db match / _cpv_pkg_map
interactions to ensure correct match results.

X-Gentoo-Bug: 515230
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=515230
_slot_operator_update_probe: fix bug #508762

This fixes the check_reverse_dependencies function (inside the depgraph
_slot_operator_update_probe method) to account for irrelevant parent
atoms from parents that need to be rebuilt or have been involved in
unsolved slot conflicts.

X-Gentoo-Bug: 508762
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=508762
Reviewed-by: Brian Dolbec <dolsen@gentoo.org>
QA: Add a set of checks for bash-completion files

Add checks for common mistakes when installing bash completion files:
legacy directory, incorrect naming, missing aliases, deprecated 'have'
function.

Acked-by: Brian Dolbec <dolsen@gentoo.org>
repoman: Add check for missing slot values/slot operators

The idea if that a particular dependency atom matches more than one slot
of a package, you are supposed to either use := or :* operator
(or a specific :slot dependency), whichever is appropriate.

This will help catching mistakes (when packages become slotted) and make
cross-slot behavior clear (it is undefined with no slot operator). I
will estimate the amount of new warnings later.
repoman: Check for missing slot operators on multi-subslot packages

If a package is not slotted but specifies multiple subslots, it is still
desirable to use the := slot operator. If the package does not need to
lock on specific subslot, the ebuild author may specify the slot
explicitly to silence the warning.

The extra check was suggested by Sebastian Luther.