<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/sourcelist.cc, branch 1.3_pre2</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.3_pre2</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.3_pre2'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2016-06-29T10:22:33Z</updated>
<entry>
<title>if conf unset, don't read / as conf/pref/sources dir</title>
<updated>2016-06-29T10:22:33Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-06-29T08:16:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=42610b9d5a95ec108b74ffbc6446542cf6b0176a'/>
<id>urn:sha1:42610b9d5a95ec108b74ffbc6446542cf6b0176a</id>
<content type='text'>
Usually these config options are set to sensible values, but if init
isn't run or the user interferes with configuration clearing or similar
the options could indeed carry an empty value, which will result in
FindDir returning a '/'. That feels kinda wrong, but as a public
interface there isn't much we can do about it and instead make it so
that we get the special file /dev/null back we know how to deal with in
such cases.
</content>
</entry>
<entry>
<title>deb822: Restore support for &lt;multivalue&gt;-{Add,Remove}</title>
<updated>2016-04-28T08:08:32Z</updated>
<author>
<name>James McCoy</name>
<email>jamessan@debian.org</email>
</author>
<published>2016-04-20T02:27:21Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f5585106d61b381c9dcf8f1dd48c742dc68f6c81'/>
<id>urn:sha1:f5585106d61b381c9dcf8f1dd48c742dc68f6c81</id>
<content type='text'>
Redesign of multivalue options in 463c8d801595ce5ac94d7c032264820be7434232
caused the parser to look for &lt;multivalue&gt;{Add,Remove} (no hyphen)
instead of the expected &lt;multivalue&gt;-{Add,Remove}.
</content>
</entry>
<entry>
<title>properly parse comments in apt_preferences and deb822-style sources</title>
<updated>2016-01-02T15:20:01Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-01-02T12:27:02Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f6459e646f6fa45c34d1f13f37173ea4b92ffd5f'/>
<id>urn:sha1:f6459e646f6fa45c34d1f13f37173ea4b92ffd5f</id>
<content type='text'>
apt_preferences and deb822-style sources used the specialized class
pkgUserTagSection to deal with comments before/after a given stanza, but
it couldn't deal with comments in the stanza at all.

codesearch suggests that nobody else does and a vastely superior way of
working with potentially commented files is implemented now, so we can
officially discourage the use of the old incomplete hack class.
</content>
</entry>
<entry>
<title>require explicit paths to dsc/control as we do for deb files</title>
<updated>2015-12-01T13:26:05Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-12-01T13:09:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f359b7e8c03884cd9f097d4b3ff8b8b8be8053ba'/>
<id>urn:sha1:f359b7e8c03884cd9f097d4b3ff8b8b8be8053ba</id>
<content type='text'>
Otherwise a user is subject to unexpected content-injection depending on
which directory she happens to start apt in. This also cleans up the code
requiring less implementation details in build-dep which is always good.

Technically, this is an ABI break as we override virtual methods, but
that they weren't overridden was a mistake resulting in pure classes,
which shouldn't be pure, so they were unusable – and as they are new in
1.1 nobody is using them yet (and hopefully ever as they are borderline
implementation details).

Closes: 806693
</content>
</entry>
<entry>
<title>accept ../ on the cmdline as start for a deb file as well</title>
<updated>2015-11-29T13:32:29Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-11-29T13:27:25Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3dd64b9c53b63ed82e59971614ec1dc242621d9b'/>
<id>urn:sha1:3dd64b9c53b63ed82e59971614ec1dc242621d9b</id>
<content type='text'>
Regression of 14341a7ee1ca3dbcdcdbe10ad19b947ce23d972d.

Reported-By: Julian Andres Klode &lt;jak@debian.org&gt;
</content>
</entry>
<entry>
<title>support .deb files in upgrade operations as well</title>
<updated>2015-11-04T17:04:01Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-10-12T13:57:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=14341a7ee1ca3dbcdcdbe10ad19b947ce23d972d'/>
<id>urn:sha1:14341a7ee1ca3dbcdcdbe10ad19b947ce23d972d</id>
<content type='text'>
The main part is refactoring through to allow hiding the magic needed to
support .deb files in deeper layers of libapt so that frontends have
less exposure to Debian specific classes like debDebPkgFileIndex.
</content>
</entry>
<entry>
<title>add by-hash sources.list option and document all of by-hash</title>
<updated>2015-09-14T13:22:19Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-09-14T11:18:29Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=24e8f24e1e94ec3816b0bfc7a05d1c4e3f73248e'/>
<id>urn:sha1:24e8f24e1e94ec3816b0bfc7a05d1c4e3f73248e</id>
<content type='text'>
This changes the semantics of the option (which is renamed too) to be a
yes/no value with the special additional value "force" as this allows
by-hash to be disabled even if the repository indicates it would be
supported and is more in line with our other yes/no options like pdiff
which disable themselves if no support can be detected.

The feature wasn't documented so far and hasn't reached a (un)stable
release yet, so changing it without trying too hard to keep
compatibility seems okay.
</content>
</entry>
<entry>
<title>avoid using global PendingError to avoid failing too often too soon</title>
<updated>2015-09-14T13:22:18Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-09-10T17:00:51Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=95278287f4e1eeaf5d96749d6fc9bfc53fb400d0'/>
<id>urn:sha1:95278287f4e1eeaf5d96749d6fc9bfc53fb400d0</id>
<content type='text'>
Our error reporting is historically grown into some kind of mess.
A while ago I implemented stacking for the global error which is used in
this commit now to wrap calls to functions which do not report (all)
errors via return, so that only failures in those calls cause a failure
to propergate down the chain rather than failing if anything
(potentially totally unrelated) has failed at some point in the past.

This way we can avoid stopping the entire acquire process just because a
single source produced an error for example. It also means that after
the acquire process the cache is generated – even if the acquire
process had failures – as we still have the old good data around we can and
should generate a cache for (again).

There are probably more instances of this hiding, but all these looked
like the easiest to work with and fix with reasonable (aka net-positive)
effects.
</content>
</entry>
<entry>
<title>detect and deal with indextarget duplicates</title>
<updated>2015-08-30T20:50:55Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-08-30T20:34:28Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3090ae6972fd0e15767a96708c248f3ab87502f2'/>
<id>urn:sha1:3090ae6972fd0e15767a96708c248f3ab87502f2</id>
<content type='text'>
Multiple targets downloading the same file is bad™ as it leads us to all
sorts of problems like the acquire system breaking or simply a problem
of which settings to use for them. Beside that this is most likely a
mistake and silently ignoring it doesn't help the user realizing his
mistake…

On the other hand, we have 'duplicates' which are 'created' by how we
create indextargets, so we have to prevent those from being created to
but do not emit a warning for them as this is an implementation detail.

And then, there is the absolute and most likely user mistake: Having the
same target(s) activated in multiple entries.
</content>
</entry>
<entry>
<title>use c++11 algorithms to avoid strange compiler warnings</title>
<updated>2015-08-29T10:33:30Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-08-29T10:28:24Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8dd562a894c2472e3705fe13c212f665b55744a9'/>
<id>urn:sha1:8dd562a894c2472e3705fe13c212f665b55744a9</id>
<content type='text'>
Nobody knows what makes the 'unable to optimize loop' warning to appear
in the sourceslist minus-options parsing, especially if we use a foreach
loop, but we can replace it with some nice c++11 algorithm+lambda usage,
which also helps in making even clearer what happens here.

And as this would be a lonely change, lets do it for a few more loops as
well where I might or might not have seen the warning at some point in
time, too.

Git-Dch: Ignore
</content>
</entry>
</feed>
