From owner-freebsd-ports@freebsd.org Tue Feb 11 08:45:55 2020 Return-Path: Delivered-To: freebsd-ports@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2D9FA22C764 for ; Tue, 11 Feb 2020 08:45:55 +0000 (UTC) (envelope-from mat@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48GxFG64rkz3DV1; Tue, 11 Feb 2020 08:45:54 +0000 (UTC) (envelope-from mat@FreeBSD.org) Received: from mail.j.mat.cc (owncloud.cube.mat.cc [79.143.240.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.mat.cc", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: mat/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 99E4D9EC9; Tue, 11 Feb 2020 08:45:54 +0000 (UTC) (envelope-from mat@FreeBSD.org) Received: from atuin.in.mat.cc (unknown [IPv6:2a01:678:42:ffff:58fb:6417:52f9:53ff]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: mat@mat.cc) by mail.j.mat.cc (Postfix) with ESMTPSA id 72823942E97; Tue, 11 Feb 2020 08:45:53 +0000 (UTC) Date: Tue, 11 Feb 2020 09:45:53 +0100 From: Mathieu Arnold To: Ernie Luzar Cc: Kevin Oberman , portmaster@bsdforge.com, freebsd-ports Subject: Re: What is the actual syntax used to FLAVOR ports? Message-ID: <20200211084553.6zpansexamvw5tl4@atuin.in.mat.cc> References: <9120f724da0ba22abe3c7caa09415ea5@udns.ultimatedns.net> <5E420B3A.3010908@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="4iri53zgnz6ht4ee" Content-Disposition: inline In-Reply-To: <5E420B3A.3010908@gmail.com> X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Feb 2020 08:45:55 -0000 --4iri53zgnz6ht4ee Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Feb 10, 2020 at 09:02:34PM -0500, Ernie Luzar wrote: > Kevin Oberman wrote: > > On Sat, Feb 8, 2020 at 1:27 PM Chris wrote: > >=20 > > > 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=3Dpython27 returns the error use py27. > > > OK now I know how to flavor, and build python flavors. > > > But what of Perl? > > > make FLAVOR=3Dperl2.8. Nope. How about make FLAVOR=3Dp5-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) > > >=20 > > > Thanks! > > >=20 > > > --Chris > >=20 > >=20 > > The problem is not having a clear understanding of what a FLAVOR is and > > when it is used. > >=20 > > 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 fair= ly > > 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. > >=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 comple= xity > > and both human and machine overhead. Requests to FLAVOR a port are > > carefully reviewed and will only be approved with adequate justificatio= n. > >=20 > > 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 a= nd, > > 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. > >=20 > > 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.) > >=20 > > 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. > > -- > > Kevin Oberman, Part time kid herder and retired Network Engineer > > E-mail: rkoberman@gmail.com > > PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683 >=20 > wow the above reply is not how I remember how things were envisioned when > this flavor function was first talked about. Having to get permission fir= st > and being limited to languages was never talked about and not at all a > requirement. Having to get permissions was never envisioned, and we will stop having it as a requirement when people stop trying to forcefully do very silly things, it will probably be relaxed when we have subpackages. It is not at all limited to languages, I have no idea where that came =66rom. You only have to grep for '^FLAVORS=3D' to see that. > It was envisioned as a way to per can a set of different > defaults so a package with pre canned defaults would be auto built in the > ports system that is different from the basic defaults. ON the subject of > documentation about how to set up flavors for a port is totally lacking at > this point. You know the old saying, developers are good programmers but = are > terrible at documenting their work if they do it at all. So with that in > mind do your own thing following what you see for flavored languages as a > loosely followed guide. Flavors have been documented from day one. https://www.freebsd.org/doc/en/books/porters-handbook/flavors.html (I kinda know because I wrote (most of) the flavors code, and I also write (most of) the documentation.) --=20 Mathieu Arnold --4iri53zgnz6ht4ee Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKTBAABCgB9FiEEOraXidLtEhBkQLpbOkUW81GDzkgFAl5CacBfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNB QjY5Nzg5RDJFRDEyMTA2NDQwQkE1QjNBNDUxNkYzNTE4M0NFNDgACgkQOkUW81GD zkjxQQ/+NPPEBpxvvoq99YNJkEhDMQhz6seYSvtYgt4Q2tfczEJk1HGMmLBsyRS0 hFfCVoax0oXtx8fhzhDJrgHCgoD8HH44qJAFN4/7q8ukM4y2DaY2EiLcL405oMGW aSAuHXUnM7qnDR5e1ql383cmzDx/ixcsYImPYcST19Xn/zc58eLkIt8uCJx1+hdR GXs/eATvsu5KT7lvvkEs6xCm0e/ObpiJT9oe1AkGSsZbXJlVBDNGmEE7tJiGeo+h 6ZIoJS5N7w5QirMfGfUItZSgao4zv120MkiNGEpI6Ml5pfyLUgAW9G52n6ieTKMd OWu6KSoU4H5Ym2gT20AAss6uJV1uZz9PTngR2Xoh54ehk1e/Fyjs2DA6TE9Wsflx YP3aspiuKNyraILDOY13LhBQHDxBYTtzHsglDncejEE7/WpQosu+pMSly2EebpOV 8xmJQ2u6gGyMUXgCMCbWd6AOVNxoKzhnW636lSghAcvEuAOXjwcxSH+YetozwhEt MPJGMYqef5LNQgJyp7V99bgtjP1xZUU5XJ5Nz7O9xV0FTUkFZjLbbsE6ASH492CY O/RYo8I/x/yJ9GwUGq3z4F17SQNhBPmG8BS7RATTIb6VWzmKUx9jUQzXV5bovccy oLHIUFNZs3ZzSIwovCtuvswQ0DpxAOHj9dgTxKz5/ErauDKml2c= =aaAI -----END PGP SIGNATURE----- --4iri53zgnz6ht4ee--