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:38:44 UTC
On Fri, Oct 14, 2022 at 1:34 PM Piotr Kubaj <pkubaj@anongoth.pl> wrote: > On 22-10-14 13:01:25, Adam Weinberger wrote: > >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*. > It was originally added in > > https://cgit.freebsd.org/ports/commit/lang/luajit/Makefile?id=d2ac3fee9c894bb6f10ab489a4b165f974fc1b03 > . > The review (at https://reviews.freebsd.org/D13804) says: > Successfully built on powerpc. Does not build for powerpc64, though. > Later, that was copied to luajit-devel. > Here's the most recent build on powerpc64le: > > https://talos.anongoth.pl/data/latest-per-pkg/luajit-devel/2.1.0.20220815/powerpc64le-default.log > So that: > .if ${ARCH:Mpowerpc*} || ${ARCH:Mmips*} || ${ARCH:Msparc*} > can be replaced by just: > .if ${ARCH} == powerpc || ${ARCH} == powerpcspe > > If you wish, the mips* and sparc64 parts can be added too, but I don't > think there are any users left. > Thank you!! I'll put a test for ${ARCH:Mpowerpc64*} in bsd.default-versions.mk. # Adam > > > > ># Adam > > > > > >-- > >Adam Weinberger > >adamw@adamw.org // adamw@FreeBSD.org > >https://www.adamw.org > -- Adam Weinberger adamw@adamw.org // adamw@FreeBSD.org https://www.adamw.org