enable APT in unpack/configure ordering to handle loops as well
as tight dependencies between immediate packages better
enabling also the possibility to mark all packages as immediate
(at least Closes: #353290, #540227, #559733, #621836, #639290)
Support large files in the complete toolset. Indexes of this
size are pretty unlikely for now, but we need it for deb
packages which could become bigger than 4GB now (LP: #815895)
- add an Acquire::Min-ValidTime option (Closes: #640122)
* doc/apt.conf.5.xml:
- reword Acquire::Max-ValidTime documentation to make clear
that it doesn't provide the new Min-ValidTime functionality
* apt-pkg/orderlist.cc:
- prefer visiting packages marked for deletion in VisitProvides
if we are operating on a negative dependency so that we can
deal early with the fallout of this remove
* test/*
- reorganize the various testcases and helper we have and
integrate them better into the buildsystem
- run the test/libapt testcases at package build-time
remove the interactive scratch test, it doesn't test much and what
it tests is covered by your non-interactive testcases,
so this one wasn't used for a looooong time
* apt-pkg/packagemanager.cc, apt-pkg/pkgcache.cc:
- ignore "self"-conflicts for all architectures of a package
instead of just for the architecture of the package locked at
in the ordering of installations too (Closes: #802901)
Fixed a bug where SmartUnPack would be called with Immediate=true (to resolve dependancies in SmartConfigure) yet Pkg
would not be immediately configured. This was because SmartUnPack still required the immediate flag to be set on Pkg.
Also inproved the debuging adding indented output for SmartUnPack and SmartConfigure and specifying in the output if
SmartConfigure or SmartUnPack was called just to Correct something (PkgLoop = true) or not.
Applied DonKult (David)'s excellent fix for inproving the loop management. Now both SmartConfigure and SmartUnPack can be
called mutiple times on the same package, this is to make sure that when loops are broken all packages that are required
are kept in the same dpkg run.
rename the parameter name of MarkDelete from Purge to MarkPurge to
fix a cosmetic warning from cppcheck:
[apt-pkg/depcache.h:462] -> [apt-pkg/depcache.h:122]:
(style) Variable 'Purge' hides enumerator with same name
cppcheck complains about some possible speed improvements which could be
done on the mirco-optimazation level, so lets fix them:
(performance) Possible inefficient checking for emptiness.
(performance) Prefer prefix ++/-- operators for non-primitive types.
Added a RmFlag function to remvoe the loop flag, this should prevent any errors or wierd behaviour because of the loop flag being used
at mutiple stages in both SmartUnpack and SmartConfigure.
Improved errors and messages in general and improved the comments.
Removed quite a bit of code I used while learning about how apt handles things.
Added some extra checks and warnings relevent for Immediate Configuration.
Removed a wierd section I put in to prevent a segfault at 724+, this appears no longer to be needed.
Fixed a bug on line 623, I picked this up after seeing SmartUnpack trying to remove packages once they were confiured to solve Conflicts with the previous version!
Luckily EarlyRemove is sane, and properly checks, so I think this was just cosmetic.
Also fixed a bug on line 374 with SmartUnpack not checking if a dependancy has been removed, this bug was definately harmful.
Michael Vogt [Fri, 5 Aug 2011 10:29:40 +0000 (12:29 +0200)]
* test/integration/test-hashsum-verification:
- add regression test for hashsum verification
* apt-pkg/acquire-item.cc:
- if no Release.gpg file is found, still load the hashes for
verification (closes: #636314) and add test
Only stop on SigInt if the system state is right (still needs more testing).
More inprovements to the package manager to prevent packages from being configured
twice.
Only allow interupts when using, Immediate-Configure-All.
TODO for dpkgpm:
Useful messages about the interupt, what was done to what packages and what was not done to what packages.
Only fail when the system is in a clean state, at the moment it will fail either a configure or install run.
Michael Vogt [Fri, 29 Jul 2011 11:37:33 +0000 (13:37 +0200)]
* apt-pkg/pkgcachegen.{cc,h}:
- use ref-to-ptr semantic in NewDepends() to ensure that the
libapt does not segfault if the cache is remapped in between
(LP: #812862)