<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/test, 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>dispose http(s) 416 error page as non-content</title>
<updated>2014-12-22T13:23:39Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-11-29T16:59:52Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=92e8c1ff287ab829de825e00cdf94744e699ff97'/>
<id>urn:sha1:92e8c1ff287ab829de825e00cdf94744e699ff97</id>
<content type='text'>
Real webservers (like apache) actually send an error page with a 416
response, but our client didn't expect it leaving the page on the socket
to be parsed as response for the next request (http) or as file content
(https), which isn't what we want at all… Symptom is a "Bad header line"
as html usually doesn't parse that well to an http-header.

This manifests itself e.g. if we have a complete file (or larger) in
partial/ which isn't discarded by If-Range as the server doesn't support
it (or it is just newer, think: mirror rotation).
It is a sort-of regression of 78c72d0ce22e00b194251445aae306df357d5c1a,
which removed the filesize - 1 trick, but this had its own problems…

To properly test this our webserver gains the ability to reply with
transfer-encoding: chunked as most real webservers will use it to send
the dynamically generated error pages.

(The tests and their binary helpers had to be slightly modified to
apply, but the patch to fix the issue itself is unchanged.)

Closes: 768797
</content>
</entry>
<entry>
<title>support long keyids in "apt-key del" instead of ignoring them</title>
<updated>2014-11-28T15:15:39Z</updated>
<author>
<name>James McCoy</name>
<email>jamessan@debian.org</email>
</author>
<published>2014-11-28T13:21:06Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=69d8b8537af1dd52db5f2e0e785bdce3e52fdf8d'/>
<id>urn:sha1:69d8b8537af1dd52db5f2e0e785bdce3e52fdf8d</id>
<content type='text'>
apt-key given a long keyid reports just "OK" all the time, but doesn't
delete the mentioned key as it doesn't find the key.

Note: In debian/experimental this was closed with
29f1b977100aeb6d6ebd38923eeb7a623e264ffe which just added the testcase
as the rewrite of apt-key had fixed this as well.

Closes: 754436
</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>reenable support for -s (and co) in apt-get source</title>
<updated>2014-11-10T16:23:29Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-10-18T12:44:41Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8cc3535f2cdcfe1301b641dae8dfadf99658c732'/>
<id>urn:sha1:8cc3535f2cdcfe1301b641dae8dfadf99658c732</id>
<content type='text'>
The conversion to accept only relevant options for commands has
forgotten another one, so adding it again even through the usecase might
very well be equally good served by --print-uris.

Closes: 742578
</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>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>
</feed>
