For some reason install.sh signature verification is failing on my ubuntu machine. I've tried installing multiple versions but all of them fail. When I modify the gpg verification command to print stderr, I get the following message:
gpg2 -q --verify --keyring /home/marler8997/dlang/d-keyring.gpg --no-default-keyring /dev/fd/63 /home/marler8997/dlang/.installer_tmp_4DmvFx/fws8WG/dmd.2.081.1.linux.tar.xz
gpg: Signature made Tue 10 Jul 2018 02:47:37 PM MDT using RSA key ID 12BB1939
gpg: Can't check signature: No public key
The contents of d-keyring.gpg are the following:
hexdump /home/marler8997/dlang/d-keyring.gpg
0000000 0000 2000 0101 0200 424b 6658 0000 0000
0000010 505b 4e86 505b 4e86 0000 0000 0000 0000
0000020
Comment #1 by greensunny12 — 2018-07-19T21:43:00Z
Did you upgrade the keyring or install.sh within the last year?
We upgraded the keyring in January this year and you might still have an old one.
Comment #2 by johnnymarler — 2018-08-10T16:42:08Z
Saw a post on the forum that someone else had this issue.
To answer sebs question, I'm not familiar with ubuntu's "keyring". This happened on a new machine that I had just inatlled Ubuntu 16.04 LTS on. And install.sh was also brand new downloaded from the side.
Comment #3 by greensunny12 — 2018-08-10T19:06:57Z
> To answer sebs question, I'm not familiar with ubuntu's "keyring"
And you don't need to. We don't use it. We ship our own keyring on the initial download, which is at ~/dlang/d-keyring.gpg
You can do the following to check the current keyring:
> gpg --no-default-keyring --keyring ~/dlang/d-keyring.gpg --list-keys
You should see a similar output as on https://dlang.org/gpg_keys.html
Also:
> sha256sum ~/dlang/d-keyring.gpg
4de1bb6028bb1e3d4eefd9e1a1651ad6c372ead0482b63e3aafdfdc0fbb48dbd /home/seb/dlang/d-keyring.gpg
Are you still experiencing this issue?
After debugging this for a while with Jonathan, the problem seemed to be that the install.sh script was manually installed to ~/dlang/install.sh and the check for a keyring upgrade only checks for the existence of ~/dlang/install.sh and not ~/dlang/d-keyring.gpg
Also, gpg seems to create a default keyring with 32B if no keyring exists (i.e. the passed file doesn't exist).
A fix:
https://github.com/dlang/installer/pull/338
Comment #6 by github-bugzilla — 2018-08-13T17:50:21Z