Skip site navigation (1)Skip section navigation (2)
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$>