| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |\
| |
| |
| |
| | |
Do not return error if `Signed-By` value in source list is empty
See merge request apt-team/apt!364
|
| | |
| |
| |
| | |
Signed-off-by: Aristo Chen <aristo.chen@canonical.com>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Basically this boils down to checking that the priority of the
source candidate candidate is higher or equal than the priority
of the package's candidate that is being under consideration.
It stands to reason if we maybe we should actually calculate a
source candidate version; this will look similar but may perhaps
perform slightly different.
|
| |\ \
| | |
| | |
| | |
| | | |
Update Catalan translation
See merge request apt-team/apt!369
|
| | | | |
|
| |/ / |
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
Only revoke weak RSA keys now, add 'next' and 'future' levels
See merge request apt-team/apt!365
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Algorithms not in the next level give a warning, algorithms
in not in the future level introduce an audit message for
the --audit flag.
next: >=rsa2048,ed25519,ed448,nistp256,nistp384,nistp512
future: >=rsa3072,ed25519,ed448
LP: #2073126
|
| | | |
| | |
| | |
| | | |
This checks whether a public key algorithm is asserted.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | |/
|/|
| |
| | |
More code but nicer to read
|
| | |
| |
| |
| | |
Closes: #1075975
|
| | |
| |
| |
| | |
Closes: #1075875
|
| | |
| |
| |
| | |
Closes: #1075874
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The option is supported by the command (as this is done by a bit more
low level code), but the command line parsing did not expect them to
be used for the apt show & list command, so that it would report error.
As such, a workaround for this issue is to use:
-o APT::Snapshot=BANANA
instead of e.g.
-S BANANA
Closes: #1075819
|
| |\ \
| |/
|/|
| |
| | |
Show installed version (not candidate version) while removing a package
See merge request apt-team/apt!362
|
| |/
|
|
|
| |
Showing a package version which was never installed in removals is
confusing.
|
| | |
|
| |\
| |
| |
| |
| | |
Fixes for the Obsolete handling
See merge request apt-team/apt!361
|
| | |
| |
| |
| | |
Run clang-format
|
| | |
| |
| |
| |
| | |
If we are not upgraded, we should continue to keep the installed
package installed if possible.
|
| |/
|
|
|
|
|
|
|
|
|
|
|
| |
This makes more sense, as all package versions are obsolete that
are not the candidate, usually.
Pay special attention to no-strict-pinning: If we don't have
strict pinning, a package without a candidate version may still
be non-obsolete if the latest version is not obsolete.
Likewise, in no-strict-pinning any later source version that exists
will cause the package to be considered obsolete, rather than just
candidates.
|
| |\
| |
| |
| |
| | |
Rewrite the FromDepCache method to be smaller and more correct
See merge request apt-team/apt!360
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Refactor the various Install requests into a single one and move
some stuff around, this should be a bit easier to maintain and
we don't repeat ourselves all the time.
This accidentally uncovered some bugs in the code, that get fixed
by this:
- The UpgradeManual and InstallManual groups did not work correctly,
Essential packages were Install and others were Upgrade.
- Automatically installed packages falsely got promoted to the
manual groups as they got promoted into the manual code path,
whenever we ran without allowing their removal.
- The combination of --mark-auto --auto-remove now works correctly
We previously skipped the installation of automatically installed
packages when we did autoremoval, but we did not consider if the
action was protected, that is specified on the command-line.
Now we do not autoremove protected actions, and have added a test
case for it.
- The AllowRemoveManual option no longer is applied if removals are
generally denied.
Closes: #1071519
|
| |/
|
|
|
|
| |
We should set the Mark/Garbage flags for all packages so we don't
end up in an inconsistent state, so reset the flags for each package
before evaluating further.
|
| |\
| |
| |
| |
| | |
solver3: Do not accidentally promote Replaces and Enhances to dependencies
See merge request apt-team/apt!359
|
| |/
|
|
|
|
|
|
|
|
| |
As part of the refactoring, we allowed the code to work on unimportant
dependencies as we needed to promote Suggests to Depends if they are
currently satisfied.
However, Replaces and Enhances were not considered properly and both
are not negative dependencies so they were accidentally promoted to
Depends too if they were currently satisfied.
|
| | |
|
| |\
| |
| |
| |
| | |
Fix spelling of @SNAPSHOTID@ in apt.conf.5.xml
See merge request apt-team/apt!353
|
| | |
| |
| |
| | |
Closes: #1072189
|
| |\ \
| | |
| | |
| | |
| | | |
edsp: Parse source version from the Source-Version field
See merge request apt-team/apt!354
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| | |
EDSP uses the Source-Version field instead of storing the source
version in the Source field with the package name, adjust our
parser accordingly.
Use the override in the edspLikeListParser to do so rather than
dumb this into the correct place in the debListParser.
|
| |\ \
| | |
| | |
| | |
| | | |
solver3: Group work items; and helpers
See merge request apt-team/apt!356
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This has two aspects:
1. For a dependency A | B | C we order the obsolete packages last,
that is, if A is obsolete, this gets reordered to B | C | A,
such that we try to pick non-obsolete packages first to ease
upgrade calculation.
2. When comparing two dependencies, we order dependencies into three
groups: First we satisfy dependencies mentioning only non-installed
(NEW) packages, then we satisfy "normal" dependencies, and finally
we satisfy any dependencies mentioning obsolete packages.
This means for example if you have obsolete libfoo1 and a new
libfoo1t64, that we will see Depends: libfoo1t64 before any
Depends: libfoo1 (which may expand to libfoo1 | libfoo1t64),
so we effectively will have selected "replacement" packages
this way already before getting to older packages where we
would have to choose between the obsolete package and its
replacement.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Comparing the size of work items is not strictly needed; we check
if items have a single or no solution and propagate them early on,
but it doesn't matter much if we solve A|B or C|D|E first. This
will allow us to get rid of all the resizing business later on,
and switch to using literal watching where we only watch one of
the literals on the right hand side.
Likewise, the upgrade case mattered initially in testing, but seems
to have resolved itself.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Our backtracking is chronological, so we will first
try alternative choices or skip optional items in
later groups.
So installing manually installed packages before automatically
installed ones allows manually installed packages to remove
automatically installed packages easily. If we did automatic
packages first, we'd keep back upgrades for manual packages
or change choices for their dependencies, or would have to
backtrack harder to get back to the right decision level.
That's silly.
Ordering automatically installed packages last also allows
us to calculate autoremovable packages. Since we will have
installed all dependencies from manually installed packages
by the point where we get to automatically installed packages,
everything that will be installed in those Auto groups is
inherently garbage.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We use a union here, but we don't know if we last stored a pointer,
so let's just reject clearly non-sizes. Generally this will work fine
-- you will not have enough choices in a dependency that you can
construct a valid pointer to a Version*, especially given that
any Version * > sizeof(pkgCache::Header) already, given it is
in the cache.
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| | |
When a test-* file is created but not executable, we'd ignore
the argument and then our subprocess would run the entire
test suite itself, sequentially. Silly.
Let's just see if the file exists instead, then the test will
fail.
|
| |\ \
| | |
| | |
| | |
| | | |
Check gpgv --dump-options for --assert-pubkey-algo support
See merge request apt-team/apt!355
|
| |/ /
| |
| |
| |
| |
| |
| | |
This avoids the fragile --help check. This option is not documented
in the manual page but seems to be there.
Thanks: Justus Winter for the idea
|
| | |
| |
| |
| | |
Closes: #1072494
|
| |/
|
|
| |
Closes: #1072493
|
| |\
| |
| |
| |
| | |
CI: Set /bin/sh shell for travis user, so flock -c works
See merge request apt-team/apt!351
|
| | |
| |
| |
| |
| |
| | |
These got broken by the recent solver3 changes by accident,
and we did not notice as I also broke the test suite detection
with the new statistics feature, hooray.
|
| |/
|
|
| |
This is awkward.
|
| | |
|