Date: Tue, 30 Apr 2019 10:17:42 -0400 From: <kris@ixsystems.com> To: "'David Chisnall'" <theraven@FreeBSD.org>, "'Joe Maloney'" <jmaloney@ixsystems.com>, "'Cy Schubert'" <Cy.Schubert@cschubert.com> Cc: "'Rodney W. Grimes'" <freebsd-rwg@gndrsh.dnsmgr.net>, =?utf-8?Q?'Goran_Meki=C4=87'?= <meka@tilda.center>, <freebsd-pkgbase@freebsd.org>, "'Emmanuel Vadot'" <manu@bidouilliste.com> Subject: RE: CFT: FreeBSD Package Base Message-ID: <040b01d4ff5f$79db2cd0$6d918670$@ixsystems.com> In-Reply-To: <daecd304-d4f6-7b15-3455-6a3b734cb258@FreeBSD.org> References: <201904291931.x3TJV73d079802@slippy.cwsent.com> <6EB65F49-47CD-48B2-8C58-BF387D8C7A58@ixsystems.com> <daecd304-d4f6-7b15-3455-6a3b734cb258@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> -----Original Message----- > From: David Chisnall <theraven@FreeBSD.org> > Sent: Tuesday, April 30, 2019 4:23 AM > To: Joe Maloney <jmaloney@ixsystems.com>; Cy Schubert > <Cy.Schubert@cschubert.com> > Cc: Rodney W. Grimes <freebsd-rwg@gndrsh.dnsmgr.net>; Kris Moore > <kris@ixsystems.com>; FreeBSD Stable <freebsd-stable@freebsd.org>; > freebsd-ports@freebsd.org; Goran Meki=C4=87 <meka@tilda.center>; = freebsd- > hackers@freebsd.org; FreeBSD Current <freebsd-current@freebsd.org>; > freebsd-pkgbase@freebsd.org; freebsd-pkg@freebsd.org; Emmanuel Vadot > <manu@bidouilliste.com> > Subject: Re: CFT: FreeBSD Package Base >=20 > 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. >=20 > 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? >=20 > 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? >=20 > 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. >=20 > David <Trimmed some of the other lists from reply> Yes, this is the next logical step of this package base effort. We'd = like to build out the port framework to do proper flavors of some of the = most common base configurations. We did this last week to allow having = both Debug/NonDebug kernels available via pkg, next step would be to = extend that to the base system itself, so you could have a variety of = configs represented as flavors, including minimal. The way we'll be able to interject depends on ports is going to be = through our usage of "userland" as a meta-package. That meta-package = depends on userland-base (The traditional FreeBSD world contents). = However it currently has options to depend on sysutils/zol, pairing that = with a userland-base that is compiled without ZFS. Fleshing that out = should be fairly straight forward, but we wanted to get some hands-on = testing and feedback on the current work before going down that route.=20 Ideally we extend some of the flavors support that already exists in = Ports for Python 2/3 with base as well and it avoids us having to = brute-force it with tons of dummy ports with different flag = combinations. This would give you the ability to 'pkg install = userland-minimal' or whatever name, and more importantly your ports = could have depends on those particular flavors as well. I.E. some port = needs SSL in base, or firewall, etc, etc.=20 --=20 Kris Moore Vice President of Engineering iXsystems, Inc Ph: (408) 943-4100 Ph: (408) 943-4101 The Groundbreaking TrueNAS M-Series - Enterprise Storage & Servers Driven By Open Source
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?040b01d4ff5f$79db2cd0$6d918670$>