From owner-freebsd-questions@FreeBSD.ORG Tue Aug 22 18:03:52 2006 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C00D916A4DA for ; Tue, 22 Aug 2006 18:03:52 +0000 (UTC) (envelope-from youshi10@u.washington.edu) Received: from mxout5.cac.washington.edu (mxout5.cac.washington.edu [140.142.32.135]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2CA9143D58 for ; Tue, 22 Aug 2006 18:03:52 +0000 (GMT) (envelope-from youshi10@u.washington.edu) Received: from smtp.washington.edu (smtp.washington.edu [140.142.33.9]) by mxout5.cac.washington.edu (8.13.7+UW06.06/8.13.7+UW06.03) with ESMTP id k7MI3pvj029220 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 22 Aug 2006 11:03:51 -0700 X-Auth-Received: from [192.168.0.40] (dsl254-013-145.sea1.dsl.speakeasy.net [216.254.13.145]) (authenticated authid=youshi10) by smtp.washington.edu (8.13.7+UW06.06/8.13.7+UW06.03) with ESMTP id k7MI3npn010781 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Tue, 22 Aug 2006 11:03:50 -0700 Mime-Version: 1.0 (Apple Message framework v752.2) In-Reply-To: <20060822071935.GA10858@owl.midgard.homeip.net> References: <200608211444.50152.gerard@seibercom.net> <44EA0352.7020206@u.washington.edu> <44irkl27pi.fsf@be-well.ilk.org> <44EA9866.3030305@infracaninophile.co.uk> <20060822071935.GA10858@owl.midgard.homeip.net> X-Gpgmail-State: !signed Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: <279CDDF9-512A-401B-9C0E-3E7FD605385B@u.washington.edu> Content-Transfer-Encoding: 7bit From: Garrett Cooper Date: Tue, 22 Aug 2006 11:08:21 -0700 To: freebsd-questions@freebsd.org X-Mailer: Apple Mail (2.752.2) X-PMX-Version: 5.2.0.264296, Antispam-Engine: 2.4.0.264935, Antispam-Data: 2006.8.22.104442 X-Uwash-Spam: Gauge=IIIIIII, Probability=7%, Report='__CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __SANE_MSGID 0' Subject: Re: [OT] CVSUP (was "Re: Was: Re: Why This Infinite Loop??") X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Aug 2006 18:03:52 -0000 On Aug 22, 2006, at 12:19 AM, Erik Trulsson wrote: > On Tue, Aug 22, 2006 at 06:38:46AM +0100, Matthew Seaman wrote: >> Lowell Gilbert wrote: >>> Garrett Cooper writes: >>> >>>> Gerard Seibert wrote: >>> >>>>> IMHO, it might be a lot easier for him to use portsnap. Especially >>>>> if he is not familiar with the FBSD ports system. Just my opinion >>>>> though. >>> >>>> CVSUP isn't that difficult IMHO to learn, and is a better, more >>>> efficient way to download the ports Makefiles. >>> >>> In what way? For typical applications, lower bandwidth usage is >>> supposedly an advantage of portsnap. >>> >>>> It will take him >>>> all of >>>> 10-20 minutes to configure if he reads the documentation and >>>> uses the >>>> example file. >>> >>> I would think so. And it can be used with arbitrary cvs trees, >>> including the FreeBSD source tree. On the other hand, it doesn't >>> come in the FreeBSD base system, and it doesn't sign the updates. >> >> But csup(1) is in the base system for values of base system equal to >> 6.1-STABLE or better. csup(1) is cvsup(1) reimplemented in plain C >> and apart from the graphical display stuff is a drop in replacement >> for cvsup(1). > > Not quite a drop in replacement. csup(1) does not (yet) support > CVS mode > which is used to maintain a local copy of the repository. I did a bit of searching and it appears that my thoughts on how CVSUP is implemented are slightly skewed. From the portsnap developer's page: -CVSup is insecure. The protocol uses no encryption or signing, and any attacker who can intercept the connection can insert arbitrary data into the tree you are updating. -CVSup isn't end-to-end. Related to the previous point, this means that anyone who can compromise a CVSup mirror can feed arbitrary data to the people who are using that mirror. -CVSup isn't designed for frequent small updates. While CVSup is very good at distributing CVS trees, and is very efficient for updating a tree which has been significantly changed (eg, by a month or more of commits), it transmits a list of all the files in the tree, which makes it quite inefficient if only a few files have changed. -CVSup uses a custom protocol. This can cause problems for people behind firewalls -- outgoing connections on port 5999 need to be permitted -- and it needs a heavyweight server (cvsupd). The first and fourth points are the ones I noted as the flaw in my original argument of the overall operation of CVSUP vs portsnap. I thought that CVSUP actually used the CVS protocol to transfer data, which can encrypt data using SSH tunneling but it actually doesn't and is very insecure =\. Noting that portsnap fetches all files via fetch with ssl support enabled as well by quickly reading through the portsnap script, it is much more secure than CVSUP is. The only thing to note is that you still need to use CVSUP to update your base package sources, as there isn't a compressed, fetching equivalent like portsnap available for the sources. Although this would have been more efficient for beno because it sounds like his ports tree hasn't been updated in ages, portsnap would be better to use in the future for updating his ports tree. -Garrett