On Sat, 8 Feb 2020 21:44:35 -0800 Kevin Oberman rkober...@gmail.com said
On Sat, Feb 8, 2020 at 1:27 PM Chris <portmas...@bsdforge.com> wrote: > OK I know FLAVOR is an evolving concept. But I can not find > the FLAVOR documentation. Only references in the porters > handbook. What I think needs to be available is an entire > list of flavor tags for all (port) categories. > For example; > make FLAVOR=python27 returns the error use py27. > OK now I know how to flavor, and build python flavors. > But what of Perl? > make FLAVOR=perl2.8. Nope. How about make FLAVOR=p5-28, > and so it goes... > Does there exist a definitive list of flavors? It'd > also be valuable for defining defaults in make.conf(5) > > Thanks! > > --Chris The problem is not having a clear understanding of what a FLAVOR is and when it is used. FLAVORS are generally a way to deal with the problem of incompatible versions and Python is the poster child. Python2 and Python3 are two version of a VERY popular language that have significant syntax incompatibilities. While a program written for gcc-4.2 should work fine when compiled with gcc-7, it is VERY unlikely that a program written for Python2 will work with Python3. While the changes needed are often fairly straight forward, they have to be made. The result is a requirement of having both interpreters installed and two packages of of most Python libraries built from a single source. 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 complexity and both human and machine overhead. Requests to FLAVOR a port are carefully reviewed and will only be approved with adequate justification. In the case of Perl, no attempt to flavor it has been needed. Most Perl packages (p5-*) will work with any of the three available ports. In most cases they may be installed and continue to work across versions with no changes. Python (py-) ports MUST be reinstalled to move from Python2 to Python3. Some have not had required changes to work with Python3 made and, initially, almost none did. Some have now been written with no support for Python2. All of this has to be properly handled by the package building system and it is not at all trivial. As of today, I believe the only FLAVORed ports are those using emacs, lazarus, php, and, of course, python. By "using", I mean that the port Makefile includes "USE_PYTHON" or similar USE_ definitions of the other languages. (Yes, emacs is not a language, but elisp, the core of emacs, is and lazarus is an IDE for Pascal.) I'm sorry of this is not entirely clear, but I hope it helps and I hope it is all correct. I may have worded some of it poorly.
Thank you for taking the time to provide a very informative answer, Kevin. You did a fine job! I currently am Maintainer for ~150 ports. So have become very familiar with the prerequisites. But have become fairly frustrated with the introduction of FLAVOR(s). Not the concept. But the lack of documenting them. 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. As a porter, the subject matter is fairly terse in the porters handbook. Not many clues in /usr/ports/MK either. So since I was unable to find much FLAVOR documentation. Specifically; syntax for all the languages available to FLAVOR(s). I thought I might try here. Thanks again, for taking the time to reply! --Chris _______________________________________________ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"