<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg, branch 1.4_rc1</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.4_rc1</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.4_rc1'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2017-01-30T23:57:58Z</updated>
<entry>
<title>algorithms: Fix typo: gental -&gt; gentle</title>
<updated>2017-01-30T23:57:58Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-01-30T23:55:44Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c20e18fd8161b97f3ca41424e082df0f13d920e1'/>
<id>urn:sha1:c20e18fd8161b97f3ca41424e082df0f13d920e1</id>
<content type='text'>
Oh dear, nobody (or rather no tool) saw that yet...

Gbp-Dch: ignore
</content>
</entry>
<entry>
<title>Only merge acquire items with the same meta key</title>
<updated>2017-01-28T13:06:29Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-01-25T02:38:59Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7b78e8bef1fc9de22d826db1db9df25f97d3710c'/>
<id>urn:sha1:7b78e8bef1fc9de22d826db1db9df25f97d3710c</id>
<content type='text'>
Since the introduction of by-hash, two differently named
files might have the same real URL. In our case, the files
icons-64x64.tar.gz and icons-128x128.tar.gz of empty tarballs.

APT would try to merge them and end with weird errors because
it completed the first download and enters the second stage for
decompressing and verifying. After that it would queue a new item
to copy the original file to the location, but that copy item would
be in the wrong stage, causing it to use the hashes for the
decompressed item.

Closes: #838441
</content>
</entry>
<entry>
<title>avoid malloc if option whitelist is disabled (default)</title>
<updated>2017-01-27T20:06:09Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-01-27T11:30:13Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2f8f58512dbb478f23149b57d33f788c26c04445'/>
<id>urn:sha1:2f8f58512dbb478f23149b57d33f788c26c04445</id>
<content type='text'>
Config options are checked in various paths, so making "useless" memory
allocations wastes time and can also cause problems like #852757.
The unneeded malloc was added in ae73a2944a89e0d2406a2aab4a4c082e1e9da3f9.
(We have no explicit malloc here – its std:string doing this internally)
</content>
</entry>
<entry>
<title>fix various typos reported by spellintian</title>
<updated>2017-01-19T14:59:38Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-01-19T14:14:19Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=93cff633a830e222693fc0f3d78e6e534d1126ee'/>
<id>urn:sha1:93cff633a830e222693fc0f3d78e6e534d1126ee</id>
<content type='text'>
Most of them in (old) code comments. The two instances of user visible
string changes the po files of the manpages are fixed up as well.

Gbp-Dch: Ignore
Reported-By: spellintian
</content>
</entry>
<entry>
<title>fix various typos reported by codespell</title>
<updated>2017-01-19T14:59:38Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-01-19T12:41:25Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=99b1cdd3a07576542c8bda40d93368f3f76db912'/>
<id>urn:sha1:99b1cdd3a07576542c8bda40d93368f3f76db912</id>
<content type='text'>
Nothing in user visible strings.

Gbp-Dch: Ignore
Reported-By: codespell
</content>
</entry>
<entry>
<title>remove 'old' FAILED files in the next acquire call</title>
<updated>2017-01-19T02:57:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-01-19T02:57:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7ca83492e802967f183babf06ab541b1b51f1703'/>
<id>urn:sha1:7ca83492e802967f183babf06ab541b1b51f1703</id>
<content type='text'>
If apt renames a file to .FAILED it leaves its namespace and is never
touched again – expect since 1.1~exp4 in which "apt clean" will remove
those files. The usefulness of these files rapidly degrades if you don't
keep the update log itself (together with debug output in the best case)
through and on 99% of all system they will be kept around forever just
to collect dust over time and eat up space.

With this commit an update call will remove all FAILED files of previous
runs, so that the FAILED files you have on disk are always only the ones
related to the last apt run stopping apt from hoarding files.

Closes: 846476
</content>
</entry>
<entry>
<title>avoid validate/delete/load race in cache generation</title>
<updated>2017-01-19T01:13:54Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-01-19T01:13:54Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=06606f073210fe3902fe92d5ff77fa1ab621b972'/>
<id>urn:sha1:06606f073210fe3902fe92d5ff77fa1ab621b972</id>
<content type='text'>
Keeping the Fd of the cache file we have validated around to later load
it into the mmap ensures not only that we load the same file (which
wouldn't really be a problem in practice), but that this file also still
exists and wasn't deleted e.g. by a 'apt clean' call run in parallel.
</content>
</entry>
<entry>
<title>CMake: Document that the globs are expanded during CMake</title>
<updated>2017-01-17T13:33:02Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-01-17T13:33:02Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=b59a8c6e29015c4d19c4b39a63b328af7d87d1ee'/>
<id>urn:sha1:b59a8c6e29015c4d19c4b39a63b328af7d87d1ee</id>
<content type='text'>
This will avoid people from thinking that they have to do nothing
when they change the set of files.

Gbp-Dch: ignore
</content>
</entry>
<entry>
<title>CMake: Find the Perl executable, and use it to run perl scripts</title>
<updated>2017-01-17T00:43:50Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-01-17T00:40:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1dcd7d291be1d39127c4b95778549f323e61ef15'/>
<id>urn:sha1:1dcd7d291be1d39127c4b95778549f323e61ef15</id>
<content type='text'>
This is somewhat more portable than just hardcoding perl or in the
triehash case /usr/bin/perl in the shebang.

Thanks: Guillem Jover for the hint
Gbp-Dch: ignore
</content>
</entry>
<entry>
<title>Read dpkg tables to handle architecture wildcards</title>
<updated>2017-01-17T00:43:50Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-01-16T23:08:16Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6ede8952f55a1bc356b42b1adc7b9bd504af943c'/>
<id>urn:sha1:6ede8952f55a1bc356b42b1adc7b9bd504af943c</id>
<content type='text'>
Our implementation of wildcards was rudimentary. It worked for some
common ones, but it was also broken: For example, armel matched any-armel,
but should match any-arm.

With this commit, we load the correct tables from dpkg. Supported are
both triplets and quadruplet tables (the latter introduced in dpkg 1.18.11).

There are some odd things we have to deal with in the cache filter for
historical and API reasons:

* The character "*" must be accepted as an alternative to any - in fact
  it may appear anywhere in the wildcard as we also allow fnmatch() style
  wildcard matching on the commandline.

* The code might get passed an arch with a minus at the end, for example
  the cmdline "install apt:any-arm-" will first try to check if any-arm-
  is a valid architecture. We deal with this by rejecting any wildcard
  ending in a minus.

* Triplets are actually implemented by extending them to faux quadruplets
  - by prepending a "base" component for the architecture tuple, and "any"
  if there is a wildcard component.

Once we have constructed a wildcard, it is transformed into an fnmatch()
expression for historical reasons. In the future, we should really get a
tuple class and implement matching in a better, more explicit way.

This does for now though - it passes all the test cases and accepts all
things it should accept.

Closes: #748936
Thanks: James Clarke &lt;jrtc27@jrtc27.com&gt; for the initial patch
</content>
</entry>
</feed>
