summaryrefslogtreecommitdiff
path: root/apt-pkg/depcache.cc
AgeCommit message (Collapse)Author
2014-03-13follow method attribute suggestions by gccDavid Kalnischkies
Git-Dch: Ignore Reported-By: gcc -Wsuggest-attribute={pure,const,noreturn}
2014-03-13cleanup headers and especially #includes everywhereDavid Kalnischkies
Beside being a bit cleaner it hopefully also resolves oddball problems I have with high levels of parallel jobs. Git-Dch: Ignore Reported-By: iwyu (include-what-you-use)
2014-03-13warning: unused parameter ‘foo’ [-Wunused-parameter]David Kalnischkies
Reported-By: gcc -Wunused-parameter Git-Dch: Ignore
2014-03-13warning: no previous declaration for foobar() [-Wmissing-declarations]David Kalnischkies
Git-Dch: Ignore Reported-By: gcc -Wmissing-declarations
2014-03-13warning: extra ‘;’ [-Wpedantic]David Kalnischkies
Git-Dch: Ignore Reported-By: gcc -Wpedantic
2014-02-22Fix typos in documentation (codespell)Michael Vogt
2014-02-06Merge remote-tracking branch 'mvo/bugfix/multiarch-upgrade' into debian/sidMichael Vogt
2014-02-06discard impossible candidates in MarkInstallDavid Kalnischkies
If a (Pre-)Depends can't be satisfied there is no point in keeping the candidate as is as it is impossible to find a solution for it, so we can just as well reset the candidate to the currently installed version. We avoid trying to install this impossible candidate later on this way. Closes: #735967
2014-02-04Fix multiarch package upgrade issueMichael Vogt
When checking for negative dependencies in MarkInstall() ensure that only dependencies that are relevant (i.e. getting installed) are checked.
2013-11-29fix crash when SetCandidateRelease is usedMichael Vogt
2013-10-01don't consider holds for autoremovalDavid Kalnischkies
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
2013-08-01prefer native arch over higher priority for providersColin Watson
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
2013-07-11prevent MarkInstall of unsynced Multi-Arch:same siblingsDavid Kalnischkies
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.
2013-07-02Merge remote-tracking branch 'donkult/debian/sid' into debian/sidMichael Vogt
Conflicts: debian/changelog
2013-06-27when doing MarkInstall() packages may also get removed, so show them in the ↵Michael Vogt
debug output of Debug::pkgDepCache::AutoInstall=true
2013-06-09try all providers in order if uninstallable in MarkInstallDavid Kalnischkies
2013-06-09fix priority sorting by prefering higher in MarkInstallDavid Kalnischkies
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
2013-04-03* apt-pkg/cacheiterators.h:David Kalnischkies
- provide DepIterator::IsSatisfied as a nicer shorthand for DepCheck
2013-02-24* apt-pkg/depcache.cc:David Kalnischkies
- prefer to install packages which have an already installed M-A:same sibling while choosing providers (LP: #1130419)
2012-11-09no mode changes should obviously be ok for pkgDepCache::IsModeChangeOkDavid Kalnischkies
2012-11-09* apt-pkg/depcache.cc:David Kalnischkies
- don't call MarkInstall with the FromUser flag set for packages which are dependencies of APT::Never-MarkAuto-Sections matchers
2012-09-19* apt-pkg/pkgcache.cc:David Kalnischkies
- ignore negative dependencies applying in the same group for M-A:same packages on the real package name as self-conflicts
2012-04-23provider is only a possible solution if the provides has the rightDavid Kalnischkies
version (or none as we have no versioned provides in debian) and not if the version of the provider matches
2012-04-23* apt-pkg/depcache.cc:David Kalnischkies
- clearly separate 'positive' and 'negative' dependencies and their upgrade-resolution tries in MarkInstall and especially don't treat Conflicts differently compared to Breaks here
2012-03-05* Treat the Important flag like the Essential flag with two differences:Julian Andres Klode
- No Immediate configuration (see above) - Not automatically installed during dist-upgrade
2012-01-29* apt-pkg/depcache.cc:David Kalnischkies
- if a M-A:same package is marked for reinstall, mark all it's installed silbings for reinstallation as well (LP: #859188)
2012-01-13factor out the detection of self-conflicts into Dep::IsIgnorableDavid Kalnischkies
2012-01-11* apt-pkg/depcache.cc:David Kalnischkies
- implicit conflicts (for multiarch) are supposed to conflict only with real packages, not with virtual providers
2011-11-23* apt-pkg/depcache.cc:David Kalnischkies
- 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
2011-09-19use forward declaration in headers if possible instead of includesDavid Kalnischkies
2011-09-19do not pollute namespace in the headers with using (Closes: #500198)David Kalnischkies
2011-09-13merge with debian/experimentalDavid Kalnischkies
2011-09-13Support large files in the complete toolset. Indexes of thisDavid Kalnischkies
size are pretty unlikely for now, but we need it for deb packages which could become bigger than 4GB now (LP: #815895)
2011-09-13reorder includes: add <config.h> if needed and include it at firstDavid Kalnischkies
2011-08-15merged from the debian-sid branchMichael Vogt
2011-08-11cppcheck complains about some possible speed improvements which could beDavid Kalnischkies
done on the mirco-optimazation level, so lets fix them: (performance) Possible inefficient checking for emptiness. (performance) Prefer prefix ++/-- operators for non-primitive types.
2011-07-28[ABI break] merge patch from Jonathan Thomas to speed up theMichael Vogt
depcache by caching the install-recommends and install-suggests values
2011-07-15merged from http://bzr.debian.org/bzr/apt/apt/debian-sidMichael Vogt
2011-07-15* apt-pkg/depcache.cc:David Kalnischkies
- change default of APT::AutoRemove::SuggestsImportant to true
2011-05-17if a Breaks can't be upgraded, remove it. If it or a ConflictDavid Kalnischkies
can't be removed the installation of the breaker fails.
2011-05-17let the Mark methods return if their marking was successfulDavid Kalnischkies
2011-05-17* apt-pkg/depcache.cc:David Kalnischkies
- use a boolean instead of an int for Add/Remove in AddStates similar to how it works with AddSizes
2011-05-17remove deprecated methods which nobody should have used anyway likeDavid Kalnischkies
pseudo-package related and/or private
2011-05-17rename option APT::Solver::Name to simply APT::SolverDavid Kalnischkies
2011-05-17* Implement EDSP in libapt-pkg so that all front-ends whichDavid Kalnischkies
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
2011-05-13rewrite new and previously satisfied important dependency detection inDavid Kalnischkies
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
2011-05-12move the broken dependency detection above the new recommends detectionDavid Kalnischkies
as if the recommends can't be installed there is not much sense in checking if it a new recommends or not
2011-05-11convert a lot of places to use IsNegative instead of checking by handDavid Kalnischkies
for the three different dependencies
2011-05-11if critical or-group can't be satisfied, exit directly.David Kalnischkies
2011-05-02doesn't execute autoremove marker setting if an external solver is calledDavid Kalnischkies
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)