Re: Lessons from GIMPS (was Re: ANNOUNCE...)
[email protected] (Michael G Schwern)
| Newsgroups | perl.daily-build |
|---|---|
| Message-ID | <[email protected]> |
Sorry, I don't remember if I replied to this already. On Fri, Feb 23, 2001 at 04:54:07PM -0600, David L. Nicol wrote: > Instead of having a custom SmokingJacket for every platform, if we set > up the client in perl5 we're done. D O N E done. Yes, but it make take a very long time and involves solving some very, very nasty problems. Basically, how do you reimplement rsync so it works under all Unixen, VMS, MacOS, Win32, Amiga, etc... in a reasonable amount of time without going insane. What it boils down to is, I don't want to have to reimplement rsync on VMS. Or diff, or patch or anything. I'll leave nasty, system specific problems like that to someone else... like yourself! ;) SmokingJacket and a portable rsync are orthoginal problems. When its ready, we can use it. Meanwhile, I'm not going to wait for it. Skunk Works rule of thumb, use off the shelf components whenever possible. Besides, we're not going to have to have custom jackets for every platform, just a few different sample wrapper scripts which take care of the downloading and patching part and then call SmokingJacket. Should be only a few commands per. Hangers for your SmokingJacket. ;) > What if Smoke Central was a static file, say > > http://tipjar.com/kcpm/SC/daily.txt > > and all the client has to do is: > > cd smoking_root_directoy > wget -O daily.pl http://tipjar.com/kcpm/SC/daily.txt > perl5 daily.pl > > Trust/security is provided by the static file being in a known > place, which means that we are vulnerable to DNS-based attack, but > nothing easier than that. The paranoid may run this whole > deal in a chroot sandbox containing the Minimal Required Stuff. I'm not worried about security at this level. Its no worse than downloading the Perl source and building it already is. Working on the security and trust of the Perl sources is a whole different project. And its orthoginal. Also, we can't simply patch if we can avoid it. We have to detect differences between the main distribution and the remote one and remove *all* differences. rsync does this, applying patches doesn't. I don't want someone with an unclean dist reporting mysterious failures. I want the dist to clean itself out *without* having to download the whole thing again. PS Everything you're bringing up is valid, but non-essential. I don't want to discourage you from going ahead with them as seperate projects, especially rsync in Perl. -- Michael G. Schwern <[email protected]> http://www.pobox.com/~schwern/ Any sufficiently encapsulated hack is no longer a hack.