> -----Original Message-----
> From: David Chisnall <[email protected]>
> Sent: Tuesday, April 30, 2019 4:23 AM
> To: Joe Maloney <[email protected]>; Cy Schubert
> <[email protected]>
> Cc: Rodney W. Grimes <[email protected]>; Kris Moore
> <[email protected]>; FreeBSD Stable <[email protected]>;
> [email protected]; Goran Mekić <[email protected]>; freebsd-
> [email protected]; FreeBSD Current <[email protected]>;
> [email protected]; [email protected]; Emmanuel Vadot
> <[email protected]>
> Subject: Re: CFT: FreeBSD Package Base
> 
> 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.
> 
> 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. 

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. 




-- 
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


_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-pkgbase
To unsubscribe, send any mail to "[email protected]"

Reply via email to