NetBSD Problem Report #57604

From www@netbsd.org  Tue Sep  5 15:36:32 2023
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id DE9531A9239
	for <gnats-bugs@gnats.NetBSD.org>; Tue,  5 Sep 2023 15:36:32 +0000 (UTC)
Message-Id: <20230905153631.3BBD51A923A@mollari.NetBSD.org>
Date: Tue,  5 Sep 2023 15:36:31 +0000 (UTC)
From: jonthn+pkgsrc@pinacea.com
Reply-To: jonthn+pkgsrc@pinacea.com
To: gnats-bugs@NetBSD.org
Subject: LuaJIT2 use rolling release, patch to update pkgsrc package
X-Send-Pr-Version: www-1.0

>Number:         57604
>Category:       pkg
>Synopsis:       LuaJIT2 use rolling release, patch to update pkgsrc package
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Tue Sep 05 15:40:00 +0000 2023
>Last-Modified:  Mon Jan 01 17:35:00 +0000 2024
>Originator:     jonathan buschmann
>Release:        current
>Organization:
>Environment:
>Description:
Luajit2 as being packaged right now, is not working correctly see for example :

NetBSD Problem Report #57414

But recently (2023-08-23) LuaJIT announced to use `rolling release`, see https://www.freelists.org/post/luajit/LuaJIT-uses-rolling-releases

So the attached patch does just that with one minor modification; instead of using the _timestamp_ for the version identifier it uses the commit hash.
It has also been sent upstream (https://github.com/LuaJIT/LuaJIT/pull/1073)
As based on this comment (https://github.com/LuaJIT/LuaJIT/issues/1053#issuecomment-1689000029) it could be possible to report a bug against a commit hash.

Feel free to use a more commit and update the DISTNAME accordingly.
>How-To-Repeat:

>Fix:
diff --git c/lang/LuaJIT2/Makefile i/lang/LuaJIT2/Makefile
index 5a493451d75..07fbc431193 100644
--- c/lang/LuaJIT2/Makefile
+++ i/lang/LuaJIT2/Makefile
@@ -1,11 +1,13 @@
 # $NetBSD: Makefile,v 1.16 2020/11/06 12:15:53 nia Exp $
 #

-DISTNAME=	LuaJIT-2.0.5
-PKGNAME=	${DISTNAME:S/LuaJIT/LuaJIT2/}
-PKGREVISION=	2
+DISTNAME=	luajit-v2.1-20230829
+PKGNAME=	${DISTNAME:C/luajit-v([.0-9]+)-(.*)/LuaJIT2-\1.0.\2/}
 CATEGORIES=	lang lua
-MASTER_SITES=	http://luajit.org/download/
+MASTER_SITES=	${MASTER_SITE_GITHUB:=LuaJIT/}
+
+GITHUB_PROJECT=	LuaJIT
+GITHUB_TAG=	83954100dba9fc0cf5eeaf122f007df35ec9a604

 MAINTAINER=	pkgsrc-users@NetBSD.org
 HOMEPAGE=	https://luajit.org/
@@ -28,6 +30,22 @@ PTHREAD_AUTO_VARS=	yes

 .include "../../mk/bsd.prefs.mk"

+post-extract:
+	${ECHO} ${GITHUB_TAG} > ${WRKSRC}/.relver
+
+NOT_PAX_MPROTECT_SAFE+=	bin/luajit-${PKGVERSION}
+
+MAKE_ENV+=		PREREL=-${PKGVERSION}
+BUILD_TARGET=		amalg
+CFLAGS+=		-DLUAJIT_ENABLE_LUA52COMPAT
+
+.if ${OPSYS} == "Darwin" && ${OS_VERSION:R} >= 19
+CFLAGS.Darwin+=		-fno-stack-check
+MAKE_ENV+=		MACOSX_DEPLOYMENT_TARGET="${OSX_VERSION}"
+.endif
+
+PLIST_SUBST=		COMMITHASH=${GITHUB_TAG}
+
 # Upstream doesn't support building shared libs on SunOS
 # http://www.freelists.org/post/luajit/LuaJIT-on-solaris-64
 PLIST_VARS+=		shared
diff --git c/lang/LuaJIT2/PLIST i/lang/LuaJIT2/PLIST
index f02164a6134..31c1e44e976 100644
--- c/lang/LuaJIT2/PLIST
+++ i/lang/LuaJIT2/PLIST
@@ -1,28 +1,36 @@
-@comment $NetBSD: PLIST,v 1.3 2016/06/21 16:40:10 fhajny Exp $
+@comment $NetBSD$
 bin/luajit
-bin/luajit-${PKGVERSION}
-include/luajit-2.0/lauxlib.h
-include/luajit-2.0/lua.h
-include/luajit-2.0/lua.hpp
-include/luajit-2.0/luaconf.h
-include/luajit-2.0/luajit.h
-include/luajit-2.0/lualib.h
+bin/luajit-2.1
+include/luajit-2.1/lauxlib.h
+include/luajit-2.1/lua.h
+include/luajit-2.1/lua.hpp
+include/luajit-2.1/luaconf.h
+include/luajit-2.1/luajit.h
+include/luajit-2.1/lualib.h
+lib/libluajit-5.1.2.1.${COMMITHASH}.dylib
+lib/libluajit-5.1.2.dylib
 lib/libluajit-5.1.a
-${PLIST.shared}lib/libluajit-5.1.so
-${PLIST.shared}lib/libluajit-5.1.so.2
-${PLIST.shared}lib/libluajit-5.1.so.${PKGVERSION}
+lib/libluajit-5.1.dylib
 lib/pkgconfig/luajit.pc
-share/luajit-${PKGVERSION}/jit/bc.lua
-share/luajit-${PKGVERSION}/jit/bcsave.lua
-share/luajit-${PKGVERSION}/jit/dis_arm.lua
-share/luajit-${PKGVERSION}/jit/dis_mips.lua
-share/luajit-${PKGVERSION}/jit/dis_mipsel.lua
-share/luajit-${PKGVERSION}/jit/dis_ppc.lua
-share/luajit-${PKGVERSION}/jit/dis_x64.lua
-share/luajit-${PKGVERSION}/jit/dis_x86.lua
-share/luajit-${PKGVERSION}/jit/dump.lua
-share/luajit-${PKGVERSION}/jit/v.lua
-share/luajit-${PKGVERSION}/jit/vmdef.lua
 man/man1/luajit.1
+share/luajit-2.1/jit/bc.lua
+share/luajit-2.1/jit/bcsave.lua
+share/luajit-2.1/jit/dis_arm.lua
+share/luajit-2.1/jit/dis_arm64.lua
+share/luajit-2.1/jit/dis_arm64be.lua
+share/luajit-2.1/jit/dis_mips.lua
+share/luajit-2.1/jit/dis_mips64.lua
+share/luajit-2.1/jit/dis_mips64el.lua
+share/luajit-2.1/jit/dis_mips64r6.lua
+share/luajit-2.1/jit/dis_mips64r6el.lua
+share/luajit-2.1/jit/dis_mipsel.lua
+share/luajit-2.1/jit/dis_ppc.lua
+share/luajit-2.1/jit/dis_x64.lua
+share/luajit-2.1/jit/dis_x86.lua
+share/luajit-2.1/jit/dump.lua
+share/luajit-2.1/jit/p.lua
+share/luajit-2.1/jit/v.lua
+share/luajit-2.1/jit/vmdef.lua
+share/luajit-2.1/jit/zone.lua
 @pkgdir share/lua/5.1
 @pkgdir lib/lua/5.1
diff --git c/lang/LuaJIT2/distinfo i/lang/LuaJIT2/distinfo
index 9c095926fb6..754eb7abf1e 100644
--- c/lang/LuaJIT2/distinfo
+++ i/lang/LuaJIT2/distinfo
@@ -1,10 +1,7 @@
 $NetBSD: distinfo,v 1.13 2021/10/26 10:51:29 nia Exp $

-BLAKE2s (LuaJIT-2.0.5.tar.gz) = 54f7b86f27f588160895a8e076bb11d63eb60bdad87c9e573d627ae03ea5319d
-SHA512 (LuaJIT-2.0.5.tar.gz) = 2636675602b4a060b0571c05220db2061dd2f38568e35b2be346a0f5e3128d87057d11d3d0d7567d8cc4e0817b5e4cf2c52a17a48065520962b157816465a9fe
-Size (LuaJIT-2.0.5.tar.gz) = 849845 bytes
-SHA1 (patch-Makefile) = edea30d017c9d2938d951bfdee88020906945aee
-SHA1 (patch-src_Makefile) = d7236260dc17f470d7d6e41a57a22dcd3a501c28
-SHA1 (patch-src_lj__arch.h) = 4c34706db4c678b368bb3e38b07505abde01e590
-SHA1 (patch-src_lj__ccallback.c) = 8032bc451a504ae9538fb0ae4cc1ee729ede3a70
-SHA1 (patch-src_lj__mcode.c) = c150e0b07ab441e983ace21e0e813fd4334290b5
+BLAKE2s (luajit-v2.1-20230829-83954100dba9fc0cf5eeaf122f007df35ec9a604.tar.gz) = c123a03241b5dc51f8667b780da6ca94b35cd2f75ce6054cfb698bd73630cf2a
+SHA512 (luajit-v2.1-20230829-83954100dba9fc0cf5eeaf122f007df35ec9a604.tar.gz) = e3436fbc47a5467b6ad54389051849b3a9d0709fa98de9c797aea52dc41975b42a44b68fc5498efb8434ea42b3ef3f78792b10fb09ff13903cb307f35df5ed14
+Size (luajit-v2.1-20230829-83954100dba9fc0cf5eeaf122f007df35ec9a604.tar.gz) = 1074786 bytes
+SHA1 (patch-Makefile) = 89904974c7e2737d5600c78669d0bdbf0de4cf0a
+SHA1 (patch-src_host_genversion.lua) = bdc80f052b89d2e89a47e62bc74bd4cd279ae946
diff --git c/lang/LuaJIT2/patches/patch-Makefile i/lang/LuaJIT2/patches/patch-Makefile
index aac8fcb70dc..885bcd81165 100644
--- c/lang/LuaJIT2/patches/patch-Makefile
+++ i/lang/LuaJIT2/patches/patch-Makefile
@@ -2,9 +2,9 @@ $NetBSD: patch-Makefile,v 1.6 2017/05/29 21:47:31 alnsn Exp $

 Fix installation.

---- Makefile.orig	2017-05-01 18:11:00.000000000 +0000
-+++ Makefile
-@@ -24,7 +24,6 @@ ABIVER=  5.1
+--- Makefile	2023-08-29 08:21:51.000000000 +0800
++++ Makefile	2023-08-29 10:20:21.000000000 +0800
+@@ -30,7 +30,6 @@
  # Change the installation path as needed. This automatically adjusts
  # the paths in src/luaconf.h, too. Note: PREFIX must be an absolute path!
  #
@@ -12,7 +12,7 @@ Fix installation.
  export MULTILIB= lib
  ##############################################################################

-@@ -40,7 +39,7 @@ INSTALL_LMODD= $(INSTALL_SHARE)/lua
+@@ -47,10 +46,10 @@
  INSTALL_LMOD= $(INSTALL_LMODD)/$(ABIVER)
  INSTALL_CMODD= $(INSTALL_LIB)/lua
  INSTALL_CMOD= $(INSTALL_CMODD)/$(ABIVER)
@@ -20,13 +20,17 @@ Fix installation.
 +INSTALL_MAN= $(DPREFIX)/${PKGMANDIR}/man1
  INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig

- INSTALL_TNAME= luajit-$(VERSION)
-@@ -74,7 +73,7 @@ SYMLINK= ln -sf
+-INSTALL_TNAME= luajit-$(VERSION)
++INSTALL_TNAME= luajit-$(MMVERSION)
+ INSTALL_TSYMNAME= luajit
+ INSTALL_ANAME= libluajit-$(ABIVER).a
+ INSTALL_SOSHORT1= libluajit-$(ABIVER).so
+@@ -81,7 +80,7 @@
  INSTALL_X= install -m 0755
  INSTALL_F= install -m 0644
  UNINSTALL= $(RM)
--LDCONFIG= ldconfig -n
+-LDCONFIG= ldconfig -n 2>/dev/null
 +LDCONFIG= true
  SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|" \
-             -e "s|^multilib=.*|multilib=$(MULTILIB)|"
- 
+ 	    -e "s|^multilib=.*|multilib=$(MULTILIB)|" \
+ 	    -e "s|^relver=.*|relver=$(RELVER)|"
diff --git c/lang/LuaJIT2/patches/patch-src_Makefile i/lang/LuaJIT2/patches/patch-src_Makefile
deleted file mode 100644
index 85dfba636cb..00000000000
--- c/lang/LuaJIT2/patches/patch-src_Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD: patch-src_Makefile,v 1.2 2017/05/29 21:47:31 alnsn Exp $
-
-Fix building on OS X.
-
---- src/Makefile.orig	2017-05-01 18:11:00.000000000 +0000
-+++ src/Makefile
-@@ -297,9 +297,6 @@ ifeq (,$(shell $(TARGET_CC) -o /dev/null
-   TARGET_XCFLAGS+= -fno-stack-protector
- endif
- ifeq (Darwin,$(TARGET_SYS))
--  ifeq (,$(MACOSX_DEPLOYMENT_TARGET))
--    export MACOSX_DEPLOYMENT_TARGET=10.4
--  endif
-   TARGET_STRIP+= -x
-   TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC
-   TARGET_DYNXLDOPTS=
diff --git c/lang/LuaJIT2/patches/patch-src_host_genversion.lua i/lang/LuaJIT2/patches/patch-src_host_genversion.lua
new file mode 100644
index 00000000000..c3e89f9fd2e
--- /dev/null
+++ i/lang/LuaJIT2/patches/patch-src_host_genversion.lua
@@ -0,0 +1,15 @@
+$NetBSD$
+
+As commit hash is being used to report the version needs to allow a-z
+
+--- src/host/genversion.lua	2023-08-29 10:28:45.000000000 +0800
++++ src/host/genversion.lua	2023-08-29 10:28:50.000000000 +0800
+@@ -29,7 +29,7 @@
+ end
+ 
+ local text = file_read(FILE_ROLLING_H)
+-local relver = file_read(FILE_RELVER_TXT):match("(%d+)")
++local relver = file_read(FILE_RELVER_TXT):match("(%w+)")
+ 
+ if relver then
+   text = text:gsub("ROLLING", relver)
diff --git c/lang/LuaJIT2/patches/patch-src_lj__arch.h i/lang/LuaJIT2/patches/patch-src_lj__arch.h
deleted file mode 100644
index 55835241d1e..00000000000
--- c/lang/LuaJIT2/patches/patch-src_lj__arch.h
+++ /dev/null
@@ -1,32 +0,0 @@
-$NetBSD: patch-src_lj__arch.h,v 1.1 2018/06/02 20:01:21 he Exp $
-
-Fix the test for endianness so that NetBSD/powerpc isn't
-mis-categorized as little-endian only because _LITTLE_ENDIAN
-is defined -- what matters on NetBSD is the value of _BYTE_ORDER.
-
---- src/lj_arch.h.orig	2017-05-01 18:11:00.000000000 +0000
-+++ src/lj_arch.h
-@@ -339,12 +339,21 @@
- #if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE)
- #error "No support for PowerPC CPUs without double-precision FPU"
- #endif
--#if defined(_LITTLE_ENDIAN)
--#error "No support for little-endian PowerPC"
-+
-+#if defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN)
-+# if (_BYTE_ORDER == _LITTLE_ENDIAN)
-+#  error "No support for little-endian PowerPC"
-+# endif
-+#else
-+# if defined(_LITTLE_ENDIAN)
-+#  error "No support for little-endian PowerPC"
-+# endif
- #endif
-+
- #if defined(_LP64)
- #error "No support for PowerPC 64 bit mode"
- #endif
-+
- #elif LJ_TARGET_MIPS
- #if defined(__mips_soft_float)
- #error "No support for MIPS CPUs without FPU"
diff --git c/lang/LuaJIT2/patches/patch-src_lj__ccallback.c i/lang/LuaJIT2/patches/patch-src_lj__ccallback.c
deleted file mode 100644
index acfab0a0d84..00000000000
--- c/lang/LuaJIT2/patches/patch-src_lj__ccallback.c
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD: patch-src_lj__ccallback.c,v 1.1 2020/11/06 12:15:53 nia Exp $
-
-Make this PaX-MPROTECT safe on NetBSD.
-
---- src/lj_ccallback.c.orig	2017-05-01 18:11:00.000000000 +0000
-+++ src/lj_ccallback.c
-@@ -228,8 +228,12 @@ static void callback_mcode_new(CTState *
-   if (!p)
-     lj_err_caller(cts->L, LJ_ERR_FFI_CBACKOV);
- #elif LJ_TARGET_POSIX
--  p = mmap(NULL, sz, (PROT_READ|PROT_WRITE), MAP_PRIVATE|MAP_ANONYMOUS,
--	   -1, 0);
-+#ifdef PROT_MPROTECT
-+  p = mmap(NULL, sz, (PROT_READ|PROT_WRITE) | PROT_MPROTECT(PROT_EXEC),
-+#else
-+  p = mmap(NULL, sz, (PROT_READ|PROT_WRITE),
-+#endif
-+           MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
-   if (p == MAP_FAILED)
-     lj_err_caller(cts->L, LJ_ERR_FFI_CBACKOV);
- #else
diff --git c/lang/LuaJIT2/patches/patch-src_lj__mcode.c i/lang/LuaJIT2/patches/patch-src_lj__mcode.c
deleted file mode 100644
index 647e6ac3bd4..00000000000
--- c/lang/LuaJIT2/patches/patch-src_lj__mcode.c
+++ /dev/null
@@ -1,27 +0,0 @@
-$NetBSD: patch-src_lj__mcode.c,v 1.1 2020/11/06 12:15:53 nia Exp $
-
-Make PaX-MPROTECT safe for NetBSD.
-
---- src/lj_mcode.c.orig	2017-05-01 18:11:00.000000000 +0000
-+++ src/lj_mcode.c
-@@ -99,7 +99,11 @@ static int mcode_setprot(void *p, size_t
- 
- static void *mcode_alloc_at(jit_State *J, uintptr_t hint, size_t sz, int prot)
- {
-+#ifdef PROT_MPROTECT
-+  void *p = mmap((void *)hint, sz, prot | PROT_MPROTECT(MCPROT_RWX), MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
-+#else
-   void *p = mmap((void *)hint, sz, prot, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
-+#endif
-   if (p == MAP_FAILED) {
-     if (!hint) lj_trace_err(J, LJ_TRERR_MCODEAL);
-     p = NULL;
-@@ -255,7 +259,7 @@ static void *mcode_alloc(jit_State *J, s
- /* All memory addresses are reachable by relative jumps. */
- static void *mcode_alloc(jit_State *J, size_t sz)
- {
--#ifdef __OpenBSD__
-+#if defined(__NetBSD__) || defined(__OpenBSD__)
-   /* Allow better executable memory allocation for OpenBSD W^X mode. */
-   void *p = mcode_alloc_at(J, 0, sz, MCPROT_RUN);
-   if (p && mcode_setprot(p, sz, MCPROT_GEN)) {

>Audit-Trail:
From: nia <nia@NetBSD.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: pkg/57604: LuaJIT2 use rolling release, patch to update pkgsrc
 package
Date: Tue, 5 Sep 2023 15:58:06 +0000

 A few comments:

 - For rolling release packages, the version number should be
   x.y.z.YYYYMMDD.
 - Your PLIST will result in the package being broken on
   everything except macOS. Ideally, it should be fixed to
   build with libtool, like the other Lua interpreters.
 - Deleting the MPROTECT-safety patches is quite rude.
   pkgsrc packages should not suddenly become less secure
   by surprise.

From: jonathan buschmann <jonthn@pinacea.com>
To: gnats-bugs@netbsd.org
Cc: pkg-manager@netbsd.org, gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org,
 jonthn+pkgsrc@pinacea.com
Subject: Re: pkg/57604: LuaJIT2 use rolling release, patch to update pkgsrc package
Date: Wed, 06 Sep 2023 00:14:43 +0800

 On 6 Sep 2023, at 0:00, nia wrote:

 > The following reply was made to PR pkg/57604; it has been noted by GNATS.
 >
 > From: nia <nia@NetBSD.org>
 > To: gnats-bugs@NetBSD.org
 > Cc:
 > Subject: Re: pkg/57604: LuaJIT2 use rolling release, patch to update pkgsrc
 >  package
 > Date: Tue, 5 Sep 2023 15:58:06 +0000
 >
 >  A few comments:
 >
 >  - For rolling release packages, the version number should be
 >    x.y.z.YYYYMMDD.

 OK

 >  - Your PLIST will result in the package being broken on
 >    everything except macOS. Ideally, it should be fixed to
 >    build with libtool, like the other Lua interpreters.

 I’m sorry I only have a macOS system available.

 >  - Deleting the MPROTECT-safety patches is quite rude.
 >    pkgsrc packages should not suddenly become less secure
 >    by surprise.

 You are right.

From: jonathan buschmann <jonthn++pkgsrc@pinacea.com>
To: gnats-bugs@netbsd.org
Cc: pkg-manager@netbsd.org, gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org,
 jonthn+pkgsrc@pinacea.com
Subject: Re: pkg/57604: LuaJIT2 use rolling release, patch to update pkgsrc package
Date: Mon, 01 Jan 2024 18:31:40 +0100

 --=_MailMate_91265527-FE18-4CD4-8297-D5495A238284_=
 Content-Type: multipart/alternative;
  boundary="=_MailMate_1F03A892-24FA-4B52-B84D-58F7D63DCA60_="
 Content-Transfer-Encoding: 8bit


 --=_MailMate_1F03A892-24FA-4B52-B84D-58F7D63DCA60_=
 Content-Type: text/plain; charset=UTF-8; format=flowed
 Content-Transfer-Encoding: 8bit

 Hello,

 Attached is an update patch for LuaJIT2

 - It now follows the versioning of LuaJIT2 (using timestamp of commit 
 date) that’s why you will see a _special_ target to retrieve this one 
 using a local git copy
 - Sadly I still only have a macOS system for the PLIST, I did not try to 
 use libtool as you suggested as I mostly don’t know this well enough.
 - When I tried to update this, if my memory serves me well I based this 
 on the tip/LuaJIT2 but still as of now the sources contains (upstream) 
 the modifications for MPROTECT so no need for the patches.

 Best regards,


 On 5 Sep 2023, at 18:14, jonathan buschmann wrote:

 > On 6 Sep 2023, at 0:00, nia wrote:
 >
 >> The following reply was made to PR pkg/57604; it has been noted by 
 >> GNATS.
 >>
 >> From: nia <nia@NetBSD.org>
 >> To: gnats-bugs@NetBSD.org
 >> Cc:
 >> Subject: Re: pkg/57604: LuaJIT2 use rolling release, patch to update 
 >> pkgsrc
 >>  package
 >> Date: Tue, 5 Sep 2023 15:58:06 +0000
 >>
 >>  A few comments:
 >>
 >>  - For rolling release packages, the version number should be
 >>    x.y.z.YYYYMMDD.
 >
 > OK
 >
 >>  - Your PLIST will result in the package being broken on
 >>    everything except macOS. Ideally, it should be fixed to
 >>    build with libtool, like the other Lua interpreters.
 >
 > I’m sorry I only have a macOS system available.
 >
 >>  - Deleting the MPROTECT-safety patches is quite rude.
 >>    pkgsrc packages should not suddenly become less secure
 >>    by surprise.
 >
 > You are right.
 --=_MailMate_1F03A892-24FA-4B52-B84D-58F7D63DCA60_=
 Content-Type: text/html; charset=UTF-8
 Content-Transfer-Encoding: quoted-printable

 <!DOCTYPE html>
 <html>
 <head>
 <meta http-equiv=3D"Content-Type" content=3D"text/xhtml; charset=3Dutf-8"=
 >
 </head>
 <body><div style=3D"font-family: sans-serif;"><div class=3D"markdown" sty=
 le=3D"white-space: normal;">
 <p dir=3D"auto">Hello,</p>
 <p dir=3D"auto">Attached is an update patch for LuaJIT2</p>
 <ul>
 <li>It now follows the versioning of LuaJIT2 (using timestamp of commit d=
 ate) that=E2=80=99s why you will see a special target to retriev=
 e this one using a local git copy</li>
 <li>Sadly I still only have a macOS system for the PLIST, I did not try t=
 o use libtool as you suggested as I mostly don=E2=80=99t know this well e=
 nough.</li>
 <li>When I tried to update this, if my memory serves me well I based this=
  on the tip/LuaJIT2 but still as of now the sources contains (upstream) t=
 he modifications for MPROTECT so no need for the patches.</li>
 </ul>
 <p dir=3D"auto">Best regards,</p>
 <p dir=3D"auto">On 5 Sep 2023, at 18:14, jonathan buschmann wrote:</p>
 </div><div class=3D"plaintext" style=3D"white-space: normal;"><blockquote=
  style=3D"margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777=
 777; color: #777777;"><p dir=3D"auto">On 6 Sep 2023, at 0:00, nia wrote:<=
 /p>
 <blockquote style=3D"margin: 0 0 5px; padding-left: 5px; border-left: 2px=
  solid #777777; border-left-color: #999999; color: #999999;"><p dir=3D"au=
 to">The following reply was made to PR pkg/57604; it has been noted by GN=
 ATS.</p>
 <p dir=3D"auto">From: nia &lt;nia@NetBSD.org&gt;
 <br>
 To: gnats-bugs@NetBSD.org
 <br>
 Cc:
 <br>
 Subject: Re: pkg/57604: LuaJIT2 use rolling release, patch to update pkgs=
 rc
 <br>
  package
 <br>
 Date: Tue, 5 Sep 2023 15:58:06 +0000</p>
 <p dir=3D"auto"> A few comments:</p>
 <p dir=3D"auto"> - For rolling release packages, the version number shoul=
 d be
 <br>
    x.y.z.YYYYMMDD.</p>
 </blockquote><p dir=3D"auto">OK</p>
 <blockquote style=3D"margin: 0 0 5px; padding-left: 5px; border-left: 2px=
  solid #777777; border-left-color: #999999; color: #999999;"><p dir=3D"au=
 to"> - Your PLIST will result in the package being broken on
 <br>
    everything except macOS. Ideally, it should be fixed to
 <br>
    build with libtool, like the other Lua interpreters.</p>
 </blockquote><p dir=3D"auto">I=E2=80=99m sorry I only have a macOS system=
  available.</p>
 <blockquote style=3D"margin: 0 0 5px; padding-left: 5px; border-left: 2px=
  solid #777777; border-left-color: #999999; color: #999999;"><p dir=3D"au=
 to"> - Deleting the MPROTECT-safety patches is quite rude.
 <br>
    pkgsrc packages should not suddenly become less secure
 <br>
    by surprise.</p>
 </blockquote><br></blockquote></div>
 <div class=3D"markdown" style=3D"white-space: normal;">
 <blockquote style=3D"margin: 0 0 5px; padding-left: 5px; border-left: 2px=
  solid #777777; color: #777777;">
 <p dir=3D"auto">You are right.</p>
 </blockquote>

 </div></div></body>

 </html>

 --=_MailMate_1F03A892-24FA-4B52-B84D-58F7D63DCA60_=--

 --=_MailMate_91265527-FE18-4CD4-8297-D5495A238284_=
 Content-Disposition: attachment; filename="LuaJIT2.diff"
 Content-Type: text/plain
 Content-Transfer-Encoding: quoted-printable

 diff --git i/lang/LuaJIT2/Makefile w/lang/LuaJIT2/Makefile
 index 5a493451d75..8b7bd8df640 100644
 --- i/lang/LuaJIT2/Makefile
 +++ w/lang/LuaJIT2/Makefile
 @@ -1,11 +1,14 @@
  # $NetBSD: Makefile,v 1.16 2020/11/06 12:15:53 nia Exp $
  #
  =

 -DISTNAME=3D	LuaJIT-2.0.5
 -PKGNAME=3D	${DISTNAME:S/LuaJIT/LuaJIT2/}
 -PKGREVISION=3D	2
 +LUAJIT_TIMESTAMP=3D	1703358377
 +DISTNAME=3D	luajit-v2.1.${LUAJIT_TIMESTAMP}
 +PKGNAME=3D	${DISTNAME:C/luajit-v([.0-9]+)-(.*)/LuaJIT2-\1.0.\2/}
  CATEGORIES=3D	lang lua
 -MASTER_SITES=3D	http://luajit.org/download/
 +MASTER_SITES=3D	${MASTER_SITE_GITHUB:=3DLuaJIT/}
 +
 +GITHUB_PROJECT=3D	LuaJIT
 +GITHUB_TAG=3D	c525bcb9024510cad9e170e12b6209aedb330f83
  =

  MAINTAINER=3D	pkgsrc-users@NetBSD.org
  HOMEPAGE=3D	https://luajit.org/
 @@ -28,6 +31,20 @@ PTHREAD_AUTO_VARS=3D	yes
  =

  .include "../../mk/bsd.prefs.mk"
  =

 +post-extract:
 +	${ECHO} ${LUAJIT_TIMESTAMP} > ${WRKSRC}/.relver
 +
 +MAKE_ENV+=3D		PREREL=3D-${PKGVERSION}
 +BUILD_TARGET=3D		amalg
 +CFLAGS+=3D		-DLUAJIT_ENABLE_LUA52COMPAT
 +
 +.if ${OPSYS} =3D=3D "Darwin" && ${OS_VERSION:R} >=3D 19
 +CFLAGS.Darwin+=3D		-fno-stack-check
 +MAKE_ENV+=3D		MACOSX_DEPLOYMENT_TARGET=3D"${OSX_VERSION}"
 +.endif
 +
 +PLIST_SUBST=3D		LUAJIT_TIMESTAMP=3D${LUAJIT_TIMESTAMP}
 +
  # Upstream doesn't support building shared libs on SunOS
  # http://www.freelists.org/post/luajit/LuaJIT-on-solaris-64
  PLIST_VARS+=3D		shared
 @@ -38,3 +55,10 @@ PRINT_PLIST_AWK+=3D	{if ($$0 ~ /\.so/) {$$0 =3D "$${PL=
 IST.shared}" $$0;}}
  =

  .include "../../mk/pthread.buildlink3.mk"
  .include "../../mk/bsd.pkg.mk"
 +
 +timestamp:
 +	${RUN} git --version > /dev/null 2>&1
 +	${RUN} git clone https://github.com/LuaJIT/LuaJIT ${.TARGET}.tmp > /dev=
 /null 2>&1
 +	@${ECHO_MSG} "Please update timestamp in Makefile with : " \
 +		$$(cd ${.TARGET}.tmp && git show -s --format=3D%ct)
 +	${ECHO} ${RM} -rf ${.TARGET}.tmp
 diff --git i/lang/LuaJIT2/PLIST w/lang/LuaJIT2/PLIST
 index f02164a6134..817ff2d4fdc 100644
 --- i/lang/LuaJIT2/PLIST
 +++ w/lang/LuaJIT2/PLIST
 @@ -1,28 +1,36 @@
 -@comment $NetBSD: PLIST,v 1.3 2016/06/21 16:40:10 fhajny Exp $
 +@comment $NetBSD$
  bin/luajit
 -bin/luajit-${PKGVERSION}
 -include/luajit-2.0/lauxlib.h
 -include/luajit-2.0/lua.h
 -include/luajit-2.0/lua.hpp
 -include/luajit-2.0/luaconf.h
 -include/luajit-2.0/luajit.h
 -include/luajit-2.0/lualib.h
 +bin/luajit-2.1
 +include/luajit-2.1/lauxlib.h
 +include/luajit-2.1/lua.h
 +include/luajit-2.1/lua.hpp
 +include/luajit-2.1/luaconf.h
 +include/luajit-2.1/luajit.h
 +include/luajit-2.1/lualib.h
 +lib/libluajit-5.1.2.1.${LUAJIT_TIMESTAMP}.dylib
 +lib/libluajit-5.1.2.dylib
  lib/libluajit-5.1.a
 -${PLIST.shared}lib/libluajit-5.1.so
 -${PLIST.shared}lib/libluajit-5.1.so.2
 -${PLIST.shared}lib/libluajit-5.1.so.${PKGVERSION}
 +lib/libluajit-5.1.dylib
  lib/pkgconfig/luajit.pc
 -share/luajit-${PKGVERSION}/jit/bc.lua
 -share/luajit-${PKGVERSION}/jit/bcsave.lua
 -share/luajit-${PKGVERSION}/jit/dis_arm.lua
 -share/luajit-${PKGVERSION}/jit/dis_mips.lua
 -share/luajit-${PKGVERSION}/jit/dis_mipsel.lua
 -share/luajit-${PKGVERSION}/jit/dis_ppc.lua
 -share/luajit-${PKGVERSION}/jit/dis_x64.lua
 -share/luajit-${PKGVERSION}/jit/dis_x86.lua
 -share/luajit-${PKGVERSION}/jit/dump.lua
 -share/luajit-${PKGVERSION}/jit/v.lua
 -share/luajit-${PKGVERSION}/jit/vmdef.lua
  man/man1/luajit.1
 +share/luajit-2.1/jit/bc.lua
 +share/luajit-2.1/jit/bcsave.lua
 +share/luajit-2.1/jit/dis_arm.lua
 +share/luajit-2.1/jit/dis_arm64.lua
 +share/luajit-2.1/jit/dis_arm64be.lua
 +share/luajit-2.1/jit/dis_mips.lua
 +share/luajit-2.1/jit/dis_mips64.lua
 +share/luajit-2.1/jit/dis_mips64el.lua
 +share/luajit-2.1/jit/dis_mips64r6.lua
 +share/luajit-2.1/jit/dis_mips64r6el.lua
 +share/luajit-2.1/jit/dis_mipsel.lua
 +share/luajit-2.1/jit/dis_ppc.lua
 +share/luajit-2.1/jit/dis_x64.lua
 +share/luajit-2.1/jit/dis_x86.lua
 +share/luajit-2.1/jit/dump.lua
 +share/luajit-2.1/jit/p.lua
 +share/luajit-2.1/jit/v.lua
 +share/luajit-2.1/jit/vmdef.lua
 +share/luajit-2.1/jit/zone.lua
  @pkgdir share/lua/5.1
  @pkgdir lib/lua/5.1
 diff --git i/lang/LuaJIT2/distinfo w/lang/LuaJIT2/distinfo
 index 9c095926fb6..dde4b33af23 100644
 --- i/lang/LuaJIT2/distinfo
 +++ w/lang/LuaJIT2/distinfo
 @@ -1,10 +1,6 @@
  $NetBSD: distinfo,v 1.13 2021/10/26 10:51:29 nia Exp $
  =

 -BLAKE2s (LuaJIT-2.0.5.tar.gz) =3D 54f7b86f27f588160895a8e076bb11d63eb60b=
 dad87c9e573d627ae03ea5319d
 -SHA512 (LuaJIT-2.0.5.tar.gz) =3D 2636675602b4a060b0571c05220db2061dd2f38=
 568e35b2be346a0f5e3128d87057d11d3d0d7567d8cc4e0817b5e4cf2c52a17a480655209=
 62b157816465a9fe
 -Size (LuaJIT-2.0.5.tar.gz) =3D 849845 bytes
 -SHA1 (patch-Makefile) =3D edea30d017c9d2938d951bfdee88020906945aee
 -SHA1 (patch-src_Makefile) =3D d7236260dc17f470d7d6e41a57a22dcd3a501c28
 -SHA1 (patch-src_lj__arch.h) =3D 4c34706db4c678b368bb3e38b07505abde01e590=

 -SHA1 (patch-src_lj__ccallback.c) =3D 8032bc451a504ae9538fb0ae4cc1ee729ed=
 e3a70
 -SHA1 (patch-src_lj__mcode.c) =3D c150e0b07ab441e983ace21e0e813fd4334290b=
 5
 +BLAKE2s (luajit-v2.1.1703358377-c525bcb9024510cad9e170e12b6209aedb330f83=
 =2Etar.gz) =3D 36922f5cba073a211f069b6e5cd87e03101b81bc061b9fa82c462e1086=
 a7c32d
 +SHA512 (luajit-v2.1.1703358377-c525bcb9024510cad9e170e12b6209aedb330f83.=
 tar.gz) =3D 86ed4b8fb5fabe8b7ce7c059d18acf16d527501edb1f5d1a0453e17b75a47=
 22f1f048d0309515f25cd6c3850f22934ef793e709362ad88053dd2b0e4ab735666
 +Size (luajit-v2.1.1703358377-c525bcb9024510cad9e170e12b6209aedb330f83.ta=
 r.gz) =3D 1079440 bytes
 +SHA1 (patch-Makefile) =3D 89904974c7e2737d5600c78669d0bdbf0de4cf0a
 diff --git i/lang/LuaJIT2/patches/patch-Makefile w/lang/LuaJIT2/patches/p=
 atch-Makefile
 index aac8fcb70dc..885bcd81165 100644
 --- i/lang/LuaJIT2/patches/patch-Makefile
 +++ w/lang/LuaJIT2/patches/patch-Makefile
 @@ -2,9 +2,9 @@ $NetBSD: patch-Makefile,v 1.6 2017/05/29 21:47:31 alnsn E=
 xp $
  =

  Fix installation.
  =

 ---- Makefile.orig	2017-05-01 18:11:00.000000000 +0000
 -+++ Makefile
 -@@ -24,7 +24,6 @@ ABIVER=3D  5.1
 +--- Makefile	2023-08-29 08:21:51.000000000 +0800
 ++++ Makefile	2023-08-29 10:20:21.000000000 +0800
 +@@ -30,7 +30,6 @@
   # Change the installation path as needed. This automatically adjusts
   # the paths in src/luaconf.h, too. Note: PREFIX must be an absolute pat=
 h!
   #
 @@ -12,7 +12,7 @@ Fix installation.
   export MULTILIB=3D lib
   #######################################################################=
 #######
   =

 -@@ -40,7 +39,7 @@ INSTALL_LMODD=3D $(INSTALL_SHARE)/lua
 +@@ -47,10 +46,10 @@
   INSTALL_LMOD=3D $(INSTALL_LMODD)/$(ABIVER)
   INSTALL_CMODD=3D $(INSTALL_LIB)/lua
   INSTALL_CMOD=3D $(INSTALL_CMODD)/$(ABIVER)
 @@ -20,13 +20,17 @@ Fix installation.
  +INSTALL_MAN=3D $(DPREFIX)/${PKGMANDIR}/man1
   INSTALL_PKGCONFIG=3D $(INSTALL_LIB)/pkgconfig
   =

 - INSTALL_TNAME=3D luajit-$(VERSION)
 -@@ -74,7 +73,7 @@ SYMLINK=3D ln -sf
 +-INSTALL_TNAME=3D luajit-$(VERSION)
 ++INSTALL_TNAME=3D luajit-$(MMVERSION)
 + INSTALL_TSYMNAME=3D luajit
 + INSTALL_ANAME=3D libluajit-$(ABIVER).a
 + INSTALL_SOSHORT1=3D libluajit-$(ABIVER).so
 +@@ -81,7 +80,7 @@
   INSTALL_X=3D install -m 0755
   INSTALL_F=3D install -m 0644
   UNINSTALL=3D $(RM)
 --LDCONFIG=3D ldconfig -n
 +-LDCONFIG=3D ldconfig -n 2>/dev/null
  +LDCONFIG=3D true
   SED_PC=3D sed -e "s|^prefix=3D.*|prefix=3D$(PREFIX)|" \
 -             -e "s|^multilib=3D.*|multilib=3D$(MULTILIB)|"
 - =

 + 	    -e "s|^multilib=3D.*|multilib=3D$(MULTILIB)|" \
 + 	    -e "s|^relver=3D.*|relver=3D$(RELVER)|"
 diff --git i/lang/LuaJIT2/patches/patch-src_Makefile w/lang/LuaJIT2/patch=
 es/patch-src_Makefile
 deleted file mode 100644
 index 85dfba636cb..00000000000
 --- i/lang/LuaJIT2/patches/patch-src_Makefile
 +++ /dev/null
 @@ -1,16 +0,0 @@
 -$NetBSD: patch-src_Makefile,v 1.2 2017/05/29 21:47:31 alnsn Exp $
 -
 -Fix building on OS X.
 -
 ---- src/Makefile.orig	2017-05-01 18:11:00.000000000 +0000
 -+++ src/Makefile
 -@@ -297,9 +297,6 @@ ifeq (,$(shell $(TARGET_CC) -o /dev/null
 -   TARGET_XCFLAGS+=3D -fno-stack-protector
 - endif
 - ifeq (Darwin,$(TARGET_SYS))
 --  ifeq (,$(MACOSX_DEPLOYMENT_TARGET))
 --    export MACOSX_DEPLOYMENT_TARGET=3D10.4
 --  endif
 -   TARGET_STRIP+=3D -x
 -   TARGET_XSHLDFLAGS=3D -dynamiclib -single_module -undefined dynamic_lo=
 okup -fPIC
 -   TARGET_DYNXLDOPTS=3D
 diff --git i/lang/LuaJIT2/patches/patch-src_lj__arch.h w/lang/LuaJIT2/pat=
 ches/patch-src_lj__arch.h
 deleted file mode 100644
 index 55835241d1e..00000000000
 --- i/lang/LuaJIT2/patches/patch-src_lj__arch.h
 +++ /dev/null
 @@ -1,32 +0,0 @@
 -$NetBSD: patch-src_lj__arch.h,v 1.1 2018/06/02 20:01:21 he Exp $
 -
 -Fix the test for endianness so that NetBSD/powerpc isn't
 -mis-categorized as little-endian only because _LITTLE_ENDIAN
 -is defined -- what matters on NetBSD is the value of _BYTE_ORDER.
 -
 ---- src/lj_arch.h.orig	2017-05-01 18:11:00.000000000 +0000
 -+++ src/lj_arch.h
 -@@ -339,12 +339,21 @@
 - #if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE)
 - #error "No support for PowerPC CPUs without double-precision FPU"
 - #endif
 --#if defined(_LITTLE_ENDIAN)
 --#error "No support for little-endian PowerPC"
 -+
 -+#if defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN)
 -+# if (_BYTE_ORDER =3D=3D _LITTLE_ENDIAN)
 -+#  error "No support for little-endian PowerPC"
 -+# endif
 -+#else
 -+# if defined(_LITTLE_ENDIAN)
 -+#  error "No support for little-endian PowerPC"
 -+# endif
 - #endif
 -+
 - #if defined(_LP64)
 - #error "No support for PowerPC 64 bit mode"
 - #endif
 -+
 - #elif LJ_TARGET_MIPS
 - #if defined(__mips_soft_float)
 - #error "No support for MIPS CPUs without FPU"
 diff --git i/lang/LuaJIT2/patches/patch-src_lj__ccallback.c w/lang/LuaJIT=
 2/patches/patch-src_lj__ccallback.c
 deleted file mode 100644
 index acfab0a0d84..00000000000
 --- i/lang/LuaJIT2/patches/patch-src_lj__ccallback.c
 +++ /dev/null
 @@ -1,21 +0,0 @@
 -$NetBSD: patch-src_lj__ccallback.c,v 1.1 2020/11/06 12:15:53 nia Exp $
 -
 -Make this PaX-MPROTECT safe on NetBSD.
 -
 ---- src/lj_ccallback.c.orig	2017-05-01 18:11:00.000000000 +0000
 -+++ src/lj_ccallback.c
 -@@ -228,8 +228,12 @@ static void callback_mcode_new(CTState *
 -   if (!p)
 -     lj_err_caller(cts->L, LJ_ERR_FFI_CBACKOV);
 - #elif LJ_TARGET_POSIX
 --  p =3D mmap(NULL, sz, (PROT_READ|PROT_WRITE), MAP_PRIVATE|MAP_ANONYMOU=
 S,
 --	   -1, 0);
 -+#ifdef PROT_MPROTECT
 -+  p =3D mmap(NULL, sz, (PROT_READ|PROT_WRITE) | PROT_MPROTECT(PROT_EXEC=
 ),
 -+#else
 -+  p =3D mmap(NULL, sz, (PROT_READ|PROT_WRITE),
 -+#endif
 -+           MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
 -   if (p =3D=3D MAP_FAILED)
 -     lj_err_caller(cts->L, LJ_ERR_FFI_CBACKOV);
 - #else
 diff --git i/lang/LuaJIT2/patches/patch-src_lj__mcode.c w/lang/LuaJIT2/pa=
 tches/patch-src_lj__mcode.c
 deleted file mode 100644
 index 647e6ac3bd4..00000000000
 --- i/lang/LuaJIT2/patches/patch-src_lj__mcode.c
 +++ /dev/null
 @@ -1,27 +0,0 @@
 -$NetBSD: patch-src_lj__mcode.c,v 1.1 2020/11/06 12:15:53 nia Exp $
 -
 -Make PaX-MPROTECT safe for NetBSD.
 -
 ---- src/lj_mcode.c.orig	2017-05-01 18:11:00.000000000 +0000
 -+++ src/lj_mcode.c
 -@@ -99,7 +99,11 @@ static int mcode_setprot(void *p, size_t
 - =

 - static void *mcode_alloc_at(jit_State *J, uintptr_t hint, size_t sz, in=
 t prot)
 - {
 -+#ifdef PROT_MPROTECT
 -+  void *p =3D mmap((void *)hint, sz, prot | PROT_MPROTECT(MCPROT_RWX), =
 MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
 -+#else
 -   void *p =3D mmap((void *)hint, sz, prot, MAP_PRIVATE|MAP_ANONYMOUS, -=
 1, 0);
 -+#endif
 -   if (p =3D=3D MAP_FAILED) {
 -     if (!hint) lj_trace_err(J, LJ_TRERR_MCODEAL);
 -     p =3D NULL;
 -@@ -255,7 +259,7 @@ static void *mcode_alloc(jit_State *J, s
 - /* All memory addresses are reachable by relative jumps. */
 - static void *mcode_alloc(jit_State *J, size_t sz)
 - {
 --#ifdef __OpenBSD__
 -+#if defined(__NetBSD__) || defined(__OpenBSD__)
 -   /* Allow better executable memory allocation for OpenBSD W^X mode. */=

 -   void *p =3D mcode_alloc_at(J, 0, sz, MCPROT_RUN);
 -   if (p && mcode_setprot(p, sz, MCPROT_GEN)) {

 --=_MailMate_91265527-FE18-4CD4-8297-D5495A238284_=--

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2024 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.