Zac Medico [Wed, 5 Oct 2011 00:59:30 +0000 (17:59 -0700)]
whirlpool.py: fix for python3
Zac Medico [Tue, 4 Oct 2011 16:39:58 +0000 (09:39 -0700)]
whirlpool.py: skip tests during import
Zac Medico [Tue, 4 Oct 2011 15:33:41 +0000 (08:33 -0700)]
RepoConfig: sort __slots__
Zac Medico [Tue, 4 Oct 2011 06:17:22 +0000 (23:17 -0700)]
testManifest: enable manifest-hashes
Zac Medico [Tue, 4 Oct 2011 05:42:22 +0000 (22:42 -0700)]
repoman: bail out if unsupported manifest-hashes
Zac Medico [Tue, 4 Oct 2011 04:44:46 +0000 (21:44 -0700)]
best_match_to_list: order by version number
This should fix the issue shown in bug 375265, comment #10.
Zac Medico [Mon, 3 Oct 2011 20:14:08 +0000 (13:14 -0700)]
Suppress warnings with DeprecationWarning.
These manifest-hashes warnings are irrelevant to regular users, so suppress
them by default.
Zac Medico [Mon, 3 Oct 2011 18:33:08 +0000 (11:33 -0700)]
Warn for questionable layout.conf manifest-hashes
Zac Medico [Mon, 3 Oct 2011 17:42:25 +0000 (10:42 -0700)]
manfest.py: import constants directly
Zac Medico [Mon, 3 Oct 2011 10:02:10 +0000 (03:02 -0700)]
repoman: account for GLEP 59 in RMD160 check
Zac Medico [Mon, 3 Oct 2011 09:42:53 +0000 (02:42 -0700)]
GLEP 59: use manifest-hashes list in layout.conf
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.
Zac Medico [Mon, 3 Oct 2011 00:05:30 +0000 (17:05 -0700)]
Implement GLEP 59 with control via layout.conf.
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.
Zac Medico [Sun, 2 Oct 2011 23:43:27 +0000 (16:43 -0700)]
Manifest.create(): tweak assume-digests code
If we have a local file, before we assume that we don't need to compute
any digests, make sure that the pre-computed digest types are exactly
the same types that we desire.
Zac Medico [Sun, 2 Oct 2011 22:53:39 +0000 (15:53 -0700)]
Manifest.create(): pass allow_* to constructor
This fixes commit
f3101b3adce6731790f80f83fafece54b7bd8a63 to ensure
that Manifest.create() works correctly.
Zac Medico [Sun, 2 Oct 2011 20:22:07 +0000 (13:22 -0700)]
Prefer slot conflict over blocker display.
The slot conflict display has better noise reduction than the
unsatisfied blockers display, so skip unsatisfied blockers display if
there are slot conflicts (see bug #385391). Note that this reverses
the logic from bug 159310, since the slot conflict display has evolved
a lot since then.
Zac Medico [Sun, 2 Oct 2011 20:09:52 +0000 (13:09 -0700)]
print_changelog: if no changelogs, no newline
This will fix bug #385413.
Zac Medico [Sun, 2 Oct 2011 19:52:57 +0000 (12:52 -0700)]
dblink._elog_process: handle newlines in messages
This will fix bug #385341.
Zac Medico [Sun, 2 Oct 2011 06:31:52 +0000 (23:31 -0700)]
checksum.py: use fchksum.fmd5t directly
Zac Medico [Sun, 2 Oct 2011 06:01:17 +0000 (23:01 -0700)]
checksum.py: lazily import bundled whirlpool
Robin H. Johnson [Sat, 1 Oct 2011 07:40:54 +0000 (07:40 +0000)]
Manifest2 hash backend provider: mhash
Offer mhash as a provider for Manifest2 hash generation and validation.
This is important as either of pycrypto or fchksum offer an accelerated
Whirlpool implementation, and hashlib might not offer it. Additionally,
the mhash implementation is accelerated and ships with a rigorious
testsuite.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Zac Medico [Sun, 2 Oct 2011 05:42:22 +0000 (22:42 -0700)]
whirlpool.py: handle xrange for python3
Robin H. Johnson [Sat, 1 Oct 2011 07:40:53 +0000 (07:40 +0000)]
Manifest2 hash: SHA512
Provide SHA512 hash algorithm to be used as new Manifest2 hash.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Robin H. Johnson [Sat, 1 Oct 2011 07:40:52 +0000 (07:40 +0000)]
Manifest2 hash: Whirlpool
Provide public-domain implementation of the Whirlpool hash algorithm to
be used as new Manifest2 hash.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Robin H. Johnson [Sat, 1 Oct 2011 07:40:51 +0000 (07:40 +0000)]
Refactor RMD160 hashlib code for less-hardcoding
To be used shortly for WHIRLPOOL as well as RMD160.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Zac Medico [Sun, 2 Oct 2011 05:17:52 +0000 (22:17 -0700)]
Convert _generate_hash_function into a class.
Zac Medico [Sun, 2 Oct 2011 04:58:35 +0000 (21:58 -0700)]
Convert create_color_func into a class.
Zac Medico [Sun, 2 Oct 2011 02:13:20 +0000 (19:13 -0700)]
Add tests for KEYWORDS masking.
Zac Medico [Sun, 2 Oct 2011 02:12:52 +0000 (19:12 -0700)]
KeywordsManager: support ~* in KEYWORDS
This allows ~* in KEYWORDS to be match by any unstable keyword in the
user's configuration, similar to how * in KEYWORDS already matches any
user configuration. Thanks to Daniel Robbins <drobbins@funtoo.org> for
the suggestion.
Also, the warning about * or -* in KEYWORDS is now gone, so that
ebuilds from the funtoo tree will be usable without triggering
warnings like this. If necessary, we can add ways to selectively
enable these kinds of warnings via layout.conf and/or repos.conf.
Ryan Hill [Sun, 2 Oct 2011 00:34:14 +0000 (17:34 -0700)]
dispatch-conf: fix replace-wscomments pattern
This will fix bug #375613.
Zac Medico [Fri, 30 Sep 2011 22:05:00 +0000 (15:05 -0700)]
repos.conf: implement trust-authoritative-cache
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.
Zac Medico [Fri, 30 Sep 2011 19:08:31 +0000 (12:08 -0700)]
Fix 'authoritative' spelling.
Brian Harring [Fri, 30 Sep 2011 09:37:04 +0000 (02:37 -0700)]
layout.conf: allow a repository to state the cache is authorative
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
Zac Medico [Fri, 30 Sep 2011 17:04:11 +0000 (10:04 -0700)]
depgraph: tweak virtual transition code
This fixes a false --binpkg-respect-use warning that's triggered by
erroneous USE/IUSE comparison between the new-style virtual and an
old-style virtual match.
Zac Medico [Fri, 30 Sep 2011 08:30:00 +0000 (01:30 -0700)]
depgraph: pull in new-style virtuals more
This causes new-style virtuals to get pulled in for virtuals that are
already satisfied by installed old-style virtuals. This case is common,
due to PROVIDE being (removed without revision bump) from lots of
ebuilds.
Zac Medico [Thu, 29 Sep 2011 16:48:55 +0000 (09:48 -0700)]
repoman: never force unsigned manifest commit
This removes a special case where manifests would first be commited
without signatures for category-level or greater commits. This case
behavior wasn't very useful anyway, and would be a problem if the
unsigned manifests got rejected by a commit hook (as may happen in the
near future).
Zac Medico [Thu, 29 Sep 2011 01:41:22 +0000 (18:41 -0700)]
tweak "missed updates" code from last commit
Zac Medico [Thu, 29 Sep 2011 01:10:06 +0000 (18:10 -0700)]
depgraph: verify "missed updates"
Since the change involving slot conflict parent atoms in commit
6cea2091526659521d35be6c8dc7733f69f1a760, we want to check to make
sure we don't display any false positives in the "missed updates".
Zac Medico [Thu, 29 Sep 2011 00:36:08 +0000 (17:36 -0700)]
dispatch-conf: tweak pager basename comparison
Zac Medico [Wed, 28 Sep 2011 18:41:44 +0000 (11:41 -0700)]
dispatch-conf: support PAGER var for bug #384663
Zac Medico [Wed, 28 Sep 2011 17:47:08 +0000 (10:47 -0700)]
etc-update: support PAGER env var for bug #384663
Ruggero Morsucci [Wed, 28 Sep 2011 13:50:04 +0000 (06:50 -0700)]
archive-conf: dispatch_conf import bug #384665
Zac Medico [Wed, 28 Sep 2011 13:46:19 +0000 (06:46 -0700)]
doebuild: allow_missing_manifests AttributeError
Zac Medico [Wed, 28 Sep 2011 06:48:59 +0000 (23:48 -0700)]
Manifest.write(): tweak unlink logic
This narrows the range of possible behaviors, such that the manifest
will always be either written or unlinked, eliminating the possiblity
that a stale manifest will ever be allowed to slip through without
being overwritten or unlinked.
Brian Harring [Fri, 23 Sep 2011 23:43:28 +0000 (16:43 -0700)]
manifest: controllable per repo
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.
Zac Medico [Wed, 28 Sep 2011 05:26:27 +0000 (22:26 -0700)]
depgraph: handle unicode exception for bug 384749
Zac Medico [Tue, 27 Sep 2011 16:46:02 +0000 (09:46 -0700)]
merge: handle \r in file names for bug #384597
Zac Medico [Tue, 27 Sep 2011 14:58:26 +0000 (07:58 -0700)]
porttree.py: remove unused variables
David James [Tue, 27 Sep 2011 00:48:09 +0000 (17:48 -0700)]
Cleanup unused variables / imports reported by pyflakes.
Change-Id: I92890279dc69974da94cc9a8a5483ddd295512d4
Zac Medico [Mon, 26 Sep 2011 19:41:53 +0000 (12:41 -0700)]
tests/emerge: call ebuild(1)
Zac Medico [Sat, 24 Sep 2011 22:23:29 +0000 (15:23 -0700)]
portdbapi.xmatch: fix unknown repo / return empty
We want to return an empty list for the match-* methods, otherwise an
empty string.
Zac Medico [Sat, 24 Sep 2011 22:03:07 +0000 (15:03 -0700)]
portdbapi: deprecate unused 'visible' method
Zac Medico [Sat, 24 Sep 2011 21:44:36 +0000 (14:44 -0700)]
portdbapi.xmatch: combine match-all with others
This eliminates redundant code.
Zac Medico [Sat, 24 Sep 2011 21:31:48 +0000 (14:31 -0700)]
portdbapi.xmatch: combine minimum-all/*-visible
This eliminates redundant code.
Zac Medico [Sat, 24 Sep 2011 21:18:41 +0000 (14:18 -0700)]
portdbapi.xmatch: combine *-visible code
This allows match-visible to avoid calling match-all, which allows it
to avoid an extra loop over all repos.
Zac Medico [Sat, 24 Sep 2011 20:58:16 +0000 (13:58 -0700)]
portdbapi.xmatch: optimize minimum-visible
Also, make repoman cache IUSE, since that's required for _match_use to
work effciently. This will eliminate lots of redundant aux_get calls
for repoman, triggered by USE deps.
Zac Medico [Sat, 24 Sep 2011 20:47:34 +0000 (13:47 -0700)]
dbapi: split _match_use from _iter_match_use
Zac Medico [Sat, 24 Sep 2011 20:14:59 +0000 (13:14 -0700)]
portdbapi: tweak single-tree optimization
This optimizes aux_get and cp_list for cases where we only have a
single tree, which is common for repoman and ebuild(1).
Zac Medico [Sat, 24 Sep 2011 19:50:06 +0000 (12:50 -0700)]
portdbapi.xmatch: use _visible more
Michał Górny [Fri, 23 Sep 2011 09:15:35 +0000 (11:15 +0200)]
Invalidate 'no-herd', there will be no special herds.
Zac Medico [Sat, 24 Sep 2011 19:27:39 +0000 (12:27 -0700)]
portdbapi: split _visible from _iter_visible
Zac Medico [Sat, 24 Sep 2011 19:05:00 +0000 (12:05 -0700)]
portdbapi: move repo loop to _iter_visible
This allows use to avoid using a set to eliminate duplicates, since we
can break out of the repo loop as soon as a given cpv is found to be
visible.
Zac Medico [Sat, 24 Sep 2011 18:29:35 +0000 (11:29 -0700)]
pordbapi: split _iter_visible method from visible
Zac Medico [Sat, 24 Sep 2011 18:13:14 +0000 (11:13 -0700)]
portdbapi: combine gvisible and visible methods
There's no need to have separate methods, and this allows us to avoid
using separate aux_get calls in each method.
Zac Medico [Fri, 23 Sep 2011 21:00:26 +0000 (14:00 -0700)]
portageq best_visible: use match-all-cpv-only
Zac Medico [Fri, 23 Sep 2011 20:50:45 +0000 (13:50 -0700)]
portdbapi.xmatch: deprecate *match-list
These don't mesh well with multi-repo support.
Zac Medico [Fri, 23 Sep 2011 20:00:57 +0000 (13:00 -0700)]
portdbapi.xmatch: fix minimum-all for multi-repo
Zac Medico [Fri, 23 Sep 2011 19:52:58 +0000 (12:52 -0700)]
Fix cp_list mytree argument for match-all.
This is a regression from commit
3d07f74a2fb2e0480e126335f6981218f60da824.
Fabian Groffen [Fri, 23 Sep 2011 18:35:29 +0000 (20:35 +0200)]
install_hooks: fix variable name for PORTAGE_CONFIGROOT
in addition, omit the leading slash, since PORTAGE_CONFIGROOT contains a
trailing slash
Zac Medico [Fri, 23 Sep 2011 18:19:13 +0000 (11:19 -0700)]
portdbapi.xmatch: fix match-all for multi-repo
Zac Medico [Fri, 23 Sep 2011 17:56:15 +0000 (10:56 -0700)]
man/emerge.1: fix spelling of behavior
Zac Medico [Fri, 23 Sep 2011 17:46:38 +0000 (10:46 -0700)]
Revert "unpack: handle non-gz files from deb2targz"
This reverts commit
dd7c57ecb90949ce3306394cfe262566b87351ca.
We'll do this in a new EAPI, as discussed in bug #384147.
Zac Medico [Fri, 23 Sep 2011 17:12:19 +0000 (10:12 -0700)]
unpack: handle non-gz files from deb2targz
This will fix bug #384147.
Arfrever Frehtes Taifersar Arahesis [Fri, 23 Sep 2011 04:03:38 +0000 (06:03 +0200)]
Fix a typo.
Arfrever Frehtes Taifersar Arahesis [Fri, 23 Sep 2011 03:23:01 +0000 (05:23 +0200)]
Fix 'shopt: +s: invalid shell option name' error.
Zac Medico [Fri, 23 Sep 2011 02:29:53 +0000 (19:29 -0700)]
portdbapi.xmatch: deprecate list-visible
Zac Medico [Fri, 23 Sep 2011 01:54:52 +0000 (18:54 -0700)]
Fix Atom.with_repo() bugs.
Zac Medico [Fri, 23 Sep 2011 01:47:04 +0000 (18:47 -0700)]
Fix minimum/bestmatch-visible for multi-repo.
Zac Medico [Fri, 23 Sep 2011 00:53:45 +0000 (17:53 -0700)]
portdbapi: handle multi-repo visiblity
This will fix bug #384063. The xmatch list-visible mode was previously
used to cache a list of all visible cpvs for a given cp, but this is
not useful when there can be duplicate cpvs with different visibility
from multiple repos.
Zac Medico [Fri, 23 Sep 2011 00:47:48 +0000 (17:47 -0700)]
Atom: add a with_repo method for adding a repo
Zac Medico [Fri, 23 Sep 2011 00:17:28 +0000 (17:17 -0700)]
fetch: remove stray print for bug 383859
Zac Medico [Thu, 22 Sep 2011 23:52:47 +0000 (16:52 -0700)]
portageq best_visible: multi-repo support
This will fix bug #384063.
Zac Medico [Thu, 22 Sep 2011 19:06:18 +0000 (12:06 -0700)]
Test direct virtual circular dep for bug #384107.
Zac Medico [Thu, 22 Sep 2011 18:19:05 +0000 (11:19 -0700)]
Test || choice circular handling.
Zac Medico [Thu, 22 Sep 2011 15:44:48 +0000 (08:44 -0700)]
Tweak auto --binpkg-respect-use more.
We don't want to check for --rebuilt-binaries here, unless --usepkg
is also enabled. In fact, we can skip the --rebuilt-binaries check
since people who really want to ensure that binary packages are used
as much as possible will typically specify --usepkgonly (or
--getbinpkgonly which implies --usepkgonly).
Zac Medico [Thu, 22 Sep 2011 03:03:03 +0000 (20:03 -0700)]
Tweak automatic --binpkg-respect-use behavior.
If --binpkg-respect-use is not explicitly specified, we enable the
behavior automatically (like requested in bug #297549), as long as it
doesn't strongly conflict with other options that have been specified.
Strongly conflicting options currently include --usepkgonly and
--rebuilt-binaries.
Sebastian Luther [Thu, 22 Sep 2011 02:04:11 +0000 (19:04 -0700)]
Make --binpkg-respect-use=y the default
Explicitly stating --binpkg-respect-use=y will disable the ignored
binary warning. This will fix bug #297549.
Sebastian Luther [Thu, 22 Sep 2011 01:59:17 +0000 (18:59 -0700)]
Warn about ignored binary packages with non matching USE
Brian Harring [Wed, 21 Sep 2011 22:50:28 +0000 (15:50 -0700)]
add install hooks
Zac Medico [Wed, 21 Sep 2011 19:32:19 +0000 (12:32 -0700)]
emerge: add --complete-graph-if-new-ver < y | n >
Trigger the --complete-graph behavior if an installed package version will
change (upgrade or downgrade). This option is enabled by default.
Sebastian Luther [Wed, 21 Sep 2011 14:11:06 +0000 (07:11 -0700)]
Point users to the man page instead of duplicating it in --help
Sebastian Luther [Wed, 21 Sep 2011 12:23:44 +0000 (14:23 +0200)]
autounmask: Always use unresticted atoms for license and USE changes
See bug 379333.
Sebastian Luther [Mon, 19 Sep 2011 13:07:08 +0000 (15:07 +0200)]
Reject inconsistent backtrack parameters
If backtracking masks a package that caused another package to
be masked, we declare this backtracking node as invalid. The
backtracker should be able to find another node that gives a
valid solution if one exists. This fixes bug 375573.
Zac Medico [Mon, 19 Sep 2011 16:03:24 +0000 (09:03 -0700)]
Document ** keyword for --autounmask-keep-masks.
Zac Medico [Mon, 19 Sep 2011 15:53:55 +0000 (08:53 -0700)]
Suggest --autounmask-keep-masks for ** keyword.
Sebastian Luther [Mon, 19 Sep 2011 11:05:23 +0000 (13:05 +0200)]
Suggest --autounmask-keep-masks instead of --autounmask=n
Currently emerge suggests --autounmask=n if any configuration
change is proposed. With this patch it will print a suggestion
only for mask changes, as these are the changes people complain
most about. It will suggest --autounmask-keep-masks in this case.
Sebastian Luther [Mon, 19 Sep 2011 14:32:08 +0000 (07:32 -0700)]
autounmask: Add --autounmask-keep-masks option
Disables creation of p.unmask entries to allow users
to insist on their masks and hope for another conflict
resolution (i.e. missed update). This fixes bug 372485.
Sebastian Luther [Mon, 19 Sep 2011 11:45:35 +0000 (13:45 +0200)]
autounmask: Add --autounmask-unrestricted-atoms option
The default behavior of --autounmask is now changed back to
the original one, namely to use '=' operators. The
--autounmask-unrestricted-atoms option allows the use of '>='
operators whenever possible. This addresses the issues raised
in bugs 372405, 374331 and 379333.
Zac Medico [Mon, 19 Sep 2011 03:17:44 +0000 (20:17 -0700)]
bin/ebuild: simplify PORTDIR_OVERLAY query
There's no need to query os.environ here, because portage.settings
will inherit the value automatically.
Zac Medico [Mon, 19 Sep 2011 03:05:35 +0000 (20:05 -0700)]
Test --prune with virtual slots.
Zac Medico [Sun, 18 Sep 2011 23:45:20 +0000 (16:45 -0700)]
env_update: add more vardbapi fallback code
For API consumers that call this function without the vardbapi
parameter, it whould continue to work correctly in all the cases
that worked before the vardbapi was added.