summaryrefslogtreecommitdiff
path: root/apt-pkg/edsp.cc
AgeCommit message (Collapse)Author
2015-06-12store Release files data in the CacheDavid Kalnischkies
We used to read the Release file for each Packages file and store the data in the PackageFile struct even through potentially many Packages (and Translation-*) files could use the same data. The point of the exercise isn't the duplicated data through. Having the Release files as first-class citizens in the Cache allows us to properly track their state as well as allows us to use the information also for files which aren't in the cache, but where we know to which Release file they belong (Sources are an example for this). This modifies the pkgCache structs, especially the PackagesFile struct which depending on how libapt users access the data in these structs can mean huge breakage or no visible change. As a single data point: aptitude seems to be fine with this. Even if there is breakage it is trivial to fix in a backportable way while avoiding breakage for everyone would be a huge pain for us. Note that not all PackageFile structs have a corresponding ReleaseFile. In particular the dpkg/status file as well as *.deb files have not. As these have only a Archive property need, the Component property takes over this duty and the ReleaseFile remains zero. This is also the reason why it isn't needed nor particularily recommended to change from PackagesFile to ReleaseFile blindly. Sticking with the earlier is usually the better option.
2014-11-08guard ABI changes for SourcePkg/Ver in pkgCacheDavid Kalnischkies
Git-Dch: Ignore
2014-09-27store source name and version in binary cacheDavid Kalnischkies
Accessing the package records to acquire this information is pretty costly, so that information wasn't used so far in many places. The most noticeable user by far is EDSP at the moment, but there are ideas to change that which this commit tries to enable.
2014-06-18don't send pkg from an unknown architecture via EDSPDavid Kalnischkies
APT's cache can include packages from architectures dpkg has no knowledge about and can therefore not be installed for e.g. to allow easy lookups. There is no point in telling external solvers about them though and some of them might even be really talkative about ignoring them if we do.
2014-05-30support parsing EDSP requests Architecture{,s} stanzaDavid Kalnischkies
Adds also a small testcase for EDSP Git-Dch: Ignore
2014-05-30check exit status of external solversDavid Kalnischkies
Solvers are supposed to exit successfully even if they haven't found a solution, but a solver which fails drastically (like e.g. segfaults) should be detected and dealt with accordingly instead of ignored.
2014-05-04EDSP: add APT-Release field to Package stanzasStefano Zacchiroli
2014-05-04EDSP: add Source field to Package stanzasStefano Zacchiroli
2014-05-04EDSP: add Architecture(s) multi-arch fields to the Request stanzaStefano Zacchiroli
2014-05-04EDSP: bump protocol version to 0.5Stefano Zacchiroli
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
2013-03-20apt-pkg/edsp.cc: do not use stderr in WriteSolution at allMichael Vogt
2013-03-20apt-pkg/edsp.cc: do not spam stderr in WriteSolutionMichael Vogt
2012-10-13* apt-pkg/edsp.cc:David Kalnischkies
- include reinstall requests and already installed (= protected) packages in the install-request for external resolvers (Closes: #689331)
2012-06-11* apt-pkg/cacheiterators.h:David Kalnischkies
- add an IsMultiArchImplicit() method for Dep- and PrvIterator
2011-10-14merged lp:~donkult/apt/experimentalMichael Vogt
2011-09-19use forward declaration in headers if possible instead of includesDavid Kalnischkies
2011-09-13reorder includes: add <config.h> if needed and include it at firstDavid Kalnischkies
2011-05-17* apt-pkg/pkgcache.h:David Kalnischkies
- clean up mess with the "all" handling in MultiArch to fix LP: #733741 cleanly for everyone now
2011-05-17rename option APT::Solver::Name to simply APT::SolverDavid Kalnischkies
2011-05-10send the first line of the error message to the error list and fail a bitDavid Kalnischkies
more nicely and in order
2011-05-10fix SubProgress to accept a Percent parameter to update the CurrentDavid Kalnischkies
with the text as otherwise the update will be ignored
2011-05-09implement proper progress report with OpProgressDavid Kalnischkies
2011-05-07implement correct error reportingDavid Kalnischkies
2011-05-06undo the temporary progress reporting disabling which slipped into last commitDavid Kalnischkies
2011-05-03fix arguments for MarkInstall so packages are really marked as automaticDavid Kalnischkies
2011-05-03maybe Pre-Depends are checked if they write them as Pre-Depends andDavid Kalnischkies
not as PreDepends (doh!) …
2011-05-03tell the resolver a package is set on hold if it was set by the userDavid Kalnischkies
to Keep which happens for example if a user decides to "remove" a not installed package to forbid that it's part of the solution
2011-05-03implement external solver calling for upgrade and dist-upgrade, tooDavid 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)
2011-05-02refactor: move solver execution into his own EDSP methodDavid Kalnischkies
2011-05-02reduce the buffer size so we get a sort of realtime progress reportDavid Kalnischkies
and print the time of output at the front of the progress report so we can see the delay
2011-05-02move the mapping generation to the top as the response reading isDavid Kalnischkies
currently waiting for the solver to complete and not non-blocking so we can generate the map while waiting for the solver
2011-05-02implement optional Progress report in EDSPDavid Kalnischkies
2011-04-25reorganize WriteScenario to add a WriteLimitedScenario in which a scenarioDavid Kalnischkies
can be limited to a subset of packages with only relevant dependencies
2011-04-19use the version id instead of the mmap offset as APT-IDDavid Kalnischkies
This leads to a small performance decrease as we need to build this mapping now while interpreting the Response but a (buggy) solver can't point us to dangerous memory locations anymore this way and VersionCount remains useful for other mapping proposes
2011-04-19Interpret Remove and Install lines in Responses correctlyDavid Kalnischkies
2011-04-02send the scenario through a pipe to the solver and get the solution backDavid Kalnischkies
The solution is NOT interpreted so far.
2011-04-01parse also the action flags Upgrade, Dist-Upgrade and alike from the requestDavid Kalnischkies
2011-04-01Read and apply install/remove requests correctlyDavid Kalnischkies
2011-03-31WriteRequest according to current EDSP draftDavid Kalnischkies
2011-03-31rename edspwriter to straight edsp in toplevel as it does more thanDavid Kalnischkies
just writing stuff… it also reads and can work for both: - APT talking to an external solver - an external solver (understanding EDSP) talking to APT