<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/ftparchive/writer.cc, branch 1.2.4</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.2.4</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.2.4'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2016-01-08T14:40:01Z</updated>
<entry>
<title>include all compressed Packages/Sources files in Release file</title>
<updated>2016-01-08T14:40:01Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-01-02T22:15:15Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=83758aed35c3eec66008b2ec01957c8e1cb129b5'/>
<id>urn:sha1:83758aed35c3eec66008b2ec01957c8e1cb129b5</id>
<content type='text'>
Having a hardcoded list of compression types here doesn't really provide
us with anything beside added complexity each time someone adds a new
compression type. That we don't need to be that specific is evident by
Contents and Translation-* matchers which are a lot more generic and
didn't generate problems anyhow.
</content>
</entry>
<entry>
<title>wrap every unlink call to check for != /dev/null</title>
<updated>2015-11-04T17:42:28Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-11-02T17:49:52Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ce1f3a2c616b86da657c1c796efa5f4d18c30c39'/>
<id>urn:sha1:ce1f3a2c616b86da657c1c796efa5f4d18c30c39</id>
<content type='text'>
Unlinking /dev/null is bad, we shouldn't do that. Also, we should print
at least a warning if we tried to unlink a file but didn't manage to
pull it of (ignoring the case were the file is /dev/null or doesn't
exist in the first place).

This got triggered by a relatively unlikely to cause problem in
pkgAcquire::Worker::PrepareFiles which would while temporary
uncompressed files (which are set to keep compressed) figure out that to
files are the same and prepare for sharing by deleting them. Bad move.
That also shows why not printing a warning is a bad idea as this hide
the error for in non-root test runs.

Git-Dch: Ignore
</content>
</entry>
<entry>
<title>support arch:all data e.g. in separate Packages file</title>
<updated>2015-11-04T17:42:27Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-10-28T13:38:49Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1dd20368486820efb6ef4476ad739e967174bec4'/>
<id>urn:sha1:1dd20368486820efb6ef4476ad739e967174bec4</id>
<content type='text'>
Based on a discussion with Niels Thykier who asked for Contents-all this
implements apt trying for all architecture dependent files to get a file
for the architecture all, which is treated internally now as an official
architecture which is always around (like native). This way arch:all
data can be shared instead of duplicated for each architecture requiring
the user to download the same information again and again.

There is one problem however: In Debian there is already a binary-all/
Packages file, but the binary-any files still include arch:all packages,
so that downloading this file now would be a waste of time, bandwidth
and diskspace. We therefore need a way to decide if it makes sense to
download the all file for Packages in Debian or not. The obvious answer
would be a special flag in the Release file indicating this, which would
need to default to 'no' and every reasonable repository would override
it to 'yes' in a few years time, but the flag would be there "forever".

Looking closer at a Release file we see the field "Architectures", which
doesn't include 'all' at the moment. With the idea outlined above that
'all' is a "proper" architecture now, we interpret this field as being
authoritative in declaring which architectures are supported by this
repository. If it says 'all', apt will try to get all, if not it will be
skipped. This gives us another interesting feature: If I configure a
source to download armel and mips, but it declares it supports only
armel apt will now print a notice saying as much. Previously this was a
very cryptic failure. If on the other hand the repository supports mips,
too, but for some reason doesn't ship mips packages at the moment, this
'missing' file is silently ignored (= that is the same as the repository
including an empty file).

The Architectures field isn't mandatory through, so if it isn't there,
we assume that every architecture is supported by this repository, which
skips the arch:all if not listed in the release file.
</content>
</entry>
<entry>
<title>use APT::FTPArchive hash settings as default for APT::FPArchive::$filetype</title>
<updated>2015-09-14T13:22:19Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-09-13T12:34:15Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2cc48828ea1a0ca0a0729c403abc9d7b25945880'/>
<id>urn:sha1:2cc48828ea1a0ca0a0729c403abc9d7b25945880</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Set APT::FTPArchive::DoByHash to false by default</title>
<updated>2015-09-07T14:00:55Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@ubuntu.com</email>
</author>
<published>2015-09-07T10:47:30Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e8e52cd039b4c71913e157d7855500ba98e7cade'/>
<id>urn:sha1:e8e52cd039b4c71913e157d7855500ba98e7cade</id>
<content type='text'>
"apt-ftparchive release" will create the by-hash files if
this mode is enabled. This maybe unexpected by existing users
so make it a opt-in.

Git-Dch: ignore
</content>
</entry>
<entry>
<title>Ensure that no by-hash file for "Release/InRelease is written"</title>
<updated>2015-09-07T09:39:52Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@ubuntu.com</email>
</author>
<published>2015-09-07T09:39:52Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2861bd9a2687dbd744997fddcfe90475be525bf0'/>
<id>urn:sha1:2861bd9a2687dbd744997fddcfe90475be525bf0</id>
<content type='text'>
Git-Dch: ignore
Brown-paperbag: yes
Thanks: Donkult
</content>
</entry>
<entry>
<title>Add support for writing by-hash dirs in apt-ftparchive</title>
<updated>2015-09-04T21:29:38Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@ubuntu.com</email>
</author>
<published>2015-09-04T21:29:38Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7852873a1347fcab50393b545cc1e6edd65531c8'/>
<id>urn:sha1:7852873a1347fcab50393b545cc1e6edd65531c8</id>
<content type='text'>
This option is enabled via the APT::FTPArchive::DoByHash switch.
It will also honor the option APT::FTPArchive::By-Hash-Keep that
controls how many previous generation of by-hash files should be
kept (defaults to 3).

Merged from https://github.com/mvo5/apt/tree/feature/apt-ftparchive-by-hash
</content>
</entry>
<entry>
<title>C++11: Switch from auto_ptr to unique_ptr</title>
<updated>2015-08-13T09:30:59Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2015-08-13T08:43:49Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=47c37a1bfc2f2f372bf057bf68bde0b3b6f0ec8f'/>
<id>urn:sha1:47c37a1bfc2f2f372bf057bf68bde0b3b6f0ec8f</id>
<content type='text'>
This is nicer
</content>
</entry>
<entry>
<title>fix memory leaks reported by -fsanitize</title>
<updated>2015-08-10T15:25:25Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-06-18T15:33:15Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3d8232bf97ce11818fb07813a71136484ea1a44a'/>
<id>urn:sha1:3d8232bf97ce11818fb07813a71136484ea1a44a</id>
<content type='text'>
Various small leaks here and there. Nothing particularily big, but still
good to fix. Found by the sanitizers while running our testcases.

Reported-By: gcc -fsanitize
Git-Dch: Ignore
</content>
</entry>
<entry>
<title>rewrite all TFRewrite instances to use the new pkgTagSection::Write</title>
<updated>2015-05-11T15:22:33Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-05-11T13:08:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=88593886a42025d51d76051da5929b044e42efee'/>
<id>urn:sha1:88593886a42025d51d76051da5929b044e42efee</id>
<content type='text'>
While it is mostly busywork to rewrite all instances it actually fixes
bugs as the data storage used by the new method is std::string rather
than a char*, the later mostly created by c_str() from a std::string
which the caller has to ensure keeps in scope – something apt-ftparchive
actually didn't ensure and relied on copy-on-write behavior instead
which c++11 forbids and hence the new default gcc abi doesn't use it.
</content>
</entry>
</feed>
