<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg, branch 1.0.9.5</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.0.9.5</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.0.9.5'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2014-12-23T10:43:16Z</updated>
<entry>
<title>pass-through stdin fd instead of content if not a terminal</title>
<updated>2014-12-23T10:43:16Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-12-22T22:14:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=748a2177dcf8ff72bca90f5c7d516559ddd67352'/>
<id>urn:sha1:748a2177dcf8ff72bca90f5c7d516559ddd67352</id>
<content type='text'>
Commit 299aea924ccef428219ed6f1a026c122678429e6 fixes the problem of
not logging terminal in case stdin &amp; stdout are not a terminal. The
problem is that we are then trying to pass-through stdin content by
reading from the apt-process stdin and writing it to the stdin of the
child (dpkg), which works great for users who can control themselves,
but pipes and co are a bit less forgiving causing us to pass everything
to the first child process, which if the sending part of the pipe is
e.g. 'yes' we will never see the end of it (as the pipe is full at some
point and further writing blocks).

There is a simple solution for that of course: If stdin isn't a terminal,
we us the apt-process stdin as stdin for the child directly (We don't do
this if it is a terminal to be able to save the typed input in the log).

Closes: 773061
</content>
</entry>
<entry>
<title>always run 'dpkg --configure -a' at the end of our dpkg callings</title>
<updated>2014-12-23T10:43:16Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-11-18T18:53:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a2a75ff4516f7609f4c55b42270abb8d08943c60'/>
<id>urn:sha1:a2a75ff4516f7609f4c55b42270abb8d08943c60</id>
<content type='text'>
dpkg checks now for dependencies before running triggers, so that
packages can now end up in trigger states (especially those we are not
touching at all with our calls) after apt is done running.

The solution to this is trivial: Just tell dpkg to configure everything
after we have (supposely) configured everything already. In the worst
case this means dpkg will have to run a bunch of triggers, usually it
will just do nothing though.

The code to make this happen was already available, so we just flip a
config option here to cause it to be run. This way we can keep
pretending that triggers are an implementation detail of dpkg.
--triggers-only would supposely work as well, but --configure is more
robust in regards to future changes to dpkg and something we will
hopefully make use of in future versions anyway (as it was planed at the
time this and related options were implemented).

Note that dpkg currently has a workaround implemented to allow upgrades
to jessie to be clean, so that the test works before and after. Also
note that test (compared to the one in the bug) drops the await test as
its is considered a loop by dpkg now.

Closes: 769609
</content>
</entry>
<entry>
<title>do not make PTY slave the controlling terminal</title>
<updated>2014-12-23T10:43:16Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-12-10T21:26:59Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e18f6133b254db9e1dc7b202366b067b15a68123'/>
<id>urn:sha1:e18f6133b254db9e1dc7b202366b067b15a68123</id>
<content type='text'>
If we have no controlling terminal opening a terminal will make this
terminal our controller, which is a serious problem if this happens to
be the pseudo terminal we created to run dpkg in as we will close this
terminal at the end hanging ourself up in the process…

The offending open is the one we do to have at least one slave fd open
all the time, but for good measure, we apply the flag also to the slave
fd opening in the child process as we set the controlling terminal
explicitely here.

This is a regression from 150bdc9ca5d656f9fba94d37c5f4f183b02bd746 with
the slight twist that this usecase was silently broken before in that it
wasn't logging the output in term.log (as a pseudo terminal wasn't
created).

Closes: 772641
</content>
</entry>
<entry>
<title>fix PTY interaction on linux and kfreebsd</title>
<updated>2014-11-28T15:15:39Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-11-17T23:59:39Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=299aea924ccef428219ed6f1a026c122678429e6'/>
<id>urn:sha1:299aea924ccef428219ed6f1a026c122678429e6</id>
<content type='text'>
We run dpkg on its own pty, so we can log its output and have our own
output around it (like the progress bar), while also allowing debconf
and configfile prompts to happen.

In commit 223ae57d468fdcac451209a095047a07a5698212 we changed to
constantly reopening the slave for kfreebsd. This has the sideeffect
though that in some cases slave and master will lose their connection on
linux, so that no output is passed along anymore. We fix this by having
always an fd referencing the slave open (linux), but we don't use it
(kfreebsd).

Failing to get our PTY up and running has many (bad) consequences
including (not limited to, nor all at ones or in any case) garbled ouput,
no output, no logging, a (partial) mixture of the previous items, …
This commit is therefore also reshuffling quiet a bit of the creation
code to get especially the output part up and running on linux and the
logging for kfreebsd.

Note that the testcase tries to cover some cases, but this is an
interactivity issue so only interactive usage can really be a good test.

Closes: 765687
</content>
</entry>
<entry>
<title>close leaking slave fd after setting up pty magic</title>
<updated>2014-11-28T15:15:39Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-11-17T14:06:35Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9fc0b435593839de47098212f0ae5f15b6263099'/>
<id>urn:sha1:9fc0b435593839de47098212f0ae5f15b6263099</id>
<content type='text'>
The fd moves out of scope here anyway, so we should close it properly
instead of leaking it which will tickle down to dpkg maintainer scripts.

Closes: 767774
</content>
</entry>
<entry>
<title>allow options between command and -- on commandline</title>
<updated>2014-11-10T16:23:29Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-09-27T23:25:21Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c505fa33a6441b451971ce6c636cf2ca4dacdc1d'/>
<id>urn:sha1:c505fa33a6441b451971ce6c636cf2ca4dacdc1d</id>
<content type='text'>
This used to work before we implemented a stricter commandline parser
and e.g. the dd-schroot-cmd command constructs commandlines like this.

Reported-By: Helmut Grohne
</content>
</entry>
<entry>
<title>deprecate the Section member from package struct</title>
<updated>2014-11-10T16:23:29Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-06-13T06:35:32Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=50ef3344c3afaaf9943142906b2f976a0337d264'/>
<id>urn:sha1:50ef3344c3afaaf9943142906b2f976a0337d264</id>
<content type='text'>
A version belongs to a section and has hence a section member of its
own. A package on the other hand can have multiple versions from
different sections. This was "solved" by using the section which was
parsed first as order of sources.list defines, but that is obviously a
horribly unpredictable thing.

Users are way better of with the Section() as returned by the version
they are dealing with. It is likely the same for all versions of a
package, but in the few cases it isn't, it is important (like packages
moving from main/* to contrib/* or into oldlibs …).

Backport of 7a66977 which actually instantly removes the member.
</content>
</entry>
<entry>
<title>use 'best' hash for source authentication</title>
<updated>2014-11-10T16:23:29Z</updated>
<author>
<name>David Kalnischkies</name>
<email>kalnischkies@gmail.com</email>
</author>
<published>2013-08-18T21:27:24Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3a2b39ee602dd5a98b8fdaee2f1c8e0b13a276e2'/>
<id>urn:sha1:3a2b39ee602dd5a98b8fdaee2f1c8e0b13a276e2</id>
<content type='text'>
Collect all hashes we can get from the source record and put them into a
HashStringList so that 'apt-get source' can use it instead of using
always the MD5sum.

We therefore also deprecate the MD5 struct member in favor of the list.

While at it, the parsing of the Files is enhanced so that records which
miss "Files" (aka MD5 checksums) are still searched for other checksums
as they include just as much data, just not with a nice and catchy name.

This is a cherry-pick of 1262d35 with some dirty tricks to preserve ABI.

LP: 1098738
</content>
</entry>
<entry>
<title>add a simple container for HashStrings</title>
<updated>2014-11-10T16:23:29Z</updated>
<author>
<name>David Kalnischkies</name>
<email>kalnischkies@gmail.com</email>
</author>
<published>2013-08-18T21:17:05Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3f439e2b7126fb82952cd7bc12b8d6cb01352219'/>
<id>urn:sha1:3f439e2b7126fb82952cd7bc12b8d6cb01352219</id>
<content type='text'>
APT supports more than just one HashString and even allows to enforce
the usage of a specific hash. This class is intended to help with
storage and passing around of the HashStrings.

The cherry-pick here the un-const-ification of HashType() compared to
f4c3850ea335545e297504941dc8c7a8f1c83358. The point of this commit is
adding infrastructure for the next one. All by itself, it just adds new
symbols.

Git-Dch: Ignore
</content>
</entry>
<entry>
<title>Fix incorrect comparison between signed/unsigned</title>
<updated>2014-10-23T18:32:01Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@debian.org</email>
</author>
<published>2014-10-23T18:32:01Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=28460cb27846b2437010b08adf10bde18e370974'/>
<id>urn:sha1:28460cb27846b2437010b08adf10bde18e370974</id>
<content type='text'>
Git-Dch: ignore
</content>
</entry>
</feed>
