[arch-general] Package are signed... but pacman doesn't like them...?
Christian Hesse
list at eworm.de
Sun Jul 3 21:50:22 UTC 2016
Giovanni 'ItachiSan' Santini via arch-general <arch-general at archlinux.org> on
Sun, 2016/07/03 10:09:
> Good morning,
> some days ago I found a nice service called "Open Build Service", which
> allows all kind of packagers, including also Arch ones, to have
> different repos of their packages, having them built online.
> This is awesome for me, as some of them require heavy building time.
>
> I fought a bit against the service, in order to make the GPG public key
> to be uploaded to a key server, in order to allow users to add it
> properly to pacman-key.
>
> Now, I am facing a really strange issue: I've added the key to pacman
> keyring, using:
>
> sudo pacman-key -r 05E0A765C649DE23
> sudo pacman-key --lsign-key 05E0A765C649DE23
>
> Database syncing works properely and the signature is verified...
> But for packages it is not.
> Every time it gives an error as this:
>
> $pkgname-$pkgver $pkgsize $dw_speed 00:00 [--------------------] 100%
> (1/1) checking keys in keyring [--------------------] 100%
> error: $pkgname: unsupported signature format(0/1) checking package
> integrity
> (1/1) checking package integrity [--------------------] 100%
> error: GPGME error: No data
>
> I tried to download the public key and adding to my personal GPG
> keyring. Verifying the packages signatures works perfectly. To try this,
> I fetched the .sig file online and used the GPG --verify command.
> Any hints?
>
> Now, the needed data.
> My personal repo configuration for pacman
>
> [home_ItachiSan_archlinux_Arch_Extra]
> Server =
> http://download.opensuse.org/repositories/home:/ItachiSan:/archlinux/Arch_Extra/$arch
>
> The public key mentioned above:
> http://keyserver.ubuntu.com/pks/lookup?op=get&fingerprint=on&search=0x05E0A765C649DE23
> or
> http://keyserver.ubuntu.com/pks/lookup?op=vindex&search=home%3AItachiSan&fingerprint=on
>
> Sorry to be so verbose. :<
> Thanks in advance!
Looks like the build service produces invalid db files,
home_ItachiSan_archlinux_Arch_Extra.db in your case.
The db file is just a simple tar archive, compressed with gzip. Unzip it and
you will find a directory for every package. Every directory contains the
file 'desc' at least. Within the file you should find a line '%PGPSIG%',
followed by a single line containing the signature.
Looks like the build service breaks this line, which confuses pacman.
To verify you can extract the db file, make your changes and create a new
one. Do not forget to remove the db signature (or resign).
BTW, It's pretty simple why the db signature is valid: It is used as-is. The
package signatures in your repository are useless, though. The signatures are
stored withing the db file, as seen above.
--
main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH"
"CX:;",b;for(a/* Best regards my address: */=0;b=c[a++];)
putchar(b-1/(/* Chris cc -ox -xc - && ./x */b/42*2-3)*42);}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <https://lists.archlinux.org/pipermail/arch-general/attachments/20160703/169eab61/attachment.asc>
More information about the arch-general
mailing list