portage.git
12 years agoemerge --info: search similar names, bug #444596
Zac Medico [Sat, 24 Nov 2012 22:08:23 +0000 (14:08 -0800)]
emerge --info: search similar names, bug #444596

12 years agodepgraph: split out similar_name_search func
Zac Medico [Sat, 24 Nov 2012 21:56:51 +0000 (13:56 -0800)]
depgraph: split out similar_name_search func

This will allow the code to be re-used for bug #444596. Copyright
begins in 2011 since that's when the code for this feature was first
added in commit aa78cc8da18015b7d1e4eec277b5a7f940fe357c.

12 years agoemerge --info: report unmatched atom, bug #444596
Zac Medico [Sat, 24 Nov 2012 21:14:32 +0000 (13:14 -0800)]
emerge --info: report unmatched atom, bug #444596

12 years agoEAPI="5-progress": Add automatic unpack dependencies.
Arfrever Frehtes Taifersar Arahesis [Sat, 24 Nov 2012 12:28:44 +0000 (13:28 +0100)]
EAPI="5-progress": Add automatic unpack dependencies.

12 years agoFix a typo.
Arfrever Frehtes Taifersar Arahesis [Thu, 22 Nov 2012 22:16:05 +0000 (23:16 +0100)]
Fix a typo.

12 years agoFix some typos and improve amount of whitespace.
Arfrever Frehtes Taifersar Arahesis [Thu, 22 Nov 2012 22:11:35 +0000 (23:11 +0100)]
Fix some typos and improve amount of whitespace.

12 years agostrip trailing whitespace
Mike Frysinger [Thu, 22 Nov 2012 17:42:42 +0000 (12:42 -0500)]
strip trailing whitespace

No functional changes here.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
12 years agoBug #440680: Add boost-utils to list of deprecated eclasses.
Arfrever Frehtes Taifersar Arahesis [Thu, 22 Nov 2012 21:53:09 +0000 (22:53 +0100)]
Bug #440680: Add boost-utils to list of deprecated eclasses.

12 years agoAutomatically generate list of repoman checks.
Arfrever Frehtes Taifersar Arahesis [Thu, 22 Nov 2012 21:48:57 +0000 (22:48 +0100)]
Automatically generate list of repoman checks.
This also reenables InheritDeprecated check, which has been disabled in
commit 597826a1cabf654f9b3fff88425d04303e921577.

12 years agoEventLoop: handle Linux 2.4 errno 38 for epoll
Zac Medico [Thu, 22 Nov 2012 12:23:20 +0000 (04:23 -0800)]
EventLoop: handle Linux 2.4 errno 38 for epoll

12 years agoflat_hash.__iter__: validate keys
Zac Medico [Wed, 21 Nov 2012 04:38:32 +0000 (20:38 -0800)]
flat_hash.__iter__: validate keys

12 years agoAdd Package.eapi property.
Zac Medico [Sat, 17 Nov 2012 17:31:53 +0000 (09:31 -0800)]
Add Package.eapi property.

12 years agoFix some typos.
Arfrever Frehtes Taifersar Arahesis [Fri, 16 Nov 2012 04:46:41 +0000 (05:46 +0100)]
Fix some typos.

12 years agoFix PORTAGE_BUILDIR_LOCKED typo.
Arfrever Frehtes Taifersar Arahesis [Fri, 16 Nov 2012 04:44:05 +0000 (05:44 +0100)]
Fix PORTAGE_BUILDIR_LOCKED typo.

12 years agoEAPI="5-progress": Add package_manager_build_user() and package_manager_build_group().
Arfrever Frehtes Taifersar Arahesis [Fri, 16 Nov 2012 04:35:57 +0000 (05:35 +0100)]
EAPI="5-progress": Add package_manager_build_user() and package_manager_build_group().

12 years agofixdbentries: add deprecation warning
Zac Medico [Thu, 15 Nov 2012 16:07:59 +0000 (08:07 -0800)]
fixdbentries: add deprecation warning

It's unused since commit c974a023882485b8eeae35bac35c1f00d1a0725b.

12 years agoEAPI="4-python" and EAPI="5-progress": Add support for use.aliases and package.use...
Arfrever Frehtes Taifersar Arahesis [Thu, 15 Nov 2012 07:19:21 +0000 (08:19 +0100)]
EAPI="4-python" and EAPI="5-progress": Add support for use.aliases and package.use.aliases.

12 years agovalidate_desktop_entry: ignore Encoding key
Zac Medico [Thu, 15 Nov 2012 03:41:15 +0000 (19:41 -0800)]
validate_desktop_entry: ignore Encoding key

See bug #443100.

12 years agovardbapi.move_ent: rm wrong fixdbentries call
Zac Medico [Thu, 15 Nov 2012 00:02:38 +0000 (16:02 -0800)]
vardbapi.move_ent: rm wrong fixdbentries call

The parent argument was wrong, as reported in bug #367215 comment #22,
and this call was uneeded anyway because dbapi.update_ents handles
it with update_dbentries.

12 years agoAtom.without_use: preserve blocker prefix
Zac Medico [Wed, 14 Nov 2012 19:54:59 +0000 (11:54 -0800)]
Atom.without_use: preserve blocker prefix

12 years agotest_update_dbentry: test bug #367215
Zac Medico [Wed, 14 Nov 2012 17:41:38 +0000 (09:41 -0800)]
test_update_dbentry: test bug #367215

12 years agoupdate_dbentry: avoid self-blocker, bug #367215
Zac Medico [Wed, 14 Nov 2012 17:28:16 +0000 (09:28 -0800)]
update_dbentry: avoid self-blocker, bug #367215

12 years agoPass settings to _pkg_str constructor.
Zac Medico [Wed, 14 Nov 2012 17:16:10 +0000 (09:16 -0800)]
Pass settings to _pkg_str constructor.

Forgotten in commit 0b4e6c27e87e57fac09fa28d3ed1320cb6a83ad9.

12 years agoupdate_dbentry: add parent arg for bug #367215
Zac Medico [Wed, 14 Nov 2012 07:08:05 +0000 (23:08 -0800)]
update_dbentry: add parent arg for bug #367215

12 years agorepoman: validate use restrict atoms, bug #442786
Zac Medico [Wed, 14 Nov 2012 03:17:24 +0000 (19:17 -0800)]
repoman: validate use restrict atoms, bug #442786

12 years agoelog/mod_save_summary: wrap IOError, bug #441948
Zac Medico [Tue, 13 Nov 2012 17:57:26 +0000 (09:57 -0800)]
elog/mod_save_summary: wrap IOError, bug #441948

12 years agoelog/mod_save: wrap IOException for bug #441948
Zac Medico [Tue, 13 Nov 2012 17:48:55 +0000 (09:48 -0800)]
elog/mod_save: wrap IOException for bug #441948

12 years agopkg_pretend: keep temp on failure for bug #442536
Zac Medico [Sun, 11 Nov 2012 17:57:52 +0000 (09:57 -0800)]
pkg_pretend: keep temp on failure for bug #442536

12 years agoemerge-webrsync: rsync -o -g, bug #442190
Zac Medico [Wed, 7 Nov 2012 16:48:40 +0000 (08:48 -0800)]
emerge-webrsync: rsync -o -g, bug #442190

This fixes a regression since the -a option was removed in
commit e672b5ccbbbe38eda5c733fc799a20d92a8bdf75.

12 years agoprepstrip: check USERLAND outside of loop
Zac Medico [Tue, 6 Nov 2012 08:28:40 +0000 (00:28 -0800)]
prepstrip: check USERLAND outside of loop

12 years agoprepstrip: handle empty inode list
Zac Medico [Tue, 6 Nov 2012 05:42:18 +0000 (21:42 -0800)]
prepstrip: handle empty inode list

12 years agoCOLLISION_IGNORE jython compiled modules as well.
Michał Górny [Mon, 5 Nov 2012 08:32:05 +0000 (09:32 +0100)]
COLLISION_IGNORE jython compiled modules as well.

Jython names its compiled modules *$py.class.

12 years agoprepstrip: account for new inode created by strip
Zac Medico [Mon, 5 Nov 2012 02:51:20 +0000 (18:51 -0800)]
prepstrip: account for new inode created by strip

Since strip creates a new inode, we need to know the initial set of
inodes in advance, so that we can avoid interference due to trying
to strip the same (hardlinked) file multiple times in parallel.
See bug #421099.

12 years agorepoman: add check for deprecated licenses, bug 440638
Ulrich Müller [Wed, 31 Oct 2012 17:42:20 +0000 (18:42 +0100)]
repoman: add check for deprecated licenses, bug 440638

12 years agoDeprecate python-distutils-ng.
Michał Górny [Wed, 31 Oct 2012 10:07:19 +0000 (11:07 +0100)]
Deprecate python-distutils-ng.

python-r1 & distutils-r1 are almost drop-in replacements.

12 years agodblink.mergeme(): use stack instead of recursion
Zac Medico [Tue, 30 Oct 2012 23:11:35 +0000 (16:11 -0700)]
dblink.mergeme(): use stack instead of recursion

Maybe this helps reduce memory consumption when merging packages with
lots of subdirectories like gentoo-sources (bug #320859).

12 years agovalidate_desktop_entry: handle df-utils-0.21 hint
Zac Medico [Sun, 28 Oct 2012 19:25:58 +0000 (12:25 -0700)]
validate_desktop_entry: handle df-utils-0.21 hint

12 years agodie: use local IFS setting
Zac Medico [Sat, 27 Oct 2012 10:00:50 +0000 (03:00 -0700)]
die: use local IFS setting

This is needed at least for splitting ${EBUILD_OVERLAY_ECLASSES}, in
order to avoid potentially strange results.

12 years agoemerge --info: show linker version, bug #436294 v2.2.0_alpha142
Zac Medico [Fri, 26 Oct 2012 17:45:54 +0000 (10:45 -0700)]
emerge --info: show linker version, bug #436294

12 years agotest_slot_conflict_rebuild: add a valid rebuild
Zac Medico [Fri, 26 Oct 2012 17:24:37 +0000 (10:24 -0700)]
test_slot_conflict_rebuild: add a valid rebuild

12 years agodepgraph: use _match_slot in multislot match
Zac Medico [Fri, 26 Oct 2012 17:13:16 +0000 (10:13 -0700)]
depgraph: use _match_slot in multislot match

This amkes sub-slot matching work correctly.

12 years agobacktracking: discard extra rebuilds, bug #439688
Zac Medico [Fri, 26 Oct 2012 07:43:20 +0000 (00:43 -0700)]
backtracking: discard extra rebuilds, bug #439688

12 years agoAdd test case for bug #439688.
Zac Medico [Fri, 26 Oct 2012 06:31:36 +0000 (23:31 -0700)]
Add test case for bug #439688.

12 years agodepgraph: trigger rebuild for unbuilt child
Zac Medico [Fri, 26 Oct 2012 06:06:17 +0000 (23:06 -0700)]
depgraph: trigger rebuild for unbuilt child

This will fix bug #439694, where built slot-operator deps failed
to trigger rebuilds if the deps were initially broken.

12 years agodepgraph: no multislot tweak for built slot op
Zac Medico [Fri, 26 Oct 2012 04:57:01 +0000 (21:57 -0700)]
depgraph: no multislot tweak for built slot op

The multislot tweak from bug #220341 (see commit
65a421ae35acd5639ad1258e220754a85e55de6e) triggered erroneous matches
for built slot-operator deps, causing the depgraph to treat unsatisfied
built slot-operator deps as if they were satisfied (one of the issues
uncovered in bug #439694).

12 years agoAdd test case for bug #439694.
Zac Medico [Fri, 26 Oct 2012 03:44:28 +0000 (20:44 -0700)]
Add test case for bug #439694.

12 years agomerge-sync: handle unmerge corner cases
Zac Medico [Thu, 25 Oct 2012 19:48:56 +0000 (12:48 -0700)]
merge-sync: handle unmerge corner cases

In dblink_merged_path we need to distinguish between existing and
non-existing, since we need an existing path of syncfs.

12 years agomerge-sync: syncfs on parent of dir for unmerge
Zac Medico [Thu, 25 Oct 2012 15:31:16 +0000 (08:31 -0700)]
merge-sync: syncfs on parent of dir for unmerge

Note that we use a realpath and a regular stat here, since we want to
follow any symlinks back to the real device where the real parent
directory resides.

12 years agoMergeProcess: cache syncfs libc library lookup
Zac Medico [Thu, 25 Oct 2012 09:32:35 +0000 (02:32 -0700)]
MergeProcess: cache syncfs libc library lookup

12 years agoAdd FEATURES=merge-sync, for bug #439584.
Zac Medico [Thu, 25 Oct 2012 08:35:31 +0000 (01:35 -0700)]
Add FEATURES=merge-sync, for bug #439584.

12 years agoAdd portage.util._ctypes module, for bug #439584.
Zac Medico [Thu, 25 Oct 2012 08:34:37 +0000 (01:34 -0700)]
Add portage.util._ctypes module, for bug #439584.

12 years agodblink: add hooks to sync disk for bug #439584
Zac Medico [Thu, 25 Oct 2012 06:59:31 +0000 (23:59 -0700)]
dblink: add hooks to sync disk for bug #439584

12 years agoUse checkbashisms for init.d scripts, bug #439490
Zac Medico [Thu, 25 Oct 2012 03:21:41 +0000 (20:21 -0700)]
Use checkbashisms for init.d scripts, bug #439490

12 years agoinstall_symlink_html_docs(): Additional fix for compatibility with subslots.
Arfrever Frehtes Taifersar Arahesis [Wed, 24 Oct 2012 21:00:20 +0000 (23:00 +0200)]
install_symlink_html_docs(): Additional fix for compatibility with subslots.

12 years ago.gitignore: ignore tags file (for ctags)
Gregory M. Turner [Tue, 23 Oct 2012 02:35:12 +0000 (19:35 -0700)]
.gitignore: ignore tags file (for ctags)

Signed-off-by: Gregory M. Turner <gmturner007@ameritech.net>
12 years agoemaint logs --help: fix module-options typo
Brian Dolbec [Sun, 21 Oct 2012 18:21:34 +0000 (11:21 -0700)]
emaint logs --help: fix module-options typo

12 years agoTest PopenProcess + PipeLogger.
Zac Medico [Fri, 19 Oct 2012 02:18:14 +0000 (19:18 -0700)]
Test PopenProcess + PipeLogger.

12 years agoPipeReader: unregister in _cancel
Zac Medico [Fri, 19 Oct 2012 01:27:59 +0000 (18:27 -0700)]
PipeReader: unregister in _cancel

12 years agoPipeLogger/Reader: remove redundant isAlive()
Zac Medico [Fri, 19 Oct 2012 01:23:02 +0000 (18:23 -0700)]
PipeLogger/Reader: remove redundant isAlive()

Parent class AbstractPollTask has equivalent implementation.

12 years agoSpawnProcess: split out a PipeLogger class
Zac Medico [Fri, 19 Oct 2012 01:15:00 +0000 (18:15 -0700)]
SpawnProcess: split out a PipeLogger class

The copyright dates for these classes begin in 2008, since SpawnProcess
code is derived from the EbuildFetcherAsync class which was added in
commit e4edadf5ae7063f375d76be151c6d0e949980ecf in 2008.

12 years agoManifestTask: use null stdin when checking sig v2.2.0_alpha141
Zac Medico [Thu, 18 Oct 2012 06:37:20 +0000 (23:37 -0700)]
ManifestTask: use null stdin when checking sig

12 years agoHandle InvalidData from _pkg_str.
Zac Medico [Thu, 18 Oct 2012 05:57:09 +0000 (22:57 -0700)]
Handle InvalidData from _pkg_str.

12 years agoRemove old binhost protocol for bug #438640.
Zac Medico [Thu, 18 Oct 2012 05:34:17 +0000 (22:34 -0700)]
Remove old binhost protocol for bug #438640.

The old protocol has been deprecated since portage-2.1.6 (2009), so it
should be completely irrelevant now.

12 years agoconfig.setcpv: use constructed _pkg_str for mycpv
Zac Medico [Thu, 18 Oct 2012 04:58:08 +0000 (21:58 -0700)]
config.setcpv: use constructed _pkg_str for mycpv

12 years agoemaint: sync MoveHandler check code with dbapi's
Zac Medico [Thu, 18 Oct 2012 04:18:56 +0000 (21:18 -0700)]
emaint: sync MoveHandler check code with dbapi's

12 years agoemaint: fix MoveHandler for EAPI 5 sub-slot
Zac Medico [Thu, 18 Oct 2012 04:06:00 +0000 (21:06 -0700)]
emaint: fix MoveHandler for EAPI 5 sub-slot

12 years agodoebuild: fix REPLACING_VERSIONS EAPI 5 sub-slot
Zac Medico [Thu, 18 Oct 2012 03:43:17 +0000 (20:43 -0700)]
doebuild: fix REPLACING_VERSIONS EAPI 5 sub-slot

12 years agobintree/portree: fix getslot for EAPI 5 sub-slot
Zac Medico [Thu, 18 Oct 2012 03:32:20 +0000 (20:32 -0700)]
bintree/portree: fix getslot for EAPI 5 sub-slot

12 years agoSecuritySet: fix for EAPI 5 sub-slot in SLOT
Zac Medico [Thu, 18 Oct 2012 03:12:33 +0000 (20:12 -0700)]
SecuritySet: fix for EAPI 5 sub-slot in SLOT

12 years agoLibraryConsumerSet: fix for EAPI 5 sub-slot
Zac Medico [Thu, 18 Oct 2012 03:06:45 +0000 (20:06 -0700)]
LibraryConsumerSet: fix for EAPI 5 sub-slot

12 years agoStaticFileSet: fix for EAPI 5 sub-slot in SLOT
Zac Medico [Thu, 18 Oct 2012 03:02:26 +0000 (20:02 -0700)]
StaticFileSet: fix for EAPI 5 sub-slot in SLOT

12 years ago_sets/dbapi: fix for EAPI 5 sub-slot in SLOT
Zac Medico [Thu, 18 Oct 2012 02:51:52 +0000 (19:51 -0700)]
_sets/dbapi: fix for EAPI 5 sub-slot in SLOT

12 years agodepgraph: fix for EAPI 5 sub-slot in SLOT
Zac Medico [Thu, 18 Oct 2012 02:35:09 +0000 (19:35 -0700)]
depgraph: fix for EAPI 5 sub-slot in SLOT

12 years agoactions.py: use _pkg_str for EAPI 5 sub-slot
Zac Medico [Thu, 18 Oct 2012 02:09:49 +0000 (19:09 -0700)]
actions.py: use _pkg_str for EAPI 5 sub-slot

12 years agorepoman: fix KEYWORDS.dropped for EAPI 5 sub-slot
Zac Medico [Thu, 18 Oct 2012 01:59:40 +0000 (18:59 -0700)]
repoman: fix KEYWORDS.dropped for EAPI 5 sub-slot

12 years agogetmaskingreason: use _pkg_str
Zac Medico [Thu, 18 Oct 2012 01:56:18 +0000 (18:56 -0700)]
getmaskingreason: use _pkg_str

12 years agoManifestTask: stricter gpg key comparison
Zac Medico [Thu, 18 Oct 2012 01:43:27 +0000 (18:43 -0700)]
ManifestTask: stricter gpg key comparison

Use normalization and == comparison instead of the "in" operator.

12 years agoManifestTask: use PopenProcess more
Zac Medico [Thu, 18 Oct 2012 01:24:34 +0000 (18:24 -0700)]
ManifestTask: use PopenProcess more

12 years agoPopenProcess: child_watch_add if no pipe_reader
Zac Medico [Thu, 18 Oct 2012 01:23:11 +0000 (18:23 -0700)]
PopenProcess: child_watch_add if no pipe_reader

12 years agoMaskManager: use _pkg_str
Zac Medico [Thu, 18 Oct 2012 01:02:50 +0000 (18:02 -0700)]
MaskManager: use _pkg_str

12 years agoconfig.setcpv: remove unused slot variable
Zac Medico [Thu, 18 Oct 2012 00:50:34 +0000 (17:50 -0700)]
config.setcpv: remove unused slot variable

12 years agovartree.py: account for EAPI 5 sub-slot in SLOT
Zac Medico [Thu, 18 Oct 2012 00:48:13 +0000 (17:48 -0700)]
vartree.py: account for EAPI 5 sub-slot in SLOT

12 years agocreate_world_atom: account for EAPI 5 sub-slot
Zac Medico [Thu, 18 Oct 2012 00:11:37 +0000 (17:11 -0700)]
create_world_atom: account for EAPI 5 sub-slot

12 years agoglsa: account for EAPI 5 sub-slot in SLOT
Zac Medico [Thu, 18 Oct 2012 00:04:53 +0000 (17:04 -0700)]
glsa: account for EAPI 5 sub-slot in SLOT

12 years agoglsa.py: use try/finally for urlopen
Zac Medico [Wed, 17 Oct 2012 22:57:38 +0000 (15:57 -0700)]
glsa.py: use try/finally for urlopen

Fixes this error reported with python 2.7.3:

AttributeError: addinfourl instance has no attribute '__exit__'

12 years agoMake __source_all_bashrcs() and install_symlink_html_docs() compatible with subslots.
Arfrever Frehtes Taifersar Arahesis [Wed, 17 Oct 2012 22:54:14 +0000 (00:54 +0200)]
Make __source_all_bashrcs() and install_symlink_html_docs() compatible with subslots.

12 years agoMake keepdir() compatible with subslots.
Arfrever Frehtes Taifersar Arahesis [Wed, 17 Oct 2012 22:41:38 +0000 (00:41 +0200)]
Make keepdir() compatible with subslots.

12 years agoScheduler: tweak job_delay calc for bug #438650 v2.2.0_alpha140
Zac Medico [Wed, 17 Oct 2012 03:36:49 +0000 (20:36 -0700)]
Scheduler: tweak job_delay calc for bug #438650

* Max delay is reduced to 5 seconds (was 10).
* Calculated delay is now proportional to current/desired load ratio.
* When a delay is triggered, an event loop timeout is used to ensure
  that scheduling occurs as soon as the delay expires (rather than
  waiting for the _loadavg_latency timeout to expire).

12 years agoManifestTask: improve gpg key parsing
Zac Medico [Wed, 17 Oct 2012 02:01:35 +0000 (19:01 -0700)]
ManifestTask: improve gpg key parsing

This fixes it to correctly parse longer key IDs, which do not fit on
the first line of gpg output. Without this fix, failure to parse the
key results in manifest being re-signed even though they already have
a signature with the correct key.

12 years agoMove portage.dep._internal_warnings to portage. v2.2.0_alpha139
Zac Medico [Tue, 16 Oct 2012 23:31:48 +0000 (16:31 -0700)]
Move portage.dep._internal_warnings to portage.

12 years agoemerge: optimize --moo, remove deprecated moo
Zac Medico [Tue, 16 Oct 2012 23:15:46 +0000 (16:15 -0700)]
emerge: optimize --moo, remove deprecated moo

The --moo action is fast like --help now. The "moo" argument has been
deprecated since bug #389609, and is now removed.

12 years agoManifestTask: remove unneeded _proc attribute
Zac Medico [Tue, 16 Oct 2012 22:45:17 +0000 (15:45 -0700)]
ManifestTask: remove unneeded _proc attribute

It's enough to reference the PopenProcess instance as
self._current_task while it's alive (CompositeTask._cancel() can kill
it via this).

12 years agorepoman: allow 40 digit gpg key
Zac Medico [Tue, 16 Oct 2012 22:35:03 +0000 (15:35 -0700)]
repoman: allow 40 digit gpg key

12 years agoemerge_main: use parse_opts for --help
Zac Medico [Tue, 16 Oct 2012 22:16:22 +0000 (15:16 -0700)]
emerge_main: use parse_opts for --help

12 years agorepoman: validate PORTAGE_GPG_KEY
Zac Medico [Tue, 16 Oct 2012 21:46:44 +0000 (14:46 -0700)]
repoman: validate PORTAGE_GPG_KEY

12 years agoTest PopenProcess.
Zac Medico [Tue, 16 Oct 2012 19:41:00 +0000 (12:41 -0700)]
Test PopenProcess.

12 years agoCompositeTask._start_task: propagate scheduler
Zac Medico [Tue, 16 Oct 2012 19:27:46 +0000 (12:27 -0700)]
CompositeTask._start_task: propagate scheduler

12 years agoHandle missing mkfifo for Jython.
Zac Medico [Tue, 16 Oct 2012 18:56:13 +0000 (11:56 -0700)]
Handle missing mkfifo for Jython.

12 years agoPopenProcess: integrate PipeReader support
Zac Medico [Tue, 16 Oct 2012 17:31:34 +0000 (10:31 -0700)]
PopenProcess: integrate PipeReader support

12 years agorun_action: gc locals of calling func
Zac Medico [Tue, 16 Oct 2012 15:55:22 +0000 (08:55 -0700)]
run_action: gc locals of calling func