summaryrefslogtreecommitdiff
path: root/apt-pkg/depcache.cc
Commit message (Collapse)AuthorAgeFilesLines
* fix crash when SetCandidateRelease is usedMichael Vogt2013-11-291-1/+1
|
* don't consider holds for autoremovalDavid Kalnischkies2013-10-011-3/+4
| | | | | | | | | | | We can't remove packages which are held back by the user with a hold, so marking them (or its dependencies) as garbage will lead our autoremover into madness – and given that the package is important enough that the user has held it back it can't be garbage (at least at the moment), so even if a front-end wants to use the info just for information display its a good idea to not consider it garbage for them. Closes: 724995
* prefer native arch over higher priority for providersColin Watson2013-08-011-3/+3
| | | | | | | | | | | | | | | | | | | | | | The rational from the buglog: > The problem here is that the Priority field in one of the Packages files > is incorrect due to a mishap with reprepro configuration, […] the > amd64 version is Priority: standard but the arm64 version is Priority: > optional (and has a stray "optional: interpreters" field). > […] > However, Priority is a rather weak property of a package because it's > typically applied via overrides, and it's easy for maintainers of > third-party repositories to misconfigure them so that overrides aren't > applied correctly. It shouldn't be ranked ahead of choosing packages > from the native architecture. In this case, I have no user-mode > emulation for arm64 set up, so choosing m4:arm64 simply won't work. This effectly makes the priority the least interesting data point in chosing a provider, which is in line with the other checks we have already order above priority in the past and also has a certain appeal by the soft irony it provides. Closes: #718482
* prevent MarkInstall of unsynced Multi-Arch:same siblingsDavid Kalnischkies2013-07-111-4/+49
| | | | | | | | | | | | | | | | | | | Multi-Arch: same packages can be co-installed, but need to have the same version for all installed packages (aka "siblings"). Otherwise the unsynced versions will fight against each other and the auto-install as wel as the problem resolver will later have to decide between holding the packages or to remove one of the siblings (usually a foreign) taking a bunch of packages (like the entire foreign setup) with them. The idea here is now to be more pro-active: MarkInstall will fail for a package if the siblings aren't synced, so we don't allow a situation in which a resolver has to decide if to hold or to remove-upgrade under the assumption that the remove-upgrade decision is always wrong and doesn't deserve to be explored (expect valid out-of-syncs of course). Thats a pretty bold move to take for a library which is used by different solvers so this check is done in IsInstallOk and can be overridden if front-ends want to.
* Merge remote-tracking branch 'donkult/debian/sid' into debian/sidMichael Vogt2013-07-021-6/+14
|\ | | | | | | | | Conflicts: debian/changelog
| * try all providers in order if uninstallable in MarkInstallDavid Kalnischkies2013-06-091-5/+13
| |
| * fix priority sorting by prefering higher in MarkInstallDavid Kalnischkies2013-06-091-1/+1
| | | | | | | | | | | | | | Used to work until a certain (here unnamed) person came along and used the wrong operator causing low-priority packages to be sorted above high-priority packages while choosing a provider in commit 2b5c35c7bb915dbd46fefd7c79f05364ba22f93b from Nov 2011
* | when doing MarkInstall() packages may also get removed, so show them in the ↵Michael Vogt2013-06-271-3/+10
|/ | | | debug output of Debug::pkgDepCache::AutoInstall=true
* * apt-pkg/cacheiterators.h:David Kalnischkies2013-04-031-15/+10
| | | - provide DepIterator::IsSatisfied as a nicer shorthand for DepCheck
* * apt-pkg/depcache.cc:David Kalnischkies2013-02-241-0/+31
| | | | - prefer to install packages which have an already installed M-A:same sibling while choosing providers (LP: #1130419)
* no mode changes should obviously be ok for pkgDepCache::IsModeChangeOkDavid Kalnischkies2012-11-091-2/+6
|
* * apt-pkg/depcache.cc:David Kalnischkies2012-11-091-13/+6
| | | | - don't call MarkInstall with the FromUser flag set for packages which are dependencies of APT::Never-MarkAuto-Sections matchers
* * apt-pkg/pkgcache.cc:David Kalnischkies2012-09-191-1/+1
| | | | - ignore negative dependencies applying in the same group for M-A:same packages on the real package name as self-conflicts
* provider is only a possible solution if the provides has the rightDavid Kalnischkies2012-04-231-1/+1
| | | | version (or none as we have no versioned provides in debian) and not if the version of the provider matches
* * apt-pkg/depcache.cc:David Kalnischkies2012-04-231-12/+13
| | | | | - clearly separate 'positive' and 'negative' dependencies and their upgrade-resolution tries in MarkInstall and especially don't treat Conflicts differently compared to Breaks here
* * Treat the Important flag like the Essential flag with two differences:Julian Andres Klode2012-03-051-0/+8
| | | | - No Immediate configuration (see above) - Not automatically installed during dist-upgrade
* * apt-pkg/depcache.cc:David Kalnischkies2012-01-291-11/+28
| | | | - if a M-A:same package is marked for reinstall, mark all it's installed silbings for reinstallation as well (LP: #859188)
* factor out the detection of self-conflicts into Dep::IsIgnorableDavid Kalnischkies2012-01-131-11/+2
|
* * apt-pkg/depcache.cc:David Kalnischkies2012-01-111-5/+11
| | | | - implicit conflicts (for multiarch) are supposed to conflict only with real packages, not with virtual providers
* * apt-pkg/depcache.cc:David Kalnischkies2011-11-231-28/+63
| | | | | | | | - prefer native providers over foreigns even if the chain is foreign The code preferred real over virtual packages and based on priorities. This is changed in so far that a real package from any arch is preferred over any virtual provider and if priorities doesn't help in choosing the best provider we choose it based on architectures
* use forward declaration in headers if possible instead of includesDavid Kalnischkies2011-09-191-1/+1
|
* do not pollute namespace in the headers with using (Closes: #500198)David Kalnischkies2011-09-191-0/+3
|
* merge with debian/experimentalDavid Kalnischkies2011-09-131-16/+16
|\
| * merged from the debian-sid branchMichael Vogt2011-08-151-14/+14
| |\
| | * cppcheck complains about some possible speed improvements which could beDavid Kalnischkies2011-08-111-14/+14
| | | | | | | | | | | | | | | | | | done on the mirco-optimazation level, so lets fix them: (performance) Possible inefficient checking for emptiness. (performance) Prefer prefix ++/-- operators for non-primitive types.
| * | [ABI break] merge patch from Jonathan Thomas to speed up theMichael Vogt2011-07-281-2/+2
| | | | | | | | | | | | depcache by caching the install-recommends and install-suggests values
* | | Support large files in the complete toolset. Indexes of thisDavid Kalnischkies2011-09-131-2/+2
| | | | | | | | | | | | size are pretty unlikely for now, but we need it for deb packages which could become bigger than 4GB now (LP: #815895)
* | | reorder includes: add <config.h> if needed and include it at firstDavid Kalnischkies2011-09-131-2/+4
|/ /
* | merged from http://bzr.debian.org/bzr/apt/apt/debian-sidMichael Vogt2011-07-151-1/+1
|\|
| * * apt-pkg/depcache.cc:David Kalnischkies2011-07-151-1/+1
| | | | | | - change default of APT::AutoRemove::SuggestsImportant to true
* | if a Breaks can't be upgraded, remove it. If it or a ConflictDavid Kalnischkies2011-05-171-5/+6
| | | | | | can't be removed the installation of the breaker fails.
* | let the Mark methods return if their marking was successfulDavid Kalnischkies2011-05-171-18/+21
| |
* | * apt-pkg/depcache.cc:David Kalnischkies2011-05-171-2/+3
| | | | | | | | - use a boolean instead of an int for Add/Remove in AddStates similar to how it works with AddSizes
* | remove deprecated methods which nobody should have used anyway likeDavid Kalnischkies2011-05-171-53/+1
| | | | | | | | pseudo-package related and/or private
* | rename option APT::Solver::Name to simply APT::SolverDavid Kalnischkies2011-05-171-2/+2
| |
* | * Implement EDSP in libapt-pkg so that all front-ends whichDavid Kalnischkies2011-05-171-1/+10
|\ \ | |/ |/| | | | | | | | | use the internal resolver can now be used also with external ones as the usage is hidden in between the old API * provide two edsp solvers in apt-utils: - 'dump' to quickly output a complete scenario and - 'apt' to use the internal as an external resolver
| * doesn't execute autoremove marker setting if an external solver is calledDavid Kalnischkies2011-05-021-0/+3
| | | | | | | | | | | | | | and instead rely on the Autoremove tagging to show us what could be done. (apt-internal-solver doesn't support this currently as it doesn't load the auto-information into the cache)
| * disable automatical installation of dependencies in MarkInstall if weDavid Kalnischkies2011-04-021-1/+1
| | | | | | | | will not use the default internal resolver later on
| * add a first round of stuff needed for talking between APT and solversDavid Kalnischkies2011-03-301-0/+6
| | | | | | | | | | | | based on a very early draft for EDSP by Stefano APT can now write a scenario as well as load most stuff from it.
* | rewrite new and previously satisfied important dependency detection inDavid Kalnischkies2011-05-131-43/+40
| | | | | | | | | | MarkInstall to be a bit more easy to read and possibily a bit faster - and add a small testcase for these situations to ensure the same behaviour
* | move the broken dependency detection above the new recommends detectionDavid Kalnischkies2011-05-121-16/+16
| | | | | | | | | | as if the recommends can't be installed there is not much sense in checking if it a new recommends or not
* | convert a lot of places to use IsNegative instead of checking by handDavid Kalnischkies2011-05-111-18/+7
| | | | | | | | for the three different dependencies
* | if critical or-group can't be satisfied, exit directly.David Kalnischkies2011-05-111-2/+12
| |
* | merge with debian-sid branch and 0.8.14.1 releaseDavid Kalnischkies2011-04-201-1/+1
|\ \ | | | | | | | | | | | | | | | | | | * apt-pkg/depcache.cc: - Really release action groups only once (Closes: #622744) * apt-pkg/acquire-item.cc: - Only try to rename existing Release files (Closes: #622912)
| * | apt-pkg/depcache.cc: Really release action groups only once (Closes: #622744)Julian Andres Klode2011-04-181-1/+1
| |/
* / * apt-pkg/depcache.cc:David Kalnischkies2011-04-161-2/+2
|/ | | | - really include 'rc' packages in the delete count by fixing a typo which exists since 1999 in the source… (LP: #761175)
* do not change protected packages in autoinstall (Closes: #618848)David Kalnischkies2011-03-261-2/+17
|
* * apt-pkg/depcache.cc:David Kalnischkies2011-03-251-5/+0
| | | - remove pseudo handling leftover from SetReInstall
* reorganize the marker methods a bit by moving the common part to aDavid Kalnischkies2011-03-201-59/+71
| | | | seperate IsModeChangeOk which checks sanity and dpkg holds
* Remove the "pseudopackage" handling of Architecture: all packages forDavid Kalnischkies2011-03-081-303/+1
| | | | | | | | | Multi-Arch; instead, Arch: all packages only satisfy dependencies for the native arch, except where the Arch: all package is declared Multi-Arch: foreign. (Closes: #613584) This has the sideeffect that arch:all packages internally show up as coming from the native arch - so packages with the architecture "all" doesn't exist any longer in the pkgcache