<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/test, branch 1.4.5</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.4.5</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.4.5'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2017-05-31T12:39:53Z</updated>
<entry>
<title>Fix parsing of or groups in build-deps with ignored packages</title>
<updated>2017-05-31T12:39:53Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-05-30T20:24:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7ddf958e370d13f93edc6923bee289b2f6444b41'/>
<id>urn:sha1:7ddf958e370d13f93edc6923bee289b2f6444b41</id>
<content type='text'>
If the last alternative(s) of an Or group is ignored, because it does
not match an architecture list, we would end up keeping the or flag,
effectively making the next AND an OR.

For example, when parsing (on amd64):

    debhelper (&gt;= 9), libnacl-dev [amd64] | libnacl-dev [i386]
 =&gt; debhelper (&gt;= 9), libnacl-dev |

Which can cause python-apt to crash.

Even worse:

     debhelper (&gt;= 9), libnacl-dev [amd64] | libnacl-dev [i386], foobar
  =&gt; debhelper (&gt;= 9), libnacl-dev [amd64] | foobar

By setting the previous alternatives Or flag to the current Or flag
if the current alternative is ignored, we solve the issue.

LP: #1694697
</content>
</entry>
<entry>
<title>Ignore AutomaticRemove conffile option in upgrade</title>
<updated>2017-03-19T14:08:08Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-03-19T14:08:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c89b22c285d6c4a3cb64689ff26e84af4d1477f2'/>
<id>urn:sha1:c89b22c285d6c4a3cb64689ff26e84af4d1477f2</id>
<content type='text'>
We are in a dilemma here: The regression of sorts was introduced in 2013
with commit d8a8f9d7f0 allowing pkg modifiers for the upgrade commands.
That calls the autoremover as a sideeffect through and with it comes the
option to remove the garbage packages in these commands (similar to aptitude).

Having the option on the commandline is no problem – people aren't going
to request what they don't want (or so I hope), but the documentation
explicitly states that this option only effects install/remove and
mentions a config knob users might use and expect to not suddenly apply
(especially without documentation) to more commands.

Just reverting the commit is out of question, completely ignoring the
option breaks the workflow of every user who happened to use
--autoremove on the commandline for upgrade and expects that to work
given that it was accepted and worked in a stable release. Changing the
documentation to reflect reality while perhaps the simplest and cleanest
option contradicts freeze and is a surprising change we tend to avoid
like the plague while just leaving it be confuses all users who end up
believing the documentation even if was different in the last 3 years.

So what we do is a tricky compromise: The configuration option if read
from a file does apply only for install/remove as documented, while if
the option is encountered on the commandline it is accepted and applies
to the upgrade which should make 99% of the users happy. The rest has to
wait for us to figure out for buster how to get that documented and
implemented in a saner way.

Closes: #855891
</content>
</entry>
<entry>
<title>Fix and avoid quoting in CommandLine::AsString</title>
<updated>2017-03-19T13:32:59Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-03-19T12:53:33Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2ce15bdeac6ee93faefd4b42b57f035bef80c567'/>
<id>urn:sha1:2ce15bdeac6ee93faefd4b42b57f035bef80c567</id>
<content type='text'>
In the intended usecase where this serves as a hack there is no problem
with double/single quotes being present as we write it to a log file
only, but nowadays our calling of apt-key produces a temporary config
file containing this "setting" as well and suddently quoting is
important as the config file syntax is allergic to it.

So the fix is to ignore all quoting whatsoever in the input and just
quote (with singles) the option values with spaces. That gives us 99% of
the time the correct result and the 1% where the quote is an integral
element of the option … doesn't exist – or has bigger problems than a
log file not containing the quote. Same goes for newlines in values.

LP: #1672710
</content>
</entry>
<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>don't test with "too early for 32bit" years</title>
<updated>2017-02-09T11:59:05Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-02-09T11:50:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=89a2e40d14c29c66aead51df0d56c5c49776009a'/>
<id>urn:sha1:89a2e40d14c29c66aead51df0d56c5c49776009a</id>
<content type='text'>
$ uname -m
i686
$ date -d '0-12-25'
date: invalid date '0-12-25'

Test-Regression-In: 25a14d4ccfceb2698edce01092bc6a1dbe9fb217
</content>
</entry>
<entry>
<title>test suite: Do not exit 0 in trap for QUIT</title>
<updated>2017-01-24T18:19:48Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-01-24T18:11:30Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=bcb1919a88ea746460e623dd591f7a00135eadda'/>
<id>urn:sha1:bcb1919a88ea746460e623dd591f7a00135eadda</id>
<content type='text'>
This hides errors in the test suite because it will exit
with 0 here. Instead, just do exit 1 in most traps, and
do just the cleanup in the QUIT hook.

This fixes a regression introduced with the caching of the
GPG home directory in 4ce2f35248123ff2366c8c365ad6a94945578d66.
</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>make the moo reproducible</title>
<updated>2017-01-19T10:50:41Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-01-19T10:50:41Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=25a14d4ccfceb2698edce01092bc6a1dbe9fb217'/>
<id>urn:sha1:25a14d4ccfceb2698edce01092bc6a1dbe9fb217</id>
<content type='text'>
Normal cows moo every time they feel like it and it might be a "moo",
"moo!" or "moo?". This is completely unacceptable behaviour in our super
cow through as as a superior being it has to show its superiority over
the common cows and the meager easter eggs by being fully reproducible!

The second version of Chris' patch is modified to include an array of
tests for this feature – which doubles as explanation for some of the
moo lines by giving more exact dates – and falling back to current time
if the environment is invalid + passing time around instead of having an
invalid environment be an unrecoverable error (aka: Guru Meditation) as
that is more inline with how apt usually behaves: The wisdom of super cow
should be available to everyone, even to the most misfortune users not
capable of having a valid environment variable.

That makes the code slightly more ugly, so instead of requiring a young
follower to produce a third version a high priest of the cult applied the
finishing touches as he is used to the pain by now – and another round
with the slowpoke high priest would have been a serious threat to the
Debian release schedule which the cow would not approve.

Closes: #848721
Signed-off-by: Super Cow
Thanks: Chris Lamb for initial patch and guru meditation
</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>fix 'install --no-download' mode</title>
<updated>2017-01-19T02:06:00Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-01-19T01:53:35Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3313eaf97c83177433478505c05815ab02f9782b'/>
<id>urn:sha1:3313eaf97c83177433478505c05815ab02f9782b</id>
<content type='text'>
The mode wasn't working at all if not used together with --fix-missing
which while likely to come in pairs its legal to use standalone.

Regression-in: eb1f04dda07c2b69549ad9fd793cca0e91841b3e
</content>
</entry>
</feed>
