<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/contrib, branch 3.2.0</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=3.2.0</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=3.2.0'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2026-03-02T21:53:49Z</updated>
<entry>
<title>Copyright changes</title>
<updated>2026-03-02T21:53:49Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2026-03-02T21:53:49Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=140e4e2f84813c85d96488031e6d3e0359f7b6d5'/>
<id>urn:sha1:140e4e2f84813c85d96488031e6d3e0359f7b6d5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Introduce JSONL performance counter logging</title>
<updated>2026-02-10T19:59:03Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2026-01-11T11:37:46Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=60a7d1c3be8f6c7eb697c7d5160fc560097cc70e'/>
<id>urn:sha1:60a7d1c3be8f6c7eb697c7d5160fc560097cc70e</id>
<content type='text'>
Introduce a scoped object that starts measuring performance counters
and then dumps them into a JSONL file for later analysis.

Add performance contexts for APT::Solver and pkgDepCache::Init()
as starting points.
</content>
</entry>
<entry>
<title>macros: Introduce must_succeed() macro</title>
<updated>2026-01-05T21:20:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-12-29T11:04:22Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6ceaa78088ebdaea6cb887a7e8066fc29e0f984d'/>
<id>urn:sha1:6ceaa78088ebdaea6cb887a7e8066fc29e0f984d</id>
<content type='text'>
This is like assert() but never compiled out so can be used with
function calls that have side effects.
</content>
</entry>
<entry>
<title>weakptr: Simplify destructor to use range-based for</title>
<updated>2025-11-10T10:33:07Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-11-07T06:32:33Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=50be87de727141d16d9f4f4907d631161d2d1032'/>
<id>urn:sha1:50be87de727141d16d9f4f4907d631161d2d1032</id>
<content type='text'>
Explicit iterators considered harmful :)
</content>
</entry>
<entry>
<title>Move split() to APT::String::Split()</title>
<updated>2025-10-25T18:42:14Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-07-28T10:06:00Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=50d8703c785898d06463513896e37cbe7cedd471'/>
<id>urn:sha1:50d8703c785898d06463513896e37cbe7cedd471</id>
<content type='text'>
This splits based upon contiguous whitespace as separators
</content>
</entry>
<entry>
<title>configuration: Add MoveSubTree with overwrite=false</title>
<updated>2025-10-25T14:58:07Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-10-06T20:27:27Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2e1243e3f582b1a68ac3fb313364a93128a3f918'/>
<id>urn:sha1:2e1243e3f582b1a68ac3fb313364a93128a3f918</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Correctly append or remove FD_CLOEXEC</title>
<updated>2025-10-20T18:26:49Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-10-20T18:26:49Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=bb1e6834e8a1cd6fd5b88b5a1962e9d813a080fc'/>
<id>urn:sha1:bb1e6834e8a1cd6fd5b88b5a1962e9d813a080fc</id>
<content type='text'>
Rather than just setting the flags to 0 or FD_CLOEXEC, read
the current value and append or remove as needed.
</content>
</entry>
<entry>
<title>ExecFork: Simplify closing and make it safe</title>
<updated>2025-10-20T18:06:50Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-10-20T18:02:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3dea3434bf2003b757d7ecdb5a8194c8a0c7023f'/>
<id>urn:sha1:3dea3434bf2003b757d7ecdb5a8194c8a0c7023f</id>
<content type='text'>
Implement a wrapper around FD_CLOEXEC and use it in place of
the raw fcntl(). This wrapper _Exit()s the child if the operation
failed.

Restructure the close_range() handling to simply mark all fds for
closing first and then "reopen" the ones we should keep.
</content>
</entry>
<entry>
<title>Add some comments and tests around Keep-Fd ordering</title>
<updated>2025-10-20T17:42:57Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-10-20T17:41:57Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=cb8df17ff8e59192ae2ab864006eea120d408a7a'/>
<id>urn:sha1:cb8df17ff8e59192ae2ab864006eea120d408a7a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ExecFork: Use close_range() if available</title>
<updated>2025-10-20T15:16:45Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-10-20T15:14:31Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6aca3716f051b5b6bff63d51fff68b9c7ebc7474'/>
<id>urn:sha1:6aca3716f051b5b6bff63d51fff68b9c7ebc7474</id>
<content type='text'>
Use close_range() if we have it in preference to iterating
over /proc/self/fd and falling back to closing all possible
fds.

This builds sets of ranges to close that take into account
the APT::Keep-Fds vector, and a test case is provided to
ensure correctness of the splitting logic.

Preference is given to close_range() over /proc as in the
optimal case, this results in a single system call!
</content>
</entry>
</feed>
