summaryrefslogtreecommitdiff
path: root/apt-pkg/pkgcachegen.h
Commit message (Collapse)AuthorAgeFilesLines
* make all d-pointer * const pointersDavid Kalnischkies2015-08-101-2/+2
| | | | | | | | | | | | | | Doing this disables the implicit copy assignment operator (among others) which would cause hovac if used on the classes as it would just copy the pointer, not the data the d-pointer points to. For most of the classes we don't need a copy assignment operator anyway and in many classes it was broken before as many contain a pointer of some sort. Only for our Cacheset Container interfaces we define an explicit copy assignment operator which could later be implemented to copy the data from one d-pointer to the other if we need it. Git-Dch: Ignore
* apply various style suggestions by cppcheckDavid Kalnischkies2015-08-101-1/+1
| | | | | | | Some of them modify the ABI, but given that we prepare a big one already, these few hardly count for much. Git-Dch: Ignore
* add d-pointer, virtual destructors and de-inline de/constructorsDavid Kalnischkies2015-06-161-9/+8
| | | | | | | | To have a chance to keep the ABI for a while we need all three to team up. One of them missing and we might loose, so ensuring that they are available is a very tedious but needed task once in a while. Git-Dch: Ignore
* populate the Architecture field for PackageFilesDavid Kalnischkies2015-06-151-1/+1
| | | | | | | | | | | This is mainly visible in the policy, so that you can now pin by b= and let it only effect Packages files of this architecture and hence the packages coming from it (which do not need to be from this architecture, but very likely are in a normal repository setup). If you should pin by architecture in this way is a different question… Closes: 687255
* store Release files data in the CacheDavid Kalnischkies2015-06-121-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* mark internal interfaces as hiddenDavid Kalnischkies2014-11-081-5/+5
| | | | | | | We have a bunch of classes which are of no use for the outside world, but were still exported and so needed to preserve ABI/API. Marking them as hidden to not export them any longer is a big API break in theory, but in practice nobody is using them – as if they would its a bug.
* use a abi version check similar to the gcc checkDavid Kalnischkies2014-11-081-1/+1
| | | | Git-Dch: Ignore
* rename StringType VERSION to VERSIONNUMBERDavid Kalnischkies2014-10-031-2/+2
| | | | | | | aptitude has a define for VERSION, so to not generate a FTBFS we just rename our enum element to a slightly less generic name. Git-Dch: Ignore
* fix: Member variable 'X' is not initialized in the constructor.David Kalnischkies2014-09-271-1/+1
| | | | | Reported-By: cppcheck Git-Dch: Ignore
* drop stored StringItems in favor of in-memory mappingsDavid Kalnischkies2014-09-271-6/+12
| | | | | | | | | | | | | | | Strings like Section names or architectures are needed vary often. Instead of writing them each time we need them, we deploy sharing for these special strings. Until now, this was done with a linked list of strings in which we would search, which was stored in the cache. It turns out we can do this just as well in memory as well with a bunch of std::map's. In memory means here that it isn't available anymore if we have a partly invalid cache, but that isn't much of a problem in practice as the status file is compared to the other files we parse very small and includes mostly duplicates, so the space we would gain by storing is more or less equal to the size of the stored linked list…
* cleanup datatypes mix used in binary cacheDavid Kalnischkies2014-06-181-22/+22
| | | | | | | | We had a wild mixture of (unsigned) int, long and long long here without much sense, so this commit adds a few typedefs to get some sense in the typesystem and ensures that a ID isn't sometimes computed as int, stored as long and compared with a long long… as this could potentially bite us later on as the size of the archive only increases over time.
* parse and retrieve multiple Descriptions in one recordDavid Kalnischkies2014-05-091-2/+5
| | | | | | | | It seems unlikely for now that proper archives will carry multiple Description-* stanzas in the Packages (or Translation-*) file, but sometimes apt eats its own output as shown by the usage of the CD team and it would be interesting to let apt output multiple translations e.g. in 'apt-cache show'.
* mark optional (private) symbols as hiddenDavid Kalnischkies2014-03-211-9/+9
| | | | | | | | This methods should not be used by anyone expect the library itself as they are helpers for the specific class and therefore perfect candidates for hidding. Git-Dch: Ignore
* abstract version hash comparison a bitDavid Kalnischkies2014-03-131-0/+9
| | | | | | | | 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
* follow method attribute suggestions by gccDavid Kalnischkies2014-03-131-1/+1
| | | | | Git-Dch: Ignore Reported-By: gcc -Wsuggest-attribute={pure,const,noreturn}
* cleanup headers and especially #includes everywhereDavid Kalnischkies2014-03-131-5/+7
| | | | | | | | 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)
* warning: unused parameter ‘foo’ [-Wunused-parameter]David Kalnischkies2014-03-131-2/+2
| | | | | Reported-By: gcc -Wunused-parameter Git-Dch: Ignore
* share version strings between same versions (of different architectures)David Kalnischkies2013-04-031-1/+5
| | | to save some space and allow quick comparisions later on
* factor version string creation out of NewDepends, so we can easily reuseDavid Kalnischkies2013-03-131-0/+3
| | | version strings e.g. for implicit multi-arch dependencies
* add implicit dependencies needed for Multi-Arch at the time a VersionDavid Kalnischkies2011-10-121-1/+6
| | | | | | | 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.
* * apt-pkg/pkgcachegen.cc:David Kalnischkies2011-10-111-0/+6
| | | - refactor MergeList by creating -Group, -Package and -Version specialist
* remove old APT_COMPATIBILITY ifdef'sDavid Kalnischkies2011-09-191-14/+0
|
* do not pollute namespace in the headers with using (Closes: #500198)David Kalnischkies2011-09-191-19/+19
|
* * apt-pkg/pkgcachegen.{cc,h}:Michael Vogt2011-07-291-1/+1
| | | | | - use ref-to-ptr semantic in NewDepends() to ensure that the libapt does not segfault if the cache is remapped in between (LP: #812862)
* switch from std::set to std::vector as it is way more simple, a bitDavid Kalnischkies2010-07-091-7/+5
| | | | faster and still provides everything we need for the Cache generator
* * doc/apt.conf.5.xml:David Kalnischkies2010-07-091-0/+1
| | | - add and document APT::Cache-{Start,Grow,Limit} options for mmap control
* * apt-pkg/pkgcachegen.{cc,h}:David Kalnischkies2010-07-081-6/+24
| | | | - make the used MMap moveable (and therefore dynamic resizeable) by applying (some) mad pointer magic (Closes: #195018)
* use references instead of copies in the Cache generation methodsDavid Kalnischkies2010-07-081-6/+6
|
* wrap the mmap actions in the CacheGenerator in their own methods toDavid Kalnischkies2010-07-061-4/+8
| | | | be able to react on condition changes later then we can move mmap
* * apt-pkg/cachefile.{cc,h}:David Kalnischkies2010-06-041-2/+8
| | | | - split Open() into submethods to be able to build only parts - make the OpProgress optional in the Cache buildprocess
* Foreign Versions add an implicit Provides to the other packages in the groupDavid Kalnischkies2010-02-101-2/+2
|
* Drop the Arch information from the Version structure as we can getDavid Kalnischkies2010-02-071-0/+1
| | | | the information from the parent package now
* Split ListParser::NewDepends into two methods to use these new methodDavid Kalnischkies2009-12-271-1/+5
| | | | | | | | | for creating the dependencies needed for our groups: For now for all groups only one package can be installed at the same time which conflicts with each other packages in the group. The exceptions are architecture all package. Also, the Multi-Arch field is now parsed, but not used for now.
* Implement the first step toward Multi-Arch by setting up a GroupDavid Kalnischkies2009-12-191-2/+4
| | | | | | | | | | | | infrastructor for packages. APT is now aware of the fact that a package A in architecture X can't satisfy a dependency on package A in architecture Y - to handle these packages are now identified by name and architecture, so different architectures of the same package are handled internally as completly different packages. This is great for pinning, dependency checking and in many other situations, but sometimes we need to know which archs are available for a given package: Here Groups come to our rescue!
* add the various foldmarkers in apt-pkg & cmdline (no code change)David Kalnischkies2009-06-301-4/+4
|
* * fixed compile errors with g++ 7.3 (thanks to Michael Vogt2007-06-191-1/+1
| | | | | Daniel Burrows, closes: #429378) * fix FTFBFS by changing build-depends to libcurl4-gnutls-dev (closes: #428363)
* * merged the no-pragma branchMichael Vogt2006-12-141-3/+0
|\
| * * removed the pragma messMichael Vogt2006-10-021-3/+0
| |
* | * merged with apt--mvoMichael Vogt2005-11-301-8/+9
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patches applied: * apt@packages.debian.org/apt--sources-list-d--0--base-0 tag of apt@packages.debian.org/apt--main--0--patch-30 * apt@packages.debian.org/apt--sources-list-d--0--patch-1 Patch from apt-rpm via Michael Vogt to implement /etc/apt/sources.list.d * bubulle@debian.org--2005/apt--main--0--patch-130 Galician translation completed * bubulle@debian.org--2005/apt--main--0--patch-131 Simplified Chinese translation update * bubulle@debian.org--2005/apt--main--0--patch-132 Completed Simplified Chinese translation * bubulle@debian.org--2005/apt--main--0--patch-133 Merge with Michael AND update PO files * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-90 * merged the sources.list.d patch * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-91 * merged with bubulle * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-92 * changelog update * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-93 * sources.list.d documented * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-94 * pkgDirStream has (slightly) better extract support now * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-95 * merge fix for #339533 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-96 * merged with bubulle * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-97 * some more debug output * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-98 * ABI change: merged more flexible pkgAcquireFile code * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-99 * merged http download limit for apt (#146877) * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-100 * applied parts of the string speedup patch from debian #319377 (ABI change) * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-101 * fix for #340448 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-102 * finalized this release * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-103 * changelog updates * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-104 * build-depend on libdb4.3 now, fix for kFreeBSD (#317718) * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-105 * fix mailaddress * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-106 * fix a string (thanks to bubulle) * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-107 * merged with bubulle
| * * applied parts of the string speedup patch from debian #319377 (ABI change)Michael Vogt2005-11-231-8/+9
| |
* | Port DDTP to APT 0.6 branchOtavio Salvador2005-03-231-0/+6
|/
* Gustavo Niemeyer stuff for RPM file dependsArch Librarian2004-09-201-1/+15
| | | | | | Author: jgg Date: 2002-07-08 03:13:30 GMT Gustavo Niemeyer stuff for RPM file depends
* Join with aliencodeArch Librarian2004-09-201-16/+25
| | | | | | Author: jgg Date: 2001-02-20 07:03:16 GMT Join with aliencode
* Minor cleanups, fix for checksum lowercase bugArch Librarian2004-09-201-3/+8
| | | | | | Author: jgg Date: 1999-07-26 17:46:07 GMT Minor cleanups, fix for checksum lowercase bug
* Added a depends option to apt-cacheArch Librarian2004-09-201-2/+2
| | | | | | Author: jgg Date: 1999-07-15 03:15:48 GMT Added a depends option to apt-cache
* Multiple different versions supportArch Librarian2004-09-201-1/+2
| | | | | | Author: jgg Date: 1999-05-23 22:55:54 GMT Multiple different versions support
* Fixed segfault in re-install/upgrade conditionArch Librarian2004-09-201-4/+4
| | | | | | Author: jgg Date: 1999-04-28 22:48:44 GMT Fixed segfault in re-install/upgrade condition
* Support for memory-only cachingArch Librarian2004-09-201-1/+3
| | | | | | Author: jgg Date: 1999-04-18 06:36:36 GMT Support for memory-only caching
* performance tuningArch Librarian2004-09-201-1/+9
| | | | | | Author: jgg Date: 1999-02-23 06:46:24 GMT performance tuning
* Release supportArch Librarian2004-09-201-2/+4
| | | | | | Author: jgg Date: 1998-12-14 02:23:46 GMT Release support