summaryrefslogtreecommitdiff
path: root/apt-pkg/pkgcachegen.cc
AgeCommit message (Collapse)Author
2019-02-08backport "do not segfault in cache generation on mmap failure"Heitor R. Alves de Siqueira
Original commit message: Out of memory and similar circumstanzas could cause MMap::Map to fail and especially the mmap/malloc calls in it. With some additional checking we can avoid segfaults and similar in such situations – at least in theory as if this is a real out of memory everything we do to handle the error could just as well run into a memory problem as well… But at least in theory (if MMap::Map is made to fail always) we can deal with it so good that a user actually never sees a failure (as the cache it tries to load with it fails and is discarded, so that DynamicMMap takes over and a new one is build) instead of segfaulting. Closes: 803417 LP: #1815129
2014-03-13abstract version hash comparison a bitDavid Kalnischkies
In #737085 we see that apt can be confused if informations about versions only differ slightly. This commit adds a way of at least adding a few more data points with the next abi break to help a bit with it. Git-Dch: Ignore
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: cannot optimize loop, the loop counter may overflow ↵David Kalnischkies
[-Wunsafe-loop-optimizations] Git-Dch: Ignore Reported-By: gcc -Wunsafe-loop-optimizations
2014-03-13warning: cast from type A to type B casts away qualifiers [-Wcast-qual]David Kalnischkies
Git-Dch: Ignore Reported-By: gcc -Wcast-qual
2013-06-20handle missing "Description" in apt-cache showDavid Kalnischkies
do not blindly assume that all packages stanzas have a "Description:" field in 'apt-cache show' as well as in the cache creation itself. We instead assume now that if the stanza has a Description, it will not be the first field as we look out for "\nDescription" to take care of MD5sum as well as (maybe ignored) translated Descriptions embedded in the package stanza. Closes: #712435
2013-04-03share version strings between same versions (of different architectures)David Kalnischkies
to save some space and allow quick comparisions later on
2013-04-03 - sort group and package names in the hashtable on insertDavid Kalnischkies
* apt-pkg/pkgcache.cc: - assume sorted hashtable entries for groups/packages
2013-04-01equal comparisions are used mostly in same-source relations,David Kalnischkies
so use this to try to reuse some version strings
2013-03-13factor version string creation out of NewDepends, so we can easily reuseDavid Kalnischkies
version strings e.g. for implicit multi-arch dependencies
2013-03-12handle language tags for descriptions are unique strings to be sharedDavid Kalnischkies
2013-03-12* apt-pkg/pkgcachegen.cc:David Kalnischkies
- do not store the MD5Sum for every description language variant as it will be the same for all so it can be shared to save cache space
2012-10-15* apt-pkg/pkgcachegen.cc:Michael Vogt
- Fix crash if the cache is remapped while writing a Provides version (LP: #1066445).
2012-10-13write the native architecture as unique string into the cache headerDavid Kalnischkies
as it is used for arch:all packages as a map to arch:native. Otherwise arch comparisons later will see differences (Closes: #689323)
2012-10-13correct "3 missing" to "2 missing" remap registrations as the VersionDavid Kalnischkies
handled in NewVersion is already registered
2012-09-19add 3 missing remap registrations causing a segfault in caseDavid Kalnischkies
we use the not remapped iterators after a move of the mmap again
2012-09-19* apt-pkg/pkgcachegen.cc:David Kalnischkies
- ensure that dependencies for packages:none are always generated
2012-09-09* apt-pkg/pkgcachegen.cc:David Kalnischkies
- do not create 'native' (or now 'none') package structures as a side effect of description translation parsing as it pollutes the cache
2012-09-09handle packages without a mandatory architecture (debian-policy §5.3)David Kalnischkies
by introducing a pseudo-architecture 'none' so that the small group of users with these packages can get right of them without introducing too much hassle for other users (Closes: #686346)
2012-06-14* apt-pkg/pkgcachegen.cc:Daniel Hartwig
- always reset _error->StackCount in MakeStatusCache (Closes: #677175)
2012-05-12* apt-pkg/pkgcachegen.cc:David Kalnischkies
- make IsDuplicatedDescription static so that it is really private as we don't need a symbol for it as it is not in a header
2012-05-05check if we work on a valid description in IsDuplicateDescription asDavid Kalnischkies
we end up working on dangling pointers otherwise which segfaults on s390x and ppc64 (Closes: #669427)
2012-05-02* apt-pkg/pkgcachegen.cc:David Kalnischkies
- check if NewDescription allocation has failed and error out accordingly
2011-12-15atleast libapt should announce to itself that it is clean…David Kalnischkies
(and be it if it tries to announce that…)
2011-10-12add implicit dependencies needed for Multi-Arch at the time a VersionDavid Kalnischkies
struct is created and not at the end of the cache generation This allows us to be independent from the configured architectures for these kind of conflicts, we get natural progress for free and only the needed dependencies are in th respective binary cache.
2011-10-12use one string to construct the error message instead of using multipleDavid Kalnischkies
just with different debugging information at the end
2011-10-12a version can have only a single md5 for descriptions, so we can optimizeDavid Kalnischkies
the merging with this knowledge a bit and by correctly sharing the lists we only need to have a single description list for possibly many different versions. This also means that description translations are shared between different sources
2011-10-11share description list between "same" versions (LP: #868977)David Kalnischkies
2011-10-11* apt-pkg/pkgcachegen.cc:David Kalnischkies
- refactor MergeList by creating -Group, -Package and -Version specialist
2011-09-19remove old APT_COMPATIBILITY ifdef'sDavid Kalnischkies
2011-09-19use forward declaration in headers if possible instead of includesDavid Kalnischkies
2011-09-13merge with debian/experimentalDavid Kalnischkies
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-15merged fixes from lp:~mvo/apt/mvoMichael 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-08-08apt-pkg/pkgcachegen.cc: fix incorrect test for modification timeMichael Vogt
2011-08-05apt-pkg/pkgcachegen.cc: fix compiler errorMichael Vogt
2011-08-01fix crash when P.Arch() was used but the cache got remappedMichael Vogt
2011-08-01apt-pkg/pkgcachegen.cc: copy Arch to avoid segfault on cache remapMichael Vogt
2011-07-29merged from debian-sidMichael Vogt
2011-07-29merge from lp:~mvo/apt/mvoMichael Vogt
2011-07-29* apt-pkg/pkgcachegen.{cc,h}:Michael Vogt
- use ref-to-ptr semantic in NewDepends() to ensure that the libapt does not segfault if the cache is remapped in between (LP: #812862)
2011-07-28merged from lp:~mvo/apt/mvoMichael Vogt
2011-07-28* apt-pkg/contrib/fileutl.{cc,h}:Michael Vogt
- 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
2011-07-20apt-pkg/pkgcachegen.cc: Write the file size to the cacheJulian Andres Klode
2011-07-15merged from http://bzr.debian.org/bzr/apt/apt/debian-sidMichael Vogt
2011-06-30* apt-pkg/pkgcachegen.cc:David Kalnischkies
- fallback to memory if file is not writeable even if access() told us the opposite before (e.g. in fakeroot 1.16) (Closes: #630591)
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