<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/test, branch 2.9.28</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.9.28</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.9.28'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2025-02-07T19:59:43Z</updated>
<entry>
<title>solver3: Replace PropagateInstall() with Discover()</title>
<updated>2025-02-07T19:59:43Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-05T15:29:37Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=efedf5c4700bcdd22841cf6885485677a93cc31c'/>
<id>urn:sha1:efedf5c4700bcdd22841cf6885485677a93cc31c</id>
<content type='text'>
Just propagate the stored clauses after we have discovered them;
this is quite straightforward. We now more reliably discover common
dependencies at the package level, adjust the test case accordingly.

The next step is to make discovery recursive, or iterative, to build
an entire recursive tree from all roots, and then we can reject reverse
dependencies based on it.

A bunch of refactorings are needed in the process. We remove the
useless Hint enumeration and insert a flags struct into the State,
such that we can record whether a package/version has been
discovered, to avoid spending double time on discovery.
</content>
</entry>
<entry>
<title>solver3: Extract TranslateOrGroup() out of EnqueueOrGroup()</title>
<updated>2025-02-07T19:59:43Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-04T11:42:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=dd691af845421e6e9c6f43e51e907dd54e505604'/>
<id>urn:sha1:dd691af845421e6e9c6f43e51e907dd54e505604</id>
<content type='text'>
This is not *purely* a refactoring, we accidentally used the
version of the dependency when enqueuing conflicts rather than
the reason, so the conflict string in the test case is different;
the logging had the same issue.
</content>
</entry>
<entry>
<title>Also support debian-ports modernization</title>
<updated>2025-02-02T00:41:21Z</updated>
<author>
<name>Samuel Thibault</name>
<email>sthibault@debian.org</email>
</author>
<published>2025-02-02T00:37:55Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f9ff99d699209aa97ba788bad86a15313751c230'/>
<id>urn:sha1:f9ff99d699209aa97ba788bad86a15313751c230</id>
<content type='text'>
That just needs using '-' to replace spaces in Origin to get the keyring file name.
</content>
</entry>
<entry>
<title>solver3: Remove fixed test cases from broken list</title>
<updated>2025-01-30T13:50:15Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-01-30T13:48:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=afc0a37872b24a6e4cc31d0a7b04a16d7b8f149a'/>
<id>urn:sha1:afc0a37872b24a6e4cc31d0a7b04a16d7b8f149a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>solver3: Use a propagation queue</title>
<updated>2025-01-30T13:50:15Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-11-02T12:55:39Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3523efb15d48ce3c6f9212f50dfc892497ba9dcb'/>
<id>urn:sha1:3523efb15d48ce3c6f9212f50dfc892497ba9dcb</id>
<content type='text'>
Instead of directly propagating in a recursive fashion,
queue propagations in a queue and work on them in a loop
per the miniSAT paper.

We call Propagate() only at the end of the FromDepCache()
function and then in the Solve loop. Delaying the initial
propagation means that we get a stronger reasoning:

Assume you have x-&gt;a-&gt;b-&gt;c, y-&gt;c and you install x,y:
- Previously we traversed: x, y, x-&gt;a, a-&gt;b, b-&gt;c, (y-&gt;c)
- but now we traverse:     x, y, x-&gt;a, y-&gt;c, a-&gt;b, (b-&gt;c)
Notably c now has the implication y-&gt;c instead of x-&gt;a-&gt;b-&gt;c.

Inside the solver we need to call Propagate in a loop:
Propagating facts can fail and we then backtrack. If backtracking
is succesful, we have gained a new fact to propagate.
</content>
</entry>
<entry>
<title>solver3: Remove NewUnsatRecommends group</title>
<updated>2025-01-30T13:50:15Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-01-30T12:46:09Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=45432cc57144715109f27d0bb83356b12e2a4ef5'/>
<id>urn:sha1:45432cc57144715109f27d0bb83356b12e2a4ef5</id>
<content type='text'>
This is more or less unused; but it particularly has the bad
problem of forcing new unsat recommends to be solved *before*
dependencies. Which is awkward.
</content>
</entry>
<entry>
<title>solver3: Soft unit propagation for optional items</title>
<updated>2025-01-30T13:50:15Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-01-30T12:04:47Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a20242cf3a7321e78cfd4afd892d67255d8282ba'/>
<id>urn:sha1:a20242cf3a7321e78cfd4afd892d67255d8282ba</id>
<content type='text'>
If both items are optional, unit items should be processed
first.
</content>
</entry>
<entry>
<title>Make notices about .list sources without signed-by less obnoxious</title>
<updated>2025-01-28T18:48:47Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-01-27T16:34:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4059a1544323b945a81e5ef0faea4a3b109f36bf'/>
<id>urn:sha1:4059a1544323b945a81e5ef0faea4a3b109f36bf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>apt: Introduce the modernize-sources command</title>
<updated>2025-01-28T18:47:00Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-01-27T14:51:24Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9d7a660611e9e134cd6d74a594bde59cad77c8d8'/>
<id>urn:sha1:9d7a660611e9e134cd6d74a594bde59cad77c8d8</id>
<content type='text'>
This handles rewriting .list entries to .sources ones; the
only options handled are

- signed-by =&gt; Signed-By
- trusted =&gt; Trusted

The options to specify architectures, check-valid-until, etc.
are not supported as they are not exposed in the code. We
probably should refactor the parser at some point so we can
actually read the parsed entry rather than the abstract objects
we create from it.

This can be improved further:

- Keyrings from /etc/apt/trusted.gpg.d should be moved to
  /etc/apt/keyrings.
- automatic detection by trying to verify using each keyring
  in trusted.gpg.d until we find the right one and then using
  that for Signed-By rather than leave some sources empty.
</content>
</entry>
<entry>
<title>apt-secure manual page is in manual section 8</title>
<updated>2025-01-28T18:45:23Z</updated>
<author>
<name>Andreas Rönnquist</name>
<email>gusnan@debian.org</email>
</author>
<published>2025-01-23T14:33:55Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a725a4af76fed9c4f06188f022f9a8f28ff333bd'/>
<id>urn:sha1:a725a4af76fed9c4f06188f022f9a8f28ff333bd</id>
<content type='text'>
</content>
</entry>
</feed>
