Re: git: 9d241a90370c - main - Mk: Add USES=luajit
Date: Fri, 14 Oct 2022 18:58:33 UTC
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.