From owner-freebsd-pkgbase@freebsd.org Tue Apr 19 07:55:12 2016 Return-Path: Delivered-To: freebsd-pkgbase@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 784A0B14415; Tue, 19 Apr 2016 07:55:12 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from theravensnest.org (theraven.freebsd.your.org [216.14.102.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cloud.theravensnest.org", Issuer "StartCom Class 1 DV Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 42F2E1D50; Tue, 19 Apr 2016 07:55:11 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from [192.168.0.7] (cpc91230-cmbg18-2-0-cust661.5-4.cable.virginm.net [82.1.230.150]) (authenticated bits=0) by theravensnest.org (8.15.2/8.15.2) with ESMTPSA id u3J7sugQ020258 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 19 Apr 2016 07:55:02 GMT (envelope-from theraven@FreeBSD.org) X-Authentication-Warning: theravensnest.org: Host cpc91230-cmbg18-2-0-cust661.5-4.cable.virginm.net [82.1.230.150] claimed to be [192.168.0.7] Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: [CFT] packaging the base system with pkg(8) From: David Chisnall In-Reply-To: <5715E1E9.8060507@freebsd.org> Date: Tue, 19 Apr 2016 08:54:48 +0100 Cc: Alfred Perlstein , lev@FreeBSD.org, Glen Barber , Nathan Whitehorn , Sean Fagan , freebsd-pkgbase@freebsd.org, freebsd-current@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <20160302235429.GD75641@FreeBSD.org> <57152CE5.5050500@FreeBSD.org> <9D4B9C8B-41D7-42BC-B436-D23EFFF60261@ixsystems.com> <20160418191425.GW1554@FreeBSD.org> <571533B8.6090109@freebsd.org> <20160418194010.GX1554@FreeBSD.org> <57153E80.4080800@FreeBSD.org> <571551AB.4070203@freebsd.org> <5715E1E9.8060507@freebsd.org> To: Julian Elischer X-Mailer: Apple Mail (2.2104) X-BeenThere: freebsd-pkgbase@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Packaging the FreeBSD base system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Apr 2016 07:55:12 -0000 On 19 Apr 2016, at 08:44, Julian Elischer wrote: >=20 >> All this can be done by meta-packages which depend on larger package = groups. > Currently Metapackage is a way to make 10 packages look like 11 = packages. The framework needs to understand to hide the 10 internal = packages if they are part of a metapackage. I agree, and patches to do this are very welcome. Currently, pkg is = short of contributors. I see basically three use cases for a packaged base: 1) People wanting a FreeBSD install to use as a server or workstation. = These people will install the FreeBSD 11 metapackage and not care that = it is a few hundred MBs. It would be nice if the pkg tool could present = this as a single package in list views, but that=E2=80=99s a UI issue = with pkg, not an issue with the number of packages in the base system. 2) People wanting to install embedded systems. Anyone who has tried to = run FreeBSD on a system with a small amount of flash storage will have = encountered the pain of having to use some kind of ad-hoc update. Being = able to manage updates to these systems with the same packaging tool as = you manage big systems is a big improvement. 3) People wanting to install service jails (sorry, containerised = applications). These want the smallest possible attack surface and so = want the smallest amount of the base system that they can have. Here, = small packages are an advantage. It will take a little while for ports = to learn enough about the granularity of the base system for this to = really be useful, but it would be great to be able to install nginx, for = example, in a jail and have only the handful of libraries that it needs. The big advantage of going with small packages initially, however, is = that it will allow us to get some data on what the correct groupings = are. If we have large packages, then it=E2=80=99s very hard to tell = which subsets of the packages people want. That=E2=80=99s exactly the = situation that we=E2=80=99re in now: we know some people don=E2=80=99t = want docs or games, but that=E2=80=99s about all that we know. It=E2=80=99= s easy to move to a model where we have *fewer* packages in the future, = but it=E2=80=99s harder to split them. That also applies to = dependencies. If I know that a port depends on the shell, then it=E2=80=99= s easy to update it from depending on a sh package to depending on a = core system utilities package automatically, but it=E2=80=99s very hard = to do an automatic update in the other direction. David