* apt-pkg/deb/dpkgpm.cc:
- use std::vector instead of fixed size arrays to store args and
multiarch-packagename strings
- load the dpkg base arguments only one time and reuse them later
* cmdline/apt-get.cc:
- follow Provides in the evaluation of saving candidates, too, for
statisfying garbage package dependencies (Closes: #640590)
* apt-pkg/algorithms.cc:
- if a package is garbage, don't try to save it with FixByInstall
update the test to ensure that NotAutomatic and co is used also
if the archive is signed, but the signature can't be checked
as the key is missing (debbugs #597301 - fix in r2105)
- 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)
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.
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
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)
Michael Vogt [Thu, 28 Jul 2011 13:16:18 +0000 (15:16 +0200)]
* apt-pkg/contrib/fileutl.{cc,h}:
- add GetModificationTime() helper
* apt-pkg/pkgcachegen.cc:
- regenerate the cache if the sources.list changes to ensure
that changes in the ordering there will be honored by apt
* apt-pkg/sourcelist.{cc,h}:
- add pkgSourceList::GetLastModifiedTime() helper
Michael Vogt [Tue, 26 Jul 2011 08:49:28 +0000 (10:49 +0200)]
* apt-pkg/contrib/strutl.{h,cc}, test/libapt/strutil_test.cc:
- add new DeEscapeString() similar to DeQuoteQuotedWord but
unescape charackter escapes like \0XXX and \xXX (plus add test)
David Miller [Tue, 26 Jul 2011 07:00:10 +0000 (09:00 +0200)]
* apt-pkg/contrib/sha1.cc:
- fix illegally casts of on-stack buffer to a type requiring more
alignment than it has resulting in segfaults on sparc (Closes: #634696)
The problem is how sha1.cc codes the SHA1 transform, it illegally
casts the on-stack workspace buffer to a type requiring more
alignment than 'workspace' is actually declared to have.
This only shows up recently because gcc-4.6 now does a really
aggressive optimization where it gets rid of the workspace
buffer entirely and just accesses 'buffer' directly, and assumes
it has the necessary alignment for 32-bit loads (which it
doesn't).
* apt-pkg/deb/deblistparser.cc:
- Strip only :any and :native if MultiArch should be stripped as it is
save to ignore them in non-MultiArch contexts but if the dependency
is a specific architecture (and not the native) do not strip
alternatively check in a versioned depends if the candidate is good
The old code used to do move on to versions behind the candidate in
cases the candidate wasn't a match, but as the Install request later
always installs the candidate (witch wasn't switched) this could have
never worked - and shouldn't in most cases anyway as:
a) it could only work for <, <=, != depends which are unusal
b) doesn't respect pinning, so it could install -1 versions