Date: Wed, 9 Dec 2009 13:09:12 -0800 From: Jeremy Chadwick <freebsd@jdc.parodius.com> To: freebsd-stable@freebsd.org Subject: Re: RELENG_8 buildworld broken? Message-ID: <20091209210912.GA90766@icarus.home.lan> In-Reply-To: <200912092055.20383.pieter@degoeje.nl> References: <20091209193239.88ED31CC0C@ptavv.es.net> <200912092055.20383.pieter@degoeje.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Dec 09, 2009 at 08:55:20PM +0100, Pieter de Goeje wrote: > On Wednesday 09 December 2009 20:32:39 Kevin Oberman wrote: > > > Date: Wed, 09 Dec 2009 17:36:26 +0100 > > > From: ocean <ocean_ieee@yahoo.it> > > > Sender: owner-freebsd-stable@freebsd.org > > > > > These options are not useless. You can for instance use them to reduce build > time and/or install only the binaries required for a jail or an embedded > system. > > > In what way is delete-old broken? > > > > I agree that src.conf often does not work. Just try to build a system > > with 'WITHOUT_OPENSSH='. PR with patch to Makefile.inc1 submitted by > > b.f. three or four months ago. So far, no response. > > > > I have seen the really bad suggestion that somehow files not built due > > to src.conf entries be added to the list of old files to be > > deleted. PLEASE DON'T DO THAT! > > > > The single most important use I have for /etc/src.conf is to avoid > > system upgrades over-writing the files for ssh and BIND when the ports > > are installed to overwrite those in the base system. I certainly don't > > want a delete-old to try to delete the files installed from ports. > I agree completely. Obsolete files is there for files that will never be built > again and are generally useless/broken (or break other stuff) when left on > the filesystem. It's called "ObsoleteFiles" for a reason :) The problem is this: - User installs OS - User creates src.conf with numerous WITHOUT_xxx entries. Examples: WITHOUT_ATM=true WITHOUT_BLUETOOTH=true WITHOUT_HTML=true WITHOUT_I4B=true WITHOUT_INET6=true WITHOUT_IPFILTER=true WITHOUT_IPX=true WITHOUT_KERBEROS=true WITHOUT_NCP=true WITHOUT_PROFILE=true WITHOUT_SENDMAIL=true - User goes through building world + kernel, and installing kernel + world per steps in src/Makefile, with all binaries updated sans those related to the above src.conf entries. - User is left with "stale" binaries in /bin, /usr/bin, /usr/lib, /usr/libexec, /usr/sbin, and /sbin -- "stale" in this case means binaries from when the OS was installed, or when world was last built/installed without above src.conf entries. - User is forced to go through above said directories and cross their fingers hoping they're deleting the "right stuff". Pros to this methodology: - You can overwrite base system binaries/libs from here on out without any risk of world stomping them. - (with regards to libraries) Not deleting libraries guarantees that existing binaries on the system built from ports/self-built software which is dynamically-linked will continue to function. Cons to this methodology: - User now has binaries and/or libs on their system which may contain security holes that could be exploited if exploits/issues are found in the future. This is serious, and anyone who says otherwise has their head in the sand. - User will eventually come across something stale and start wondering if it's safe or not to delete, not to mention post to mailing lists asking "why wasn't this stuff deleted?" "Where did this file come from? I have WITHOUT_xxx in my src.conf..." Basically, all this comes back to the same thing: the entire "base system" concept needs to be revisited (that's a nice way of saying "nuked from orbit", but that's my opinion). Everything should become a port or a package -- something that's maintainable via pkg_* tools or similar; src.conf is sort of a bastard to begin with. This means that a stock FreeBSD system would then lack many useful features that people have come to depend on out-of-the-box (OpenSSH and Sendmail being quite possibly the most notable two -- everyone has their priorities different). This kind of change would be major, and would very likely surprise the majority of the userbase. On the flip side, nothing stops the user from adding the software they want as a package during OS install time (which either requires them to be using disc1/disc2 with packages on it, the DVD, or have a network connection for downloading packages off the net), or can pkg_add -r (or build them themselves) once the OS is installed. I mention all of these because many people install FreeBSD without a network connection. Linux distributions like Debian and Gentoo have both adopted the "super bare-bones" concept, forcing all software to be installed via CD/DVD, off the net, or built via source through their packaging system. Ubuntu/Kubuntu, same thing. I believe I was told in the past why this style/method wouldn't be adopted, and it had something to do with companies like Juniper, Citrix, etc. relying upon the concept of FreeBSD coming out-of-the-box with these binaries/libs. I could be remembering wrong. -- | Jeremy Chadwick jdc@parodius.com | | Parodius Networking http://www.parodius.com/ | | UNIX Systems Administrator Mountain View, CA, USA | | Making life hard for others since 1977. PGP: 4BD6C0CB |
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20091209210912.GA90766>