<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/doc/examples/configure-index, branch 3.1.0</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=3.1.0</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=3.1.0'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2025-03-09T12:55:23Z</updated>
<entry>
<title>Print --solver 3.0 explanation if both internal and it failed</title>
<updated>2025-03-09T12:55:23Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-03-09T12:55:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6c112f9860c1730237029f4e23d40bf658d73704'/>
<id>urn:sha1:6c112f9860c1730237029f4e23d40bf658d73704</id>
<content type='text'>
This can provide useful additional context.

To avoid updating the whole test suite for it, introduce a new
option `quiet::NoSolver3Explanation` and set it by default. All
the other tests that assert output will already have matching
tests for --solver 3.0 with the correct messages asserted, it
makes no sense to duplicate them.
</content>
</entry>
<entry>
<title>Evaluate and fall back to the 3.0 solver</title>
<updated>2025-03-09T12:33:53Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-18T12:06:32Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=935a9ab334e55a29363f45e7de6338c47337e806'/>
<id>urn:sha1:935a9ab334e55a29363f45e7de6338c47337e806</id>
<content type='text'>
Always run the 3.0 solver after the internal solver. If the internal
solver failed, and the 3.0 solver did not, use the 3.0 result.

If 3.0 solver failed or produced a worse result than the internal
solver, write an apport crash dump.

We exclude situations which we now the solver can't handle, i.e.
removals are forbidden and you requested removals, and stuff like
that.
</content>
</entry>
<entry>
<title>solver3: Implement a timeout, default 10s</title>
<updated>2025-02-14T18:04:56Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-10T18:56:16Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a9587b39ea6776b1d1324288786176102f65cee5'/>
<id>urn:sha1:a9587b39ea6776b1d1324288786176102f65cee5</id>
<content type='text'>
A SAT solver can run more or less forever, but that's not a good
user experience.
</content>
</entry>
<entry>
<title>solver3: Defer version selection where possible</title>
<updated>2025-02-14T18:04:56Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-05T19:11:35Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f870bd44522d195199987b0e073d495eed060495'/>
<id>urn:sha1:f870bd44522d195199987b0e073d495eed060495</id>
<content type='text'>
If a dependency can be satisfied by all versions of a package,
add the package to the clause instead of the version object.

This works only if there are no providers for the package: Providers
are quite hard to enumerate over and make sure that all versions of
a package satisfy the provider dependency.

Implement arbitrary selection between packages and versions for
the CompareProviders class: We pick the best version for each package
and then pit them against each other.
</content>
</entry>
<entry>
<title>Remove leftovers from ftp and rsh/ssh methods removal</title>
<updated>2025-01-05T22:16:09Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2025-01-05T17:16:54Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=213486fc1b9fc0675a35b5c530447b401f9410ff'/>
<id>urn:sha1:213486fc1b9fc0675a35b5c530447b401f9410ff</id>
<content type='text'>
References: fd3684cdbc165ceaa635ed19fcbd231f509b0179
</content>
</entry>
<entry>
<title>Drop SourceListWarnings::NonFreeFirmware messages</title>
<updated>2025-01-05T22:16:09Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-12-26T22:14:43Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1a35028dd9ee4554a1a1f9f77a4dee615fb278ae'/>
<id>urn:sha1:1a35028dd9ee4554a1a1f9f77a4dee615fb278ae</id>
<content type='text'>
They were implemented to help a tiny bit in notifying users even if they
didn't read the Release notes (or didn't realize it would apply to them)
that they likely have to change their sources.list entries, but that
transition is now over for a while, so everyone who should have seen it
has hopefully reacted to it and so all this code now does is waste
space, time and idly waiting for false positives.
</content>
</entry>
<entry>
<title>Introduce automatic pager for read commands</title>
<updated>2024-12-18T09:25:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2024-12-16T16:05:40Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6e260e26e4cd671f781151e24d89a17b29a55530'/>
<id>urn:sha1:6e260e26e4cd671f781151e24d89a17b29a55530</id>
<content type='text'>
Automatically show the output of `show`, `policy`, `list`,
`search`, `showsrc` in a pager.

The pager setup is inspired by git's pager setup. Notably,
the pager is found using APT_PAGER and PAGER variables.

We wait for the pager to be setup somewhat correctly by
using a notify pipe to figure out whether execvp() was
succesful - then the pipe will read EOF as the other end
got closed by CLOEXEC during exec - or not, then the pipe
will contain an errno.

We set up the correct handlers for signals and exit to close
the fds and wait for the pager. Notably inside the signal
handler we cannot flush our streams, only close them, so
there is some duplication.

We call the InitOutputPager() function from inside the
various Do...() functions rather than setting it up
generally in InitOutput(). Doing so allows us to first
render the progress without a pager, and then setup
the pager for the content only which improves user
experience.

When we setup a pager we also take care to disable
standard input, as we should not be prompting users
while a pager is running (the pager will be reading
from the tty directly). We do this by dup2-ing() a
/dev/null over it; if we just close()d the fd, another
open() might reuse the fd number and problems could
occur.
</content>
</entry>
<entry>
<title>Allow AutoDetectProxy to work with more than just http(s)</title>
<updated>2024-11-22T12:40:10Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2022-04-26T20:22:46Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d9601bce6e1fa61cbb3dc4d66e5492f9885eef8f'/>
<id>urn:sha1:d9601bce6e1fa61cbb3dc4d66e5492f9885eef8f</id>
<content type='text'>
It is a bit unfair for third-party methods wrapping e.g. http to not
have access to such tools, same for our old ftp and e.g. our tor even
if in practice this isn't used much even for http.

At least that is one less FIXME in the code.
</content>
</entry>
<entry>
<title>Rewrite hidden config option checker for more patterns</title>
<updated>2024-11-22T12:40:10Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2022-04-26T19:33:16Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=eb1e6fc4973a844adbea0297c6425b00f64e8b7b'/>
<id>urn:sha1:eb1e6fc4973a844adbea0297c6425b00f64e8b7b</id>
<content type='text'>
The previous version allowed only foo::*::bar as a pattern, now you can
have as many starred parts as you want allowing for a finer control
instead of hardcoding specific common star-values or giving up with **.

It also adds a new INVALID type for an option to mark options which
should not be used, but are covered by a pattern which would normally
allow it.

Our tests are more or less the only users of this hidden feature making
this change not very risky even through it has no dedicated test itself.
</content>
</entry>
<entry>
<title>Add a --comment option to record Comment: in history</title>
<updated>2024-11-18T19:15:08Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-11-18T19:07:02Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1c4fa81cc398e21868ad237509f1ea8e772d76de'/>
<id>urn:sha1:1c4fa81cc398e21868ad237509f1ea8e772d76de</id>
<content type='text'>
Suggested-by: mhoye on IRC
</content>
</entry>
</feed>
