[repoman] transport mechanism
Paul Mattal
paul at mattal.com
Sat Jul 7 18:29:27 EDT 2007
One aspect of this project that has bugged me more than any other: the
transport mechanism. People building binary packages need to
authenticate themselves to the server and upload their built packages.
What has been used until now?
Developers currently use scp as the transport; we all have accounts on
the development machine and devtools automatically runs scp to copy
files up to the server.
Upsides: existing, effective, secure, easy to automate using keys so you
don't have to log in each time
Downsides: you need to have a system account on the machine, something
you don't always want, and keeps you from deploying the system multiple
times on the same machine
TUs currently use a custom python client-server for upload.
Upsides: don't need a system account, easy to automate by storing
password locally on machine
Downsides: not mature, nonstandard, insecure (not SSL encrypted),
requires running another/a less-scrutinized server on a box
Other options: We could write another custom client/server, with SSL. If
we want to hook into something existing, we could try to use apache
WebDAV or http upload with SSL. We could consider sfs and just do a cp
to the remote filesystem.
On the whole, I think the custom client/server is still winning for me,
at the moment, though I wish support for SSL servers in Python was
better. But I really feel like there should be something standard we
could use for this authentication and transport.
Any ideas?
One thought that just occurred to me.. we could take a page out of the
monotone trick book and separate trust from transport. We could add a
file to the PKGBUILD directory which gets stored in the SCM and contains
the sha1sum of the BINARY package that corresponds to this PKGBUILD
built for a particular architecture. Then we don't need to care where or
who a binary package comes from.. anyone can upload the binary package
to the server (without authentication) as long as the package has the
proper sha1sum. This also has the benefit of keeping developers from
accidentally uploading the wrong binary package.
I guess one problem with this is that someone can still DoS your server
by uploading lots of bogus binary packages, that while discarded as
fakes, still take up server bandwidth. But is there something like this
we can do here?
- P
More information about the repoman
mailing list