git: 9d241a90370c - main - Mk: Add USES=luajit
Date: Fri, 14 Oct 2022 17:07:44 UTC
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