<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/deb/deblistparser.h, branch 1.3_rc2</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.3_rc2</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.3_rc2'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2016-01-26T22:18:05Z</updated>
<entry>
<title>convert Version() and Architecture() to APT::StringView</title>
<updated>2016-01-26T22:18:05Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-01-26T22:18:05Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8efd5947bf7de0fc3db51b4871bcf3522018761d'/>
<id>urn:sha1:8efd5947bf7de0fc3db51b4871bcf3522018761d</id>
<content type='text'>
Part of hidden classes, so conversion is abi-free.

Git-Dch: Ignore
</content>
</entry>
<entry>
<title>remove unused Description methods in listparsers</title>
<updated>2016-01-26T20:58:57Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-01-26T20:58:57Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=02ceb810fe0de9b267a8b6a302505967afce6b5a'/>
<id>urn:sha1:02ceb810fe0de9b267a8b6a302505967afce6b5a</id>
<content type='text'>
These virtual methods are implemented in hidden classes, so we can drop
them without breaking the ABI.

Git-Dch: Ignore
</content>
</entry>
<entry>
<title>use APT::StringView for GrabWord</title>
<updated>2016-01-15T17:19:16Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-01-15T16:54:43Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3b4045fc31baf3aa580bd695695d579c30a481b8'/>
<id>urn:sha1:3b4045fc31baf3aa580bd695695d579c30a481b8</id>
<content type='text'>
Git-Dch: Ignore
</content>
</entry>
<entry>
<title>debListParser: Convert another ParseDepends to StringView</title>
<updated>2016-01-08T20:08:51Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-01-08T19:57:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e9a1e5f9a37b8ddcdb98f2a0608f262e0863673a'/>
<id>urn:sha1:e9a1e5f9a37b8ddcdb98f2a0608f262e0863673a</id>
<content type='text'>
I overlooked this

Gbp-Dch: ignore
</content>
</entry>
<entry>
<title>Switch performance critical code to use APT::StringView</title>
<updated>2016-01-07T18:59:08Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-01-07T18:16:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=eff0c22e59e65b6b63e854ff41eb091278e05714'/>
<id>urn:sha1:eff0c22e59e65b6b63e854ff41eb091278e05714</id>
<content type='text'>
This improves performance of the cache generation on my
ARM platform (4x Cortex A15) by about 10% to 20% from
2.35-2.50 to 2.1 seconds.
</content>
</entry>
<entry>
<title>deblistparser: Make PrioList const</title>
<updated>2015-10-23T16:06:23Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2015-10-23T16:02:30Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f77ea39c94988ab6adcb2d6bbf5466b0bc65953b'/>
<id>urn:sha1:f77ea39c94988ab6adcb2d6bbf5466b0bc65953b</id>
<content type='text'>
More safety, less writeable memory.
</content>
</entry>
<entry>
<title>Do not parse Status fields from remote sources</title>
<updated>2015-08-27T12:51:47Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2015-08-21T16:00:37Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1c73b0fc41c23a08994ef1464c529e0aacff16de'/>
<id>urn:sha1:1c73b0fc41c23a08994ef1464c529e0aacff16de</id>
<content type='text'>
This could allow an attacker to mark a package as installed in a
remote package index, as long as the package was not listed in
the dpkg status file.

This way, an attacker could force the installation of a package
during a dist-upgrade, by providing two packages in an index,
an older marked as installed, and a newer - apt would "upgrade"
to the newer version.
</content>
</entry>
<entry>
<title>parse packages from all architectures into the cache</title>
<updated>2015-08-10T15:27:59Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-07-20T10:32:46Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7f8c0eed6983db7b8959f1498fc8bc80c98d719e'/>
<id>urn:sha1:7f8c0eed6983db7b8959f1498fc8bc80c98d719e</id>
<content type='text'>
Now that we can dynamically create dependencies and provides as needed
rather than requiring to know with which architectures we will deal
before running we can allow the listparser to parse all records rather
than skipping records of "unknown" architectures.

This can e.g. happen if a user has foreign architecture packages in his
status file without dpkg knowing about this architecture (or apt
configured in this way).

A sideeffect is that now arch:all packages are (correctly) recorded as
available from any Packages file, not just from the native one – which
has its downsides for the resolver as mixed-arch source packages can
appear in different architectures at different times, but that is the
problem of the resolver and dealing with it in the parser is at best a
hack (and also depends on a helpful repository).

Another sideeffect is that his allows :none packages to appear in
Packages files again as we don't do any kind of checks now, but given
that they aren't really supported (anymore) by anyone we can live with
that.
</content>
</entry>
<entry>
<title>elimate duplicated code in pkgIndexFile subclasses</title>
<updated>2015-08-10T15:27:59Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-07-20T08:17:29Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c9443c01208377f0cba9706412ea3a98ad97b56d'/>
<id>urn:sha1:c9443c01208377f0cba9706412ea3a98ad97b56d</id>
<content type='text'>
Trade deduplication of code for a bunch of new virtuals, so it is
actually visible how the different indexes behave cleaning up the
interface at large in the process.

Git-Dch: Ignore
</content>
</entry>
<entry>
<title>just-in-time creation for (implicit) Provides</title>
<updated>2015-08-10T15:27:59Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-07-16T17:41:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ecc138f858fab61e0b888d3d13854d1422c3432b'/>
<id>urn:sha1:ecc138f858fab61e0b888d3d13854d1422c3432b</id>
<content type='text'>
Expecting the worst is easy to code, but has its disadvantages e.g.
by creating package structures which otherwise would have never
existed. By creating the provides instead at the time a package
structure is added we are well prepared for the introduction of partial
architectures, massive amounts of M-A:foreign (and :allowed) and co as
far as provides are concerned at least. We have something relatively
similar for dependencies already.

Many tests are added for both M-A states and the code cleaned to
properly support implicit provides for foreign architectures and
architectures we 'just' happen to parse.

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