<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg, branch 2.5.2</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.5.2</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.5.2'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2022-07-24T13:44:13Z</updated>
<entry>
<title>Add flag to disable upgrade by source and test case</title>
<updated>2022-07-24T13:44:13Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2022-07-24T13:44:13Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=518746f7e03115eb7bdf894d23e74ae115c8717b'/>
<id>urn:sha1:518746f7e03115eb7bdf894d23e74ae115c8717b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Avoid recursion by looping of other binaries twice</title>
<updated>2022-07-24T13:27:18Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2022-07-08T12:07:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c4bab3c93567fd5a17652e453d4a65d7c83eb4fb'/>
<id>urn:sha1:c4bab3c93567fd5a17652e453d4a65d7c83eb4fb</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Upgrade all binaries in a source package</title>
<updated>2022-07-24T13:27:18Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2022-07-08T11:34:22Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=119a8d0ed19a4e946591b9aef7d662e14ca7ece5'/>
<id>urn:sha1:119a8d0ed19a4e946591b9aef7d662e14ca7ece5</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Merge branch 'pu/upgrade-broken-depends' into 'main'</title>
<updated>2022-07-24T13:05:48Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2022-07-24T13:05:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=b141ce0d355e667885536790ea5caa2d4d86d333'/>
<id>urn:sha1:b141ce0d355e667885536790ea5caa2d4d86d333</id>
<content type='text'>
Mark broken reverse depends for upgrade

See merge request apt-team/apt!248</content>
</entry>
<entry>
<title>apt-pkg: (re)export pkgTagSection::Key to fix FTBFS in python-apt</title>
<updated>2022-07-22T12:49:45Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@ubuntu.com</email>
</author>
<published>2022-07-22T12:49:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=04109c847a30c9637cc93d929a1d2be64be057e6'/>
<id>urn:sha1:04109c847a30c9637cc93d929a1d2be64be057e6</id>
<content type='text'>
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 &amp;Ver, pkgTagSection::Key Key,
      |                                                                ^~~
```

This commit adds a small fix by (re)exporting `pkgTagSection::Key`.
</content>
</entry>
<entry>
<title>Mark broken reverse depends for upgrade</title>
<updated>2022-07-11T14:37:33Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2022-07-08T15:46:05Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e077370ffcb3669a50a600e80356c2002e6b176d'/>
<id>urn:sha1:e077370ffcb3669a50a600e80356c2002e6b176d</id>
<content type='text'>
Currently the solver handles cases where a Breaks b (&lt;&lt; 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
</content>
</entry>
<entry>
<title>Merge branch 'pu/phasing-better' into 'main'</title>
<updated>2022-06-29T13:30:03Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2022-06-29T13:30:03Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e4230878687c6d9bd3b13552bb2c1053b9d7d7d8'/>
<id>urn:sha1:e4230878687c6d9bd3b13552bb2c1053b9d7d7d8</id>
<content type='text'>
Rewrite phased updates using a keep-back approach

See merge request apt-team/apt!245</content>
</entry>
<entry>
<title>policy: Do not override negative pins with 1 due to phasing</title>
<updated>2022-06-28T12:54:42Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2022-06-28T12:53:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=20739359fa936c0851a4c0f37667526d98c22761'/>
<id>urn:sha1:20739359fa936c0851a4c0f37667526d98c22761</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>(Temporarily) Rewrite phased updates using a keep-back approach</title>
<updated>2022-06-28T12:25:18Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2022-06-24T14:09:24Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=db131677bee45c86031d37d7b451e6ece692efb2'/>
<id>urn:sha1:db131677bee45c86031d37d7b451e6ece692efb2</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Fix integer underflow in flExtension</title>
<updated>2022-05-23T08:09:31Z</updated>
<author>
<name>Ronan Desplanques</name>
<email>ronan.desplanques@gmail.com</email>
</author>
<published>2022-05-23T07:57:10Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=cacdb54953dbc81eecf4c3a55c132836e7849098'/>
<id>urn:sha1:cacdb54953dbc81eecf4c3a55c132836e7849098</id>
<content type='text'>
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.
</content>
</entry>
</feed>
