<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/deb/deblistparser.cc, branch 1.4.6</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.4.6</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.4.6'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2017-02-10T22:12:52Z</updated>
<entry>
<title>Do not package names representing .dsc/.deb/... files</title>
<updated>2017-02-10T22:12:52Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-02-10T21:39:00Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=85ee4036c68d8ecd2c973d413a17aca81380900b'/>
<id>urn:sha1:85ee4036c68d8ecd2c973d413a17aca81380900b</id>
<content type='text'>
In the case of build-dep and other commands where a file can be
passed we must make sure not to normalize the path name as that
can have odd side effects, or well, cause the operation to do
nothing.

Test for build-dep-file is adjusted to perform the vcard check
once as "vcard" and once as "VCard", thus testing that this
solves the reported bug.

We inline the std::transform() and optimize it a bit to not
write anything in the common case (package names are defined
to be lowercase, the whole transformation is just for names
that should not exist...) to counter the performance hit of
the added find() call (it's about 0.15% more instructions
than with the existing transform, but we save about 0.67%
in writes...).

Closes: #854794
</content>
</entry>
<entry>
<title>ParseDepends: Support passing the desired architecture</title>
<updated>2017-01-02T13:27:52Z</updated>
<author>
<name>Niels Thykier</name>
<email>niels@thykier.net</email>
</author>
<published>2016-11-27T10:54:33Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=926c09cc9cf4797e9a44c4253b1ce9ec1212c0da'/>
<id>urn:sha1:926c09cc9cf4797e9a44c4253b1ce9ec1212c0da</id>
<content type='text'>
This is useful for e.g. Britney, where the Build-Depends would have to
be parsed for multiple architectures.  With this change, the call can
choose the architecture without having to mess with the config.

Signed-off-by: Niels Thykier &lt;niels@thykier.net&gt;
Closes: #845969

(jak@d.o: made the code compile)
</content>
</entry>
<entry>
<title>Do not use MD5SumValue for Description_md5()</title>
<updated>2016-11-22T21:58:33Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-09-27T22:49:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=49521f87851089bdb4097b715d09a8bd348aa60a'/>
<id>urn:sha1:49521f87851089bdb4097b715d09a8bd348aa60a</id>
<content type='text'>
Our profile says we spend about 5% of the time transforming the
hex digits into the binary format used by HashsumValue, all for
comparing them against the other strings. That makes no sense
at all.

According to callgrind, this reduces the overall instruction
count from 5,3 billion to 5 billion in my example, which
roughly matches the 5%.
</content>
</entry>
<entry>
<title>debListParser: Micro-optimize AvailableDescriptionLanguages()</title>
<updated>2016-11-22T21:58:19Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-09-27T22:05:31Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c0723bf1a60daf45096998d4ae9feee3c44343f8'/>
<id>urn:sha1:c0723bf1a60daf45096998d4ae9feee3c44343f8</id>
<content type='text'>
Generating a string for each version we see is somewhat inefficient.
The problem here is that the Description tag names are longer than
15 byte, and thus require an allocation on the heap, which we should
avoid.

It seems reasonable that 20 characters works for all languages codes
used for archive descriptions, but if not, there's a warning, so
we'll catch that.

This should improve performance by about 2%.
</content>
</entry>
<entry>
<title>Optimize VersionHash() to not need temporary copy of input</title>
<updated>2016-11-22T21:58:18Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-09-27T16:28:55Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f903069c139df58d1ba855f7cf02c4a2d4e51dc3'/>
<id>urn:sha1:f903069c139df58d1ba855f7cf02c4a2d4e51dc3</id>
<content type='text'>
Stop copying stuff, and just parse the bytes one by-one to the
newly created AddCRC16Byte. This improves the instruction count
for an update run from 720,850,121 to 455,801,749 according to
callgrind.
</content>
</entry>
<entry>
<title>Introduce tolower_ascii_unsafe() and use it for hashing</title>
<updated>2016-11-22T21:58:18Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-09-27T16:20:02Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7a3b00b10b6a5a740e07fc1b68a4f3fb3bcdac23'/>
<id>urn:sha1:7a3b00b10b6a5a740e07fc1b68a4f3fb3bcdac23</id>
<content type='text'>
This one has some obvious collisions for non-alphabetical characters,
like some control characters also hashing to numbers, but we don't
really have those, and these are hash functions which are not
collision free to begin with.
</content>
</entry>
<entry>
<title>debListParser: Convert to use pkgTagSection::Key-based lookup</title>
<updated>2016-11-22T21:57:46Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-09-27T16:16:13Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=5664bb2020530c0a8bbd0dc4c889743921b42429'/>
<id>urn:sha1:5664bb2020530c0a8bbd0dc4c889743921b42429</id>
<content type='text'>
This basically gets rid of 40-50% of the hash table lookups,
making things a bit faster that way, and the profiles look
far cleaner.
</content>
</entry>
<entry>
<title>add hidden config to set packages as Essential/Important</title>
<updated>2016-11-11T22:40:39Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-11-11T10:58:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a9b724eedd0c9d8c36725c5b8f57d51ea9f7dcd1'/>
<id>urn:sha1:a9b724eedd0c9d8c36725c5b8f57d51ea9f7dcd1</id>
<content type='text'>
You can pretty much achieve the same with a local dummy package if you
want to, but libapt has an inbuilt setting for essential: "apt" which
can be overridden with this option as well – it could be helpful in
quick tests and what not so adding this alternative shouldn't really
hurt much.

We aren't going to document them much through as care must be taken in
regards to the binary caches as they aren't invalidated by config
options alone, so the effects of old settings could still be in them,
similar to the other already existing pkgCacheGen option(s).

Closes: 767891
Thanks: Anthony Towns for initial patch
</content>
</entry>
<entry>
<title>VersionHash: Do not skip too long dependency lines</title>
<updated>2016-09-18T12:17:17Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-09-18T11:24:35Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=708e2f1fe99e6f067292bc909f03f12c181e4798'/>
<id>urn:sha1:708e2f1fe99e6f067292bc909f03f12c181e4798</id>
<content type='text'>
If the dependency line does not contain spaces in the repository
but does in the dpkg status file (because dpkg normalized the
dependency list), the dpkg line might be longer than the line
in the repository. If it now happens to be longer than 1024
characters, it would be skipped, causing the hashes to be
out of date.

Note that we have to bump the minor cache version again as
this changes the format slightly, and we might get mismatches
with an older src cache otherwise.

Fixes Debian/apt#23
</content>
</entry>
<entry>
<title>reinstalling local deb file is no downgrade</title>
<updated>2016-07-01T11:36:40Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-07-01T11:17:03Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e7edb2fef8370d54a4b8e5a01266e6eda81ef84e'/>
<id>urn:sha1:e7edb2fef8370d54a4b8e5a01266e6eda81ef84e</id>
<content type='text'>
If we have a (e.g. locally built) deb file installed and do try to
install it again apt complained about this being a downgrade, but it
wasn't as it is the very same version… it was just confused into not
merging the versions together which looks like a downgrade then.

The same size assumption is usually good, but given that volatile files
are parsed last (even after the status file) the base assumption no
longer holds, but is easy to adept without actually changing anything in
practice.
</content>
</entry>
</feed>
