From owner-freebsd-stable@freebsd.org Wed May 1 08:31:47 2019 Return-Path: Delivered-To: freebsd-stable@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 62FE4159C6F5; Wed, 1 May 2019 08:31:47 +0000 (UTC) (envelope-from SRS0=6TW8=TB=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 1B5F76B63C; Wed, 1 May 2019 08:31:45 +0000 (UTC) (envelope-from SRS0=6TW8=TB=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 655DD28423; Wed, 1 May 2019 10:31:43 +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 5C08428422; Wed, 1 May 2019 10:31:40 +0200 (CEST) Subject: Re: CFT: FreeBSD Package Base To: Cy Schubert Cc: FreeBSD Stable , freebsd-pkg@freebsd.org, =?UTF-8?Q?Goran_Meki=c4=87?= , freebsd-hackers@freebsd.org, David Chisnall , FreeBSD Current , freebsd-pkgbase@freebsd.org, freebsd-ports@freebsd.org References: <201905010356.x413uUnV068470@slippy.cwsent.com> From: Miroslav Lachman <000.fbsd@quip.cz> Message-ID: <56b15cc3-4605-f693-4ad6-188ea865820d@quip.cz> Date: Wed, 1 May 2019 10:31:41 +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: <201905010356.x413uUnV068470@slippy.cwsent.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1B5F76B63C X-Spamd-Bar: ++++++ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [6.61 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_SPAM_SHORT(0.98)[0.983,0]; IP_SCORE(0.94)[ip: (0.49), ipnet: 94.124.104.0/21(0.24), 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(1.00)[0.996,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]; RCVD_IN_DNSWL_NONE(0.00)[4.105.124.94.list.dnswl.org : 127.0.10.0]; RCPT_COUNT_SEVEN(0.00)[9]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[000.fbsd@quip.cz,SRS0=6TW8=TB=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]; MID_RHS_MATCH_FROM(0.00)[]; FROM_NEQ_ENVFROM(0.00)[000.fbsd@quip.cz,SRS0=6TW8=TB=quip.cz=000.fbsd@elsa.codelab.cz]; SUSPICIOUS_RECIPS(1.50)[] X-Spam: Yes X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2019 08:31:47 -0000 Cy Schubert wrote on 2019/05/01 05:56: > In message <292eadc6-3662-ec43-1175-53fc252487bd@quip.cz>, Miroslav > Lachman wri > tes: >> 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? > > No more than it is today. Remember, people have been doing this sort of > thing for decades. If the folks at Red Hat, Oracle (formerly Sun), and > IBM can do it, I'm sure we can too. The dependency lists will be > longer. We may require dependency lists that allow the choice of one of > many prereqs or coreqs. They are experts and they are paid for their work. I am not. I am maintaining a few packages and the reality is I don't know what they need in base. Till these days I don't care about this kind of dependency. I am not system developer or programmer and I think there are more than just me who see this as a kind of problem. So in this case, pkg base gives me nothing but more work on those packages. Miroslav Lachman