<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt, branch 2.9.9</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.9.9</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.9.9'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2024-10-17T07:42:00Z</updated>
<entry>
<title>Release 2.9.9</title>
<updated>2024-10-17T07:42:00Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-10-17T07:41:51Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=fcccd7fb5ed74ae00c9d675667017d9c84838f69'/>
<id>urn:sha1:fcccd7fb5ed74ae00c9d675667017d9c84838f69</id>
<content type='text'>
</content>
</entry>
<entry>
<title>test: Check that apt-ftparchive handles deep paths</title>
<updated>2024-10-15T13:22:26Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-10-15T13:22:26Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f392ba3602dc759eeeffd719d2eb16fc2d81f5e5'/>
<id>urn:sha1:f392ba3602dc759eeeffd719d2eb16fc2d81f5e5</id>
<content type='text'>
This checks for the previous boundaries for path sizes; but
we also added a check for many files in a directory, limited
to 4096.

Sadly the directory check did not fail with the old code either,
it's hard to actually get it to fail correctly.
</content>
</entry>
<entry>
<title>test framework: Improve valgrind support</title>
<updated>2024-10-15T13:10:34Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-10-15T13:10:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c7dedfd7e13073c98fefbeff10b69c7512a8366e'/>
<id>urn:sha1:c7dedfd7e13073c98fefbeff10b69c7512a8366e</id>
<content type='text'>
Add support for testing apt-ftparchive, set valgrind to quiet such
that we can check program output, and pass --error-exitcode=7 to get
an (should be unused) magic error code if it detects errors.
</content>
</entry>
<entry>
<title>ftparchive: contents: Avoid exponential complexity and overflows</title>
<updated>2024-10-07T14:17:32Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-10-04T16:35:15Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=604d1fac652965ec71629fec09ca39660c8bb8dc'/>
<id>urn:sha1:604d1fac652965ec71629fec09ca39660c8bb8dc</id>
<content type='text'>
Wstored directory entries as a binary tree, but we did not balance it,
leading to exponential complexity on insertion and potentially
exponential levels of stack recursion in DoPrint(), causing overflows.

Simply use an std::set storing pairs of (path, package) instead,
this is very simple, and handles aspects such as ordering or the
same package appearing multiple times correctly.

Iteration becomes a bit tricky: After seeing (file1, pkg1) when
we see (file1, pkg2) we need to append pkg2 to the current line;
once we see (file2, anything), we need write out the line and
start a new one.

For memory optimization, we use a new class StringInBlock to handle
the block-managed C strings generated by Mystrdup() in a type-safe
manner. This ensures proper lifetime of objects and no accidental
conversions to std::string. This saves a significant amount of
space (a pair of std::string is 64-byte large; a pair of pointers
is 16 byte large, a 48 byte saving per entry); reproducing the Contents
file of Ubuntu 24.10, using straight-forward std::string resulted in
GB of memory usage, whereas the C-style string only uses 1.35 GB.

As a side effect of the patch we also remove arbitrary 1024-byte
buffer sizes. There also is a change in output: The package names
are now sorted alphabetically, instead of being in visit order.

LP: #2083697
</content>
</entry>
<entry>
<title>ftparchive: Mystrdup: Add safety check and bump buffer size</title>
<updated>2024-10-07T14:02:06Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-10-07T13:55:44Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d61d86c73104d1aa84fd6ca506c2230e67727b17'/>
<id>urn:sha1:d61d86c73104d1aa84fd6ca506c2230e67727b17</id>
<content type='text'>
Add a safety check to ensure that the block were are allocating
actually fits the string we want to write. If it doesn't, abort
the program.

While we are here, bump the buffer size from 40 KiB to 4 MiB,
because why bother with smaller buffers.
</content>
</entry>
<entry>
<title>Romanian program translation update</title>
<updated>2024-09-09T21:44:39Z</updated>
<author>
<name>Remus-Gabriel Chelu</name>
<email>remusgabriel.chelu@disroot.org</email>
</author>
<published>2024-09-09T21:44:39Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=98ad351133592fe8ed8ff0f6aa311005c8c3dad8'/>
<id>urn:sha1:98ad351133592fe8ed8ff0f6aa311005c8c3dad8</id>
<content type='text'>
Closes: #1080210
</content>
</entry>
<entry>
<title>Merge branch 'pin-source-version' into 'main'</title>
<updated>2024-08-22T15:10:45Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2024-08-22T15:10:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8a8fdea4c71fbddfda9f7d6a1d9ec5da68870e12'/>
<id>urn:sha1:8a8fdea4c71fbddfda9f7d6a1d9ec5da68870e12</id>
<content type='text'>
Implement 'Pin: source-version &lt;foo&gt;'

See merge request apt-team/apt!372</content>
</entry>
<entry>
<title>Implement 'Pin: source-version &lt;foo&gt;'</title>
<updated>2024-08-22T14:11:38Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-08-22T14:10:58Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=67070389f3752f6f23d1fb0c06bd963464aa8bca'/>
<id>urn:sha1:67070389f3752f6f23d1fb0c06bd963464aa8bca</id>
<content type='text'>
As wondered about by Paride some minutes ago.
</content>
</entry>
<entry>
<title>Merge branch 'clang-18' into 'main'</title>
<updated>2024-08-15T15:58:03Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2024-08-15T15:58:03Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f51b662525c78149892be16c111bad44b05f6c63'/>
<id>urn:sha1:f51b662525c78149892be16c111bad44b05f6c63</id>
<content type='text'>
Fix compilation error with clang/libc++ 18

See merge request apt-team/apt!371</content>
</entry>
<entry>
<title>Fix compilation error with clang/libc++ 18</title>
<updated>2024-08-15T13:31:24Z</updated>
<author>
<name>Chongyun Lee</name>
<email>licy183@termux.dev</email>
</author>
<published>2024-08-15T13:31:24Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=b4488583424b33f51cb031562a9e8df820ffda23'/>
<id>urn:sha1:b4488583424b33f51cb031562a9e8df820ffda23</id>
<content type='text'>
</content>
</entry>
</feed>
