From owner-freebsd-doc@FreeBSD.ORG Sun Jan 27 07:12:30 2013 Return-Path: Delivered-To: freebsd-doc@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 32A47B21 for ; Sun, 27 Jan 2013 07:12:30 +0000 (UTC) (envelope-from ike@blackskyresearch.net) Received: from rs149.luxsci.com (rs149.luxsci.com [64.49.224.181]) by mx1.freebsd.org (Postfix) with ESMTP id 03CAB2DA for ; Sun, 27 Jan 2013 07:12:29 +0000 (UTC) Received: from rs149.luxsci.com (localhost.localdomain [127.0.0.1]) by rs149.luxsci.com (8.14.4/8.13.8) with ESMTP id r0R7CR4N003546; Sun, 27 Jan 2013 02:12:28 -0500 Received: (from root@localhost) by rs149.luxsci.com (8.14.4/8.13.8/Submit) id r0R7C2pb003430; Sun, 27 Jan 2013 07:12:02 GMT Received: (from sender 74627) (rs149.luxsci.com [127.0.0.1]) by LuxSci SP; Sun, 27 Jan 2013 07:12:02 +0000 Subject: Re: removing CVS in Handbook Updating and Upgrading chapter Content-Type: text/plain; charset=windows-1252 From: "Isaac (.ike) Levy" In-Reply-To: Date: Sun, 27 Jan 2013 02:11:23 -0500 Content-Transfer-Encoding: quoted-printable References: <1359241802-3572135.75152325.fr0QN9mrI032137@rs149.luxsci.com> To: Warren Block X-Lux-Comment: Message r0R7BNq4003267 sent by user #74627 Message-Id: <1359270722-3962523.11114096.fr0R7BNq4003267@rs149.luxsci.com> X-Comment: LuxSci SP Message ID - 1359270722-3962523.11114096 Cc: freebsd-doc@freebsd.org X-BeenThere: freebsd-doc@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Documentation project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 07:12:30 -0000 Hi Warren, All, I don't mean to exasperate you by pushing this thread, but this is a = critical entry point for new FreeBSD users, On Jan 26, 2013, at 9:05 PM, Warren Block wrote: > On Sat, 26 Jan 2013, Isaac (.ike) Levy wrote: >> On Jan 25, 2013, at 2:12 PM, Warren Block wrote: >>>>> CVS is going away soon, and we should not be advising people to = start using them now. >>>>> This diff entirely removes cvsup, csup, and CVS references from = the Updating and Upgrading chapter. SVN URLs are also changed to the = preferred form and links to the SVN mirrors are added. >>>>> Rendered: = http://www.wonkity.com/~wblock/temp/cuttingedge-nocvs.html >>>>> Diff: http://www.wonkity.com/~wblock/temp/cuttingedge-nocvs.diff >>=20 >> Regarding src, this appears to be jumping the gun quite a bit, with = possibly bad consequences: >>=20 >> + ports, cvsup access end-of-lifed Feb 28 >> (cool! drop cvs/cvsup references for it) >> - source, cvsup deprecated - no end-of-life date set >> (until canonical replacement is in place) >>=20 >> Instead of replacing *all* CVS urls with SVN, I would like to advise = you to merely make note of cvsup being deprecated for src? >=20 > Deprecation warnings are already in the current version, since = November 17: > = http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.h= tml I understand, and this deprecation warning is good. cvsup is deprecated, but does not yet have an end-of-life date. Additionally, this process currently has no analogy, and for base src, = there is not an analogous canonical alternative path. cvsup is currently the only canonical way on a REL or RELENG branch to = fetch the sources, using only the base system. However, Nov. 17 isn't very long ago, warning of a process change which = people have used and relied on for well over a decade- the kind of users = which represent the majority of the base of the FreeBSD project, (people = running lots of servers). >> Not sure if I need to explain this, but: >> For a large number of system integrators, building userland/kernel = from source is critical. >> Most of these builds happen before ports/pkg get installed, (if they = even do). The current state of SVN, binary packages, ports mechanism = changes, and otherwise- all make for some nasty chicken/egg problems for = many systems integrators. >=20 > This part of the Handbook refers to fetching source for -CURRENT or = -STABLE. We should not be suggesting CVS to new users who want to run = development versions of FreeBSD. It's a misdirection, like a = Perldoc-esque "here's an example, but you should never, ever do this". I completely appreciate and understand this sort of nastiness. However, = the alternative is far worse for new users- a real-world example from = last week, > Existing CVS users already know how to use it, being existing and all. Correct, but that's not really the point- cvsup is still the canonical = way to build the system from sources, from a base system install. > So the removal of CVS information from this chapter should not harm = anyone already using it and should help by not steering newcomers to the = wrong tool. I think the disconnect here is this: buildworld and buildkernel are not specifically developer tools, FreeBSD = users build, and maintain, their systems from source- particularly the = vast number of FreeBSD machines humming silently driving the internet at = many layers. Custom kernels are common for a myriad of reasons, = sometimes to add features, sometimes to strip them down. For = performance, for security, for clarity. Beyond the kernel, real-world security patches are often applied = directly to production source builds, often in a hurry - 0-days can drop = on anyone's head. Because cvsup for base/src does not have a clear replacement right now, = and is therefore does not have an end-of-life date set, cvsup is still = the canonical user too. csup(1) is even still in base. -- For developers, I can agree that cvsup is totally the wrong tool- but = that information should perhaps be in the developers handbook, in the = "tools" section: = http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/tools= .html (If yall' think that's a good idea, I'll happily write up a page to = start with, and send the patch within 36 hrs from now!) However, this is what new users face if you make this change right now: = ##########################################################################= #### OLD (current, deprecated) way: 1) # csup /path/to/ports-supfile (e.g. # csup -h cvsup14.us.freebsd.org = /usr/share/examples/standard-supfile ) - note: canonical (but perhaps slowest) default server already in this = config file 2) # move on to buildworld/buildkernel dance... = ##########################################################################= #### NEW (work in progress, developers have cut over) way: 1) Install subversion (choose your own adventure) http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/svn.html 2) #noop# pkg_add -r subversion 3) #noop# pkg install devel/subversion (security incident cleanup, no binaries available) * <--+ ?) # cd /usr/ports/devel/subversion | # make install clean | (whops, gotta fetch ports first right now) | # portsnap fetch ----------------------------+ Now, we just acquired this on our system too: + SQLite3 (not the SQLite in base + APR + Expat 2.x (not the Expat/libbsdxml now in base) + Neon or Serf + GNU gettext and libintl + libiconv # APR could be a *big* problem if you're next steps are to load up a = particular version of the Apache web server, (like a great number of = FreeBSD users do) Steps 5-? ?) dust off ctm(1), it's still in base- but will it work=85 (dunno haven't thought about it in years) ?) svnsup is frequently discussed, (google confusion), but apparently = not yet functional. (this is a perfect idea, but not live.) ?) diving into portupgrade, a worse/heavier situation even: - depends on ruby (fatter dep tree than svn) - is a port (to manage ports) - has a small, loyal following (financial, even) # svn checkout https://svn0.us-east.FreeBSD.org/base/head /usr/src Error validating server certificate for = 'https://svn0.us-east.freebsd.org:443': - The certificate is not issued by a trusted authority. Use the fingerprint to validate the certificate manually! - The certificate hostname does not match. Certificate information: - Hostname: svnmir.nyi.FreeBSD.org - Valid: from Aug 12 23:01:31 2012 GMT until Aug 12 23:01:31 2013 GMT - Issuer: clusteradm, FreeBSD.org, (null), CA, US = (clusteradm@FreeBSD.org) - Fingerprint: = 06:D1:23:DE:5E:7A:F7:2B:7A:7E:74:95:5F:54:8D:5C:B0:D6:2E:8F (R)eject, accept (t)emporarily or accept (p)permanently?=20 Decide how to handle this SSL cert, (compare the Fingerprint manually = until the dust settles with this new env): = http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/svn-mirrors.html= N) # move on to buildworld/buildkernel dance=85 = ##########################################################################= #### Now, those SVN problems appear to be getting worked out in several = places: + subversion-static just hit ports (cool!) Knocks an SVN version down to bare essentials- but this is a work in = progress (ABI incompatibilities for static build? Dependencies not = *quite* flushed out clean yet?) + "svnsup" could emerge sooner than later As a working in-base utility, a simple thing to fetch deltas using the = svn/svn+http/svn+https protocols, using a tiny program in the base OS.=20= + actual svn infrastructure is stabilizing, growing, and coming into = focus- (for developers even!) - freebsd-update(8), I've been told, has some (currently broken) bits = for fetching src for a given REL, but this may get expanded soon(?) - if true, it has some show-stopping bug [I'm unclear on what right = now]? - man page states: "fetch and install binary updates to FreeBSD" (these are not the droids you are looking for, move along) - man page does not state "fetches base REL/RELENG sources trivially" - freebsd-update.conf(5) allows for commenting out all components = except src -- So are you guys absolutely certain that removing cvsup instructions, = *just* for building from canonical sources, is appropriate? Remember, this is for *users*, not developers. But FreeBSD users = typically want to use carp(4), or lagg(4), maybe dtrace(1M), perhaps = zfs(8), or jail(8). Perhaps they want to compile their public/private new C programs using = clang(1). Perhaps new FreeBSD users are evaluating performance for their Mail, = Database, or Web infrastructure. Perhaps new FreeBSD users are building = new firewall/network appliances. Perhaps they are doing embedded = systems development, with FreeBSD as a platform. Perhaps they are using no high-level languages aside from POSIX shell, = (and for goodness sake FreeBSD sh(1) just got command history!!!!) What more could a true UNIX lover want, other than FreeBSD? Best, .ike