summaryrefslogtreecommitdiff
path: root/apt-pkg/depcache.cc
Commit message (Collapse)AuthorAgeFilesLines
* 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
* * apt-pkg/depcache.cc:David Kalnischkies2011-02-171-2/+4
| | | | | | | | - party revert fix in 0.8.11.2 which marked all packages as manual installed if the FromUser bit is set in the MarkInstall call. The default for this bit is true and aptitude depends on the old behavior so the package is only marked as manual if its not marked ("old" behavior) or if automatic installation is enabled - which aptitude disables always (see also #613775)
* * apt-pkg/depcache.cc:David Kalnischkies2011-02-111-3/+2
| | | | | - mark a package which was requested to be installed on commandline always as manual regardless if it is already marked or not as the marker could be lost later by the removal of rdepends (Closes: #612557)