From owner-freebsd-questions@FreeBSD.ORG Sun Jan 27 14:57:23 2013 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id F0583D3C; Sun, 27 Jan 2013 14:57:23 +0000 (UTC) (envelope-from mrkvrg@acm.org) Received: from smtp1.bway.net (smtp1.bway.net [216.220.96.27]) by mx1.freebsd.org (Postfix) with ESMTP id 9F9A53DC; Sun, 27 Jan 2013 14:57:23 +0000 (UTC) Received: from gecko3.bs.net (host-216-220-115-232.dsl.bway.net [216.220.115.232]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: m1316v@bway.net) by smtp1.bway.net (Postfix) with ESMTPSA id 09A9C9588E; Sun, 27 Jan 2013 09:51:16 -0500 (EST) From: MFV To: freebsd-questions@freebsd.org Subject: Re: Cronjob Cvsup -> What? Date: Sun, 27 Jan 2013 09:51:12 -0500 User-Agent: KMail/1.13.7 (FreeBSD/9.0-RELEASE; KDE/4.8.4; i386; ; ) References: <20130127001805.97F0119B@hub.freebsd.org> <5104E6B7.9070302@aboutsupport.com> <5105057F.3090108@FreeBSD.org> In-Reply-To: <5105057F.3090108@FreeBSD.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201301270951.13292.mrkvrg@acm.org> Cc: Matthew Seaman , "Zyumbilev, Peter" X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: mrkvrg@acm.org List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 14:57:24 -0000 Hello Matthew, Thanks for an outstanding piece of documentation. It resolves a number of concerns I had and convinced me to move from portsnap where I discovered an apparent bug that gave me security concerns. More specifically I manually edited /usr/ports/UPDATING and portsnap did not recognise the change and download a proper copy. The only downside with svn seems to be the 728 MB footprint. Cheers ... Mark On Sun, 27 Jan 2013 05:46:23 Matthew Seaman wrote: > On 27/01/2013 08:35, Zyumbilev, Peter wrote: > > Last 10 years I am using cvsup. Any good guide for the transition to > > subversion ? > > Most of the guides around freebsd.org are aimed at developers who will > be using SVN read-write. For simple read-only use (ie. not checking > anything into the repository) the following should suffice: > > 0) Install svn > > It isn't part of the base system, and it has too many external > dependencies with different licensing terms for it to be bought > in easily. There's been some discussion about this, but it hasn't > happened yet. If it did, the imported version would be fairly > minimal, and anyone wanting to use it for serious development > would probably just grab the ports version anyhow. > > If all you want to do is pull down a copy of the sources then you > can turn off most of the options to reduce the fairly large > dependency tree to something more manageable: > > BDB=off: Berkeley Database > BOOK=off: Install the Subversion Book > ENHANCED_KEYWORD=on: Enhanced svn:keyword support > FREEBSD_TEMPLATE=on: FreeBSD Project log template > GNOME_KEYRING=off: Build with GNOME Keyring auth support > KDE_KWALLET=off: Build with KDE KWallet auth support > MAINTAINER_DEBUG=off: Build debug version > MOD_DAV_SVN=off: mod_dav_svn module for Apache 2.X > MOD_DONTDOTHAT=off: mod_dontdothat for Apache 2.X > NEON=off: WebDAV/Delta-V repo access module (neon) > P4_STYLE_MARKERS=off: Perforce-style conflict markers > SASL=off: SASL support > SERF=on: WebDAV/Delta-V repo access module (serf) > STATIC=off: Build static version (no shared libs) > SVNAUTHZ_VALIDATE=off: install svnauthz-validate > SVNMUCC=off: Install Multiple URL Command Client > SVNSERVE_WRAPPER=off: Enable svnserve wrapper > TEST=off: Run subversion test suite > > There is the new devel/subversion-static port which does all that, > and compiles subversion with static linkage so it has *no* runtime > dependencies on anything else. The disadvantage here is that if > there is, say, a security hole discovered in the one of the > libraries subversion links against, you won't secure the > statically linked copy of subversion simply by updating to a fixed > version of the shlib. subversion-static is really only intended > for providing a one-off binary package that people can download > and install in order to bootstrap a more standard FreeBSD > environment. > > 1) Choose a SVN mirror close to you. Currently there are two choices: > > svn0.us-west.FreeBSD.org -- Western USA > svn0.us-east.FreeBSD.org -- Eastern USA > > Use whichever one gives you best performance. Certainly from > Europe at the moment us-east seems to be the best choice. > > The number of SVN mirrors and their global coverage should increase > over time, but it will never need as many servers as the old cvsup > network. > > The canonical list of SVN mirrors is here: > > > http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/svn-mirrors.html > > 2) Choose a protocol for access the SVN servers. Your choices in > order of preference are > > svn:// > https:// > http:// > > Use svn:// for best performance. If you're concerned about MITM > attacks injecting trojans into the FreeBSD sources, then use > https and be sure to verify the certificate hashes on first > connection. Otherwise, if you're stuck behind a restrictive > firewall, use http:// > > 3) Choose which branch you want to mirror. It's relatively easy to > switch between branches and doesn't involve downloading the entire > contents of /usr/src all over again if you change your mind. > However right now, the viable choices are > > head --- Current, the bleeding edge, really only suitable > for development purposes > > stable/9 --- 9-STABLE Still a rapidly changing development > branch, but not quite so close to the edge, and > with less bleeding involved. > > stable/8 --- 8-STABLE Ditto. > > releng/9.1 --- 9.1-RELEASE This tracks any security patches to > version 9.1. However, in this case you would be > better advised to use freebsd-update(8) to maintain > your /usr/src directory tree instead. > > Similarly releng/9.0 releng/8.3 releng/7.4 for other supported > release versions. > > Don't be fooled into pulling down release/9.1.0 or the like -- > this is not a *branch* but a *snapshot*. If you think you want > release/9.1.0 then you really want releng/9.1 instead. > > 4) Make sure /usr/src is empty. Pre-existing files can cause you > grief at some unexpected later date even if they don't cause the > initial checkout to fail. > > 5) Put it all together. Run a command like so to check out the > content of /usr/src for your chosen branch from your chosen SVN > mirror using your chosen protocol: > > svn co {proto}://{svn-mirror}/base/{branch} /usr/src > > So, what I would do to checkout 9.1-STABLE from the us-east mirror > using svn as the protocol is: > > svn co svn://svn0.us-east.FreeBSD.org/base/stable/9 /usr/src > > Then wait for that to complete, as it's going to download a few > hundred MB of code. > > Now, you generally only need to do that step one time. For regular > updates to the sources, just run: > > cd /usr/src > svn up > > This will re-use all the settings you chose above. If you want to > change any of the settings then use 'svn switch' from the top to the > checked-out tree (ie. cd /usr/src) -- this will avoid downloading the > whole repo all over again... > > svn help switch -- read for clues > > svn switch ^stable/8 -- change to the 8.4-STABLE sources > > svn switch --relocate svn:// http:// -- use HTTP instead > > svn switch --relocate svn://svn0.us-east.FreeBSD.org \ > svn://svn0.us-west.FreeBSD.org -- switch to a different > mirror > > To see what setting are currently in force: > > svn info > > Working out how to apply these instructions to /usr/ports or /usr/doc is > left as an exercise. > > Cheers, > > Matthew