summaryrefslogtreecommitdiff
path: root/apt-pkg
AgeCommit message (Collapse)AuthorFilesLines
2019-05-06Merge libapt-inst into libapt-pkgJulian Andres Klode8-0/+1115
2019-05-03Prevent shutdown while running dpkgJulian Andres Klode4-0/+67
As long as we are running dpkg, keep an inhibitor that blocks us from shutting down. LP: #1820886
2019-05-03Prevent shutdown while running dpkgJulian Andres Klode4-0/+67
As long as we are running dpkg, keep an inhibitor that blocks us from shutting down. LP: #1820886
2019-04-30apt-pkg: URI: Add 'explicit' to single argument constructorJulian Andres Klode3-4/+4
This needs a fair amount of changes elsewhere in the code, hence this is separate from the previous commits.
2019-04-30apt-pkg: hashes: Add 'explicit' to single argument constructorsJulian Andres Klode1-5/+5
This avoids funny code where strings get implicitly converted to HashString or HashStringList.
2019-04-30Add 'explicit' to most single argument constructorsJulian Andres Klode12-24/+24
This prevents implicit conversions that we do not want, such as having a FileFd* being converted to a debListParser. Two cases are not yet handled because they require changes in code using them: 1. The classes in hashes.h 2. The URI class - this one is used quite a lot
2019-04-30acq: worker: Move CurrentSize, TotalSize, ResumePoint to CurrentItemJulian Andres Klode4-27/+25
These status fields belong to the current item, move them there. This prepares us for eventually having multiple current items.
2019-04-16Don't limit cpu-limited queues to at most 10David Kalnischkies1-5/+7
Queues for processes like rred are not created by hostname but we spawn at most CPU*2 queues to place items in. The problem is that we then proceeded to limit it to at most 10 queues (via QueueHost::Limit) again at the end of the method so that all items (after the first 10 queues are busy) are forcibly placed into a generic catch-all instance which is bad because we don't keep all CPUs we have available busy and worse we end up sheduling the most work to a single one while random distribution was intended.
2019-04-16Follow gcc-9 -Wnoexcept suggestion for FileChunk constructorDavid Kalnischkies1-1/+1
warning: but ‘pkgTagFilePrivate::FileChunk::FileChunk(bool, size_t)’ does not throw; perhaps it should be declared ‘noexcept’ [-Wnoexcept] Reported-By: gcc-9 Gbp-Dch: Ignore
2019-04-04Merge branch 'pkgconfig' into 'master'Julian Andres Klode2-0/+11
Add PkgConfig on the apt-pkg and apt-inst libraries See merge request apt-team/apt!20
2019-03-11Use system-provided triehashJulian Andres Klode1-1/+1
2019-03-08Add pkg-config files for the apt-pkg and apt-inst librariesCorentin Noël2-0/+11
Closes: #439121
2019-03-08Merge tag '1.8.0'Julian Andres Klode1-2/+16
apt Debian release 1.8.0
2019-03-03Add explicit message for unsupported binary signatureDavid Kalnischkies1-2/+16
Verifying the content of Release.gpg made us fail on binary signatures which were never officially supported (apt-secure manpage only documents only the generation of ASCII armored), but silently accepted by gpgv as we passed it on unchecked before. The binary format is complex and is itself split into old and new formats so adding support for this would not only add lots of code but also a good opportunity for bugs and dubious benefit. Reporting this issue explicitly should help repository creators figure out the problem faster than the default NODATA message hinting at captive portals. Given that the binary format has no file magic or any other clear and simple indication that this is a detached signature we guess based on the first two bits only – and by that only supporting the "old" binary format which seems to be the only one generated by gnupg in this case. References: e2965b0b6bdd68ffcad0e06d11755412a7e16e50 Closes: #921685
2019-02-26fileutl: Merge Popen variantsJulian Andres Klode2-13/+1
2019-02-26acquire-item: Remove deprecated members and functionsJulian Andres Klode2-50/+3
2019-02-26orderlist: Remove deprecated VisitNode() variantJulian Andres Klode1-1/+0
2019-02-26dpkgpm: Remove deprecated pkgDPkgPM::SendV2Pkgs()Julian Andres Klode2-5/+0
2019-02-26fileutl: Remove deprecated functions such as gzFd()Julian Andres Klode2-28/+0
2019-02-26strutl: Remove deprecated functionsJulian Andres Klode2-57/+0
2019-02-26edsp: Remove deprecated functionsJulian Andres Klode2-347/+2
2019-02-26sptr: Remove deprecated smart pointer classesJulian Andres Klode2-75/+0
Please use the standard C++ variants instead.
2019-02-26sourceslist: Remove deprecated AddVolatileFiles() variantJulian Andres Klode2-18/+0
2019-02-26netrc: Remove deprecated function maybe_add_auth()Julian Andres Klode2-11/+0
2019-02-26depcache: Remove deprecated functionsJulian Andres Klode2-19/+0
2019-02-26packagemanager: Remove deprecated functionsJulian Andres Klode4-47/+0
2019-02-26pkgcachegen: Remove deprecated functionsJulian Andres Klode2-9/+0
2019-02-26indexcopy: Remove deprecated SigVerify::RunGPGV()Julian Andres Klode2-15/+0
2019-02-26hashes: Remove deprecated functionsJulian Andres Klode2-58/+6
This keeps the members in the class, but makes them private. We want to migrate to libgcrypt eventually, since we already use libgcrypt through gpgv anyway.
2019-02-26metaindex: Remove deprecated checkSum::Hash (replaced by Hashes)Julian Andres Klode2-7/+0
2019-02-26algorithms: Remove deprecated ProblemResolver::InstallProtect()Julian Andres Klode2-28/+0
2019-02-26acquire: Remove deprecated pkgAcquire::Setup() functionJulian Andres Klode2-33/+0
2019-02-26acquire: Fold pkgAcquireStatus2 into pkgAcquireStatusJulian Andres Klode2-22/+3
Clean up the code, make it neat, lalala
2019-02-26tagfile: Remove deprecated pkgUserTagSection and TFRewriteJulian Andres Klode2-162/+2
2019-02-26indexfile: Remove deprecated translation functionsJulian Andres Klode2-35/+0
2019-02-26clean: Fold pkgArchiveCleaner2 into pkgArchiveCleanerJulian Andres Klode2-30/+5
2019-02-26pkgSrcRecords::Parser: Fold Files2() into Files()Julian Andres Klode5-79/+5
This is possible now with the API break. Cleaner code, woohoo.
2019-02-26pkgrecords: Renive deprecated functionsJulian Andres Klode1-4/+0
2019-02-26cachefile: Remove deprecated functionsJulian Andres Klode1-2/+0
2019-02-26upgrade: Remove deprecated functionsJulian Andres Klode2-25/+1
2019-02-26cacheiterators: Cleanup deprecated codeJulian Andres Klode2-49/+1
2019-02-26pkgcache: Remove deprecated bitsJulian Andres Klode3-25/+0
2019-02-26Bump SONAMEs in preparation for ABI breaksJulian Andres Klode1-2/+2
2019-02-10Fix various typos in the documentationJakub Wilk1-1/+1
2019-02-04Use std::to_string() for HashStringList::FileSize() getterJulian Andres Klode1-3/+1
This slightly improves performance, as std::to_string() (as in gcc's libstdc++) avoids a heap allocation. This is surprisingly performance critical code, so we might want to improve things further in 1.9 by manually calculating the string - that would also get rid of issues with locales changing string formatting, if any.
2019-02-04Detect function multiversioning and sse4.2/crc32, enables i386Julian Andres Klode1-2/+6
This fixes the build on kfreebsd-amd64, and due to the detection of sse4.2, should also enable the sse4.2 on i386.
2019-02-04gpgv: Use buffered writes for splitting clearsigned filesJulian Andres Klode3-2/+13
This is safe here, as the code ensures that the file is flushed before it is being used. The next series should probably make GetTempFile() buffer writes by default.
2019-02-04Merge branch 'pu/dead-pin' into 'master'Julian Andres Klode6-7/+83
A pin of -32768 overrides any other, disables repo See merge request apt-team/apt!40
2019-02-01Add a Packages-Require-Authorization Release file fieldJulian Andres Klode6-4/+63
This new field allows a repository to declare that access to packages requires authorization. The current implementation will set the pin to -32768 if no authorization has been provided in the auth.conf(.d) files. This implementation is suboptimal in two aspects: (1) A repository should behave more like NotSource repositories (2) We only have the host name for the repository, we cannot use paths yet. - We can fix those after an ABI break. The code also adds a check to acquire-item.cc to not use the specified repository as a download source, mimicking NotSource.
2019-02-01Introduce experimental 'never' pinning for sourcesJulian Andres Klode1-3/+20
This allows disabling a repository by pinning it to 'never', which is internally translated to a value of -32768 (or whatever the minimum of short is). This overrides any other pin for that repository. It can be used to make sure certain sources are never used; for example, in unattended-upgrades. To prevent semantic changes to existing files, we substitute min + 1 for every pin-priority: <min>. This is a temporary solution, as we are waiting for an ABI break. To add pins with that value, the special Pin-Priority "never" may be used for now. It's unclear if that will persist, or if the interface will change eventually.