Zac Medico [Sat, 24 May 2008 20:35:30 +0000 (20:35 -0000)]
Bug #223417 - Make the vardbapi.cpv_all() use_cache parameter useful
for forcing direct os.listdir() calls. This is more of an issue now
that these listdir() calls are frequently triggered when merging
packages (due to things like blocker and preserve-libs handling).
svn path=/main/trunk/; revision=10390
Zac Medico [Sat, 24 May 2008 19:22:00 +0000 (19:22 -0000)]
Bug #223417 - use floating point mtime for finer grained validation in
cachedir().
svn path=/main/trunk/; revision=10389
Zac Medico [Fri, 23 May 2008 18:51:58 +0000 (18:51 -0000)]
Bug #220671 - Fix 'RuntimeError: Set changed size during iteration' error.
svn path=/main/trunk/; revision=10388
Zac Medico [Fri, 23 May 2008 08:42:35 +0000 (08:42 -0000)]
Bug #2272 - Extend dependency atom sytax to specify enabled or disabled
states of USE flags. Matching with the new syntax is currently only
supported in the dbapi classes and dependency resolver (use matching
does not work yet in config files such as package.mask).
svn path=/main/trunk/; revision=10387
Marius Mauch [Wed, 21 May 2008 16:05:03 +0000 (16:05 -0000)]
Raise an error if the named repository doesn't exist
svn path=/main/trunk/; revision=10383
Zac Medico [Tue, 20 May 2008 19:42:39 +0000 (19:42 -0000)]
When using vecho or eqawarn it comes in handy when isolated-functions
have been sourced. (branches/prefix r10380)
svn path=/main/trunk/; revision=10381
Zac Medico [Tue, 20 May 2008 03:06:32 +0000 (03:06 -0000)]
Simplify cache code in vardbapi.aux_get().
svn path=/main/trunk/; revision=10377
Zac Medico [Tue, 20 May 2008 01:51:12 +0000 (01:51 -0000)]
In vardbapi.aux_get(), don't mark cacheed metadata invalid just because
some of the values are missing.
svn path=/main/trunk/; revision=10375
Zac Medico [Tue, 20 May 2008 01:13:25 +0000 (01:13 -0000)]
Inside vardbapi.aux_get(), do more validation on the cache data to
ensure it contains the expected data types.
svn path=/main/trunk/; revision=10373
Zac Medico [Mon, 19 May 2008 23:39:15 +0000 (23:39 -0000)]
Adjust code order to organize it a bit. (branches/2.1.2 r10371)
svn path=/main/trunk/; revision=10372
Zac Medico [Mon, 19 May 2008 23:19:00 +0000 (23:19 -0000)]
Validate and normalize target_root earlier in the config constructor.
svn path=/main/trunk/; revision=10369
Zac Medico [Mon, 19 May 2008 23:06:12 +0000 (23:06 -0000)]
Fix vardbapi.aux_get() logic so that it will correctly pull the metadata
value corresponding to an unrecognized metadata key.
svn path=/main/trunk/; revision=10367
Zac Medico [Mon, 19 May 2008 20:29:48 +0000 (20:29 -0000)]
Exclude "env" from use in variable substitution since we want to avoid
any interaction with the calling environment that might lead to
unexpected results.
svn path=/main/trunk/; revision=10364
Zac Medico [Sun, 18 May 2008 22:43:09 +0000 (22:43 -0000)]
In unmerge(), flush the vardbapi aux_get() cache to disk before releasing
the vardb lock.
svn path=/main/trunk/; revision=10361
Zac Medico [Sun, 18 May 2008 22:27:15 +0000 (22:27 -0000)]
Tweak vardbapi.aux_get() cache logic a bit.
svn path=/main/trunk/; revision=10360
Zac Medico [Sun, 18 May 2008 22:18:08 +0000 (22:18 -0000)]
* To avoid excessive IO on each call to LinkageMap.rebuild(), cache
NEEDED.* files via vardbapi.aux_get().
* Make vardbapi.aux_get() preserve newlines in multi-line metadata
such as NEEDED.* and CONTENTS.
svn path=/main/trunk/; revision=10359
Zac Medico [Sun, 18 May 2008 19:00:30 +0000 (19:00 -0000)]
Bug #222623 - Use "regardless" instead of "irregardless" since the latter
is considered to be incorrect.
svn path=/main/trunk/; revision=10357
Zac Medico [Sat, 17 May 2008 22:44:22 +0000 (22:44 -0000)]
Add the environment and some more files to the existing make.defaults
variable substitution support. Variable substitution occurs in
the following order:
* env.d
* env
* make.globals
* make.defaults
* make.conf
svn path=/main/trunk/; revision=10351
Zac Medico [Sat, 17 May 2008 19:55:03 +0000 (19:55 -0000)]
Fix th logic from the previous commit.
svn path=/main/trunk/; revision=10350
Zac Medico [Sat, 17 May 2008 18:49:10 +0000 (18:49 -0000)]
Add back the "install new portage asap" behavior that got lost when that
area of code was rewritten.
svn path=/main/trunk/; revision=10349
Zac Medico [Fri, 16 May 2008 21:41:01 +0000 (21:41 -0000)]
Detect and filter ebuilds that have invalid versions in portdbapi.cp_list().
svn path=/main/trunk/; revision=10346
Zac Medico [Fri, 16 May 2008 05:54:50 +0000 (05:54 -0000)]
Add dev-util/ftjam to the RDEPEND.suspect list as per bug #221537, comment #3.
Leaving dev-util/jam in place, in case it revives somehow.
svn path=/main/trunk/; revision=10344
Zac Medico [Wed, 14 May 2008 18:56:22 +0000 (18:56 -0000)]
Add a note about interaction between FEATURES="metadata-transfer"
and eclasses from PORTDIR_OVERLAY that override eclasses from PORTDIR.
svn path=/main/trunk/; revision=10337
Zac Medico [Wed, 14 May 2008 18:04:30 +0000 (18:04 -0000)]
Skip blocker atoms for the RDEPEND.suspect check.
svn path=/main/trunk/; revision=10335
Zac Medico [Wed, 14 May 2008 17:53:43 +0000 (17:53 -0000)]
Bug #221537 - Add a new "RDEPEND.suspect" check for packages in RDEPEND that
usually only belong in DEPEND.
svn path=/main/trunk/; revision=10333
Marius Mauch [Tue, 13 May 2008 22:50:48 +0000 (22:50 -0000)]
add xterm-color and interix to list of valid terminals
svn path=/main/trunk/; revision=10329
Marius Mauch [Tue, 13 May 2008 22:44:17 +0000 (22:44 -0000)]
Remove 'eselect compiler' references
svn path=/main/trunk/; revision=10328
Marius Mauch [Tue, 13 May 2008 22:41:38 +0000 (22:41 -0000)]
Prefer deb2tgz over ar for unpacking .deb files when installed (patch by Fabian Groffen, archives.gentoo.org/gentoo-portage-dev/msg_2f9c8543016f1a96f9122aca0ec35ded.xml)
svn path=/main/trunk/; revision=10327
Marius Mauch [Tue, 13 May 2008 22:38:16 +0000 (22:38 -0000)]
make debug mode configurable
svn path=/main/trunk/; revision=10326
Marius Mauch [Tue, 13 May 2008 22:33:58 +0000 (22:33 -0000)]
Add subversion support for repoman (patch by Fabien Groffen, archives.gentoo.org/gentoo-portage-dev/msg_b7080f212c3eb09c943a1ce5a7356f01.xml)
svn path=/main/trunk/; revision=10325
Marius Mauch [Tue, 13 May 2008 20:05:27 +0000 (20:05 -0000)]
ignore consumers from the current package instance when checking if a preserved library can be removed
svn path=/main/trunk/; revision=10324
Marius Mauch [Tue, 13 May 2008 19:36:33 +0000 (19:36 -0000)]
Check vercmp() return value to avoid arbitrary results in case it returns None
svn path=/main/trunk/; revision=10322
Mike Frysinger [Tue, 13 May 2008 12:32:57 +0000 (12:32 -0000)]
fix man markup for PORTAGE_FETCH_RESUME_MIN_SIZE
svn path=/main/trunk/; revision=10320
Zac Medico [Tue, 13 May 2008 06:17:10 +0000 (06:17 -0000)]
capitalize Portage
svn path=/main/trunk/; revision=10318
Zac Medico [Tue, 13 May 2008 06:12:08 +0000 (06:12 -0000)]
Describe how we limit the probability that temporary simultaneous
installation of blocking packages will cause some sort of problem.
svn path=/main/trunk/; revision=10316
Zac Medico [Tue, 13 May 2008 03:38:23 +0000 (03:38 -0000)]
Bug #220533 - Document FEATURES="skiprocheck".
svn path=/main/trunk/; revision=10314
Zac Medico [Mon, 12 May 2008 23:01:57 +0000 (23:01 -0000)]
Define the world_candidates variable earlier to make sure it's in scope.
svn path=/main/trunk/; revision=10313
Zac Medico [Mon, 12 May 2008 22:58:50 +0000 (22:58 -0000)]
Filter sets that are not "world candidates" from the favorites list at
the last moment since the favorites list needs to be complete for
depgraph.loadResumeCommand() to operate correctly.
svn path=/main/trunk/; revision=10312
Zac Medico [Mon, 12 May 2008 22:21:49 +0000 (22:21 -0000)]
In the warning about eclasses in overlay overriding eclasses from PORTDIR,
also advise the user to add FEATURES="metadata-transfer" to make.conf.
svn path=/main/trunk/; revision=10310
Marius Mauch [Mon, 12 May 2008 16:47:05 +0000 (16:47 -0000)]
don't add package sets to 'world' that have world-candidate=False
svn path=/main/trunk/; revision=10303
Zac Medico [Sun, 11 May 2008 23:56:58 +0000 (23:56 -0000)]
Simplify the code for bug #221755 now that the substitution map is updated
automatically by getconfig().
svn path=/main/trunk/; revision=10297
Zac Medico [Sun, 11 May 2008 23:51:41 +0000 (23:51 -0000)]
Make the variable substitution code for bug #221755 slightly more efficient
by allowing getconfig() to directly update the map that's used for
substitutions.
svn path=/main/trunk/; revision=10296
Zac Medico [Sun, 11 May 2008 23:45:52 +0000 (23:45 -0000)]
Fix the variable subsitution code from bug #221755 so that variable
assignments from earlier files don't leak into variable assignments
from later files (except through substitution).
svn path=/main/trunk/; revision=10295
Zac Medico [Sun, 11 May 2008 23:22:43 +0000 (23:22 -0000)]
Bug #221755 - Enable variable substitution in make.defaults to work accross
multiple files instead of being confined to a single file. This allows
profiles to create incremental-like behavior with non-incremental variables
when desired.
svn path=/main/trunk/; revision=10293
Zac Medico [Sun, 11 May 2008 19:37:31 +0000 (19:37 -0000)]
Add back the warning for DISTDIR about storing stuff inside PORTDIR.
svn path=/main/trunk/; revision=10291
Zac Medico [Sun, 11 May 2008 19:35:26 +0000 (19:35 -0000)]
Sync make.conf.example with make.conf.5 for bug #220111.
svn path=/main/trunk/; revision=10290
Zac Medico [Sun, 11 May 2008 19:21:28 +0000 (19:21 -0000)]
Bug #220111 - Update the DISTDIR docs to clarify that it's safe to remove
any and all files from this location after packages are built.
svn path=/main/trunk/; revision=10289
Zac Medico [Sun, 11 May 2008 18:25:35 +0000 (18:25 -0000)]
Make the summary more accurate.
svn path=/main/trunk/; revision=10288
Zac Medico [Sat, 10 May 2008 18:12:44 +0000 (18:12 -0000)]
If the uninstall task did not need to be executed because
of an upgrade, display Blocker -> Upgrade edges since the
corresponding Blocker -> Uninstall edges will not be shown.
svn path=/main/trunk/; revision=10286
Zac Medico [Sat, 10 May 2008 17:09:36 +0000 (17:09 -0000)]
eachother -> each other
svn path=/main/trunk/; revision=10284
Zac Medico [Sat, 10 May 2008 08:47:45 +0000 (08:47 -0000)]
Always include satisfied blockers as an indicator that blocking
packages will be temporarily installed simultaneously.
svn path=/main/trunk/; revision=10281
Zac Medico [Sat, 10 May 2008 08:35:22 +0000 (08:35 -0000)]
When selecting leaf nodes, if there is a mix of merge and uninstall
nodes, save the uninstall nodes from later since sometimes a merge
node will render an install node unnecessary, and we want to avoid
doing a separate uninstall task in that case.
svn path=/main/trunk/; revision=10279
Zac Medico [Sat, 10 May 2008 08:07:35 +0000 (08:07 -0000)]
Fix another KeyError, reported in Bug #221107, comment #4. There's no need
to remove uninstall tasks from scheduled_uninstalls, so just keep them
in there.
svn path=/main/trunk/; revision=10277
Zac Medico [Fri, 9 May 2008 19:12:48 +0000 (19:12 -0000)]
Bug #221053 - Save the resume list before verifying the ebuild Manifests
since it might be possible for the user to use --resume --skipfirst get
past a non-essential package with a broken digest.
svn path=/main/trunk/; revision=10275
Zac Medico [Fri, 9 May 2008 19:04:14 +0000 (19:04 -0000)]
Bug #221071 - Prevent display_problems() from redundantly displaying
the exact same merge list a second time.
svn path=/main/trunk/; revision=10273
Zac Medico [Fri, 9 May 2008 18:36:19 +0000 (18:36 -0000)]
Bug #221107 - Fix depgraph._serialize_tasks() so that it doesn't
try to schedule an uninstall task that's already been scheduled
but hasn't been executed yet due to dependence on installation of
blocking packages.
svn path=/main/trunk/; revision=10271
Zac Medico [Fri, 9 May 2008 15:49:11 +0000 (15:49 -0000)]
Describe how file collisions between blocking packages are resolved when
they are temporarily installed simultaneously.
svn path=/main/trunk/; revision=10269
Zac Medico [Fri, 9 May 2008 08:45:05 +0000 (08:45 -0000)]
Simplify code for derived Package attributes.
svn path=/main/trunk/; revision=10266
Zac Medico [Fri, 9 May 2008 04:17:57 +0000 (04:17 -0000)]
For the "blockers" parameter that's passed into the dblink constructor
now, make it a callable since it really shouldn't be called until the
vdb lock has been acquired.
svn path=/main/trunk/; revision=10264
Zac Medico [Fri, 9 May 2008 03:41:41 +0000 (03:41 -0000)]
If an uninstall task fails inside MergeTask.merge(), use an UninstallFailure
exception to handle it instead of allowing unmerge() to call exit().
svn path=/main/trunk/; revision=10262
Zac Medico [Fri, 9 May 2008 03:00:10 +0000 (03:00 -0000)]
Use set.instersection() instead of a for loop.
svn path=/main/trunk/; revision=10260
Zac Medico [Fri, 9 May 2008 02:28:54 +0000 (02:28 -0000)]
Allow scheduled uninstalls to be selected the same way as other leaf nodes.
svn path=/main/trunk/; revision=10258
Zac Medico [Fri, 9 May 2008 02:14:38 +0000 (02:14 -0000)]
Make the fix for bug #220341 better by checking all selected packages for
matching cpv rather than just the last one.
svn path=/main/trunk/; revision=10256
Zac Medico [Fri, 9 May 2008 01:49:02 +0000 (01:49 -0000)]
Optimize BlockerDB.findInstalledBlockers() so that it doesn't unnecessarily
try to match packages against an empty set of blocker atoms.
svn path=/main/trunk/; revision=10254
Zac Medico [Thu, 8 May 2008 21:51:29 +0000 (21:51 -0000)]
Bug #220987 - Fix UnboundLocalError for 'skip' that only occurs when
using alternate ROOT. Thanks to Ryan Tandy <tarpman@gmail.com>.
svn path=/main/trunk/; revision=10252
Zac Medico [Thu, 8 May 2008 21:18:01 +0000 (21:18 -0000)]
Make some confmem behavior modifications in order to try and make it
less confusing for people who have forgotten about the --noconfmem
option or are completely unaware of it. Thanks to Joe Peterson
<lavajoe@gentoo.org> for suggesting these:
* Always behave like --noconfmem is enabled for downgrades.
* Purge confmem entries when a package is unmerged rather
than replaced.
svn path=/main/trunk/; revision=10250
Zac Medico [Thu, 8 May 2008 19:46:47 +0000 (19:46 -0000)]
Remove stale uninstall tasks from scheduled_uninstalls when necessary.
svn path=/main/trunk/; revision=10246
Zac Medico [Thu, 8 May 2008 19:03:42 +0000 (19:03 -0000)]
Remove unnecessary BlockerDB and BlockerCache _installed_pkgs attributes.
svn path=/main/trunk/; revision=10241
Zac Medico [Thu, 8 May 2008 18:35:39 +0000 (18:35 -0000)]
Don't save "uninstall" tasks in the resume list since they'll be regenerated
by dependency calculations upon resume.
svn path=/main/trunk/; revision=10239
Zac Medico [Thu, 8 May 2008 17:37:38 +0000 (17:37 -0000)]
Bug #220341 - USE=multislot can make an installed package appear as if
it doesn't satisfy a slot dependency. Rebuilding the ebuild won't do
any good as long as USE=multislot is enabled since the newly built
package still won't have the expected slot. Therefore, assume that
such SLOT dependencies are already satisfied rather than forcing a
rebuild.
svn path=/main/trunk/; revision=10237
Zac Medico [Thu, 8 May 2008 17:08:13 +0000 (17:08 -0000)]
Bug #220775 - Source isolated-functions.sh before trying to call vecho.
svn path=/main/trunk/; revision=10235
Zac Medico [Thu, 8 May 2008 16:52:45 +0000 (16:52 -0000)]
Bug #220689 - Fix package selection logic so that it doesn't trigger the
code path from bug 219369 in some unwanted cases.
svn path=/main/trunk/; revision=10233
Zac Medico [Thu, 8 May 2008 10:33:30 +0000 (10:33 -0000)]
Don't use try/finally to close atomic_ofstream since we don't want to
call close() on this stream if an error occurs.
svn path=/main/trunk/; revision=10231
Zac Medico [Thu, 8 May 2008 09:26:47 +0000 (09:26 -0000)]
Fix findInstalledBlockers() to check for blockers in both directions.
svn path=/main/trunk/; revision=10229
Zac Medico [Thu, 8 May 2008 07:48:59 +0000 (07:48 -0000)]
Instead of doing automatic uninstalls in advance, install conflicting
packages first and then do the uninstall afterwards. This requires
special handling for file collisions occur, but it's preferred
because it ensures that package files remain installed in a usable
state whenever possible.
When file collisions occur between conflicting packages, the contents
entries for those files are removed from the packages that are
scheduled for uninstallation. This prevents uninstallation operations
from removing overlapping files that have been claimed by conflicting
packages.
svn path=/main/trunk/; revision=10225
Zac Medico [Wed, 7 May 2008 18:49:19 +0000 (18:49 -0000)]
Tolerate InvalidDependString exceptions when checking visibility of
installed packages.
svn path=/main/trunk/; revision=10224
Zac Medico [Wed, 7 May 2008 17:06:39 +0000 (17:06 -0000)]
Fix spelling of "SATISFIED". Thanks to Arfrever.
svn path=/main/trunk/; revision=10222
Zac Medico [Tue, 6 May 2008 20:26:05 +0000 (20:26 -0000)]
In install_mask(), discard stderr messages from the 'find' command
since some tokens from INSTALL_MASK can trigger lots of warnings
and errors that are irrelevant for our purposes.
svn path=/main/trunk/; revision=10220
Zac Medico [Tue, 6 May 2008 01:34:39 +0000 (01:34 -0000)]
Make satisfied blockers "darkblue" by default.
svn path=/main/trunk/; revision=10218
Zac Medico [Tue, 6 May 2008 00:36:04 +0000 (00:36 -0000)]
For consistency with the merge list display, show "block" instead
of "blocker" in the summary.
svn path=/main/trunk/; revision=10216
Zac Medico [Tue, 6 May 2008 00:12:51 +0000 (00:12 -0000)]
Display satisfied blockers in green and show a small "b" instead of a
big "B" (similar to "f" for satisfied fetch restrictions).
svn path=/main/trunk/; revision=10214
Zac Medico [Mon, 5 May 2008 21:50:08 +0000 (21:50 -0000)]
Use find -path -or -name to match basenames of files in INSTALL_MASK
as suggested by solar in bug #219286, comment #8.
svn path=/main/trunk/; revision=10212
Zac Medico [Mon, 5 May 2008 21:06:30 +0000 (21:06 -0000)]
Cache results for Task.__hash__() calls.
svn path=/main/trunk/; revision=10210
Zac Medico [Mon, 5 May 2008 19:29:54 +0000 (19:29 -0000)]
Use vardbapi._excluded_dirs to filter results inside cp_list().
svn path=/main/trunk/; revision=10208
Zac Medico [Mon, 5 May 2008 19:22:42 +0000 (19:22 -0000)]
Add -MERGING-.* to vardbapi._excluded_dirs.
svn path=/main/trunk/; revision=10206
Zac Medico [Mon, 5 May 2008 18:40:49 +0000 (18:40 -0000)]
* In vardbapi.cpv_all() use catpkgsplit() for validation since that's what
with cp_all() uses.
* Use the listdir() dirsonly=1 parameter to avoid unnecessary stat calls
via os.path.isdir().
svn path=/main/trunk/; revision=10204
Zac Medico [Mon, 5 May 2008 16:55:18 +0000 (16:55 -0000)]
Handle a potential InvalidData exception in vardbapi.cp_all().
svn path=/main/trunk/; revision=10202
Marius Mauch [Mon, 5 May 2008 08:58:05 +0000 (08:58 -0000)]
fix preserve_libs logic to properly account for the current package instance
svn path=/main/trunk/; revision=10200
Zac Medico [Mon, 5 May 2008 06:35:57 +0000 (06:35 -0000)]
Add "package" to EBUILD_PHASES since it's possible for einfo to be called
by install_mask() during that phase.
svn path=/main/trunk/; revision=10198
Zac Medico [Mon, 5 May 2008 05:56:52 +0000 (05:56 -0000)]
Bug #219286 - Whitelist INSTALL_MASK so that it works properly for binary
packages. Also, filter INSTALL_MASK when saving or loading environment.bz2.
This also applies to PKG_INSTALL_MASK and DOC_SYMLINKS_DIR, so add them
too.
svn path=/main/trunk/; revision=10195
Zac Medico [Mon, 5 May 2008 05:07:35 +0000 (05:07 -0000)]
* Fix --buildpkgonly logic to avoid an unwanted code path.
* Remove unnecessary mtimedb.pop("resume", None) call.
svn path=/main/trunk/; revision=10194
Zac Medico [Mon, 5 May 2008 04:44:30 +0000 (04:44 -0000)]
Bug #220171 - Filter out 'lost+found' directories in vardbapi.cpv_all()
in order to avoid fatal 'Permission denied' errors. Currently, CVS and
names beginning with '.' are also filtered.
svn path=/main/trunk/; revision=10192
Zac Medico [Mon, 5 May 2008 03:30:24 +0000 (03:30 -0000)]
Use writemsg() to warn about InvalidDependString exceptions that may
occur for installed packages.
svn path=/main/trunk/; revision=10190
Zac Medico [Mon, 5 May 2008 03:27:30 +0000 (03:27 -0000)]
Use a separate digraph to preserve irrelevant blocker relationships that
are removed from depgraph._blocker_parents since the irrelevant blockers
are still needed for the blocker cache.
svn path=/main/trunk/; revision=10188
Zac Medico [Mon, 5 May 2008 03:18:45 +0000 (03:18 -0000)]
Fix misplaced variable.
svn path=/main/trunk/; revision=10186
Zac Medico [Sun, 4 May 2008 19:41:52 +0000 (19:41 -0000)]
In the package uninstall sanity check, use RDEPEND from the currently
running 'sys-apps/portage' instance to create a set of protected atoms.
svn path=/main/trunk/; revision=10184
Marius Mauch [Sun, 4 May 2008 14:16:14 +0000 (14:16 -0000)]
actually remove libraries that aren't strictly needed from the preservation candidate list
svn path=/main/trunk/; revision=10182
Marius Mauch [Sun, 4 May 2008 13:00:53 +0000 (13:00 -0000)]
remove NEEDED from list of metadata variables (and associated special handling) as it's no longer used
svn path=/main/trunk/; revision=10180
Marius Mauch [Sun, 4 May 2008 12:55:24 +0000 (12:55 -0000)]
remove obsolete class
svn path=/main/trunk/; revision=10179
Zac Medico [Sun, 4 May 2008 08:06:58 +0000 (08:06 -0000)]
Similar to the sys-apps/portage protection, also add protection against
inappropriately uninstalling either app-shells/bash or dev-lang/python.
svn path=/main/trunk/; revision=10171