| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enabled via cache-format = md5-dict
This format is essentially just flat_hash, using md5 rather than mtime,
and dropping the path component from _eclasses_ entries.
From a speed standpoint, the md5 overhead is ~16% in comparison to mtime,
timed on a modern sandybridge; specifically, validating 29k nodes takes
~8.8s for flat_md5, while the pms norm is ~7.7s.
That said, the cache is /usable/ in places PMS is not; in those cases,
it can definitely be a win since even if the cache is partially old,
it's better than regenerating everything from scratch.
(cherry picked from commit 95ddf97e2f7e7d3f6a072604b2df5f77e9298558)
Change-Id: Ic3561369b7a8be7f86480f339ab1686fddea6dff
|
|
|
|
|
|
|
|
|
|
| |
Specifically, the cache can use any portage supported checksum method,
or use the standard mtime approach. In addition, support controlling
whether or not paths are stored, and generally try to restore some
of the centralization/encapsulation that was in place originally.
(cherry picked from commit bc1aed614fb588f0ade5bcb5d1265a8db0f8d247)
Change-Id: Ic38057e7dbb15063c64a93c99e66e113a7d4c70e
|
|
|
|
|
|
|
|
|
|
|
| |
Controllable via 'cache-format', currently it supports only one cache;
'pms', and defaults to it. If an unsupported cache-format is specified,
the cache is disabled. If pms is specified and metadata/cache directory
doesn't exist, the cache is disabled.
Finally, this rips out the best module support for locally overriding
the cache format used for pregenerated caches; this functionality made
zero sense (upstream determines the format, we use what is available).
|
|
|
|
| |
Those who wanted it have decided to use a different approach.
|
|
|
|
|
| |
This reverts commit ab2a6cc357ba3c8272a4a1556e2c0bcd4bee102e.
Reverting all masters recursion code for now (see bug #386569).
|
|
|
|
|
| |
This reverts commit 5628dac1538985af640102654bce60a8e526daeb.
Reverting all masters recursion code for now (see bug #386569).
|
|
|
|
| |
We can't have portage crash because of circular deps in layout.conf.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This give the user the power to override 'masters' settings from
layout.conf, is case they want use a different set of masters to
satisfy dependencies. This is especially important now that recursive
expansion of masters is supported since commit
ab2a6cc357ba3c8272a4a1556e2c0bcd4bee102e, so that the user can avoid
pulling in unwanted repositories as dependencies, if necessary.
Also, empty 'masters' settings are now supported, in case a repo
wants to avoid implicit inheritance of PORTDIR settings like
package.mask.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
These manifest-hashes warnings are irrelevant to regular users, so suppress
them by default.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The manifest-hashes layout.conf setting simply overrides the hashes
that are generated. When unspecified, the MANIFEST2_HASH_DEFAULTS
constant is used instead (current value contains SHA1, SHA256, and
RMD160).
In order to enable SHA512 and WHIRLPOOL, and drop RMD160 and SHA1,
simply set "manifest-hashes = SHA256 SHA512 WHIRLPOOL" in layout.conf.
As with the previous boolean flags approach, manifest-hashes settings
become redundant and can be removed from layout.conf after a version
of portage with equivalent defaults is stable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The portage.const changes are derived from an earlier patch that was
submitted by Robin H. Johnson <robbat2@gentoo.org>:
http://archives.gentoo.org/gentoo-portage-dev/msg_911574e7cb615f67e4c21fc75c043f65.xml
This patch has no affect on a repository unless it contains a
metadata/layout.conf file which contains boolean flags that enable or
disable manifest hash types. The plan is to deploy portage with this
patch, and once it has been stabilized, add the following
metadata/layout.conf settings to gentoo-x86:
manifest-rmd160 = false
manifest-sha1 = false
manifest-whirlpool = true
The above settings will become the default settings in a future portage
release, making them redundant and eligible for removal from
layout.conf (in order to avoid cluttering layout.conf with obsolete
information).
Future events:
After WHIRLPOOL is supported in stable portage:
- Add WHIRLPOOL to MANIFEST2_HASH_DEFAULTS.
- Remove SHA1 and RMD160 from MANIFEST2_HASH_*.
- Toggle gentoo-x86/metadata/layout.conf settings to match.
After WHIRLPOOL is supported in stable portage for at least 1 year:
- Change MANIFEST2_REQUIRED_HASH to WHIRLPOOL.
- Remove SHA256 from MANIFEST2_HASH_*.
- Toggle gentoo-x86/metadata/layout.conf settings to match.
After SHA-3 is approved:
- Add new hashes to MANIFEST2_HASH_*.
After SHA-3 is supported in stable portage:
- Toggle gentoo-x86/metadata/layout.conf settings to match.
After layout.conf settings correspond to defaults in stable portage:
- Remove redundant settings from gentoo-x86/metadata/layout.conf.
|
|
|
|
|
|
|
|
| |
This controls whether or not the layout.conf
"authoritative-cache = true" setting will be trusted for a particular
repo. It can be enabled globally by setting
"trust-authoritative-cache = true" in the [DEFAULT] section of
repos.conf.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By authorative, this means "the cache is accurate; skip validation". While
a useful hint for a slight speedup in validation, the true gain is for
repositories that are distributed in a fashion that doesn't preserve mtime;
git primarily. Setting authorative-cache = true results in portage
skipping mtime validation checks for the bundled cache, allowing
for git vcs based repos to distribute a cache.
BUG=chromium-os:21049
TEST=dump a cache into metadata/cache, touch it to now, set layout.conf
to authorative-cache=true, verify it doesn't generate cache entries
for that repo.
Change-Id: I92423e679bc171d2411a18d6d3ac22e8ef457753
|
|
|
|
|
|
|
|
|
|
|
| |
This adds three states to layout.conf key use-manifest; false, true, and strict.
false means "don't use manifests at all"
true means "use and generate manifests, but allow them to be missing"
strict means "manifests must be used everywhere in this repo"
BUG=chromium-os:11308
TEST=repoman manifest usage.
|
|
|
|
| |
This will handle the issue reported in bug #383269, comment #5.
|
|
|
|
|
|
| |
This allows repos to disable manifest signatures, which is useful if
they want to prevent merge conflicts like those that thin-manifests is
designed to prevent.
|
|
|
|
|
|
|
|
|
| |
For any repo that wants thin (just src_uri digests), they just need to add
thin-manifests = true
to their layout.conf. Again, this should only be used in repositories
were the backing vcs provides checksums for the ebuild data.
|
|
|
|
|
| |
This enables controling the behaviour (creation and validation) per
repo, and while mildly ugly, refactors in the right direction.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This should prevent strange output buffering/order issues reported when
piping output to head.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The io.open() function is the same as the built-in open() function in
python3, and its implementation is optimized in python-2.7 and later.
In addition to the possible performance improvement, this also allows
us to avoid any future compatibility issues with codecs.open() that
may arise if it is delegated to the built-in open() function as
discussed in PEP 400.
The main caveat involved with io.open() is that TextIOWrapper.write()
raises TypeError if given raw bytes, unlike the streams returned from
codecs.open(). This is mainly an issue for python2 since literal
strings are raw bytes. We handle this by wrapping TextIOWrapper.write()
arguments with our _unicode_decode() function. Also, the
atomic_ofstream class overrides the write() method in python2 so that
it performs automatic coercion to unicode when necessary.
|
|
|
|
| |
This happens if there is an orphan entry in repos.conf.
|
|
|
|
| |
repositories.
|
| |
|
|
|
|
|
|
| |
This ensures compatibility with previous portage versions for cases in
which the user has added PORTDIR to PORTDIR_OVERLAY as a means to modify its
priority relative to overlays when selecting ebuilds.
|
|
|
|
|
| |
The new ordering is such that higher numbers indicate higher
priority.
|
| |
|
|
|
|
|
|
|
| |
This was requested by Daniel Robbins <drobbins@funtoo.org> so that
the funtoo repository can set 'aliases = gentoo' in layout.conf,
relieving funtoo users from the need to do a manual alias configuration
in /etc/portage/repos.conf.
|
| |
|
| |
|
|
|
|
|
| |
Make sure repos in PORTDIR_OVERLAY get a priority even if they are in
repos.conf.
|
|
|
|
| |
This should fix bug #341299.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|