From owner-freebsd-hackers@freebsd.org Tue Apr 30 22:13:31 2019 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AA7A8159FF9D; Tue, 30 Apr 2019 22:13:31 +0000 (UTC) (envelope-from SRS0=7/jM=TA=quip.cz=000.fbsd@elsa.codelab.cz) Received: from elsa.codelab.cz (elsa.codelab.cz [94.124.105.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 11DA96A723; Tue, 30 Apr 2019 22:13:30 +0000 (UTC) (envelope-from SRS0=7/jM=TA=quip.cz=000.fbsd@elsa.codelab.cz) Received: from elsa.codelab.cz (localhost [127.0.0.1]) by elsa.codelab.cz (Postfix) with ESMTP id B397E28417; Wed, 1 May 2019 00:03:44 +0200 (CEST) Received: from illbsd.quip.test (ip-62-24-92-232.net.upcbroadband.cz [62.24.92.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by elsa.codelab.cz (Postfix) with ESMTPSA id 51D3828411; Wed, 1 May 2019 00:03:43 +0200 (CEST) Subject: Re: CFT: FreeBSD Package Base To: David Chisnall Cc: Kris Moore , FreeBSD Stable , freebsd-pkg@freebsd.org, =?UTF-8?Q?Goran_Meki=c4=87?= , freebsd-hackers@freebsd.org, FreeBSD Current , freebsd-pkgbase@freebsd.org, freebsd-ports@freebsd.org References: <201904291931.x3TJV73d079802@slippy.cwsent.com> <6EB65F49-47CD-48B2-8C58-BF387D8C7A58@ixsystems.com> From: Miroslav Lachman <000.fbsd@quip.cz> Message-ID: <292eadc6-3662-ec43-1175-53fc252487bd@quip.cz> Date: Wed, 1 May 2019 00:03:44 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.3 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 11DA96A723 X-Spamd-Bar: ++++++ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [6.46 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_SPAM_SHORT(0.88)[0.883,0]; IP_SCORE(0.94)[ip: (0.49), ipnet: 94.124.104.0/21(0.25), asn: 42000(3.88), country: CZ(0.08)]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[quip.cz]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.95)[0.952,0]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: elsa.codelab.cz]; NEURAL_SPAM_LONG(1.00)[1.000,0]; RCPT_COUNT_SEVEN(0.00)[9]; RCVD_IN_DNSWL_NONE(0.00)[4.105.124.94.list.dnswl.org : 127.0.10.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[000.fbsd@quip.cz,SRS0=7/jM=TA=quip.cz=000.fbsd@elsa.codelab.cz]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:42000, ipnet:94.124.104.0/21, country:CZ]; FROM_NEQ_ENVFROM(0.00)[000.fbsd@quip.cz,SRS0=7/jM=TA=quip.cz=000.fbsd@elsa.codelab.cz]; SUSPICIOUS_RECIPS(1.50)[] X-Spam: Yes X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Apr 2019 22:13:31 -0000 David Chisnall wrote on 2019/04/30 10:22: > On 29/04/2019 21:12, Joe Maloney wrote: >> With CFT version you chose to build, and package individual components >> such as sendmail with a port option.  That does entirely solve the >> problem of being able to reinstall sendmail after the fact without a >> rebuild of the userland (base) port but perhaps base flavors could >> solve that problem assuming flavors could extend beyond python. > > This sounds very much like local optimisation. It's now easy to create a > custom base image.  Great.  But how do I express dependencies in ports > on a specific base configuration? This is easy if I depend on a specific > base package, but how does this work in your model?  For example, if I > have a package that depends on a library that is an optional part of the > base system, how do I express that pkg needs to either refuse to install > it, or install a userland pkg that includes that library in place of my > existing version as part of the install process? > > More importantly for the container use case, if I want to take a > completely empty jail and do pkg ins nginx (for example), what does the > maintainer of the nginx port need to do to express the minimum set of > the base system that needs to be installed to allow nginx to work? > > One of the goals for the pkg base concept was to allow this kind of use > case, easily creating a minimal environment required to run a single > service. With a monolithic base package set, you're going to need some > mechanism other than packages to express the specific base subset > package that you need and I think that you need to justify why this > mechanism is better than using small individual packages. Will it not be maintainer's nightmare to take care of all the dependencies on the base packages for each port we have in the ports tree? Miroslav Lachman