summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pkg_add/OpenBSD/Dependencies.pm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* name value to shorten codeespie2019-10-131-4/+7
|
* look for tag in self first, solves a fringe case whereespie2019-05-231-3/+3
| | | | | | we could find the dependency in another version of the the same package first, and error out (see special case found_in_self).
* make it possible to remove old packages with erroneous tags...espie2018-06-261-7/+10
| | | | | | | shouldn't happen, but... - mark old handles as such in UpdateSets - keep going on solve_handle_tag to get maximum reports - tweak verify_tags to demote old handles to warnings from errors
* implement tag checking during normal solvingespie2018-06-241-9/+9
| | | | also keep going after first tag check fail, so that we get maximal checks
* have a default tag value of empty, because.espie2018-06-231-2/+2
|
* move the tag base code into SolverBase, and use it in PkgCreate, so thatespie2018-06-221-73/+1
| | | | we refuse to create packages with tags without reachable definitions
* special case for a tag in self, which should be run appropriately duringespie2018-06-221-1/+2
| | | | deletion
* split the common half of dependencies handling into SolverBase, as PkgCreateespie2018-06-211-382/+17
| | | | only uses that
* make it possible to do @tag sthg in the same package that doesespie2018-06-201-3/+19
| | | | @define-tag sthg
* so tags will need to match OLD tag definitions as well as new ones.espie2018-06-201-16/+51
| | | | we can probably get away without doing it if no tags exist (to do later)
* fix solve_tags to deal with the actual list of tags (match tag to tagespie2018-06-191-9/+11
| | | | definitions)
* document the reason these classes existespie2018-06-181-1/+6
|
* heh. bug happens so seldom, fix was not 100%espie2018-06-161-2/+2
|
* fix for the infamous "cups" bug. Finally.espie2018-06-151-1/+33
| | | | | | | | | | | | | | | | | | | | the problem was in solve_wantlibs, which is invoked fairly early in the game (before actually committing to install the set) and which would walk the "current" dependency tree and solve libs accordingly. The problem being that sometimes, the libraries were in an older set... so the fix is to do the dependency adjustment at this point as well, to properly peek in the new set. The main problem with that bug was how hard it was to reproduce, because it depends on several conditions: - the old and new package must have different names, but contain some shared libraries with the same version. - it has to be an UpdateSet with several packages tied together - reaching the library must be possible through several paths. This usually happens after several sets got merged together. - taking the wrong path is dependent on the hash key order of the dependencies, which is random.
* no need to always use 1 for the constant, knowing how it got solved canespie2018-06-151-3/+3
| | | | be fairly useful while debugging.
* give up a bit on the infamous cups update issue.espie2018-02-131-2/+2
| | | | sort dependencies so that at least this is 100% reproducible...
* tweak dependencies handling, might fix some infrequent bugs including theespie2015-11-051-7/+8
| | | | | | | | | infamous cups bug. - look for candidates in the whole new set first. Yep, that includes kept packages (should make things slightly faster, I expect) - correctly remove caching of list of installed packages outsides of old packages from the current set each time we revisit the set (looking at the old behavior this actually sounds very likely).
* remove partial to_register from sets when we merge, since we have to do theespie2015-08-141-1/+3
| | | | | | work again. Should solve the +REQUIRED_BY problem hopefully.
* Fix the default interactive level to install the "default" dependencies.espie2015-01-301-1/+7
| | | | Actually testing it caused me to write correct (and simpler) code...
* interactive/progressmeter clean-upespie2014-11-301-5/+2
|
* clear progress meter before asking questionsespie2014-11-301-1/+2
| | | | From Carlin Bingham
* let solve_depends work as soon as we have update_infoespie2014-02-011-3/+3
|
* handle failures from ports tree with more care.espie2010-12-241-4/+4
| | | | | this does avoid infinite loops in case of wrong plists. necessary since print-plist-with-depends CAN fail...
* fix, as noticed by dcoppa@espie2010-12-211-1/+3
|
* simplify a bit:espie2010-12-211-13/+12
| | | | | | | | - make find_dep_in_installed more regular - zap the {more} entry, add_dep is okay for that purpose - don't special case installed_list, provide older_names instead - make PseudoSets slightly less hackish - don't read full packinglist, prelinkstuff is exactly what we need
* use a better strategy: ask the ports tree for the plist for packages withespie2010-12-201-10/+8
| | | | | | | the same pkgpath. Thus, PseudoSets need to have a real list, and pkgcreate needs to loop to solve those depends. reactivate the check
* missed someespie2010-12-201-1/+2
|
* prepare for reuse in pkgcreate: allow not finding stuff and not failingespie2010-12-201-1/+4
| | | | also mark as known a special package known as BUILD
* split solver class into a base that can be reused from pkgcreate.espie2010-12-201-2/+5
|
* more refactor: errsay_libraryespie2010-12-201-3/+10
|
* more refactor: method for global_cache, add find_in_installed, separateespie2010-12-201-55/+77
| | | | cache handling from the rest for solve_dependency
* move stuff aroundespie2010-12-201-207/+207
|
* use Auto::cacheespie2010-12-201-8/+6
|
* turn find_candidate into a real method we can inherit, tweak parametersespie2010-12-201-8/+9
|
* pass state to SharedLibs for direct printingespie2010-12-201-12/+12
| | | | (also cosmetic ws)
* pass state around and use state->printespie2010-12-131-15/+14
| | | | inspired by landry@
* avoid infinite loops correctly this timeespie2010-11-271-2/+2
|
* this can't be right, as it takes out check_for_loops entirely...espie2010-10-281-2/+2
| | | | (fixes cyrus-sasl install/updates, but not deinstall yet)
* initial scaffolding for @rcscript: for now, acts like normal files,espie2010-10-271-1/+1
| | | | but allow absolute pathnames (treat that as an implicit @cwd).
* bad works better if you push consistent stuff in it, like always strings...espie2010-08-131-5/+4
|
* need to check that kept packages are still okay.espie2010-08-071-2/+2
| | | | | | | | | | | | fixes: sudo pkg_add -r ghostscript-8.63p13-no_x11.tgz quirks-1.17: 1/1 ghostscript-8.63p13->ghostscript-8.63p13-no_x11 forward dependencies: | Dependency of libspectre-0.2.6 on ghostscript-*-!no_x11 doesn't match Merging libspectre-0.2.6->libspectre-0.2.6 (1/3) [libspectre-0.2.6]ghostscript-8.63p13->ghostscript-8.63p13-no_x11: 3/3 Read shared items: ok
* allow say and errsay to work without parameters, as it's ways common.espie2010-06-301-1/+1
| | | | create verbose_system up in state, because it makes sense without verbose.
* whitespace cleanupespie2010-06-301-1/+1
|
* extra parameter to UpdateSet: use the factory to create extra object.espie2010-06-301-7/+5
| | | | | don't create updatesets directly, go through AddDelete::State. Get all Locator/Repo access through state.
* ui changes: go thru a state object for most printoutsespie2010-06-091-19/+17
|
* Move ask_list() method to $state object like it's done for confirm(), solandry2010-06-051-2/+2
| | | | | that it can be overriden. Change callers accordingly. ok espie@
* move code around, so that commands can be used as modules.espie2010-06-041-4/+4
| | | | | | pkg becomes the start hub, which does nothing except require the correct module. Saner code wrt Add/Delete, and more sharing.
* whitespace fixesespie2010-05-101-23/+23
|
* finding dep in old names like this actually means we are replacing withespie2010-04-101-3/+4
| | | | stuff that won't match, so mark it for later.
* avoid some loops.espie2010-04-101-1/+6
|