summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-02-24Make map_pointer<T> typesafeJulian Andres Klode
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.
2020-02-24Wrap AllocateInMap with a templated versionJulian Andres Klode
2020-02-24Replace map_pointer_t with map_pointer<T>Julian Andres Klode
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.
2020-02-20tagfile: Check out-of-bounds access to Tags vectorJulian Andres Klode
Check that the index we're going to use is within the size of the array.
2020-02-20tagfile: Check if memchr() returned null before usingJulian Andres Klode
This fixes a segmentation fault trying to read from nullptr+1, aka address 1.
2020-02-18Merge branch 'patch-1' into 'master'Julian Andres Klode
bash completion: Add autopurge command See merge request apt-team/apt!75
2020-02-18Merge branch 'master' into 'master'Julian Andres Klode
apt-mark: don't lie about successful marks See merge request apt-team/apt!94
2020-02-18Merge branch 'source_to_debsrc' into 'master'Julian Andres Klode
apt-pkg/srcrecords.cc: 'source' means 'deb-src' in error message See merge request apt-team/apt!101
2020-02-18Merge branch 'pu/no-more-crc16' into 'master'Julian Andres Klode
ABI break: Remove CRC-16 See merge request apt-team/apt!97
2020-02-18Remove CRC-16 implementationJulian Andres Klode
2020-02-18Use a 32-bit djb VersionHash instead of CRC-16Julian Andres Klode
2020-02-18Merge branch 'pu/source-version' into 'master'Julian Andres Klode
ABI BREAK: Implement pinning by source package See merge request apt-team/apt!96
2020-02-18Merge branch 'pu/bump-abi6' into 'master'Julian Andres Klode
Bump ABI to 6.0 See merge request apt-team/apt!103
2020-02-18Remove code tagged APT_PKG_590, add some missing includesJulian Andres Klode
Remove all code scheduled to be removed after 5.90, and fix files to include files they previously got from hashes.h including more headers.
2020-02-18Bump ABI to 6.0Julian Andres Klode
2020-02-18release 1.9.10Julian Andres Klode
2020-02-16Revert "Add a Packages-Require-Authorization Release file field"Julian Andres Klode
This experiment did not turn out sensibly, as some servers do not accept credentials when none are expected and fail, so you cannot mirror such a repository. This reverts commit c2b9b0489538fed4770515bd8853a960b13a2618.
2020-02-16policy: Add SetPriority() methodsJulian Andres Klode
These allow overriding priorities, however, pins set by SetPriority for package files will be overriden by calls to InitDefaults().
2020-02-13Merge branch 'tweak-man' into 'master'Julian Andres Klode
doc: remove "WIP" from apt.8.xml See merge request apt-team/apt!102
2020-02-13doc: remove "WIP" from apt.8.xmlMichael Vogt
The current man-page has "(work in progress") for `apt list`. I feel after more than >5y we can remove this.
2020-02-12apt-pkg/srcrecords.cc: 'source' means 'deb-src' in error messageNis Martensen
The filename "sources.list" suggests that all contained lines are meant to describe some package source, so users might not immediately understand that this refers to 'deb-src' type lines. Please see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919285 for an example of the resulting confusion.
2020-02-10seccomp: Allow recvmmsg_time64() and futex_time64()Julian Andres Klode
Saw those in libseccomp commit, figured should add them too.
2020-02-10debian/control: Bump libseccomp-dev Build-Depends to >= 2.4.2Julian Andres Klode
Version 2.4.2 is needed for the new syscalls we added to the whitelist.
2020-02-09seccomp: Allow time64 variants (>402,<415) of allowed syscallsJulian Andres Klode
Went through the list of syscalls starting at 403 (and looked one back) up to the next unknown syscalls, and added all those that were present in their non-time64 variant. Closes: #951012
2020-02-06Fix remaining usec vs sec time-delta calculation typosDavid Kalnischkies
While moving to a more stable clock in 79b61ae I typoed the microsecond calculation part and copied it all over the place… Julian fixed the first two instances in 089e6271 and Trent reported the apt-ftparchive instances leaving one instance in progress (invisible for user though). A bit ironic that in an attempt to stop "confusing (and amusing) users" I managed to hide a typo for close to two years doing just that… Sadly we can't really test this as while "apt-ftparchive generate /dev/null" is a great interactive test, it is hard to teach our test framework that the output is "reasonably below an hour" (usually 0s, but on busy test systems it is perhaps longer…). Thanks: Trent W. Buck for initial patch Closes: #950776 References: 79b61ae7673eb6213493e2cb202f0d70c390932d, 089e627153781ae7c320a5a0724c6c70d684b689
2020-02-04Release 1.9.9Julian Andres Klode
2020-02-04apt-patterns(7): Document | operator, (), and add an exampleJulian Andres Klode
Missed that in pu/short-patterns.
2020-02-03Merge branch 'pu/short-patterns' into 'master'Julian Andres Klode
Implement short patterns See merge request apt-team/apt!100
2020-02-03patterns: test for empty terms, reject themJulian Andres Klode
2020-02-03Correctly stop parsing short form arguments on space, also on ?Julian Andres Klode
we have to stop parsing on space so that things like ~ramd64 | ~rall work correctly. aptitude does not stop parsing on ?, but we'll do as it gets very confusing otherwise if you write stuff like ~ramd64?name(foo), and it resolves to ?and(?architecture(amd64?name), (foo))...
2020-02-03patterns: Implement parsing of (...) groupsJulian Andres Klode
2020-02-03Implement | as orJulian Andres Klode
2020-02-03patterns: Allow rendering patterns as patterns instead of json-ishJulian Andres Klode
2020-02-03apt-patterns(7): Some updates and rationaleJulian Andres Klode
2020-02-03patterns: Parse sequence of patterns as ?andJulian Andres Klode
2020-02-03patterns: Allow bare words only in argumentsJulian Andres Klode
This changes the syntax from approximately expr = unary unary = '!'? primary primary = pattern | short-pattern | word | quoted-word pattern = '?' name [ '(' expr [',' expr]* ')' ] short-pattern = ~ name | ~name expr to: primary = pattern | short-pattern argument = word | quoted-word | expr pattern = '?' name [ '(' argument [',' argument]* ')' ] short-pattern = ~ name | ~name argument
2020-02-03patterns: Implement unary !Julian Andres Klode
2020-02-03Implement short patterns (patterns starting with ~)Julian Andres Klode
Also make pattern detector in cacheset and private's list accept such patterns. We probably should just try to parse and see if it is a (start of a) pattern.
2020-02-03patterns: Use _sv literalsJulian Andres Klode
This will make it easier to extend those views, given that we do not need to hardcode their length.
2020-02-03patterns: Provide Node constructor, simplify error throwingJulian Andres Klode
By having a node constructor, we can construct a node inline for error reporting needs, simplifying the code a bit.
2020-02-03patterns: Make offset a size_t instead of off_tJulian Andres Klode
This allows comparing against sentence.size()
2020-02-03StringView: Implement operator ""_svJulian Andres Klode
This allows us to define constexpr string view literals.
2020-01-30Merge branch 'pu/wide-autoremove-kernel' into 'master'Julian Andres Klode
Widen regular expressions for versioned kernel packages See merge request apt-team/apt!59
2020-01-30Widen regular expressions for versioned kernel packagesJulian Andres Klode
Since we append a concrete kernel version to each pattern, and then anchor the pattern, let's just pick any package starting with a kernel name (linux-, kfreebsd-, gnumach-), and not worry about linux-headers, linux-tools, etc specifically, as they'll be caught by the generic pattern. LP: #1607845
2020-01-27Release 1.9.8Julian Andres Klode
2020-01-27NewGroup: Create GrpIterator after allocation (fix segfault)Julian Andres Klode
NewGroup created a GrpIterator and then called WriteStringInMap() which might remap the cache, causing the iterator to go invalid. Avoid this simply by creating the iterator later on.
2020-01-21apt-verbatim.ent: Update ubuntu-codename from disco to focalJulian Andres Klode
2020-01-17mmap: Do not look for empty pool unless we need toJulian Andres Klode
Given that we have a maximum of 12 pools, and much more items to insert, it does not make sense to have two branches in the hot path. Move the search for an empty pool into the unlikely case that no matching pool has been created yet - a condition that is guaranteed to only happens up to 12 times.
2020-01-17policy: Implement pinning by source packageJulian Andres Klode
This implements the src: syntax inside policy, allowing you to pin by source package. This by default only pins the native architecuture, use src:pkg:any to pin for all architectures in your cache. Closes: #166032
2020-01-17Allow querying all binaries built by a source packageJulian Andres Klode
This adds a simple way to lookup binaries by a source package, but this adds all binaries into one list, even with different source versions. Be careful.