[HEADUP] FLAVORS landing.
truckman at FreeBSD.org
Wed Sep 27 20:57:38 UTC 2017
On 27 Sep, Julian Elischer wrote:
> On 27/9/17 4:20 pm, Matthew Seaman wrote:
> Before this gets too far down the road I would like to suggest that we
> quickly formalise some nomenclature
> or we will have 200 different ideas as to how to do the same thing;
> I would like to propose the following possible "examples of official"
> -nodocs Â .. nearly every port has a DOCS option.. a way to
> automatically turn it off globally and generate said pkgs would be good.
> -minimal .. smallest possible feature set.. probably used just to
> satisfy some stupid dependency.
> -kitchensinkÂ .. speaks for itself .. options lit up like a
> christmas tree
> -runtime .. no .a files, include files, development
> documentation or sources ..
> Â might only contain a single libxx.so.N file, or a
> single binary executable.
The docs and runtime would fall into the subpackages category along with
things like debug symbols.
For example, if you want to build a runtime package for port X, and X
has a LIB_DEPENDS that points to Y, then you need to build a version of
Y that contains both the shared library and the include files so that
you can build X. Since you don't want to install the include files for
Y when you install X, you would have to build another flavor of Y that
doesn't have the include files. If you use subpackages, you would only
need to build Y once, that that would generate subpackages for the
runtime bits, the include files, the docs, and the debug files. If you
use something like synth or poudriere for building X, it would install
the runtime and include file subpackages of Y when building X. When you
want to "pkg install" the X runtime, pkg would only download and install
the Y runtime package.
If at some point you run into a bug and need the debug files, you can
pkg install the debug files for whatever packages that you need without
disturbing your already installed runtime files, and then you can later
deinstall the debug files when you are done with them without needing to
reinstall the runtime files. The same thing applies to docs.
More information about the freebsd-ports