summaryrefslogtreecommitdiff
path: root/apt-pkg/indexcopy.cc
AgeCommit message (Collapse)AuthorFilesLines
2016-06-22add insecure (and weak) allow-options for sources.listDavid Kalnischkies1-1/+1
Weak had no dedicated option before and Insecure and Downgrade were both global options, which given the effect they all have on security is rather bad. Setting them for individual repositories only isn't great but at least slightly better and also more consistent with other settings for repositories.
2016-01-26act on various suggestions from cppcheckDavid Kalnischkies1-2/+2
Reported-By: cppcheck Git-Dch: Ignore
2015-09-14avoid using global PendingError to avoid failing too often too soonDavid Kalnischkies1-4/+4
Our error reporting is historically grown into some kind of mess. A while ago I implemented stacking for the global error which is used in this commit now to wrap calls to functions which do not report (all) errors via return, so that only failures in those calls cause a failure to propergate down the chain rather than failing if anything (potentially totally unrelated) has failed at some point in the past. This way we can avoid stopping the entire acquire process just because a single source produced an error for example. It also means that after the acquire process the cache is generated – even if the acquire process had failures – as we still have the old good data around we can and should generate a cache for (again). There are probably more instances of this hiding, but all these looked like the easiest to work with and fix with reasonable (aka net-positive) effects.
2015-08-17Fix all the wrong removals of includes that iwyu got wrongMichael Vogt1-0/+1
Git-Dch: ignore
2015-08-17Cleanup includes after running iwyuMichael Vogt1-1/+0
2015-08-10merge indexRecords into metaIndexDavid Kalnischkies1-8/+10
indexRecords was used to parse the Release file – mostly the hashes – while metaIndex deals with downloading the Release file, storing all indexes coming from this release and … parsing the Release file, but this time mostly for the other fields. That wasn't a problem in metaIndex as this was done in the type specific subclass, but indexRecords while allowing to override the parsing method did expect by default a specific format. APT isn't really supporting different types at the moment, but this is a violation of the abstraction we have everywhere else and, which is the actual reason for this merge: Options e.g. coming from the sources.list come to metaIndex naturally, which needs to wrap them up and bring them into indexRecords, so the acquire system is told about it as they don't get to see the metaIndex, but they don't really belong in indexRecords as this is just for storing data loaded from the Release file… the result is a complete mess. I am not saying it is a lot prettier after the merge, but at least adding new options is now slightly easier and there is just one place responsible for parsing the Release file. That can't hurt.
2015-08-10make all d-pointer * const pointersDavid Kalnischkies1-5/+5
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
2015-08-10apply various style suggestions by cppcheckDavid Kalnischkies1-1/+0
Some of them modify the ABI, but given that we prepare a big one already, these few hardly count for much. Git-Dch: Ignore
2015-06-16add d-pointer, virtual destructors and de-inline de/constructorsDavid Kalnischkies1-0/+10
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
2015-05-11rewrite all TFRewrite instances to use the new pkgTagSection::WriteDavid Kalnischkies1-76/+49
While it is mostly busywork to rewrite all instances it actually fixes bugs as the data storage used by the new method is std::string rather than a char*, the later mostly created by c_str() from a std::string which the caller has to ensure keeps in scope – something apt-ftparchive actually didn't ensure and relied on copy-on-write behavior instead which c++11 forbids and hence the new default gcc abi doesn't use it.
2015-04-19ensure lists/ files have correct permissions after apt-cdrom addDavid Kalnischkies1-1/+4
Its a bit unpredictable which permissons and owners we will encounter on a CD-ROM (or a USB stick, as apt-cdrom is responsible for those too), so we have to ensure in this codepath as well that everything is nicely setup without waiting for a 'apt-get update' to fix up the (potential) mess.
2014-10-13fix compile and tests errorDavid Kalnischkies1-1/+1
I am pretty sure I did that before committing broken stuff… Git-Dch: Ignore
2014-10-13do not inline virtual destructors with d-pointersDavid Kalnischkies1-0/+2
Reimplementing an inline method is opening a can of worms we don't want to open if we ever want to us a d-pointer in those classes, so we do the only thing which can save us from hell: move the destructors into the cc sources and we are good. Technically not an ABI break as the methods inline or not do the same (nothing), so a program compiled against the old version still works with the new version (beside that this version is still in experimental, so nothing really has been build against this library anyway). Git-Dch: Ignore
2014-05-09use HashStringList in the acquire systemDavid Kalnischkies1-3/+5
It is not very extensible to have the supported Hashes hardcoded everywhere and especially if it is part of virtual method names. It is also possible that a method does not support the 'best' hash (yet), so we might end up not being able to verify a file even though we have a common subset of supported hashes. And those are just two of the cases in which it is handy to have a more dynamic selection. The downside is that this is a MAJOR API break, but the HashStringList has a string constructor for compatibility, so with a bit of luck the few frontends playing with the acquire system directly are okay.
2014-03-13follow method attribute suggestions by gccDavid Kalnischkies1-4/+2
Git-Dch: Ignore Reported-By: gcc -Wsuggest-attribute={pure,const,noreturn}
2014-03-13cleanup headers and especially #includes everywhereDavid Kalnischkies1-3/+3
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 Kalnischkies1-1/+1
Reported-By: gcc -Wunused-parameter Git-Dch: Ignore
2014-03-13warning: useless cast to type A [-Wuseless-cast]David Kalnischkies1-6/+6
Git-Dch: Ignore Reported-By: gcc -Wuseless-cast
2014-03-13warning: extra ‘;’ [-Wpedantic]David Kalnischkies1-2/+2
Git-Dch: Ignore Reported-By: gcc -Wpedantic
2014-03-13fix -Wmissing-field-initializers warningsDavid Kalnischkies1-4/+4
Reported-By: gcc Git-Dch: Ignore
2013-07-25fix resource leak when verification failsMichael Vogt1-0/+1
2013-07-25apt-pkg/indexcopy.cc: check for pending errors before calling fdopen()Michael Vogt1-1/+1
2013-07-25call fdopen() after FileFd was checkedMichael Vogt1-1/+1
2013-06-09fail in CopyFile if the FileFds have error flag setDavid Kalnischkies1-4/+2
Testing for global PendingErrors in users of CopyFile is incorrect in so far as unrelated errors will prevent us from copying perfectly fine files and checking for the validity of the files is just better in CopyFiles as it already checks if files are at least opened. Add also a higher-level error message to the error stack if it fails.
2013-05-16non-inline RunGPGV methods to restore ABI compatibility with previous ↵David Kalnischkies1-0/+12
versions to fix partial upgrades (Closes: #707771) The rename in 0.9.7.9~exp2 moved the method body to the class definition which means it became inline, which isn't ABI compatibile. The reverse of moving inline to non-inline is safe though.
2013-04-08merged bundle from davidMichael Vogt1-4/+2
2013-03-15* apt-pkg/indexcopy.cc:David Kalnischkies1-120/+2
- rename RunGPGV to ExecGPGV and move it to apt-pkg/contrib/gpgv.cc
2013-03-10various simple changes to fix cppcheck warningsDavid Kalnischkies1-4/+2
2012-09-03 - do not create duplicated flat-archive CD-ROM sources for foreignDavid Kalnischkies1-6/+9
architectures on multi-arch CD-ROMs - do not warn about files which have a record in the Release file, but are not present on the CD to mirror the behavior of the other methods and to allow uncompressed indexes to be dropped without scaring users - handle Components in the reduction for the source.list as multi-arch CDs
2012-09-02* apt-pkg/indexcopy.cc:David Kalnischkies1-4/+7
- do not create duplicated flat-archive cdrom sources for foreign architectures on multi-arch cdroms
2012-08-05* apt-pkg/indexcopy.cc:David Kalnischkies1-1/+6
- do not use atomic writing if the target is /dev/null as we don't want to replace it, not even automically. (Closes: #683410)
2012-01-31Fix IndexCopy::CopyPackages and TranslationsCopy::CopyTranslations toMichael Vogt1-2/+2
handle compressed files again (LP: #924182, closes: #658096)
2011-12-13Allow the FileFd to use an external Compressor to uncompress a given fileDavid Kalnischkies1-91/+6
internally so that it is exported and can be used like a "normal" uncompressed file with FileFd This allows us to hide th zlib usage in the implementation and use gzip instead if we don't have zlib builtin (the same for other compressors). The code includes quiet a few FIXME's so while all tests are working it shouldn't be used just yet outside of libapt as it might break.
2011-12-11* apt-pkg/cdrom.cc:David Kalnischkies1-5/+21
- support InRelease files on cdrom
2011-11-24use getCompressors() instead of getCompressorTypes() and use it everywhereDavid Kalnischkies1-74/+72
to replace hardcoding of compressiontypes and compressors
2011-11-23factored out the decompressor code in IndexCopy::CopyPackages() andSteve McIntyre1-80/+94
TranslationsCopy::CopyTranslations() into a single common function
2011-09-13merge with debian/experimentalDavid Kalnischkies1-11/+10
2011-09-13Support large files in the complete toolset. Indexes of thisDavid Kalnischkies1-11/+12
size are pretty unlikely for now, but we need it for deb packages which could become bigger than 4GB now (LP: #815895)
2011-09-13reorder includes: add <config.h> if needed and include it at firstDavid Kalnischkies1-2/+4
2011-08-11fix a few more cppcheck performance and scope warningsDavid Kalnischkies1-2/+1
2011-08-11cppcheck complains about some possible speed improvements which could beDavid Kalnischkies1-9/+9
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-07-13fix from David Kalnischkies for the InRelease gpg verification 0.8.15.2Michael Vogt1-1/+20
code (LP: #784473)
2011-04-07* apt-pkg/indexcopy.cc:Julian Andres Klode1-5/+5
- Use RealFileExists() instead of FileExists(), allows amongst other things a directory named Sources to exist on a CD-ROM (LP: #750694).
2011-01-20 - try downloading clearsigned InRelease before trying Release.gpgDavid Kalnischkies1-1/+2
* apt-pkg/deb/deblistparser.cc: - rewrite LoadReleaseInfo to cope with clearsigned Releasefiles
2010-09-07* apt-pkg/indexcopy.cc:Michael Vogt1-3/+10
- only use trusted.gpg.d directory if it exists - do not replace /dev/null when running in APT::CDROM::NoAct mode (LP: #612666), thanks to Colin Watson
2010-09-07do not replace /dev/null when running in APT::CDROM::NoActMichael Vogt1-1/+6
mode (LP: #612666), thanks to Colin Watson
2010-09-04* apt-pkg/indexcopy.cc:David Kalnischkies1-1/+1
- support really still the APT::GPGV::TrustedKeyring setting, as it breaks d-i badly otherwise (Closes: #595428)
2010-09-03apt-pkg/indexcopy.cc: include trustedFile (if it exists)Michael Vogt1-5/+3
2010-09-03* apt-pkg/indexcopy.cc:Michael Vogt1-3/+7
- only use trusted.gpg.d directory if it exists
2010-08-19* apt-pkg/init.cc:David Kalnischkies1-3/+2
- set the default values for dir::etc::trusted options correctly