Re: git: 9d241a90370c - main - Mk: Add USES=luajit
- Reply: Piotr Kubaj : "Re: git: 9d241a90370c - main - Mk: Add USES=luajit"
- In reply to: Piotr Kubaj : "Re: git: 9d241a90370c - main - Mk: Add USES=luajit"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 14 Oct 2022 19:01:25 UTC
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