Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Oct 2022 13:01:25 -0600
From:      Adam Weinberger <adamw@freebsd.org>
To:        Piotr Kubaj <pkubaj@anongoth.pl>
Cc:        Adam Weinberger <adamw@freebsd.org>, ports-committers@freebsd.org,  dev-commits-ports-all@freebsd.org, dev-commits-ports-main@freebsd.org
Subject:   Re: git: 9d241a90370c - main - Mk: Add USES=luajit
Message-ID:  <CAP7rwciL%2BY9d-8Cg9yVyL0sMDRi_4rpnEG5PUKu=twmwfZo-MA@mail.gmail.com>
In-Reply-To: <Y0mxWT01SkaxD3n/@KGPE-D16>
References:  <202210141707.29EH7i08013647@gitrepo.freebsd.org> <Y0mxWT01SkaxD3n/@KGPE-D16>

next in thread | previous in thread | raw e-mail | index | archive | help
--00000000000098c5fe05eb0341cc
Content-Type: text/plain; charset="UTF-8"

On Fri, Oct 14, 2022 at 12:58 PM Piotr Kubaj <pkubaj@anongoth.pl> wrote:

> On 22-10-14 17:07:44, Adam Weinberger wrote:
> >The branch main has been updated by adamw:
> >
> >URL:
> https://cgit.FreeBSD.org/ports/commit/?id=9d241a90370c9410d997be37db5e3a5657bdb4ca
> >
> >commit 9d241a90370c9410d997be37db5e3a5657bdb4ca
> >Author:     Adam Weinberger <adamw@FreeBSD.org>
> >AuthorDate: 2022-10-14 16:50:39 +0000
> >Commit:     Adam Weinberger <adamw@FreeBSD.org>
> >CommitDate: 2022-10-14 17:07:39 +0000
> >
> >    Mk: Add USES=luajit
> >
> >    USES=luajit centralizes luajit dependencies via
> bsd.default-versions.mk
> >    (defaulting to luajit-devel).
> >
> >    Ports currently depend on:
> >      lang/luajit: 42
> >      lang/luajit-devel: 0
> >      lang/luajit-openresty: 51
> >
> >    The difficulty here is that:
> >      - They all conflict with each other
> >      - Upstream is very clear about not intending for users to use the
> >        version in lang/luajit at all, and wants all luajit users to use
> >        lang/luajit-devel
> >      - luajit-openresty is very aggressive about being drop-in compatible
> >        with luajit-devel (though not the other direction)
> >
> >    For the vast majority of situations, USES=luajit will be sufficient.
> >    Ports that use openresty's API additions can specify
> >    USES=luajit:openresty.
> >
> >    I'm adding this into head very early in the 2022Q4 cycle so that
> there's
> >    ample time to address the default. It's a difficult decision. osa, the
> >    maintainer of luajit and luajit-devel, prefers that the default be
> >    luajit, but I went the other direction because it's in direct conflict
> >    with upstream's clear stated intention. It's not a simple decision;
> see
> >    the review below for a little discussion on it.
> >
> >    The TL;DR here is that this defaults to the one luajit version that no
> >    port currently depends on. However, this version is what OpenBSD,
> >    Homebrew, Ubuntu, Debian, Fedora, MacPorts, and Arch default to (and
> >    none of them even provide the stale version lang/luajit provides).
> >    This will bring FreeBSD in line with nearly every other OS package
> >    system, and with upstream's intention.
> >
> >    See also PRs 225342, 257051.
> >
> >    Reviewed by:    bapt, tcberner
> >    Approved by:    portmgr (bapt, tcberner)
> >    Differential Revision:  https://reviews.freebsd.org/D36947
> >---
> > Mk/Uses/luajit.mk          | 27 +++++++++++++++++++++++++++
> > Mk/bsd.default-versions.mk |  9 ++++++---
> > 2 files changed, 33 insertions(+), 3 deletions(-)
> >
> >diff --git a/Mk/Uses/luajit.mk b/Mk/Uses/luajit.mk
> >new file mode 100644
> >index 000000000000..75e54407d484
> >--- /dev/null
> >+++ b/Mk/Uses/luajit.mk
> >@@ -0,0 +1,27 @@
> >+# Select your favorite luajit runtime
> >+# Feature:    luajit
> >+# Usage:      USES=  luajit[:version]
> >+# MAINTAINER: adamw@FreeBSD.org
> >+
> >+.if !defined(_INCLUDE_USES_LUAJIT_MK)
> >+_INCLUDE_USES_LUAJIT_MK=yes
> >+
> >+.if !empty(luajit_ARGS)
> >+LUAJIT_VER=   ${luajit_ARGS}
> >+.else
> >+LUAJIT_VER=   ${LUAJIT_DEFAULT}
> >+.endif
> >+
> >+# When adding a version, please keep the comment in
> >+# Mk/bsd.default-versions.mk in sync
> >+VALID_LUAJIT_VER=     luajit luajit-devel luajit-openresty
> >+
> >+.if empty(VALID_LUAJIT_VER:M${LUAJIT_DEFAULT})
> >+IGNORE=       Invalid luajit default version ${LUAJIT_DEFAULT}: valid
> versions are ${VALID_LUAJIT_VER}
> >+.elif empty(VALID_LUAJIT_VER:M${LUAJIT_VER})
> >+IGNORE=       Invalid luajit version ${LUAJIT_VER}: valid versions are
> ${VALID_LUAJIT_VER}
> >+.endif
> >+
> >+LIB_DEPENDS=  libluajit-5.1.so:lang/${LUAJIT_VER}
> >+
> >+.endif
> >diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk
> >index bbf3d5880c70..5a36e0b9c4d0 100644
> >--- a/Mk/bsd.default-versions.mk
> >+++ b/Mk/bsd.default-versions.mk
> >@@ -17,9 +17,10 @@ _INCLUDE_BSD_DEFAULT_VERSIONS_MK=   yes
> >
> > LOCALBASE?=   /usr/local
> >
> >-.  for lang in APACHE BDB COROSYNC EMACS FIREBIRD FORTRAN FPC GCC
> GHOSTSCRIPT GL GO \
> >-      IMAGEMAGICK JAVA LAZARUS LIBRSVG2 LINUX LLVM LUA MONO MYSQL NINJA
> NODEJS PERL5 \
> >-      PGSQL PHP PYTHON PYTHON2 PYTHON3 RUBY RUST SAMBA SSL TCLTK VARNISH
> >+.  for lang in APACHE BDB COROSYNC EMACS FIREBIRD FORTRAN FPC GCC \
> >+      GHOSTSCRIPT GL GO IMAGEMAGICK JAVA LAZARUS LIBRSVG2 LINUX LLVM \
> >+      LUA LUAJIT MONO MYSQL NINJA NODEJS PERL5 PGSQL PHP PYTHON \
> >+      PYTHON2 PYTHON3 RUBY RUST SAMBA SSL TCLTK VARNISH
> > .    if defined(${lang}_DEFAULT)
> > ERROR+=       "The variable ${lang}_DEFAULT is set and it should only be
> defined through DEFAULT_VERSIONS+=${lang:tl}=${${lang}_DEFAULT} in
> /etc/make.conf"
> > .    endif
> >@@ -86,6 +87,8 @@ LLVM_DEFAULT?=               90
> > .  endif
> > # Possible values: 5.1, 5.2, 5.3, 5.4
> > LUA_DEFAULT?=         5.2
> >+# Possible values: luajit, luajit-devel, luajit-openresty
> >+LUAJIT_DEFAULT?=      luajit-devel
> > # Possible values: 5.10, 5.20, 6.8
> > MONO_DEFAULT=         5.10
> > # Possible values: 5.6, 5.7, 8.0, 10.3m, 10.4m, 10.5m, 5.7p, 5.7w
>
> Could you make USES=luajit default to openresty on powerpc64 and
> powerpc64le? lang/luajit and lang/luajit-devel don't support those, but
> openresty fork does.
>
> I believe aarch64 is in similar situation, except that it's also
> supported by luajit-devel.
>

Are you positive on that? luajit-devel just has IGNORE_riscv64 (which no
luajit works on), and includes a block specifically for powerpc*.

# Adam


-- 
Adam Weinberger
adamw@adamw.org // adamw@FreeBSD.org
https://www.adamw.org

--00000000000098c5fe05eb0341cc
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:arial,sans-serif"><br></div></div><br><div class=3D"gmail_quote"><=
div dir=3D"ltr" class=3D"gmail_attr">On Fri, Oct 14, 2022 at 12:58 PM Piotr=
 Kubaj &lt;<a href=3D"mailto:pkubaj@anongoth.pl">pkubaj@anongoth.pl</a>&gt;=
 wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 22-10=
-14 17:07:44, Adam Weinberger wrote:<br>
&gt;The branch main has been updated by adamw:<br>
&gt;<br>
&gt;URL: <a href=3D"https://cgit.FreeBSD.org/ports/commit/?id=3D9d241a90370=
c9410d997be37db5e3a5657bdb4ca" rel=3D"noreferrer" target=3D"_blank">https:/=
/cgit.FreeBSD.org/ports/commit/?id=3D9d241a90370c9410d997be37db5e3a5657bdb4=
ca</a><br>
&gt;<br>
&gt;commit 9d241a90370c9410d997be37db5e3a5657bdb4ca<br>
&gt;Author:=C2=A0 =C2=A0 =C2=A0Adam Weinberger &lt;adamw@FreeBSD.org&gt;<br=
>
&gt;AuthorDate: 2022-10-14 16:50:39 +0000<br>
&gt;Commit:=C2=A0 =C2=A0 =C2=A0Adam Weinberger &lt;adamw@FreeBSD.org&gt;<br=
>
&gt;CommitDate: 2022-10-14 17:07:39 +0000<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 Mk: Add USES=3Dluajit<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 USES=3Dluajit centralizes luajit dependencies via <a href=
=3D"http://bsd.default-versions.mk" rel=3D"noreferrer" target=3D"_blank">bs=
d.default-versions.mk</a><br>
&gt;=C2=A0 =C2=A0 (defaulting to luajit-devel).<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 Ports currently depend on:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 lang/luajit: 42<br>
&gt;=C2=A0 =C2=A0 =C2=A0 lang/luajit-devel: 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 lang/luajit-openresty: 51<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 The difficulty here is that:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 - They all conflict with each other<br>
&gt;=C2=A0 =C2=A0 =C2=A0 - Upstream is very clear about not intending for u=
sers to use the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 version in lang/luajit at all, and wants al=
l luajit users to use<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 lang/luajit-devel<br>
&gt;=C2=A0 =C2=A0 =C2=A0 - luajit-openresty is very aggressive about being =
drop-in compatible<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 with luajit-devel (though not the other dir=
ection)<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 For the vast majority of situations, USES=3Dluajit will b=
e sufficient.<br>
&gt;=C2=A0 =C2=A0 Ports that use openresty&#39;s API additions can specify<=
br>
&gt;=C2=A0 =C2=A0 USES=3Dluajit:openresty.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 I&#39;m adding this into head very early in the 2022Q4 cy=
cle so that there&#39;s<br>
&gt;=C2=A0 =C2=A0 ample time to address the default. It&#39;s a difficult d=
ecision. osa, the<br>
&gt;=C2=A0 =C2=A0 maintainer of luajit and luajit-devel, prefers that the d=
efault be<br>
&gt;=C2=A0 =C2=A0 luajit, but I went the other direction because it&#39;s i=
n direct conflict<br>
&gt;=C2=A0 =C2=A0 with upstream&#39;s clear stated intention. It&#39;s not =
a simple decision; see<br>
&gt;=C2=A0 =C2=A0 the review below for a little discussion on it.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 The TL;DR here is that this defaults to the one luajit ve=
rsion that no<br>
&gt;=C2=A0 =C2=A0 port currently depends on. However, this version is what =
OpenBSD,<br>
&gt;=C2=A0 =C2=A0 Homebrew, Ubuntu, Debian, Fedora, MacPorts, and Arch defa=
ult to (and<br>
&gt;=C2=A0 =C2=A0 none of them even provide the stale version lang/luajit p=
rovides).<br>
&gt;=C2=A0 =C2=A0 This will bring FreeBSD in line with nearly every other O=
S package<br>
&gt;=C2=A0 =C2=A0 system, and with upstream&#39;s intention.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 See also PRs 225342, 257051.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 Reviewed by:=C2=A0 =C2=A0 bapt, tcberner<br>
&gt;=C2=A0 =C2=A0 Approved by:=C2=A0 =C2=A0 portmgr (bapt, tcberner)<br>
&gt;=C2=A0 =C2=A0 Differential Revision:=C2=A0 <a href=3D"https://reviews.f=
reebsd.org/D36947" rel=3D"noreferrer" target=3D"_blank">https://reviews.fre=
ebsd.org/D36947</a><br>
&gt;---<br>
&gt; Mk/Uses/<a href=3D"http://luajit.mk" rel=3D"noreferrer" target=3D"_bla=
nk">luajit.mk</a>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | 27 ++++++++++++++++++=
+++++++++<br>
&gt; Mk/<a href=3D"http://bsd.default-versions.mk" rel=3D"noreferrer" targe=
t=3D"_blank">bsd.default-versions.mk</a> |=C2=A0 9 ++++++---<br>
&gt; 2 files changed, 33 insertions(+), 3 deletions(-)<br>
&gt;<br>
&gt;diff --git a/Mk/Uses/<a href=3D"http://luajit.mk" rel=3D"noreferrer" ta=
rget=3D"_blank">luajit.mk</a> b/Mk/Uses/<a href=3D"http://luajit.mk" rel=3D=
"noreferrer" target=3D"_blank">luajit.mk</a><br>
&gt;new file mode 100644<br>
&gt;index 000000000000..75e54407d484<br>
&gt;--- /dev/null<br>
&gt;+++ b/Mk/Uses/<a href=3D"http://luajit.mk" rel=3D"noreferrer" target=3D=
"_blank">luajit.mk</a><br>
&gt;@@ -0,0 +1,27 @@<br>
&gt;+# Select your favorite luajit runtime<br>
&gt;+# Feature:=C2=A0 =C2=A0 luajit<br>
&gt;+# Usage:=C2=A0 =C2=A0 =C2=A0 USES=3D=C2=A0 luajit[:version]<br>
&gt;+# MAINTAINER: adamw@FreeBSD.org<br>
&gt;+<br>
&gt;+.if !defined(_INCLUDE_USES_LUAJIT_MK)<br>
&gt;+_INCLUDE_USES_LUAJIT_MK=3Dyes<br>
&gt;+<br>
&gt;+.if !empty(luajit_ARGS)<br>
&gt;+LUAJIT_VER=3D=C2=A0 =C2=A0${luajit_ARGS}<br>
&gt;+.else<br>
&gt;+LUAJIT_VER=3D=C2=A0 =C2=A0${LUAJIT_DEFAULT}<br>
&gt;+.endif<br>
&gt;+<br>
&gt;+# When adding a version, please keep the comment in<br>
&gt;+# Mk/<a href=3D"http://bsd.default-versions.mk" rel=3D"noreferrer" tar=
get=3D"_blank">bsd.default-versions.mk</a> in sync<br>
&gt;+VALID_LUAJIT_VER=3D=C2=A0 =C2=A0 =C2=A0luajit luajit-devel luajit-open=
resty<br>
&gt;+<br>
&gt;+.if empty(VALID_LUAJIT_VER:M${LUAJIT_DEFAULT})<br>
&gt;+IGNORE=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0Invalid luajit default version ${L=
UAJIT_DEFAULT}: valid versions are ${VALID_LUAJIT_VER}<br>
&gt;+.elif empty(VALID_LUAJIT_VER:M${LUAJIT_VER})<br>
&gt;+IGNORE=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0Invalid luajit version ${LUAJIT_VE=
R}: valid versions are ${VALID_LUAJIT_VER}<br>
&gt;+.endif<br>
&gt;+<br>
&gt;+LIB_DEPENDS=3D=C2=A0 libluajit-5.1.so:lang/${LUAJIT_VER}<br>
&gt;+<br>
&gt;+.endif<br>
&gt;diff --git a/Mk/<a href=3D"http://bsd.default-versions.mk" rel=3D"noref=
errer" target=3D"_blank">bsd.default-versions.mk</a> b/Mk/<a href=3D"http:/=
/bsd.default-versions.mk" rel=3D"noreferrer" target=3D"_blank">bsd.default-=
versions.mk</a><br>
&gt;index bbf3d5880c70..5a36e0b9c4d0 100644<br>
&gt;--- a/Mk/<a href=3D"http://bsd.default-versions.mk" rel=3D"noreferrer" =
target=3D"_blank">bsd.default-versions.mk</a><br>
&gt;+++ b/Mk/<a href=3D"http://bsd.default-versions.mk" rel=3D"noreferrer" =
target=3D"_blank">bsd.default-versions.mk</a><br>
&gt;@@ -17,9 +17,10 @@ _INCLUDE_BSD_DEFAULT_VERSIONS_MK=3D=C2=A0 =C2=A0yes<=
br>
&gt;<br>
&gt; LOCALBASE?=3D=C2=A0 =C2=A0/usr/local<br>
&gt;<br>
&gt;-.=C2=A0 for lang in APACHE BDB COROSYNC EMACS FIREBIRD FORTRAN FPC GCC=
 GHOSTSCRIPT GL GO \<br>
&gt;-=C2=A0 =C2=A0 =C2=A0 IMAGEMAGICK JAVA LAZARUS LIBRSVG2 LINUX LLVM LUA =
MONO MYSQL NINJA NODEJS PERL5 \<br>
&gt;-=C2=A0 =C2=A0 =C2=A0 PGSQL PHP PYTHON PYTHON2 PYTHON3 RUBY RUST SAMBA =
SSL TCLTK VARNISH<br>
&gt;+.=C2=A0 for lang in APACHE BDB COROSYNC EMACS FIREBIRD FORTRAN FPC GCC=
 \<br>
&gt;+=C2=A0 =C2=A0 =C2=A0 GHOSTSCRIPT GL GO IMAGEMAGICK JAVA LAZARUS LIBRSV=
G2 LINUX LLVM \<br>
&gt;+=C2=A0 =C2=A0 =C2=A0 LUA LUAJIT MONO MYSQL NINJA NODEJS PERL5 PGSQL PH=
P PYTHON \<br>
&gt;+=C2=A0 =C2=A0 =C2=A0 PYTHON2 PYTHON3 RUBY RUST SAMBA SSL TCLTK VARNISH=
<br>
&gt; .=C2=A0 =C2=A0 if defined(${lang}_DEFAULT)<br>
&gt; ERROR+=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;The variable ${lang}_DEFAULT=
 is set and it should only be defined through DEFAULT_VERSIONS+=3D${lang:tl=
}=3D${${lang}_DEFAULT} in /etc/make.conf&quot;<br>
&gt; .=C2=A0 =C2=A0 endif<br>
&gt;@@ -86,6 +87,8 @@ LLVM_DEFAULT?=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A090<br>
&gt; .=C2=A0 endif<br>
&gt; # Possible values: 5.1, 5.2, 5.3, 5.4<br>
&gt; LUA_DEFAULT?=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A05.2<br>
&gt;+# Possible values: luajit, luajit-devel, luajit-openresty<br>
&gt;+LUAJIT_DEFAULT?=3D=C2=A0 =C2=A0 =C2=A0 luajit-devel<br>
&gt; # Possible values: 5.10, 5.20, 6.8<br>
&gt; MONO_DEFAULT=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A05.10<br>
&gt; # Possible values: 5.6, 5.7, 8.0, 10.3m, 10.4m, 10.5m, 5.7p, 5.7w<br>
<br>
Could you make USES=3Dluajit default to openresty on powerpc64 and<br>
powerpc64le? lang/luajit and lang/luajit-devel don&#39;t support those, but=
<br>
openresty fork does.<br>
<br>
I believe aarch64 is in similar situation, except that it&#39;s also<br>
supported by luajit-devel.<br>
</blockquote></div><div><br></div><div><div style=3D"font-family:arial,sans=
-serif" class=3D"gmail_default">Are you positive on that? luajit-devel just=
 has IGNORE_riscv64 (which no luajit works on), and includes a block specif=
ically for powerpc*.</div><div style=3D"font-family:arial,sans-serif" class=
=3D"gmail_default"><br></div><div style=3D"font-family:arial,sans-serif" cl=
ass=3D"gmail_default"># Adam</div><br></div><br>-- <br><div dir=3D"ltr" cla=
ss=3D"gmail_signature">Adam Weinberger<br><a href=3D"mailto:adamw@adamw.org=
" target=3D"_blank">adamw@adamw.org</a> // adamw@FreeBSD.org<br><a href=3D"=
https://www.adamw.org" target=3D"_blank">https://www.adamw.org</a></div></d=
iv>

--00000000000098c5fe05eb0341cc--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAP7rwciL%2BY9d-8Cg9yVyL0sMDRi_4rpnEG5PUKu=twmwfZo-MA>