<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/packagemanager.cc, branch 1.0.9.4</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.0.9.4</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.0.9.4'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2014-07-29T13:07:06Z</updated>
<entry>
<title>Fix SmartConfigure to ignore ordering of packages that are already valid</title>
<updated>2014-07-29T13:07:06Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@ubuntu.com</email>
</author>
<published>2014-07-29T13:01:13Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2f58969150b0daec1de407f61385ccf5b2065aa3'/>
<id>urn:sha1:2f58969150b0daec1de407f61385ccf5b2065aa3</id>
<content type='text'>
With the change of SmartConfigure() in git commit 42d51f the ordering
code was trying to re-order dependencies, even when at this point in
time this was not needed. Now it will first check all targets of the
given dependency and only if there is not a good one try to reorder
and unpack/configure as needed.

Closes: LP: #1347721
</content>
</entry>
<entry>
<title>fix tight loop detection and temporary removes</title>
<updated>2014-05-22T15:43:48Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-05-17T10:37:13Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=0eb4af9d3d0c524c7afdc684238aa263ac287449'/>
<id>urn:sha1:0eb4af9d3d0c524c7afdc684238aa263ac287449</id>
<content type='text'>
As outlined in #748355 apt segfaulted if it encountered a loop between a
package pre-depending on a package conflicting with the previous as it
ended up in an endless loop trying to unpack 'the other package'.

In this specific case as an essential package is involved a lot of force
needs to be applied, but can also be caused by 'normal' tight loops and
highlights a problem in how we handle breaks which we want to avoid.

The fix comes in multiple entangled changes:
1. All Smart* calls are guarded with loop detection. Some already had it,
   some had parts of it, some did it incorrect, and some didn't even try.
2. temporary removes to avoid a loop (which is done if a loop is
   detected) prevent the unpack of this looping package (we tried to unpack
   it to avoid the conflict/breaks, but due to a loop we couldn't, so we
   remove/deconfigure it instead which means we can't unpack it now)
3. handle conflicts and breaks very similar instead of duplicating most
   of the code. The only remaining difference is, as it should:
   deconfigure is enough for breaks, for conflicts we need the big hammer
</content>
</entry>
<entry>
<title>consistently fail if Smart* packagemanager actions fail</title>
<updated>2014-05-22T15:43:48Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-05-16T15:28:11Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=71e7a0f3a432828e5bd5498297051aa37e7f0a59'/>
<id>urn:sha1:71e7a0f3a432828e5bd5498297051aa37e7f0a59</id>
<content type='text'>
These failure conditions come with an error message attached and the
conditions aren't workaroundable (otherwise this would have been done
instead of returning failure), so not erroring out here means that we
execute dpkg later on with a known not-working ordering adding insult
(our own error messages at the end) to injury (dpkg failure).
</content>
</entry>
<entry>
<title>do not configure already unpacked packages needlessly</title>
<updated>2014-03-13T12:58:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-03-08T16:29:46Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=0caa5a4c6472d1b74444c4f38ced6c3b89fa50fe'/>
<id>urn:sha1:0caa5a4c6472d1b74444c4f38ced6c3b89fa50fe</id>
<content type='text'>
The unpack of a M-A:same package will force the unpack of all its
siblings directly to prevent that they could be separated by later
immediate actions. In commit 634985f8 a call to SmartConfigure was
introduced to configure these packages at the time the installation
order encounters them. Usually, the unpack order is already okay, so
that this 'earlier' unpack was not needed and if it wouldn't have been
done, the package would now only be unpacked, but by configuring the package
now we impose new requirements which must be satisfied. The code is
clever enough to handle this most of the time (it worked for 2 years!),
but it isn't needed and in very coupled cases this can fail.

Removing this call again removes this extra burden and so simplifies the
ordering as can be seen in the modified tests. Famous last words, but I
don't see a reason for this extra burden to exist hence the remove.

Closes: 740843
</content>
</entry>
<entry>
<title>cleanup headers and especially #includes everywhere</title>
<updated>2014-03-13T12:58:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-03-05T21:11:25Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=453b82a388013e522b3a1b9fcd6ed0810dab1f4f'/>
<id>urn:sha1:453b82a388013e522b3a1b9fcd6ed0810dab1f4f</id>
<content type='text'>
Beside being a bit cleaner it hopefully also resolves oddball problems
I have with high levels of parallel jobs.

Git-Dch: Ignore
Reported-By: iwyu (include-what-you-use)
</content>
</entry>
<entry>
<title>show debug output only if told so in packagemanager</title>
<updated>2014-03-13T12:57:34Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-02-23T21:22:15Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2252183c69fb5e3e020b45c37d9728b3437d797d'/>
<id>urn:sha1:2252183c69fb5e3e020b45c37d9728b3437d797d</id>
<content type='text'>
Git-Dch: Ignore
</content>
</entry>
<entry>
<title>Fix typos in documentation (codespell)</title>
<updated>2014-02-22T17:34:33Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@debian.org</email>
</author>
<published>2014-02-22T17:34:33Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1e3f4083db29bba600b9725e9456b0e140975c99'/>
<id>urn:sha1:1e3f4083db29bba600b9725e9456b0e140975c99</id>
<content type='text'>
</content>
</entry>
<entry>
<title>restore ABI and prepare next ABI via #if (APT_PKG_MAJOR &gt;= 4 &amp;&amp; APT_PKG_MINOR &gt;= 13)</title>
<updated>2013-10-31T07:23:12Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@debian.org</email>
</author>
<published>2013-10-31T07:23:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=bd5f39b34cc0e8cebbe9103f569d4d903e75bd2b'/>
<id>urn:sha1:bd5f39b34cc0e8cebbe9103f569d4d903e75bd2b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>restore binary compatiblity with the pkgPackageManager interface</title>
<updated>2013-10-21T20:11:18Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@debian.org</email>
</author>
<published>2013-10-21T19:42:16Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3b1b0f2900347ef2836c7ee4cc3ee20c6cdcb621'/>
<id>urn:sha1:3b1b0f2900347ef2836c7ee4cc3ee20c6cdcb621</id>
<content type='text'>
</content>
</entry>
<entry>
<title>re-add APT::Keep-Fds:: for the dpkg status-fd in dpkgpm.cc as we always need this</title>
<updated>2013-10-14T06:42:48Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@debian.org</email>
</author>
<published>2013-10-14T06:42:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=5e9458e285af11c7fa4308add10d250e3546c8bf'/>
<id>urn:sha1:5e9458e285af11c7fa4308add10d250e3546c8bf</id>
<content type='text'>
</content>
</entry>
</feed>
