[arch-haskell] Package Signing

Xyne xyne at archlinux.ca
Sat Oct 12 07:40:22 UTC 2013

On 2012-07-29 18:48 +0200
Magnus Therning wrote:

>Correct me if I'm wrong in this assumption, but I need to have the
>following three items available when running the script:
>1. The newly-built package.
>2. The repo database (x.db.tar.gz) I'm adding the package to.
>3. The secret key.

1 & 3, yes.

If you have all of the packages then the full database will be recreated so you
don't actually need 2, but if it's present then it will be updated with the
selected packages.

>This is a slight problem for me.  I build on kiwilight (where I'm not
>alone in having root access), the database is on xsounds.org (where I
>don't have root access at all), and to be fully comfortable I'd like
>to keep the secret key and perform the signing on my own machine :-)
>Is there some way to simply extract the actual data that is to be
>signed (the hashes), and perform the actual signing manually?

I'm not sure, but I think gpg needs the full file to generate the signature.
There might be some way to dig the hashing algorithm out of the source code and
then create your own remote signing function with it, but that would require
knowledge of gpg internals.

One solution might be to build the packages on kiwilight, then mount the
directory of built packages with sshfs.  You could then run the signing script
locally. I don't know much bandwith that will use, but I think it's worth
trying. In the worst case scenario, it will be equivalent to downloading the
packages. Whether or not that's a problem depends on your connection.

If I understand the problem correctly, you do not generate the database
yourself. That should not be a problem for package signatures, as repo-add will
include them in the database as long as the signature files are present when it
adds the packages. If you can't remote-mount xsounds with sshfs and sign the
database there, just download it and sign it locally then upload the database
signature file.

If that is not possible for whatever reason, just having package signatures is
better than nothing. However, given what you've said about not being the only
one to have access to these repos, I think package signing in this case is very

I would also like to know who does have access to these files. On kiwilight
I believe that it is only Kaiting, who is a TU. Who has access on xsounds?

Could you simply make kiwilight the main host and have xsounds mirror it? The
process would then be the following:
1) ssh into kiwilight, build, and move to haskell/$arch if necessary
2) mount haskell/$arch via ssh and run the signing script locally

You would then have a fully signed repo in haskell/$arch that can be mirrored
by xsounds.

More information about the arch-haskell mailing list