portage.git
13 years agoemerge.1: escape hyphens v2.2.0_alpha25
Zac Medico [Tue, 22 Feb 2011 17:57:25 +0000 (09:57 -0800)]
emerge.1: escape hyphens

13 years agoemerge: mention revdep-rebuild in depclean help
Zac Medico [Tue, 22 Feb 2011 17:31:50 +0000 (09:31 -0800)]
emerge: mention revdep-rebuild in depclean help

13 years agoemerge.1: mention revdep-rebuild in depclean docs
Zac Medico [Tue, 22 Feb 2011 17:30:09 +0000 (09:30 -0800)]
emerge.1: mention revdep-rebuild in depclean docs

13 years agoshow_depclean_suggestion: use ewarn, not einfo
Zac Medico [Tue, 22 Feb 2011 03:04:10 +0000 (19:04 -0800)]
show_depclean_suggestion: use ewarn, not einfo

13 years agochk_updated_cfg_files: don't display ._cfg0000_
Zac Medico [Tue, 22 Feb 2011 02:59:24 +0000 (18:59 -0800)]
chk_updated_cfg_files: don't display ._cfg0000_

13 years agoUpdate date headers in modified files.
Zac Medico [Tue, 22 Feb 2011 02:50:33 +0000 (18:50 -0800)]
Update date headers in modified files.

13 years agochk_updated_cfg_files: fix plurality of message
Zac Medico [Tue, 22 Feb 2011 02:38:45 +0000 (18:38 -0800)]
chk_updated_cfg_files: fix plurality of message

This will fix bug #355803.

13 years agoemerge.1: fix arg description more for bug 354137
Zac Medico [Tue, 22 Feb 2011 02:19:45 +0000 (18:19 -0800)]
emerge.1: fix arg description more for bug 354137

13 years agopost_emerge: suggest depclean after world update
Zac Medico [Tue, 22 Feb 2011 02:07:07 +0000 (18:07 -0800)]
post_emerge: suggest depclean after world update

This is part of bug #354787.

13 years agopost_emerge: pass in more info
Zac Medico [Tue, 22 Feb 2011 00:35:14 +0000 (16:35 -0800)]
post_emerge: pass in more info

This makes it possible to do things like give special suggestions after
world updates.

13 years agoebuild.sh: remove unused PWORKDIR variable
Zac Medico [Mon, 21 Feb 2011 16:17:09 +0000 (08:17 -0800)]
ebuild.sh: remove unused PWORKDIR variable

13 years agoSubProcess: notify exit listeners in _poll
Zac Medico [Sun, 20 Feb 2011 09:42:14 +0000 (01:42 -0800)]
SubProcess: notify exit listeners in _poll

13 years agoScheduler: ensure _prefetchers is cleared
Zac Medico [Sun, 20 Feb 2011 09:40:37 +0000 (01:40 -0800)]
Scheduler: ensure _prefetchers is cleared

13 years agoUpdate date headers in modified files.
Zac Medico [Sun, 20 Feb 2011 00:00:16 +0000 (16:00 -0800)]
Update date headers in modified files.

13 years agorepoman: variable.usedwithhelpers tighten regex
Zac Medico [Sat, 19 Feb 2011 23:49:13 +0000 (15:49 -0800)]
repoman: variable.usedwithhelpers tighten regex

This will fix bug #355621.

13 years ago_eapi4_src_install: handle empty DOCS like PMS
Zac Medico [Sat, 19 Feb 2011 23:27:32 +0000 (15:27 -0800)]
_eapi4_src_install: handle empty DOCS like PMS

This will fix bug #355635.

13 years agocheck_required_use: improve missing IUSE error
Zac Medico [Sat, 19 Feb 2011 22:53:45 +0000 (14:53 -0800)]
check_required_use: improve missing IUSE error

This will fix bug #355629.

13 years agodocompress, prepcompress: Add missing quotes.
Ulrich Mueller [Fri, 18 Feb 2011 23:42:36 +0000 (00:42 +0100)]
docompress, prepcompress: Add missing quotes.

13 years agoemerge: fix --sync cvs error message
Zac Medico [Fri, 18 Feb 2011 16:44:31 +0000 (08:44 -0800)]
emerge: fix --sync cvs error message

13 years agoemerge: warn to stderr if post_* hooks fail
Zac Medico [Fri, 18 Feb 2011 16:16:31 +0000 (08:16 -0800)]
emerge: warn to stderr if post_* hooks fail

13 years agoemerge: support post_emerge hook like post_sync
Gokdeniz Karadag [Fri, 18 Feb 2011 15:57:25 +0000 (07:57 -0800)]
emerge: support post_emerge hook like post_sync

This will fix bug #355447.

13 years agoegencache: fix cmp_func for python3
Zac Medico [Fri, 18 Feb 2011 15:37:25 +0000 (07:37 -0800)]
egencache: fix cmp_func for python3

13 years agounmerge: don't show null/ cat in unmatched atoms
Zac Medico [Fri, 18 Feb 2011 15:15:15 +0000 (07:15 -0800)]
unmerge: don't show null/ cat in unmatched atoms

This will fix bug #269534.

13 years agoBinpkgVerifier: disable color in background mode
Zac Medico [Fri, 18 Feb 2011 12:05:16 +0000 (04:05 -0800)]
BinpkgVerifier: disable color in background mode

13 years agomail: handle unicode in subject more for python3
Zac Medico [Fri, 18 Feb 2011 08:32:27 +0000 (00:32 -0800)]
mail: handle unicode in subject more for python3

13 years agomail: handle unicode in subject for python3
Zac Medico [Fri, 18 Feb 2011 08:03:10 +0000 (00:03 -0800)]
mail: handle unicode in subject for python3

13 years agoResolverDepthTestCase: test --selective more
Zac Medico [Thu, 17 Feb 2011 10:43:02 +0000 (02:43 -0800)]
ResolverDepthTestCase: test --selective more

13 years agoemerge --sync: display message when cvs fails
Zac Medico [Thu, 17 Feb 2011 10:32:20 +0000 (02:32 -0800)]
emerge --sync: display message when cvs fails

13 years agoUpdate date headers for modified files. v2.2.0_alpha24
Zac Medico [Tue, 15 Feb 2011 17:22:31 +0000 (09:22 -0800)]
Update date headers for modified files.

13 years agodepgraph: fix virtual code to handle unsatisfied
Zac Medico [Mon, 14 Feb 2011 17:00:42 +0000 (09:00 -0800)]
depgraph: fix virtual code to handle unsatisfied

13 years agodepgraph: --deep=0 is equivalent to no deep param
Zac Medico [Mon, 14 Feb 2011 16:43:37 +0000 (08:43 -0800)]
depgraph: --deep=0 is equivalent to no deep param

13 years agodepgraph: --nodeps overrides --complete-graph
Zac Medico [Mon, 14 Feb 2011 16:32:32 +0000 (08:32 -0800)]
depgraph: --nodeps overrides --complete-graph

13 years agoRecognize git-2.eclass when reinstalling self.
Zac Medico [Mon, 14 Feb 2011 15:46:39 +0000 (07:46 -0800)]
Recognize git-2.eclass when reinstalling self.

13 years agoRecognize git-2.eclass as a live eclass.
Zac Medico [Mon, 14 Feb 2011 15:36:12 +0000 (07:36 -0800)]
Recognize git-2.eclass as a live eclass.

13 years agodepgraph: fix KeyError in select_atoms
Zac Medico [Mon, 14 Feb 2011 15:29:33 +0000 (07:29 -0800)]
depgraph: fix KeyError in select_atoms

This happens if depstring evaluates to nothing.

13 years agoget_dep_chain: fix broken parent_arg reference
Zac Medico [Mon, 14 Feb 2011 07:20:48 +0000 (23:20 -0800)]
get_dep_chain: fix broken parent_arg reference

Broken since commit b4f98ec5a1eb2e010a455b19db5bef8d61def241.

13 years agodepgraph: normalize indentation
Zac Medico [Mon, 14 Feb 2011 07:17:04 +0000 (23:17 -0800)]
depgraph: normalize indentation

13 years agodepgraph: ignore fewer deps
Zac Medico [Mon, 14 Feb 2011 06:40:57 +0000 (22:40 -0800)]
depgraph: ignore fewer deps

This restores some desired logic that was left out of commit
5655b4dcfe5e9dae5e9d6352d791c3d04953baf7.

13 years agodepgraph: remove redundant "empty" param checks
Zac Medico [Mon, 14 Feb 2011 06:05:52 +0000 (22:05 -0800)]
depgraph: remove redundant "empty" param checks

Since commit 878f166c5a06b0ab6c5a34dd658c878cc7605fe7, empty implies
deep = True, so these checks are redundant.

13 years agodepgraph: --nodeps overrides --deep
Zac Medico [Mon, 14 Feb 2011 05:50:29 +0000 (21:50 -0800)]
depgraph: --nodeps overrides --deep

13 years agoget_dep_chain: fix unsatisfied_dependency logic
Zac Medico [Mon, 14 Feb 2011 04:57:57 +0000 (20:57 -0800)]
get_dep_chain: fix unsatisfied_dependency logic

Always prefer parents for which the parent atom is unsatisfied by the
child node. This seems to be the intention of the code, though it may
not have behaved correctly due to continuation of the parent loop.

13 years agoFix unhandled FileNotFound from previous commit.
Zac Medico [Mon, 14 Feb 2011 03:59:24 +0000 (19:59 -0800)]
Fix unhandled FileNotFound from previous commit.

There is an existing handler for EnvironmentError, so raise that
instead of FileNotFound.

13 years agoAdd support for grabbing Packages files using external programs.
David James [Fri, 11 Feb 2011 17:25:26 +0000 (09:25 -0800)]
Add support for grabbing Packages files using external programs.

If the user specifies FETCHCOMMAND_*, Portage should honor this when grabbing
Packages files. This allows users to setup support for grabbing Packages files
from other protocols.

BUG=chrome-os-partner:2026
TEST=Try downloading prebuilts from gs:// when FETCHCOMMAND_GS is setup in make.conf

Change-Id: I96b239819351633dd02d608954e81a1c363a4687

Review URL: http://codereview.chromium.org/6458015

13 years agoget_dep_chain: prefer parents in merge list
Zac Medico [Mon, 14 Feb 2011 03:28:07 +0000 (19:28 -0800)]
get_dep_chain: prefer parents in merge list

This will fix bug #354747.

13 years agoDisplay: tweak output and docs for bug 58416
Zac Medico [Mon, 14 Feb 2011 02:20:16 +0000 (18:20 -0800)]
Display: tweak output and docs for bug 58416

Now the masking display is disabled by the --quiet option if the
--verbose  option is not enabled simultaneously. Also, docs are
updated as per bug 58416, comment #11 and #12.

13 years agoResolverDepthTestCase: add more cases
Zac Medico [Sun, 13 Feb 2011 17:35:07 +0000 (09:35 -0800)]
ResolverDepthTestCase: add more cases

13 years agoegencache: --preserve-comments allow missing file
Zac Medico [Sun, 13 Feb 2011 14:18:00 +0000 (06:18 -0800)]
egencache: --preserve-comments allow missing file

This will fix bug #354687.

13 years agodepgraph: fix and test depth control for virtuals
Zac Medico [Sun, 13 Feb 2011 13:55:18 +0000 (05:55 -0800)]
depgraph: fix and test depth control for virtuals

13 years agoResolverDepthTestCase: test new-style virtuals
Zac Medico [Sun, 13 Feb 2011 13:00:28 +0000 (05:00 -0800)]
ResolverDepthTestCase: test new-style virtuals

13 years agoResolverDepthTestCase: add more cases
Zac Medico [Sun, 13 Feb 2011 11:34:32 +0000 (03:34 -0800)]
ResolverDepthTestCase: add more cases

13 years agodepgraph: tweak depth calculation for virtuals
Zac Medico [Sun, 13 Feb 2011 11:13:34 +0000 (03:13 -0800)]
depgraph: tweak depth calculation for virtuals

Recursively traversed virtual dependencies, and their direct
dependencies, are considered to have the same depth as direct
dependencies.

13 years agodepgraph: fix and test --deep control of depth
Zac Medico [Sun, 13 Feb 2011 10:20:24 +0000 (02:20 -0800)]
depgraph: fix and test --deep control of depth

Control over recursion depth hasn't behaved properly since commit
6503980e0e3bcfce9fbaff85c33d87f616e955a9. Now it is fixed and tested.

13 years agodepgraph: make empty param imply deep = True
Zac Medico [Sun, 13 Feb 2011 09:06:39 +0000 (01:06 -0800)]
depgraph: make empty param imply deep = True

This won't change the existing depgraph behavior, but it will allow
logic to be simplified in some cases such that solely the deep param
needs to be consulted (rather than needing to consult both empty and
deep params).

13 years agoebuild.1: update outdated BUILD_PREFIX docs
Zac Medico [Sun, 13 Feb 2011 08:56:42 +0000 (00:56 -0800)]
ebuild.1: update outdated BUILD_PREFIX docs

This will fix bug #354387.

13 years agoegencache: don't ignore as much with --tolerant
Zac Medico [Sun, 13 Feb 2011 08:33:51 +0000 (00:33 -0800)]
egencache: don't ignore as much with --tolerant

Errors returned from --update-use-local-desc and --update-changelogs
are no longer ignored with --tolerant. This will fix part of
bug #354687.

13 years agorepoman: variable.usedwithhelpers ignore comments
Zac Medico [Sun, 13 Feb 2011 07:50:08 +0000 (23:50 -0800)]
repoman: variable.usedwithhelpers ignore comments

This will fix bug #354685.

13 years agodepgraph: avoid atom hash collisions in dep_check
Zac Medico [Sun, 13 Feb 2011 07:36:07 +0000 (23:36 -0800)]
depgraph: avoid atom hash collisions in dep_check

Atoms are stored in the graph as (atom, id(atom)) tuples since each
atom is considered to be a unique entity. For example, atoms that
appear identical may behave differently in USE matching, depending on
their unevaluated form. Also, specially generated virtual atoms may
appear identical while having different _orig_atom attributes.

13 years agodepgraph: return virtual edges from select_atoms
Zac Medico [Sun, 13 Feb 2011 01:52:11 +0000 (17:52 -0800)]
depgraph: return virtual edges from select_atoms

13 years agoemerge.1: cross-ref --newuse and --changed-use
Zac Medico [Sun, 13 Feb 2011 00:22:49 +0000 (16:22 -0800)]
emerge.1: cross-ref --newuse and --changed-use

This will fix bug #354437.

13 years agodepgraph: don't distort edges for virtuals
Zac Medico [Sat, 12 Feb 2011 06:09:30 +0000 (22:09 -0800)]
depgraph: don't distort edges for virtuals

In _add_pkg_dep_string(), _add_pkg() was called with generated
Dependency instances that created fake/distorted edges in the
graph for new-style virtuals (similar to those that were fixed
in commit 5b16e0d800f34dc90cdd8c505172ad16b97f0af4). Now there
won't be any such distorted edges.

13 years agodepgraph: fix distorted display of virtuals
Zac Medico [Sat, 12 Feb 2011 00:09:22 +0000 (16:09 -0800)]
depgraph: fix distorted display of virtuals

As mentioned in bug #353933, comment #4, special new-style virtual
atoms generated/distorted by _expand_new_virtuals() can prevent
extract_affecting_use() from working properly. This is fixed by
saving the original atoms so that the depgraph can map them back
into place at the appropriate step in dependency evaluation.

13 years agodepgraph: avoid reinstall of identical binpkg
Zac Medico [Fri, 11 Feb 2011 08:57:11 +0000 (00:57 -0800)]
depgraph: avoid reinstall of identical binpkg

This will fix bug #354441.

13 years agoemerge.1: clarify docs for package arguments v2.2.0_alpha23
Zac Medico [Tue, 8 Feb 2011 19:52:03 +0000 (11:52 -0800)]
emerge.1: clarify docs for package arguments

This will fix bug #354137.

13 years agoemerge: support ../ path arguments
Zac Medico [Tue, 8 Feb 2011 19:39:41 +0000 (11:39 -0800)]
emerge: support ../ path arguments

This will fix bug #354141.

13 years agoexpand_new_virtuals: fix pkg_use_enabled call
Zac Medico [Tue, 8 Feb 2011 18:54:51 +0000 (10:54 -0800)]
expand_new_virtuals: fix pkg_use_enabled call

AttributeError: 'tuple' object has no attribute 'use'

13 years agorepoman.herdbase: tolerate expat ImportError
Zac Medico [Tue, 8 Feb 2011 10:01:13 +0000 (02:01 -0800)]
repoman.herdbase: tolerate expat ImportError

We tolerate global scope import failures for optional modules, so that
ImportModulesTestCase can succeed (or possibly alert us about
unexpected import failures).

13 years agoportage.debug: handle threading ImportError
Zac Medico [Tue, 8 Feb 2011 09:32:09 +0000 (01:32 -0800)]
portage.debug: handle threading ImportError

13 years agotest_import_modules: exempt repoman.herdbase
Zac Medico [Tue, 8 Feb 2011 09:09:03 +0000 (01:09 -0800)]
test_import_modules: exempt repoman.herdbase

The repoman.herdbase module requires python with xml support.

13 years agocache.ebuild_xattr: don't import ENODATA globally
Zac Medico [Tue, 8 Feb 2011 06:35:14 +0000 (22:35 -0800)]
cache.ebuild_xattr: don't import ENODATA globally

ENODATA is undefined on FreeBSD. This will fix bug #354057.

13 years agoexpand_new_virtuals: handle None for myuse v2.2.0_alpha22
Zac Medico [Tue, 8 Feb 2011 00:42:37 +0000 (16:42 -0800)]
expand_new_virtuals: handle None for myuse

13 years agoexpand_new_virtuals: fix last commit USE handling
Zac Medico [Mon, 7 Feb 2011 22:19:33 +0000 (14:19 -0800)]
expand_new_virtuals: fix last commit USE handling

13 years agoUpdate dates in headers.
Zac Medico [Mon, 7 Feb 2011 22:06:56 +0000 (14:06 -0800)]
Update dates in headers.

13 years agoparen_reduce: allow parens in atoms, for EAPI 4
Zac Medico [Mon, 7 Feb 2011 21:59:23 +0000 (13:59 -0800)]
paren_reduce: allow parens in atoms, for EAPI 4

This will fix bug #354003.

13 years agoebuild.5: fix spelling of "defaults"
Zac Medico [Mon, 7 Feb 2011 21:25:42 +0000 (13:25 -0800)]
ebuild.5: fix spelling of "defaults"

13 years agoexpand_new_virtuals: fix logic from prev commit
Zac Medico [Mon, 7 Feb 2011 11:43:06 +0000 (03:43 -0800)]
expand_new_virtuals: fix logic from prev commit

We need to evaluate conditionals for dependency matching purposes,
though the unevaluated atom will still be available later for other
purposes.

13 years agoexpand_new_virtuals: save atom unevaluated use
Zac Medico [Mon, 7 Feb 2011 11:11:08 +0000 (03:11 -0800)]
expand_new_virtuals: save atom unevaluated use

This leads to a better unsatisfied USE message than the one reported
in bug 353933, comment #3. TODO: Fix it so that these generated
atoms don't break depgraph._get_dep_chain(), due to not being
identical to the original atoms and therefore breaking
extract_affecting_use().

13 years agocache.sqlite: handle sqlite ImportError v2.2.0_alpha21
Zac Medico [Mon, 7 Feb 2011 00:13:22 +0000 (16:13 -0800)]
cache.sqlite: handle sqlite ImportError

This will fix bug #353836.

13 years agodefault_src_test: handle EAPI 4 emake failure
Zac Medico [Sun, 6 Feb 2011 23:00:47 +0000 (15:00 -0800)]
default_src_test: handle EAPI 4 emake failure

This will fix bug #353897.

13 years agobacktrack_depgraph: get_best_run for last run v2.2.0_alpha20
Zac Medico [Sat, 5 Feb 2011 07:32:54 +0000 (23:32 -0800)]
backtrack_depgraph: get_best_run for last run

It's essential to feed back autounmask config changes, especially
USE changes, in order to make the last run as successful as possible.
This fixes a regression in the master branch, since commit
2186f87c22e0c4bdb86065855c2034bdbb66fa45.

13 years agoget_dep_chain: add "set" node type
Zac Medico [Sat, 5 Feb 2011 03:20:37 +0000 (19:20 -0800)]
get_dep_chain: add "set" node type

13 years agoRevert "parse_metadata_use(): omit empty text tokens."
Zac Medico [Sat, 5 Feb 2011 00:56:14 +0000 (16:56 -0800)]
Revert "parse_metadata_use(): omit empty text tokens."

This reverts commit 52f6b55d51e2accaa446bc5d6920421959289baa.

Since split() never return empty tokens, this patch does nothing.

13 years agocheck_required_use: remove obsolete hunk
Zac Medico [Sat, 5 Feb 2011 00:27:25 +0000 (16:27 -0800)]
check_required_use: remove obsolete hunk

13 years agoREQUIRED_USE: fix parens display and test more
Zac Medico [Sat, 5 Feb 2011 00:16:15 +0000 (16:16 -0800)]
REQUIRED_USE: fix parens display and test more

13 years agoREQUIRED_USE: fix single child conditionals disp
Zac Medico [Fri, 4 Feb 2011 22:59:28 +0000 (14:59 -0800)]
REQUIRED_USE: fix single child conditionals disp

13 years agocheck_required_use: clarify operator logic
Zac Medico [Fri, 4 Feb 2011 22:31:32 +0000 (14:31 -0800)]
check_required_use: clarify operator logic

13 years agoREQUIRED_USE: fix parens display and test more
Zac Medico [Fri, 4 Feb 2011 21:07:52 +0000 (13:07 -0800)]
REQUIRED_USE: fix parens display and test more

13 years agodepgraph: make downgrades trigger complete graph
Zac Medico [Fri, 4 Feb 2011 17:41:30 +0000 (09:41 -0800)]
depgraph: make downgrades trigger complete graph

It's common for downgrades to break dependencies, as in bug #353613, so
automatically trigger complete graph mode when a downgrade is found.

13 years agoebuild(1): skip REQUIRED_USE for some phases
Zac Medico [Fri, 4 Feb 2011 17:23:12 +0000 (09:23 -0800)]
ebuild(1): skip REQUIRED_USE for some phases

13 years agoebuild(1): ensure REQUIRED_USE is satisfied
Zac Medico [Fri, 4 Feb 2011 17:17:46 +0000 (09:17 -0800)]
ebuild(1): ensure REQUIRED_USE is satisfied

13 years agodepgraph: don't drop deps in _add_dep
Zac Medico [Fri, 4 Feb 2011 15:41:45 +0000 (07:41 -0800)]
depgraph: don't drop deps in _add_dep

This will fix bug #353613. We remove a hunk of code that was meant
to limit recursion, but is obsolete an buggy. The recursion limiting
is now handled by _add_pkg and the _ignored_deps stack.

13 years agoRemove from list by index, not search.
Zac Medico [Fri, 4 Feb 2011 06:28:35 +0000 (22:28 -0800)]
Remove from list by index, not search.

13 years agoREQUIRED_USE: more display tests
Zac Medico [Fri, 4 Feb 2011 06:03:07 +0000 (22:03 -0800)]
REQUIRED_USE: more display tests

13 years agoREQUIRED_USE: fix parens display and test more
Zac Medico [Fri, 4 Feb 2011 05:42:18 +0000 (21:42 -0800)]
REQUIRED_USE: fix parens display and test more

13 years agoparse_metadata_use(): omit empty text tokens.
Michał Górny [Thu, 3 Feb 2011 20:49:31 +0000 (21:49 +0100)]
parse_metadata_use(): omit empty text tokens.

13 years agoREQUIRED_USE: fix parens display and test
Zac Medico [Fri, 4 Feb 2011 01:38:32 +0000 (17:38 -0800)]
REQUIRED_USE: fix parens display and test

13 years agoREQUIRED_USE: display unsatisfied part
Zac Medico [Thu, 3 Feb 2011 23:29:50 +0000 (15:29 -0800)]
REQUIRED_USE: display unsatisfied part

This will fix bug #353234.

13 years agoaction_uninstall: allow repo with wildcard atom
Zac Medico [Thu, 3 Feb 2011 08:14:49 +0000 (00:14 -0800)]
action_uninstall: allow repo with wildcard atom

13 years agobintree: cleanup/fix old binhost code more
Zac Medico [Thu, 3 Feb 2011 07:48:55 +0000 (23:48 -0800)]
bintree: cleanup/fix old binhost code more

13 years agodepgraph: use catsplit where appropriate
Zac Medico [Thu, 3 Feb 2011 07:39:09 +0000 (23:39 -0800)]
depgraph: use catsplit where appropriate

13 years agobintree: clean up dict use in old binhost code
Zac Medico [Thu, 3 Feb 2011 07:12:24 +0000 (23:12 -0800)]
bintree: clean up dict use in old binhost code