Date: Sun, 09 Feb 2020 01:09:05 -0800 From: Chris <portmaster@BSDforge.com> To: Kevin Oberman <rkoberman@gmail.com> Cc: freebsd-ports <freebsd-ports@freebsd.org>, <portmaster@bsdforge.com> Subject: Re: What is the actual syntax used to FLAVOR ports? Message-ID: <49900d827eeb176b797345d65a1b60e5@udns.ultimatedns.net> In-Reply-To: <CAN6yY1uw6rz4_mKKKmuUh8vQ2W94wJJr27q-J8FdQScaYRAc-g@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 8 Feb 2020 21:44:35 -0800 Kevin Oberman rkoberman@gmail=2Ecom said > On Sat, Feb 8, 2020 at 1:27 PM Chris <portmaster@bsdforge=2Ecom> wrote: >=20 > > OK I know FLAVOR is an evolving concept=2E But I can not find > > the FLAVOR documentation=2E Only references in the porters > > handbook=2E What I think needs to be available is an entire > > list of flavor tags for all (port) categories=2E > > For example; > > make FLAVOR=3Dpython27 returns the error use py27=2E > > OK now I know how to flavor, and build python flavors=2E > > But what of Perl? > > make FLAVOR=3Dperl2=2E8=2E Nope=2E How about make FLAVOR=3Dp5-28, > > and so it goes=2E=2E=2E > > Does there exist a definitive list of flavors? It'd > > also be valuable for defining defaults in make=2Econf(5) > > > > Thanks! > > > > --Chris >=20 >=20 > The problem is not having a clear understanding of what a FLAVOR is and > when it is used=2E >=20 > FLAVORS are generally a way to deal with the problem of incompatible > versions and Python is the poster child=2E Python2 and Python3 are two > version of a VERY popular language that have significant syntax > incompatibilities=2E While a program written for gcc-4=2E2 should work fine > when compiled with gcc-7, it is VERY unlikely that a program written for > Python2 will work with Python3=2E While the changes needed are often fairly > straight forward, they have to be made=2E The result is a requirement of > having both interpreters installed and two packages of of most Python > libraries built from a single source=2E >=20 > Adding FLAVORS for a port is an expensive operation and is never lightly > approved by the ports management team as it adds a great deal of complexi= ty > and both human and machine overhead=2E Requests to FLAVOR a port are > carefully reviewed and will only be approved with adequate justification=2E >=20 > In the case of Perl, no attempt to flavor it has been needed=2E Most Perl > packages (p5-*) will work with any of the three available ports=2E In most > cases they may be installed and continue to work across versions with no > changes=2E Python (py-) ports MUST be reinstalled to move from Python2 to > Python3=2E Some have not had required changes to work with Python3 made and= , > initially, almost none did=2E Some have now been written with no support fo= r > Python2=2E All of this has to be properly handled by the package building > system and it is not at all trivial=2E >=20 > As of today, I believe the only FLAVORed ports are those using emacs, > lazarus, php, and, of course, python=2E By "using", I mean that the port > Makefile includes "USE_PYTHON" or similar USE_ definitions of the other > languages=2E (Yes, emacs is not a language, but elisp, the core of emacs, i= s > and lazarus is an IDE for Pascal=2E) >=20 > I'm sorry of this is not entirely clear, but I hope it helps and I hope i= t > is all correct=2E I may have worded some of it poorly=2E Thank you for taking the time to provide a very informative answer, Kevin=2E You did a fine job! I currently am Maintainer for ~150 ports=2E So have become very familiar with the prerequisites=2E But have become fairly frustrated with the introduction of FLAVOR(s)=2E Not the concept=2E But the lack of documenting them=2E As a user; what would I use to apply a FLAVOR for any given port I want to install; as in what is the correct syntax for all the languages that are, or will be flavored? I can't seem to find any definitive documentation=2E As a porter, the subject matter is fairly terse in the porters handbook=2E Not many clues in /usr/ports/MK either=2E So since I was unable to find much FLAVOR documentation=2E Specifically; syntax for all the languages available to FLAVOR(s)=2E I thought I might try here=2E Thanks again, for taking the time to reply! --Chris
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49900d827eeb176b797345d65a1b60e5>