[repoman] transport mechanism
Essien Ita Essien
me at essienitaessien.com
Mon Jul 9 09:04:04 EDT 2007
Paul Mattal wrote:
> 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?
The first question that occurs to me is: "Why Transport At All?"
Basically, once we have a properly specified PKGBUILD and related files,
we can supposedly rebuild the package just like the developer did on
their box.
(umm... keep remembering my initial bias based on integration :P), but I
think this is a superior solution to actually uploading *built*
files...the ONLY problem is that the server will spend time BUILDING
stuff... so we could do this:
Have one server to BUILD, and another server to HOST.
Upside: No need to have account on server to upload stuff... just
check-in to the SCM and boom.
Downsides: This is actually both Integration and Hosting, not just
Hosting now... so is integration something that the repoman design would
want to cater for?
>
> 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
>
> _______________________________________________
> repoman mailing list
> repoman at archlinux.org
> http://archlinux.org/mailman/listinfo/repoman
>
More information about the repoman
mailing list