Zac Medico [Sat, 8 Oct 2011 15:15:27 +0000 (08:15 -0700)]
whirlpool.py: tabs to spaces
Zac Medico [Sat, 8 Oct 2011 08:03:17 +0000 (01:03 -0700)]
portage/mail: always UTF-8 charset for MIMEText
This will fix bug #386095.
Zac Medico [Sat, 8 Oct 2011 06:52:21 +0000 (23:52 -0700)]
repoman: add 'repository' to portdbapi cache
This fixes _getMaskAtom to work correctly with the repo atoms that are
generated by MaskManager, solving the issue reported here:
https://github.com/cschwan/sage-on-gentoo/issues/90#issuecomment-
2324953
Zac Medico [Fri, 7 Oct 2011 16:06:49 +0000 (09:06 -0700)]
repoman: tweak myupdates/myheaders commit logic
If we unconditionally exclude myremoved from myupdates, then removed
files will also be excluded from myheaders. This allows us to avoid
unnecessary separate manifest commits in cases when "myheaders" only
contained files that were being removed. Since our code always uses
myupdates + myremoved, this change in logic doesn't break anything.
Zac Medico [Fri, 7 Oct 2011 15:04:19 +0000 (08:04 -0700)]
repoman: tweak commit logic wrt thin-manifest
Don't populate the "myheaders" variable when we have thin-manifests
that contain only DIST entries.
Nathan Phillip Brink [Fri, 7 Oct 2011 05:00:46 +0000 (05:00 +0000)]
Don't do a split signed Manifest commit when no headers will change. Fixes bug #340475.
Zac Medico [Thu, 6 Oct 2011 01:22:35 +0000 (18:22 -0700)]
elog/collect_ebuild_messages: strip trailing \n
This fixes unintended extra blank lines since commit
1c8ff00a26b0e2e3627e9c552374f71235ee6c39.
Zac Medico [Wed, 5 Oct 2011 19:51:05 +0000 (12:51 -0700)]
match_to_list: preserve order
This allows us to properly test behavior of best_match_to_list with
different permutations of the input.
Zac Medico [Wed, 5 Oct 2011 16:11:13 +0000 (09:11 -0700)]
test_best_match_to_list: test all permutations
Zac Medico [Wed, 5 Oct 2011 04:27:03 +0000 (21:27 -0700)]
dblink._elog_process: preserve empty lines
Zac Medico [Wed, 5 Oct 2011 03:20:54 +0000 (20:20 -0700)]
Execute tests bundled with the whirlpool module.
Arfrever Frehtes Taifersar Arahesis [Wed, 5 Oct 2011 01:09:53 +0000 (03:09 +0200)]
Mark some messages for translation.
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