From owner-freebsd-hackers@freebsd.org Thu May 2 11:09:10 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 E43351591609; Thu, 2 May 2019 11:09:09 +0000 (UTC) (envelope-from v.velox@vvelox.net) Received: from vulpes.vvelox.net (vulpes.vvelox.net [96.95.67.25]) by mx1.freebsd.org (Postfix) with ESMTP id 0AF2D893B7; Thu, 2 May 2019 11:09:08 +0000 (UTC) (envelope-from v.velox@vvelox.net) Received: from vvelox.net (localhost [127.0.0.1]) (Authenticated sender: kitsune) by vulpes.vvelox.net (Postfix) with ESMTPA id 0D4B023355C1; Thu, 2 May 2019 06:09:00 -0500 (CDT) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Thu, 02 May 2019 06:09:00 -0500 From: "Zane C. B-H." To: Miroslav Lachman <000.fbsd@quip.cz> Cc: David Chisnall , FreeBSD Stable , freebsd-ports@freebsd.org, =?UTF-8?Q?Gor?= =?UTF-8?Q?an_Meki=C4=87?= , freebsd-hackers@freebsd.org, FreeBSD Current , freebsd-pkgbase@freebsd.org, freebsd-pkg@freebsd.org, owner-freebsd-pkgbase@freebsd.org Subject: Re: CFT: FreeBSD Package Base In-Reply-To: <292eadc6-3662-ec43-1175-53fc252487bd@quip.cz> References: <201904291931.x3TJV73d079802@slippy.cwsent.com> <6EB65F49-47CD-48B2-8C58-BF387D8C7A58@ixsystems.com> <292eadc6-3662-ec43-1175-53fc252487bd@quip.cz> Message-ID: <8d664f5eb336c955475c97332bcd2b2b@vvelox.net> X-Sender: v.velox@vvelox.net User-Agent: Roundcube Webmail/1.3.3 X-Rspamd-Queue-Id: 0AF2D893B7 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of v.velox@vvelox.net designates 96.95.67.25 as permitted sender) smtp.mailfrom=v.velox@vvelox.net X-Spamd-Result: default: False [-1.52 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:96.95.67.25/32]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[vvelox.net]; NEURAL_SPAM_SHORT(0.14)[0.139,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[mail.vvelox.net]; RCPT_COUNT_SEVEN(0.00)[10]; IP_SCORE(-0.95)[ip: (-0.90), ipnet: 96.64.0.0/11(-3.92), asn: 7922(0.14), country: US(-0.06)]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:7922, ipnet:96.64.0.0/11, country:US]; MID_RHS_MATCH_FROM(0.00)[]; SUSPICIOUS_RECIPS(1.50)[]; RCVD_COUNT_TWO(0.00)[2] X-Mailman-Approved-At: Thu, 02 May 2019 11:42:58 +0000 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: Thu, 02 May 2019 11:09:10 -0000 On 2019-04-30 17:03, Miroslav Lachman wrote: > 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? Speaking as a ports maintainer, it will be very annoying. Splitting it into a handful of large ass packages, same as you are presented with during install, would be best.