<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/cmdline/apt-key.in, branch 1.2.2</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.2.2</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.2.2'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2015-12-19T22:04:34Z</updated>
<entry>
<title>avoid triggering gpg2 migration in apt-key</title>
<updated>2015-12-19T22:04:34Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-12-18T11:35:43Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=803491dc568d2994745c3c4359f68053f7261658'/>
<id>urn:sha1:803491dc568d2994745c3c4359f68053f7261658</id>
<content type='text'>
The presents (even of an empty) secring.gpg is indication enough for
gpg2 to tigger the migration code which not only produces a bunch of
output on each apt-key call, but also takes a while to complete as an
agent needs to be started and all that.

We workaround the first part by forcing the migration to happen always
in a call we forced into silence, but that leaves us with an agent to
start all the time – with a bit of reordering we can make it so that we
do not explicitly create the secring, but let gpg create it if needed,
which prevents the migration from being triggered and we have at least a
bit less of a need for an agent. Changes - even to public only keyrings
- still require one, but such actions are infrequent in comparison to
verification calls, so that should be a net improvement.
</content>
</entry>
<entry>
<title>avoid evaluating shell in paths used in apt-key</title>
<updated>2015-12-19T22:04:34Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-12-17T16:41:11Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=bc8f83a5afd858206efe518c31bbb1ac948a39a3'/>
<id>urn:sha1:bc8f83a5afd858206efe518c31bbb1ac948a39a3</id>
<content type='text'>
apt-key creates internally a script (since ~1.1) which it will call to
avoid dealing with an array of different options in the code itself, but
while writing this script it wraps the values in "", which will cause
the shell to evaluate its content upon execution.
To make 'use' of this either set a absolute gpg command or TMPDIR to
something as interesting as:
"/tmp/This is fü\$\$ing cràzy, \$(man man | head -n1 | cut -d' ' -f1)\$!"

If such paths can be encountered in reality is a different question…
</content>
</entry>
<entry>
<title>part revert, part redo 'which' replacement</title>
<updated>2015-12-06T23:09:10Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-12-06T23:09:10Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e23ee4c21c6d8045ab020526aa864a48dc16ddd9'/>
<id>urn:sha1:e23ee4c21c6d8045ab020526aa864a48dc16ddd9</id>
<content type='text'>
In e75e5879 'replace "which" with "command -v" for portability' I missed
that command -v isn't actually required to be available in debian, so
for the 5 files we are using it:

Two (abicheck/run_abi_test &amp; test/integration/framework) are called in
environments were I believe sh is at least dash or 'better' as the first
one is "interactive" for apt developers and the later is sourced by ~200
tests in the same directory run by hand and ci-services – for the later
we have pulled some uglier hacks for worser things already, so if there
should actually end up needing something more compatible we will notice
eventually (and the later actually had a command -v call for some time
already and nobody came running).

debian/rules and debian/apt.cron.daily I switched back to which as that
is more or less debian-specific or at least highly non-critical.

That leaves cmdline/apt-key.in with a bunch of calls where I will
implement that functionality in shell as this is relatively short-lived
as it is used to detect wget (for net-update, which Michael wants to
revive and in that process will properly use apt-helper instead of wget)
and to detect gpg vs. gpg2 systems, where the earlier is supposed to go
away in the longrun (or the later, but by replacing the earlier…).
[and this gpg/gpg2 detection is new in sid, so I have some sympathy for
that being a problem now.]

Thanks: Jakub Wilk for pointing out #747320
</content>
</entry>
<entry>
<title>replace run-parts with find|sort to avoid debianutils usage</title>
<updated>2015-12-06T13:46:11Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-12-06T13:46:11Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=804419029ab1b969c8d2dedb9b3443225058521f'/>
<id>urn:sha1:804419029ab1b969c8d2dedb9b3443225058521f</id>
<content type='text'>
After e75e5879 the reason for an implicit dependency on debianutils
(which is essential for debian, but likely not on other systems) was
just two uses of run-parts, which can be replaced with the a lot more
portable find-piped-into-sort duo.
</content>
</entry>
<entry>
<title>replace "which" with "command -v" for portability</title>
<updated>2015-12-06T13:03:35Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-12-06T13:03:35Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e75e5879c0e8d232a2e8f045685beeb8c965aba4'/>
<id>urn:sha1:e75e5879c0e8d232a2e8f045685beeb8c965aba4</id>
<content type='text'>
which is a debian specific tool packaged in debianutils (essential)
while command is a shell builtin defined by POSIX.

Closes: 807144
Thanks: Mingye Wang for the suggestion.
</content>
</entry>
<entry>
<title>deal with spaces in path, command and filepaths in apt-key</title>
<updated>2015-09-14T13:22:19Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-09-13T20:16:32Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=fecfbf2e4cbb71d20364306baf6aa7886c5f3ecd'/>
<id>urn:sha1:fecfbf2e4cbb71d20364306baf6aa7886c5f3ecd</id>
<content type='text'>
Filenames we get could include spaces, but also the tmpdir we work in
and the failures we print in return a very generic and unhelpful…
Properly supporting spaces is a bit painful as we constructed gpg
command before, which is now moved to (multilevel) calls to temporary
scripts instead.
</content>
</entry>
<entry>
<title>fix various typos reported by codespell</title>
<updated>2015-08-27T09:27:44Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-08-22T14:22:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3a8776a37af38127fb04565959e8e0e449eb04a4'/>
<id>urn:sha1:3a8776a37af38127fb04565959e8e0e449eb04a4</id>
<content type='text'>
Reported-By: codespell
</content>
</entry>
<entry>
<title>merge keyrings with cat instead of gpg in apt-key</title>
<updated>2015-08-10T15:25:26Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-07-07T09:46:39Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=25f2731928f0b571f7521d7d7a7e301499d0f6ee'/>
<id>urn:sha1:25f2731928f0b571f7521d7d7a7e301499d0f6ee</id>
<content type='text'>
If all keyrings are simple keyrings we can merge the keyrings with cat
rather than doing a detour over gpg --export | --import (see #790665),
which means 'apt-key verify' can do without gpg and just use gpgv as
before the merging change.

We declare this gpgv usage explicit now in the dependencies. This isn't
a new dependency as gnupg as well as debian-archive-keyring depend on
and we used it before unconditionally, just that we didn't declare it.

The handling of the merged keyring needs to be slightly different as our
merged keyring can end up containing the same key multiple times, but at
least currently gpg does remove only the first occurrence with
--delete-keys, so we move the handling to a if one is gone, all are gone
rather than an (implicit) quid pro quo or even no effect.

Thanks: Daniel Kahn Gillmor for the suggestion
</content>
</entry>
<entry>
<title>support gpg 2.1.x in apt-key</title>
<updated>2015-08-10T15:25:26Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-07-06T19:15:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f14cde2ca702f72415486bf5c310208a7c500e9c'/>
<id>urn:sha1:f14cde2ca702f72415486bf5c310208a7c500e9c</id>
<content type='text'>
The output of gpg slightly changes in 2.1 which breaks the testcase, but
the real problem is that this branch introduces a new default keyring
format (which is called keybox) and mixing it with simple keyrings (the
previous default format) has various problems like failing in the keybox
to keyring import (#790665) or [older] gpgv versions not being able to
deal with keyboxes (and newer versions as well currently:
https://bugs.gnupg.org/gnupg/issue2025).

We fix this by being a bit more careful in who creates keyrings (aka: we
do it or we take a simple keyring as base) to ensure we always have a
keyring instead of a keybox. This way we can ensure that any version
combination of gpv/gpgv2 and gnupg/gnupg2 without doing explicit version
checks and use the same code for all of them.

Closes: 781042
</content>
</entry>
<entry>
<title>enhance apt-key debugging options</title>
<updated>2015-08-10T15:25:26Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-07-06T14:44:01Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c1642be522a9d9cf5a4a9f2dd8794cfaf0264fb5'/>
<id>urn:sha1:c1642be522a9d9cf5a4a9f2dd8794cfaf0264fb5</id>
<content type='text'>
It is sometimes handy to know how apt-key exactly called gpg, so adding
a pair of options to be able to see this if wanted is added.  Two are
needed as some commands output is redirected to /dev/null, while sfor
others stdout is piped into another gpg call so in both cases you
wouldn't see all and hence you can choose.

Git-Dch: Ignore
</content>
</entry>
</feed>
