summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* error: Extract operator<< into error.cc (de-inline it)Julian Andres Klode2020-03-102-25/+45
| | | | | Extract the code, and reformat it with clang-format so we can modify it.
* Release 2.0.02.0.0Julian Andres Klode2020-03-0748-137/+575
|
* Merge branch 'pu/improve-locking-msgs' into 'master'Julian Andres Klode2020-03-065-7/+25
|\ | | | | | | | | Pu/improve locking msgs See merge request apt-team/apt!111
| * Show absolute time while waiting for lock instead of %, rework messageJulian Andres Klode2020-03-064-5/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Showing a percentage for a timeout is pretty non-standard. Rework the progress class so it can show an absolute progress (currently hardcoded to use seconds as a unit). If there is a timeout (aka if it's not the maximum long long unsigned -1llu), then show the timeout, otherwise just count up seconds, e.g. Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 33842 (apt)... 1/120s or Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 33842 (apt)... 1s Also improve the error message to use "Waiting for cache lock: %s" instead of "... (%s)", as having multiple sentences inside parenthesis is super weird, as is having two closing parens. We pass the information via _config, as that's reasonably easy and avoids ABI hackage. It also provides an interesting debugging tool for other kinds of progress.
| * GetLock: No strerror if it's just another process holding the lockJulian Andres Klode2020-03-061-2/+4
|/ | | | | | | | This improves the locking message, getting rid of useless details. If we have a process holding the lock, we got that because the lock is being hold by it, so there's no point telling the people the reason for not getting the lock is the EAGAIN error and displaying its strerrror().
* Release 1.9.121.9.12Julian Andres Klode2020-02-275-6/+13
|
* (temporarily) unhide pkgDPkgPM again to have python-apt compileJulian Andres Klode2020-02-271-1/+1
|
* pkgcache: Add operator bool() to map_pointerJulian Andres Klode2020-02-271-0/+1
|
* Release 1.9.111.9.11Julian Andres Klode2020-02-2659-104/+1116
|
* Merge branch 'pu/wait-lock' into 'master'Julian Andres Klode2020-02-269-14/+68
|\ | | | | | | | | Pu/wait lock See merge request apt-team/apt!109
| * apt(8): Wait for frontend and cache lockJulian Andres Klode2020-02-269-14/+68
| | | | | | | | | | | | This is a rework of !6 with additional stuff for the frontend lock, so we can lock the frontend lock and then keep looping over dpkg lock.
* | Merge branch 'pu/visibility' into 'master'Julian Andres Klode2020-02-2655-359/+264
|\| | | | | | | | | apt-pkg: default visibility to hidden See merge request apt-team/apt!108
| * apt-pkg: default visibility to hiddenJulian Andres Klode2020-02-2655-359/+264
|/
* Merge branch 'pu/misc' into 'master'Julian Andres Klode2020-02-269-59/+117
|\ | | | | | | | | Pu/misc See merge request apt-team/apt!107
| * cacheset: Fix -Wdeprecated-copy warningsJulian Andres Klode2020-02-263-4/+10
| | | | | | | | | | | | | | | | | | Remove the operator= from Container_iterator, as it was basically just the default anyway, and add copy constructors to *Interface that match their operator=. Tried adding copy constructor to Container_iterator, but that only made things worse.
| * Fix various compiler warningsJulian Andres Klode2020-02-265-10/+5
| |
| * Parse records including empty tag names correctlyDavid Kalnischkies2020-02-262-3/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No sensible file should include these, but even insensible files do not gain unfair advantages with it as this parser does not deal with security critical files before they haven't passed other checks like signatures or hashsums. The problem is that the parser accepts and parses empty tag names correctly, but does not store the data parsed which will effect later passes over the data resulting e.g. in the following tag containing the name and value of the previous (empty) tag, its own tagname and its own value or a crash due to an attempt to access invalid memory depending on who passes over the data and what is done with it. This commit fixes both, the incidient of the crash reported by Anatoly Trosinenko who reproduced it via apt-sortpkgs: | $ cat /tmp/Packages-null | 0: | PACKAGE:0 | | : | PACKAGE: | | PACKAGE:: | $ apt-sortpkgs /tmp/Packages-null and the deeper parsing issue shown by the included testcase. Reported-By: Anatoly Trosinenko <anatoly.trosinenko@gmail.com> References: 8710a36a01c0cb1648926792c2ad05185535558e
| * symbols: Bump version from 1.9.10 to 1.9.11~Julian Andres Klode2020-02-261-42/+42
|/
* Merge branch 'pu/cleanups' into 'master'Julian Andres Klode2020-02-2630-217/+80
|\ | | | | | | | | Cleanup ABI - make stuff virtual, etc See merge request apt-team/apt!106
| * Symbol updatesJulian Andres Klode2020-02-261-10/+7
| |
| * cache: Swap locations of hashtables, hide them from non-apt usersJulian Andres Klode2020-02-261-2/+5
| | | | | | | | | | Only expose the locations of the hasthables if APT_COMPILING_APT is set.
| * Make metaIndex::GetNotBefore virtualJulian Andres Klode2020-02-263-9/+2
| |
| * pkgsystem: Drop more virtual workaround shenanigansJulian Andres Klode2020-02-266-56/+22
| |
| * metaindex: Add Origin, Label, Version, DefaultPin, ReleaseNotes membersJulian Andres Klode2020-02-263-32/+19
| | | | | | | | These were hidden behind the d-pointer previously.
| * Remove various dynamic_cast uses, use virtual methods insteadJulian Andres Klode2020-02-263-16/+6
| |
| * Merge pkgPackageManager::SmartUnpackJulian Andres Klode2020-02-262-7/+1
| |
| * Rename pkgSimulate::Go2 to pkgSimulate::GoJulian Andres Klode2020-02-263-8/+3
| |
| * cdrom: Remove old udev dlopen stuffJulian Andres Klode2020-02-264-29/+1
| |
| * Drop pkgAcquire::Item::ModifyRetries() ABI hackJulian Andres Klode2020-02-263-12/+7
| |
| * Merge pkgAcquire::RunFdsSane back into RunFdsJulian Andres Klode2020-02-262-15/+4
| |
| * Remove ABI workaround for debDebPkgFileIndex::ArchiveInfoJulian Andres Klode2020-02-263-7/+3
| |
| * Merge CommandLine::DispatchArgJulian Andres Klode2020-02-262-7/+0
| |
| * Remove pkgAcqFile::Failed overloadJulian Andres Klode2020-02-262-7/+0
|/
* Merge branch 'pu/tagfile-hardening' into 'master'Julian Andres Klode2020-02-251-1/+14
|\ | | | | | | | | Pu/tagfile hardening See merge request apt-team/apt!104
| * tagfile: Check out-of-bounds access to Tags vectorJulian Andres Klode2020-02-201-0/+8
| | | | | | | | | | Check that the index we're going to use is within the size of the array.
| * tagfile: Check if memchr() returned null before usingJulian Andres Klode2020-02-201-1/+6
| | | | | | | | | | This fixes a segmentation fault trying to read from nullptr+1, aka address 1.
* | debian: Update symbols fileJulian Andres Klode2020-02-251-32/+38
| |
* | patterns: Mark things hidden, and only allow internal use of headerJulian Andres Klode2020-02-251-33/+38
| |
* | Remove left-over SummationImplementation classJulian Andres Klode2020-02-252-73/+0
| |
* | Initialize libgcrypt on first useJulian Andres Klode2020-02-251-0/+23
| | | | | | | | | | | | | | This is not supposed to be done this way, but frankly, since we abstract away the backend, there's not much else we can do here. Closes: #949074
* | Merge branch 'pu/typesafe-cache2' into 'master'Julian Andres Klode2020-02-2510-141/+196
|\ \ | |/ |/| | | | | Type-safe cache / map_pointer See merge request apt-team/apt!105
| * Add d-pointers to groups, packages, versions, and filesJulian Andres Klode2020-02-251-2/+17
| | | | | | | | | | | | | | | | This allows us to extend those in-cache objects with more data later on without breaking the ABI. Reserve 12 pointers for private data in the pkgCache class, and double the size of pools to 24.
| * Silence narrow conversion warnings, add error checksJulian Andres Klode2020-02-251-7/+20
| | | | | | | | | | | | When converting a long offset to a uint32_t to be stored in the map, check that this is safe to do. If the offset is negative, or we lose data in the conversion, we lost.
| * Make map_pointer<T> typesafeJulian Andres Klode2020-02-249-35/+57
| | | | | | | | | | | | | | | | | | | | | | Instead of just using uint32_t, which would allow you to assign e.g. a map_pointer<Version> to a map_pointer<Package>, use our own smarter struct that has strict type checking. We allow creating a map_pointer from a nullptr, and we allow comparing map_pointer to nullptr, which also deals with comparisons against 0 which are often used, as 0 will be implictly converted to nullptr.
| * Wrap AllocateInMap with a templated versionJulian Andres Klode2020-02-242-15/+20
| |
| * Replace map_pointer_t with map_pointer<T>Julian Andres Klode2020-02-247-109/+109
|/ | | | | | This is a first step to a type safe cache, adding typing information everywhere. Next, we'll replace map_pointer<T> implementation with a type safe one.
* Merge branch 'patch-1' into 'master'Julian Andres Klode2020-02-181-1/+1
|\ | | | | | | | | bash completion: Add autopurge command See merge request apt-team/apt!75
| * bash completion: Add autopurge commandTomáš Janoušek2019-09-101-1/+1
| |
* | Merge branch 'master' into 'master'Julian Andres Klode2020-02-181-9/+21
|\ \ | | | | | | | | | | | | apt-mark: don't lie about successful marks See merge request apt-team/apt!94
| * | apt-mark: don't lie about successful marksTris Emmy Wilson2020-01-091-9/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes an issue where apt-mark would say it had made a change before actually making the change. For example, when running as a user without permission to write to extended_states, the package is not marked but apt-mark claims it is: ~ % apt-mark manual rxvt-unicode rxvt-unicode set to manually installed. E: Could not create [...snip...] (13: Permission denied) E: Failed to write temporary StateFile /var/lib/apt/extended_states This commit moves reporting of "[package] set to [manually | automatically] installed" after saving extended_states and confirming it was successful.