summaryrefslogtreecommitdiffstats
path: root/pym/portage/repository
Commit message (Collapse)AuthorAgeFilesLines
...
* RepoConfig: sort __slots__Zac Medico2011-10-151-2/+2
|
* layout.conf: add git friendly pregenerated cache formatBrian Harring2011-10-141-1/+5
| | | | | | | | | | | | | | | | | 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
* cache: rewrite to support arbitrary validation methodBrian Harring2011-10-141-7/+11
| | | | | | | | | | 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
* layout.conf: make the pregenerated cache format controllableBrian Harring2011-10-131-1/+18
| | | | | | | | | | | 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).
* layout.conf: revert authoritative-cache supportZac Medico2011-10-131-25/+2
| | | | Those who wanted it have decided to use a different approach.
* Revert "RepoConfigLoader: Recursively expand masters."Zac Medico2011-10-091-27/+21
| | | | | This reverts commit ab2a6cc357ba3c8272a4a1556e2c0bcd4bee102e. Reverting all masters recursion code for now (see bug #386569).
* Revert "get_masters: protect against infinite recursion"Zac Medico2011-10-091-30/+23
| | | | | This reverts commit 5628dac1538985af640102654bce60a8e526daeb. Reverting all masters recursion code for now (see bug #386569).
* get_masters: protect against infinite recursionZac Medico2011-10-081-23/+30
| | | | We can't have portage crash because of circular deps in layout.conf.
* RepoConfig: allow repos.conf 'masters' overrideZac Medico2011-10-081-8/+18
| | | | | | | | | | | | | 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.
* RepoConfigLoader: Recursively expand masters.Arfrever Frehtes Taifersar Arahesis2011-10-081-21/+27
|
* Mark some messages for translation.Arfrever Frehtes Taifersar Arahesis2011-10-051-10/+14
|
* RepoConfig: sort __slots__Zac Medico2011-10-041-4/+6
|
* Suppress warnings with DeprecationWarning.Zac Medico2011-10-031-2/+2
| | | | | These manifest-hashes warnings are irrelevant to regular users, so suppress them by default.
* Warn for questionable layout.conf manifest-hashesZac Medico2011-10-031-1/+23
|
* GLEP 59: use manifest-hashes list in layout.confZac Medico2011-10-031-18/+7
| | | | | | | | | | | | | 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.
* Implement GLEP 59 with control via layout.conf.Zac Medico2011-10-021-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* repos.conf: implement trust-authoritative-cacheZac Medico2011-09-301-1/+23
| | | | | | | | 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.
* Fix 'authoritative' spelling.Zac Medico2011-09-301-3/+3
|
* layout.conf: allow a repository to state the cache is authorativeBrian Harring2011-09-301-1/+3
| | | | | | | | | | | | | | | | 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
* manifest: controllable per repoBrian Harring2011-09-271-1/+14
| | | | | | | | | | | 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.
* RepoConfigLoader: handle ValueError from shlexZac Medico2011-09-171-1/+8
| | | | This will handle the issue reported in bug #383269, comment #5.
* metadata/layout.conf: "sign-manifests = false"Zac Medico2011-09-121-1/+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.
* add layout.conf awareness of thin-manifestsBrian Harring2011-09-121-2/+9
| | | | | | | | | 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.
* Bind all manifest access through repoconfigsBrian Harring2011-09-121-1/+6
| | | | | This enables controling the behaviour (creation and validation) per repo, and while mildly ugly, refactors in the right direction.
* refactoring; unhide part of the parsing functionalityBrian Harring2011-09-121-100/+98
|
* python3.2 fixes: ResourceWarning: unclosed fileZac Medico2011-08-241-2/+7
|
* SafeConfigParser: renamed to ConfigParser in 3.2Zac Medico2011-08-241-1/+6
|
* action_info: don't mix print with writemsg_stdoutZac Medico2011-08-041-1/+1
| | | | | This should prevent strange output buffering/order issues reported when piping output to head.
* Migrate from codecs.open() to io.open().Zac Medico2011-07-101-3/+3
| | | | | | | | | | | | | | | | | 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.
* RepoConfig: ignore missing name if no locationZac Medico2011-07-081-1/+3
| | | | This happens if there is an orphan entry in repos.conf.
* Bug #370693: Handle package.use.force and package.use.mask files from masterArfrever Frehtes Taifersar Arahesis2011-06-191-0/+3
| | | | repositories.
* Update timestamps in headers of modified files.Zac Medico2011-06-031-1/+1
|
* repository/config: PORTDIR/overlay priority tweakZac Medico2011-06-021-10/+18
| | | | | | 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.
* RepoConfig: invert repo priority orderingZac Medico2011-01-021-5/+5
| | | | | The new ordering is such that higher numbers indicate higher priority.
* prepos_order: avoid duplicates from aliasesZac Medico2010-12-191-1/+4
|
* Support aliases in metadata/layout.conf.Zac Medico2010-10-221-0/+10
| | | | | | | 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.
* Fix RepoConfig.info_string() for aliases.Zac Medico2010-10-221-1/+1
|
* Fix 'Unavailable repository' layout.conf path.Zac Medico2010-10-221-0/+2
|
* Ensure repo.priority is initialized.Sebastian Luther2010-10-201-1/+5
| | | | | Make sure repos in PORTDIR_OVERLAY get a priority even if they are in repos.conf.
* Fix RepoConfig.update() for missing_repo_name.Sebastian Luther2010-10-161-0/+1
| | | | This should fix bug #341299.
* Fix RepoConfig.info_string() for eclass-overridesZac Medico2010-10-161-1/+2
|
* Avoid reapath('') expansion to cwd for repos.Zac Medico2010-10-111-2/+6
|
* Make repoman ignore sets.conf.v2.2_rc91Zac Medico2010-10-071-2/+3
|
* Fix KeyError for missing repo in eclass_overridesZac Medico2010-10-071-1/+1
|
* Add _gen_valid_repo() to ensure valid repo name.Zac Medico2010-10-051-7/+16
|
* Handle invalid PORTDIR and realpath issuesSebastian Luther2010-10-031-5/+5
|
* Include repo info in emerge --infoSebastian Luther2010-10-031-0/+25
|
* Bug #339402 - Ensure valid repo name.Zac Medico2010-10-021-0/+17
|
* Bug #339402 - Prevent whitespace in repo names.Zac Medico2010-10-021-0/+1
|
* Avoid 'Unavailable repository' with aliases.Zac Medico2010-10-011-0/+4
|