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 <<a href=3D"mailto:pkubaj@anongoth.pl">pkubaj@anongoth.pl</a>>= 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> >The branch main has been updated by adamw:<br> ><br> >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> ><br> >commit 9d241a90370c9410d997be37db5e3a5657bdb4ca<br> >Author:=C2=A0 =C2=A0 =C2=A0Adam Weinberger <adamw@FreeBSD.org><br= > >AuthorDate: 2022-10-14 16:50:39 +0000<br> >Commit:=C2=A0 =C2=A0 =C2=A0Adam Weinberger <adamw@FreeBSD.org><br= > >CommitDate: 2022-10-14 17:07:39 +0000<br> ><br> >=C2=A0 =C2=A0 Mk: Add USES=3Dluajit<br> ><br> >=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> >=C2=A0 =C2=A0 (defaulting to luajit-devel).<br> ><br> >=C2=A0 =C2=A0 Ports currently depend on:<br> >=C2=A0 =C2=A0 =C2=A0 lang/luajit: 42<br> >=C2=A0 =C2=A0 =C2=A0 lang/luajit-devel: 0<br> >=C2=A0 =C2=A0 =C2=A0 lang/luajit-openresty: 51<br> ><br> >=C2=A0 =C2=A0 The difficulty here is that:<br> >=C2=A0 =C2=A0 =C2=A0 - They all conflict with each other<br> >=C2=A0 =C2=A0 =C2=A0 - Upstream is very clear about not intending for u= sers to use the<br> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 version in lang/luajit at all, and wants al= l luajit users to use<br> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 lang/luajit-devel<br> >=C2=A0 =C2=A0 =C2=A0 - luajit-openresty is very aggressive about being = drop-in compatible<br> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 with luajit-devel (though not the other dir= ection)<br> ><br> >=C2=A0 =C2=A0 For the vast majority of situations, USES=3Dluajit will b= e sufficient.<br> >=C2=A0 =C2=A0 Ports that use openresty's API additions can specify<= br> >=C2=A0 =C2=A0 USES=3Dluajit:openresty.<br> ><br> >=C2=A0 =C2=A0 I'm adding this into head very early in the 2022Q4 cy= cle so that there's<br> >=C2=A0 =C2=A0 ample time to address the default. It's a difficult d= ecision. osa, the<br> >=C2=A0 =C2=A0 maintainer of luajit and luajit-devel, prefers that the d= efault be<br> >=C2=A0 =C2=A0 luajit, but I went the other direction because it's i= n direct conflict<br> >=C2=A0 =C2=A0 with upstream's clear stated intention. It's not = a simple decision; see<br> >=C2=A0 =C2=A0 the review below for a little discussion on it.<br> ><br> >=C2=A0 =C2=A0 The TL;DR here is that this defaults to the one luajit ve= rsion that no<br> >=C2=A0 =C2=A0 port currently depends on. However, this version is what = OpenBSD,<br> >=C2=A0 =C2=A0 Homebrew, Ubuntu, Debian, Fedora, MacPorts, and Arch defa= ult to (and<br> >=C2=A0 =C2=A0 none of them even provide the stale version lang/luajit p= rovides).<br> >=C2=A0 =C2=A0 This will bring FreeBSD in line with nearly every other O= S package<br> >=C2=A0 =C2=A0 system, and with upstream's intention.<br> ><br> >=C2=A0 =C2=A0 See also PRs 225342, 257051.<br> ><br> >=C2=A0 =C2=A0 Reviewed by:=C2=A0 =C2=A0 bapt, tcberner<br> >=C2=A0 =C2=A0 Approved by:=C2=A0 =C2=A0 portmgr (bapt, tcberner)<br> >=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> >---<br> > 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> > 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> > 2 files changed, 33 insertions(+), 3 deletions(-)<br> ><br> >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> >new file mode 100644<br> >index 000000000000..75e54407d484<br> >--- /dev/null<br> >+++ b/Mk/Uses/<a href=3D"http://luajit.mk" rel=3D"noreferrer" target=3D= "_blank">luajit.mk</a><br> >@@ -0,0 +1,27 @@<br> >+# Select your favorite luajit runtime<br> >+# Feature:=C2=A0 =C2=A0 luajit<br> >+# Usage:=C2=A0 =C2=A0 =C2=A0 USES=3D=C2=A0 luajit[:version]<br> >+# MAINTAINER: adamw@FreeBSD.org<br> >+<br> >+.if !defined(_INCLUDE_USES_LUAJIT_MK)<br> >+_INCLUDE_USES_LUAJIT_MK=3Dyes<br> >+<br> >+.if !empty(luajit_ARGS)<br> >+LUAJIT_VER=3D=C2=A0 =C2=A0${luajit_ARGS}<br> >+.else<br> >+LUAJIT_VER=3D=C2=A0 =C2=A0${LUAJIT_DEFAULT}<br> >+.endif<br> >+<br> >+# When adding a version, please keep the comment in<br> >+# Mk/<a href=3D"http://bsd.default-versions.mk" rel=3D"noreferrer" tar= get=3D"_blank">bsd.default-versions.mk</a> in sync<br> >+VALID_LUAJIT_VER=3D=C2=A0 =C2=A0 =C2=A0luajit luajit-devel luajit-open= resty<br> >+<br> >+.if empty(VALID_LUAJIT_VER:M${LUAJIT_DEFAULT})<br> >+IGNORE=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0Invalid luajit default version ${L= UAJIT_DEFAULT}: valid versions are ${VALID_LUAJIT_VER}<br> >+.elif empty(VALID_LUAJIT_VER:M${LUAJIT_VER})<br> >+IGNORE=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0Invalid luajit version ${LUAJIT_VE= R}: valid versions are ${VALID_LUAJIT_VER}<br> >+.endif<br> >+<br> >+LIB_DEPENDS=3D=C2=A0 libluajit-5.1.so:lang/${LUAJIT_VER}<br> >+<br> >+.endif<br> >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> >index bbf3d5880c70..5a36e0b9c4d0 100644<br> >--- a/Mk/<a href=3D"http://bsd.default-versions.mk" rel=3D"noreferrer" = target=3D"_blank">bsd.default-versions.mk</a><br> >+++ b/Mk/<a href=3D"http://bsd.default-versions.mk" rel=3D"noreferrer" = target=3D"_blank">bsd.default-versions.mk</a><br> >@@ -17,9 +17,10 @@ _INCLUDE_BSD_DEFAULT_VERSIONS_MK=3D=C2=A0 =C2=A0yes<= br> ><br> > LOCALBASE?=3D=C2=A0 =C2=A0/usr/local<br> ><br> >-.=C2=A0 for lang in APACHE BDB COROSYNC EMACS FIREBIRD FORTRAN FPC GCC= GHOSTSCRIPT GL GO \<br> >-=C2=A0 =C2=A0 =C2=A0 IMAGEMAGICK JAVA LAZARUS LIBRSVG2 LINUX LLVM LUA = MONO MYSQL NINJA NODEJS PERL5 \<br> >-=C2=A0 =C2=A0 =C2=A0 PGSQL PHP PYTHON PYTHON2 PYTHON3 RUBY RUST SAMBA = SSL TCLTK VARNISH<br> >+.=C2=A0 for lang in APACHE BDB COROSYNC EMACS FIREBIRD FORTRAN FPC GCC= \<br> >+=C2=A0 =C2=A0 =C2=A0 GHOSTSCRIPT GL GO IMAGEMAGICK JAVA LAZARUS LIBRSV= G2 LINUX LLVM \<br> >+=C2=A0 =C2=A0 =C2=A0 LUA LUAJIT MONO MYSQL NINJA NODEJS PERL5 PGSQL PH= P PYTHON \<br> >+=C2=A0 =C2=A0 =C2=A0 PYTHON2 PYTHON3 RUBY RUST SAMBA SSL TCLTK VARNISH= <br> > .=C2=A0 =C2=A0 if defined(${lang}_DEFAULT)<br> > ERROR+=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0"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"<br> > .=C2=A0 =C2=A0 endif<br> >@@ -86,6 +87,8 @@ LLVM_DEFAULT?=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A090<br> > .=C2=A0 endif<br> > # Possible values: 5.1, 5.2, 5.3, 5.4<br> > LUA_DEFAULT?=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A05.2<br> >+# Possible values: luajit, luajit-devel, luajit-openresty<br> >+LUAJIT_DEFAULT?=3D=C2=A0 =C2=A0 =C2=A0 luajit-devel<br> > # Possible values: 5.10, 5.20, 6.8<br> > MONO_DEFAULT=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A05.10<br> > # 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't support those, but= <br> openresty fork does.<br> <br> I believe aarch64 is in similar situation, except that it'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>