From owner-freebsd-ports@freebsd.org Tue Feb 11 02:02:37 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 ABA6824ADD2 for ; Tue, 11 Feb 2020 02:02:37 +0000 (UTC) (envelope-from luzar722@gmail.com) Received: from mail-il1-x135.google.com (mail-il1-x135.google.com [IPv6:2607:f8b0:4864:20::135]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48GmHw3pb7z4LPt for ; Tue, 11 Feb 2020 02:02:36 +0000 (UTC) (envelope-from luzar722@gmail.com) Received: by mail-il1-x135.google.com with SMTP id i7so2088734ilr.7 for ; Mon, 10 Feb 2020 18:02:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-transfer-encoding; bh=mF4NGWOcexI4nS+xE0JbJZzhM1xLVXPKyQ7ZveBfulY=; b=BYQenXVtzw/1jc/GFX701y4dIAM99fXSPwYMETXTDpEIUoS2gH5wFPDnFXZBBN0MUQ p9ZeOnPeM93z5J8k9xn8FsVKSxnuvZ8HUhmKMec88u8vOpOR1UYz8W9RizS7msLRKa5I 51nrk3Bsc0gsdHrXHMtwyAG1atyb75cZUhPwCmkkTE9E8/hEZn4YQfsfiaQ5RqNy5B5u HTDArjNjtVln90YEMoytJL+thfhnSAH2Wr1eo/fCQj93NZwW0BZ1a3NVFAMOxXElYz/Y 7YmqnzCoWOar6arJ5NVwCDd3hFsM5ldUhOV72fut+XQXEOUUC+/iHfknMr0HXxMyhGiN YwFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-transfer-encoding; bh=mF4NGWOcexI4nS+xE0JbJZzhM1xLVXPKyQ7ZveBfulY=; b=TnI2F8Kj8xEWbCYo27hhWWkDy7INJiJt56P4gvhZbCSTrui8sKf+BCYSkRBie+i74A dAnPrOYO2kkpWjdVukARdBuaQmK2Ao0Hb5RadS2tg53Euj5IYv/CZw94/zIKyA1Us0Q5 yMkwiRateDGBaux68xNQxIYwYHs4OEDq+PTiDBnha2QG1jvx9DfwN4s2X77+VkZKkmXK e+W8Qft5Nn/sV7l0Azvz3imqx8VY7n9vDgWBu9OLX5uBKITlehk7xWsza6dNZQafWd6m Gl4TaJ1VxMtr8lu7tCwxTcNcCRa1DJqdIzYYEQUhkXWtRAInPJZL7QpiWLHIc1Q/kWkL 84YQ== X-Gm-Message-State: APjAAAWt5xP7bX/W+mpWucqcmou8The3x91ONhBa6+NdeJpSjA9raFVw BFlVH8AaD1TbxWWnRS5FHptG1L/4 X-Google-Smtp-Source: APXvYqz0GKEdQF6Lf8S4dg4eAAc83sjNIueontRv4MPXlxD5tGlzkDpEhn1DvLuAEacDkjqh6tgdRg== X-Received: by 2002:a92:1bd9:: with SMTP id f86mr4138318ill.18.1581386555323; Mon, 10 Feb 2020 18:02:35 -0800 (PST) Received: from [10.0.10.8] (cpe-65-25-53-210.neo.res.rr.com. [65.25.53.210]) by smtp.googlemail.com with ESMTPSA id y11sm704241ilp.46.2020.02.10.18.02.34 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 10 Feb 2020 18:02:34 -0800 (PST) Message-ID: <5E420B3A.3010908@gmail.com> Date: Mon, 10 Feb 2020 21:02:34 -0500 From: Ernie Luzar User-Agent: Thunderbird 2.0.0.24 (Windows/20100228) MIME-Version: 1.0 To: Kevin Oberman CC: portmaster@bsdforge.com, freebsd-ports Subject: Re: What is the actual syntax used to FLAVOR ports? References: <9120f724da0ba22abe3c7caa09415ea5@udns.ultimatedns.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 48GmHw3pb7z4LPt X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=BYQenXVt; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of luzar722@gmail.com designates 2607:f8b0:4864:20::135 as permitted sender) smtp.mailfrom=luzar722@gmail.com X-Spamd-Result: default: False [-2.00 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; FREEMAIL_TO(0.00)[gmail.com]; RECEIVED_SPAMHAUS_PBL(0.00)[210.53.25.65.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10]; FROM_EQ_ENVFROM(0.00)[]; SUBJECT_ENDS_QUESTION(1.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-ports@freebsd.org]; IP_SCORE_FREEMAIL(0.00)[]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[5.3.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; IP_SCORE(0.00)[ip: (-8.42), ipnet: 2607:f8b0::/32(-1.95), asn: 15169(-1.72), country: US(-0.05)]; RCVD_TLS_ALL(0.00)[] 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 02:02:37 -0000 Kevin Oberman wrote: > On Sat, Feb 8, 2020 at 1:27 PM Chris 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. > -- > Kevin Oberman, Part time kid herder and retired Network Engineer > E-mail: rkoberman@gmail.com > PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683 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 first and being limited to languages was never talked about and not at all a requirement. 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.