installed packages to newer releases as well. It handles both source
and binary packages, and it can be used to create binary packages for
distribution.
-.SH "EBUILDS, TBZ2S, SETS AND DEPENDENCIES"
+.SH "EBUILDS, TBZ2S, SETS AND ATOMS"
\fBemerge\fR primarily installs packages. You can specify
packages to install in one of four main ways: an \fIebuild\fR,
-a \fItbz2file\fR, a \fIset\fR, or a \fIatom\fR.
+a \fItbz2file\fR, a \fIset\fR, or an \fIatom\fR.
.LP
.TP
.BR ebuild
ignores a trailing slash so that filename completion can be used.
The \fIebuild\fR may also be an actual filename, such as
\fB/usr/portage/app\-admin/python/python\-2.2.1\-r2.ebuild\fR.
-WARNING: The implementation of \fBemerge /path/to/ebuild\fR is broken and so
-this syntax shouldn't be used.
+\fBWARNING:\fR The implementation of \fBemerge /path/to/ebuild\fR is broken and
+so this syntax shouldn't be used.
.TP
.BR tbz2file
A \fItbz2file\fR must be a valid .tbz2 created with \fBebuild
.BR "\-\-with\-bdeps < y | n >"
In dependency calculations, pull in build time dependencies that are not
strictly required. This defaults to \'n\' for installation actions and
-\'y\' for the \-\-depclean action. This setting can be added to
-EMERGE_DEFAULT_OPTS (see make.conf(5)) and later overridden via the command
-line.
+\'y\' for the \fB\-\-depclean\fR action. This setting can be added to
+\fBEMERGE_DEFAULT_OPTS\fR (see make.conf(5)) and later overridden via the
+command line.
.SH "ENVIRONMENT OPTIONS"
.TP
\fBROOT\fR = \fI[path]\fR
distfiles_map.setdefault(myfile, []).append(cpv)
mf = Manifest(mysettings["O"], mysettings["DISTDIR"],
fetchlist_dict=fetchlist_dict)
- required_hash_types = set(portage_const.MANIFEST1_HASH_FUNCTIONS)
- required_hash_types.update(portage_const.MANIFEST2_HASH_FUNCTIONS)
+ # Don't require all hashes since that can trigger excessive
+ # fetches when sufficient digests already exist. To ease transition
+ # while Manifest 1 is being removed, only require hashes that will
+ # exist before and after the transition.
+ required_hash_types = set(portage_const.MANIFEST1_HASH_FUNCTIONS
+ ).intersection(portage_const.MANIFEST2_HASH_FUNCTIONS)
required_hash_types.add("size")
dist_hashes = mf.fhashdict.get("DIST", {})
missing_hashes = set()