summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Release 2.5.32.5.3Julian Andres Klode2022-09-2816-27/+90
|
* Merge branch 'pu/phased-updates-fixes-2022-09-23' into 'main'Julian Andres Klode2022-09-286-31/+31008
|\ | | | | | | | | phased update improvements See merge request apt-team/apt!262
| * full-upgrade: Mark phased upgrades for keep before anything elseJulian Andres Klode2022-09-283-0/+30939
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By marking them at the end, we might make other decisions that depend on the new phased updates, confusing the solver. Run the marking at the start too. The EDSP test file from Jeremy was modified to include Machine-ID and Phased-Update-Percentage fields and then filtered to mostly exclude packages irrelevant to the test case by running grep-dctrl \( -FRequest "EDSP 0.5" -o -FInstalled yes \ -oFPhased-Update-Percentage 10 \) \ -a --not -FArchitecture i386 LP: #1990586
| * Check state of dependency, not dependee in dependency keep backJulian Andres Klode2022-09-282-31/+62
| | | | | | | | | | | | | | | | When iterating over I's dependencies (which are called Pkg), we accidentally checked if I was Protected() instead of Pkg when deciding whether Pkg can be kept back. LP: #1990684
| * edsp: Add support for phased updates (test in LP#1990586)Julian Andres Klode2022-09-281-0/+7
| | | | | | | | | | | | | | | | Add Machine-ID to the first stanza, and copy Phased-Update-Percentage to package stanzas. This will be tested at a later state by the EDSP test case for bug 1990586.
* | Merge branch 'fix/install-pkg-order' into 'main'Julian Andres Klode2022-09-215-16/+100
|\ \ | | | | | | | | | | | | Respect users pkg order on `apt install` for resolving See merge request apt-team/apt!256
| * | Respect users pkg order on `apt install` for resolvingDavid Kalnischkies2022-09-025-11/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The command line is evaluated in two steps: First all packages given are marked for install and as a second step the resolver is started on all of them in turn to get their dependencies installed. This is done so a user can provide a non-default choice on the command line and have it respected regardless of where on the command line it appears. On the other hand, the order in which dependencies are resolved can matter, so instead of using a "random" order, we now do this in the order given on the command line, so if you e.g. have a meta package pulling in non-default choices and mention it first the choices are respected predictably instead of depending on first appearance of the package name while creating the binary cache. I might have "broken" this more than a decade ago while introducing the reworked command line parsing for Multi-Arch, which also brought in the split into the two steps mentioned above which was the far more impactful 'respect user choice' change. This one should hardly matter in practice, but as the tests show, order can have surprising side effects.
| * | Avoid triggering unused variable ‘State’ in doAutoInstallDavid Kalnischkies2022-09-021-5/+3
| | | | | | | | | | | | | | | Reported-By: gcc Gbp-Dch: Ignore
* | | Merge branch 'musl' into 'main'Julian Andres Klode2022-09-211-0/+1
|\ \ \ | | | | | | | | | | | | | | | | apt-pkg/contrib/fileutl.h Explicitly include sys/stat.h See merge request apt-team/apt!255
| * | | apt-pkg/contrib/fileutl.h Explicitly include sys/stat.hlancethepants2022-08-261-0/+1
| |/ / | | | | | | | | | This fixes compatibility with musl C library.
* | | Merge branch 'clang15' into 'main'Julian Andres Klode2022-09-214-4/+5
|\ \ \ | |/ / |/| | | | | | | | typecast time_t and suseconds_t from std::chrono See merge request apt-team/apt!259
| * | interactive-helper: Undefine _FORTIFY_SOURCEKhem Raj2022-09-161-0/+1
| | | | | | | | | | | | | | | | | | | | | This ensures that it compiles when clang compiler is passing -DFORTIFY_SOURCES=2 Signed-off-by: Khem Raj <raj.khem@gmail.com>
| * | typecast time_t and suseconds_t from std::chronoKhem Raj2022-09-163-4/+4
|/ / | | | | | | | | | | | | | | This fixes build on some architectures like mips progress.cc:125:31: error: non-constant-expression cannot be narrowed from type 'std::chrono::duration<long long>::rep' (aka 'long long') to '__time_t' (aka 'long') in initializer list [-Wc++11-narrowing] struct timeval NowTime = { Now_sec.count(), Now_usec.count() }; Signed-off-by: Khem Raj <raj.khem@gmail.com>
* | Fix typo in Japanese program translationHideki Yamane2022-08-211-5/+4
| | | | | | | | See merge request apt-team/apt!252
* | Don't reuse filename for in-tree builds of aptDavid Kalnischkies2022-08-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A temporary filename is used as a workaround for bugs/missing features in other software dealing with /dev/stdin, but nobody said I have to use the exact same filename…. However in-tree builds are not generally recommended. References: https://salsa.debian.org/debian/sbuild/-/commit/aa4a4326d09969e809f336e1b75cbd7342a77529 https://salsa.debian.org/ci-team/autopkgtest/-/commit/fb0561efc41a117963fa3e31802db6b2664c7aa5 Regression-Of: 701a501fb1c84296d2003c0092e4308742079591 Reported-By: Lance Fredrickson <lancethepants@gmail.com>
* | Keep color disabled if APT::Color was set to falseDavid Kalnischkies2022-08-081-2/+2
| | | | | | | | | | | | | | | | Support for envvar NO_COLOR was added in 2.3.11, but with our own options we can also be a tiny bit more sensible in not overriding an explicit choice to disable colors. References: 400a6895566b67d70bcde43dc8a1cc1c7121f87d
* | Merge branch 'doc-explain-apt-download-authenticity' into 'main'Julian Andres Klode2022-08-071-1/+2
|\ \ | |/ |/| | | | | doc: Explain that apt-get download ensures package authenticity See merge request apt-team/apt!251
| * doc: Explain that apt-get download ensures package authenticityPovilas Kanapickas2022-08-061-1/+2
|/ | | | | | | | | | | The documentation currently does not specify whether `apt-get download` verifies the authenticity of downloaded packages or not. The underlying code does verify the authenticity of packages as usual and would fail if the package signature is invalid. Therefore it makes sense to make this guarantee explicit in the documentation, because without it security-conscious users will likely want to recheck the signatures or checksums manually which is not necessary in this case and just wastes time.
* Release 2.5.22.5.2Julian Andres Klode2022-07-247-8/+20
|
* Merge branch 'pu/upgrade-other-binaries' into 'main'Julian Andres Klode2022-07-245-7/+108
|\ | | | | | | | | Upgrade all binaries in a source package See merge request apt-team/apt!247
| * Add NEWS entryJulian Andres Klode2022-07-241-0/+8
| |
| * Add flag to disable upgrade by source and test caseJulian Andres Klode2022-07-243-0/+58
| |
| * Avoid recursion by looping of other binaries twiceJulian Andres Klode2022-07-241-1/+7
| | | | | | | | | | | | | | | | First mark them for upgrade without autoInst, so we don't call their "mark other binaries loop"; then call them again with it. Without this change, each binary package would upgrade the next one in the list, recursively.
| * Upgrade all binaries in a source packageJulian Andres Klode2022-07-242-7/+36
|/ | | | | | | | | Schedule all other binaries in the source package for upgrade if the candidate version belongs to the same source version as the package we are upgrading. This will significantly reduce the risk of partial upgrades and should make life a lot easier.
* Merge branch 'pu/upgrade-broken-depends' into 'main'Julian Andres Klode2022-07-245-4/+10891
|\ | | | | | | | | Mark broken reverse depends for upgrade See merge request apt-team/apt!248
| * Add test casesJulian Andres Klode2022-07-112-0/+10856
| |
| * Let the auto installer loose for non-broken packages tooJulian Andres Klode2022-07-111-2/+0
| | | | | | | | | | | | Because the auto installer now also marks other binaries in the package for upgrade, we do need to run it or we don't mark those for upgrade.
| * Mark broken reverse depends for upgradeJulian Andres Klode2022-07-112-2/+35
| | | | | | | | | | | | | | | | | | | | | | | | Currently the solver handles cases where a Breaks b (<< 1) and if we install that a, upgrades b. However, where b Depends a (= 1), b was removed again. This addresses the problem by iterating over installed reverse dependencies of upgrades and upgrading them so that both cases work roughly similarly. LP: #1974196
* | Merge branch 'fix-python-apt-build' into 'main'Julian Andres Klode2022-07-241-1/+1
|\ \ | |/ |/| | | | | apt-pkg: (re)export pkgTagSection::Key to fix FTBFS in python-apt See merge request apt-team/apt!249
| * apt-pkg: (re)export pkgTagSection::Key to fix FTBFS in python-aptMichael Vogt2022-07-221-1/+1
|/ | | | | | | | | | | | | | | | With apt 2.5.1 python-apt fails to build with: ``` ... x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.10 -c python/acquire-item.cc -o build/temp.linux-x86_64-3.10/python/acquire-item.o -std=c++11 -Wno-write-strings -DAPT_8_CLEANER_HEADERS -DAPT_9_CLEANER_HEADERS -DAPT_10_CLEANER_HEADERS -DPY_SSIZE_T_CLEAN In file included from python/python-apt.h:30, from python/apt_pkgmodule.h:211, from python/acquire-item.cc:25: /usr/include/apt-pkg/deblistparser.h:48:65: error: ‘pkgTagSection::Key’ has not been declared 48 | bool ParseDepends(pkgCache::VerIterator &Ver, pkgTagSection::Key Key, | ^~~ ``` This commit adds a small fix by (re)exporting `pkgTagSection::Key`.
* Release 2.5.12.5.1Julian Andres Klode2022-06-305-6/+27
|
* test-phased-updates-upgrade: Tests with argumentsJulian Andres Klode2022-06-301-0/+70
| | | | | | Pass some package names to upgrade to see that that works Gbp-Dch: ignore
* Merge branch 'fix_readme_typos' into 'main'Julian Andres Klode2022-06-291-6/+6
|\ | | | | | | | | Fix readme typos See merge request apt-team/apt!244
| * Some minor tweaks of spelling/grammar for better readability.Roberto C. Sánchez2022-06-171-6/+6
| |
* | Merge branch 'deb.debian.org/debian-security' into 'main'Julian Andres Klode2022-06-292-4/+6
|\ \ | | | | | | | | | | | | Switch from "security.d.o" to "deb.d.o" (matching bullseye release notes) See merge request apt-team/apt!246
| * | Switch from "security.d.o" to "deb.d.o" (matching bullseye release notes)Tianon Gravi2022-06-242-4/+6
| |/ | | | | | | Also, this adds "SUITE-updates", which helps show off one of the smaller benefits of deb822-style sources.list (less duplication).
* | Merge branch 'pu/phasing-better' into 'main'Julian Andres Klode2022-06-295-10/+410
|\ \ | |/ |/| | | | | Rewrite phased updates using a keep-back approach See merge request apt-team/apt!245
| * policy: Do not override negative pins with 1 due to phasingJulian Andres Klode2022-06-282-8/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | If a package is already pinned to a negative value, we should not override this with a positive 1. This causes packages to be installable that were pinned to -1, which is not intended. For this, implement phasing as a ceiling of 1 for the pin instead of a fixed 1 value. An alternative would have been to fix it to NEVER_PIN, but that would mean entirely NEW packages would not be installable while phasing which is not the intention either. LP: #1978125
| * (Temporarily) Rewrite phased updates using a keep-back approachJulian Andres Klode2022-06-285-2/+374
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a lot closer to the original implementation in update-manager, but still has a couple of differences that might cause bugs: - When checking whether a version is a security update, we only check versions in between and not any later version. This happens mostly because we do not know the suite, so we just check if there is any version between the installed version and our target that is a security update - We only keep already installed packages, as we run before the resolver. update-manager first runs the resolver, and then marks for keep all packages that were upgraded or newly installed that are phasing (afaict). This approach has a significant caveat that if you have version 1 installed from a release pocket, version 2 is in security, and version 3 is phasing in updates, that it installs version 3 rather than 2 from security as the policy based implementation does. It also means that apt install does not respect phasing and would always install version 3 in such a scenario. LP: #1979244
* | Merge branch 'flextension-underflow' into 'main'Julian Andres Klode2022-05-241-1/+1
|\ \ | | | | | | | | | | | | Fix integer underflow in flExtension See merge request apt-team/apt!240
| * | Fix integer underflow in flExtensionRonan Desplanques2022-05-231-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | Before this patch, the expression `Res - File.length()` that was used as the length underflowed. It was very unlikely to cause any problem given the saturating behavior of the std::string constructor that's used. Replacing `Res - File.length()` with `File.length() - Res` would have worked, but omitting the last argument altogether invokes an std::string constructor which does the right thing.
* / Portuguese manpages translation updateAmérico Monteiro2022-05-201-74/+71
|/ | | | Closes: #1011315
* Release 2.5.02.5.0Julian Andres Klode2022-05-175-6/+52
|
* tests: Add g++ dependency to pkg-config testJulian Andres Klode2022-05-171-1/+1
|
* Use temporary file instead of depending on /dev/stdin for triehashDavid Kalnischkies2022-05-111-2/+3
| | | | | | | | /dev might not be populated for example in unshare chroots, so just using a temporary file it is until triehash supports non-file input. Regression-Of: f6438ea9e726a1c13ce8d90ac78cc272346ab0f8 Gbp-Dch: Ignore
* Build examples for arch:any packages again after nodoc branchDavid Kalnischkies2022-05-111-2/+2
| | | | | | | | | | Who does arch:any builds, right? Ignoring for changelog as this would just confuse readers as the effected version was never released. Regression-of: cd92098caa64b7fd30cdc6b5d56bf7e9e17a449e Gbp-Dch: Ignore
* Merge branch 'ci/nomorelessdocs' into 'main'Julian Andres Klode2022-05-1136-172/+249
|\ | | | | | | | | Support building with no/less docs and use it more in CI See merge request apt-team/apt!238
| * Ship our README.md in apt packageDavid Kalnischkies2022-05-071-0/+1
| | | | | | | | | | | | | | The rest of our documentation files is in apt-docs, but this one is general and small enough to be in the default install so users have an easier time finding information like how to reach us and some debug advice.
| * Include our config.h in all C++ files to avoid ODR violationsDavid Kalnischkies2022-05-0711-1/+25
| | | | | | | | | | | | | | Some of our headers use APT_COMPILING_APT trickery to avoid exposing too broadly details we don't want external clients to know and make use of. The flip-side is that this can lead to different compilation units seeing different definitions if they aren't all using the same config.
| * Ignore stty failures in testcasesDavid Kalnischkies2022-05-071-2/+2
| | | | | | | | | | | | | | | | | | | | We use 'stty sane' to combat against stepped output and co caused by (especially) failed tests, but it does so many things that it occasionally fails to reset some bits in the parallel interaction we have with it which fails the tests without a real problem in apt… Ideally we would be better at stitching the output together, but for the time being lets ignore these failures instead to stabilize the tests.