<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-private, branch 2.9.23</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.9.23</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.9.23'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2025-01-05T22:16:09Z</updated>
<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>Drop usage of APT_MUSTCHECK</title>
<updated>2025-01-05T22:16:08Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-12-26T21:57:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=12036e1ff02d0c02d0f69050c1f080e8ca947cd5'/>
<id>urn:sha1:12036e1ff02d0c02d0f69050c1f080e8ca947cd5</id>
<content type='text'>
nodiscard is a C++17 feature and already used (not just due to my recent
changes) in our codebase, so lets drop the last remaining holdouts.
</content>
</entry>
<entry>
<title>Drop usage of macro APT_OVERRIDE for simple override</title>
<updated>2025-01-05T22:16:08Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-12-26T19:41:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f73593a4034d9eec0ec4466b8e173d4a4daece1f'/>
<id>urn:sha1:f73593a4034d9eec0ec4466b8e173d4a4daece1f</id>
<content type='text'>
We were rather inconsistent in using it and as our public headers
contain deduction guides (a c++17 feature) it seems silly to try to hide
a c++11 feature in a macro, so lets stop this charade and drop the
macro and while we are changing all these lines lets apply [[nodiscard]]
(another c++17 feature) and other suggestions from clang-tidy and
formatting for a little more consistency.
</content>
</entry>
<entry>
<title>apt show: Add pinning information for --full</title>
<updated>2024-12-19T17:24:37Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-10-29T13:06:51Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=71727c2a761889855b3c1aaf4243649e98032f67'/>
<id>urn:sha1:71727c2a761889855b3c1aaf4243649e98032f67</id>
<content type='text'>
Add new fields `APT-Pin`, `APT-Candidate`, and `APT-Release` to the
output, same as in EDSP (limited to one release for now).
</content>
</entry>
<entry>
<title>Be more strict about which PAGER to execvp() directly</title>
<updated>2024-12-19T16:56:49Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-12-19T16:49:59Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f6198e45b4cd924f390f977077d96b4545da0c91'/>
<id>urn:sha1:f6198e45b4cd924f390f977077d96b4545da0c91</id>
<content type='text'>
There could be | or ; or other stuff in PAGER that needs
special handling, let's encode a list of known-good characters
instead. This covers all known pagers.

You could also try to execvp() PAGER in its entirety and if
it fails with ENOENT fall back to the shell but then you
don't get correct error handling if the pager really doesn't
exist (in which case we should abort trying to page).
</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>Collect unprinted Ign errors for display in Err output</title>
<updated>2024-11-22T20:05:35Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-11-22T17:59:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a732f74400147a9993358b4778335715a0d5e20e'/>
<id>urn:sha1:a732f74400147a9993358b4778335715a0d5e20e</id>
<content type='text'>
Instead of deciding if the first or the last error in a retry chain is
the best one to display if the entire chain fails in the end we teach
our progress reporting to collect the ignored errors (if it hasn't shown
them) and print them all together in the Err line.

We de-duplicate the collection which makes it harder to match the Ign
line with the error messages, but for these cases its probably better to
enable direct display of the text anyhow – and repeating the same message
multiple times is boring and probably not that helpful for a user
wanting to know why all the downloads failed even they asked apt to
retry 429 times…

References: 841243df877b39dfcb907a7fab9c4e8b4f65d715
</content>
</entry>
<entry>
<title>Add a virtual destructor to private CacheSet Matcher</title>
<updated>2024-11-22T12:11:13Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-09-11T19:52:26Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=0fb71e375363f2b45b033bb2b324e80214325c61'/>
<id>urn:sha1:0fb71e375363f2b45b033bb2b324e80214325c61</id>
<content type='text'>
This silences the warning:
| warning: ‘class Matcher’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
</content>
</entry>
<entry>
<title>Acknowledge non-erase usage of remove_if for volatile sources</title>
<updated>2024-11-22T12:11:13Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-09-11T16:57:04Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=fa19a9ddbdddeaed44480ce7dade11d526336435'/>
<id>urn:sha1:fa19a9ddbdddeaed44480ce7dade11d526336435</id>
<content type='text'>
gcc produces a length warning starting with:
| warning: ignoring return value of ‘_FIter std::remove_if(_FIter, _FIter, _Predicate) [with …]’, declared with attribute ‘nodiscard’ [-Wunused-result]
which is usually correct, but in the usage here we don't want to call an
erase as we operate on a c-style new[] array here which contains pointers
into argv and has an explicit sentinel (nullptr) – FileSize() is based
on this sentinel.

Casting to void silences the warning as is standard practice and
hopefully indicates better that this is intended than ignoring the
warning for the casual on-looker.
</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>
