pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

lang/quickjs update and shared lib enable



Hi,
hope you're doing well.

I have prepared a patch for lang/quickjs to:
- update to the recent snapshot (a security fix has
  been upstreamed)
- enable build/install a shared library

Could you please review and let me know your
thoughts, comments, concerns.

Thank you.

-- 
Sergey A. Osokin
Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/lang/quickjs/Makefile,v
retrieving revision 1.17
diff -u -p -r1.17 Makefile
--- Makefile	16 Nov 2025 11:21:57 -0000	1.17
+++ Makefile	5 Mar 2026 16:21:10 -0000
@@ -1,14 +1,14 @@
 # $NetBSD: Makefile,v 1.17 2025/11/16 11:21:57 adam Exp $
 
 NAME=		quickjs
-QJS_DATE=	2025-09-13
+QJS_DATE=	2025-12-22
 VERSION=	${QJS_DATE:S/-//g}
 DISTNAME=	${NAME}-${QJS_DATE}
 PKGNAME=	${NAME}-${VERSION}
-PKGREVISION=	1
 CATEGORIES=	lang
-MASTER_SITES=	https://bellard.org/quickjs/
-EXTRACT_SUFX=	.tar.xz
+MASTER_SITES=	${MASTER_SITE_GITHUB:=bellard/}
+GITHUB_PROJECT=	${NAME}
+GITHUB_TAG=	f1139494d18a2053630c5ed3384a42bb70db3c53
 
 MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
 HOMEPAGE=	https://bellard.org/quickjs/
@@ -44,7 +44,7 @@ pre-configure:
 	${ECHO} '{ "x" : 1, "tab": [ 1, 2, 3 ] }' > ${WRKSRC}/examples/message.json
 
 post-install:
-	cd ${WRKSRC}/doc && ${INSTALL_DATA} *.html *.pdf ${DESTDIR}${PREFIX}/share/doc/quickjs/
+	cd ${WRKSRC}/doc && ${INSTALL_DATA} *.texi ${DESTDIR}${PREFIX}/share/doc/quickjs/
 	cd ${WRKSRC}/examples && ${INSTALL_DATA} *.js *.c *.json ${DESTDIR}${PREFIX}/share/doc/quickjs/examples/
 	cd ${WRKSRC}/tests && ${INSTALL_DATA} *.js *.c ${DESTDIR}${PREFIX}/share/doc/quickjs/tests/
 
Index: PLIST
===================================================================
RCS file: /cvsroot/pkgsrc/lang/quickjs/PLIST,v
retrieving revision 1.9
diff -u -p -r1.9 PLIST
--- PLIST	16 Nov 2025 11:21:57 -0000	1.9
+++ PLIST	5 Mar 2026 16:21:10 -0000
@@ -4,6 +4,7 @@ bin/qjsc
 include/quickjs/quickjs-libc.h
 include/quickjs/quickjs.h
 lib/libquickjs.a
+lib/libquickjs.so
 share/doc/quickjs/examples/fib.c
 share/doc/quickjs/examples/fib_module.js
 share/doc/quickjs/examples/hello.js
@@ -13,8 +14,7 @@ share/doc/quickjs/examples/pi_bigint.js
 share/doc/quickjs/examples/point.c
 share/doc/quickjs/examples/test_fib.js
 share/doc/quickjs/examples/test_point.js
-share/doc/quickjs/quickjs.html
-share/doc/quickjs/quickjs.pdf
+share/doc/quickjs/quickjs.texi
 share/doc/quickjs/tests/assert.js
 share/doc/quickjs/tests/bjson.c
 share/doc/quickjs/tests/fixture_cyclic_import.js
Index: buildlink3.mk
===================================================================
RCS file: /cvsroot/pkgsrc/lang/quickjs/buildlink3.mk,v
retrieving revision 1.3
diff -u -p -r1.3 buildlink3.mk
--- buildlink3.mk	7 Feb 2025 12:36:23 -0000	1.3
+++ buildlink3.mk	5 Mar 2026 16:21:10 -0000
@@ -5,7 +5,9 @@ BUILDLINK_TREE+=	quickjs
 .if !defined(QUICKJS_BUILDLINK3_MK)
 QUICKJS_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.quickjs+=	quickjs>=20240113
+BUILDLINK_INCDIRS.quickjs?=	include/quickjs
+
+BUILDLINK_API_DEPENDS.quickjs+=	quickjs>=20250913
 BUILDLINK_PKGSRCDIR.quickjs?=	../../lang/quickjs
 .endif	# QUICKJS_BUILDLINK3_MK
 
Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/lang/quickjs/distinfo,v
retrieving revision 1.14
diff -u -p -r1.14 distinfo
--- distinfo	12 Nov 2025 11:58:19 -0000	1.14
+++ distinfo	5 Mar 2026 16:21:10 -0000
@@ -1,10 +1,10 @@
 $NetBSD: distinfo,v 1.14 2025/11/12 11:58:19 leot Exp $
 
-BLAKE2s (quickjs-2025-09-13.tar.xz) = 1dd767416ef10f6f3be0ada60edd5c478e08a6df5813b345e7830038b1e416b0
-SHA512 (quickjs-2025-09-13.tar.xz) = 077acba8b318b19cd2660fae0ca03099185b688dba46c89a6456b455639813eefc282975cd1eebdb3c49f62217b9506c6abad86d777b08cb49fe234beef918a2
-Size (quickjs-2025-09-13.tar.xz) = 595964 bytes
-SHA1 (patch-Makefile) = c3f827f36e41ca78a9b5144092276db8a9ac4a5e
+BLAKE2s (quickjs-2025-12-22-f1139494d18a2053630c5ed3384a42bb70db3c53.tar.gz) = a5bae8ec27d69c04c58f8f6fa24cf4fc7dd1d2a230c5949f285bc10d1ab5b814
+SHA512 (quickjs-2025-12-22-f1139494d18a2053630c5ed3384a42bb70db3c53.tar.gz) = ea63f60326795b4b5866b62c97a2ce72aa178c9650b256aead10ab0582bb4893d44acc7f98973ef6fc39ea3842fdc013b65abd8ccaf503d61d4f5c77158f223c
+Size (quickjs-2025-12-22-f1139494d18a2053630c5ed3384a42bb70db3c53.tar.gz) = 618177 bytes
+SHA1 (patch-Makefile) = 38d3b7660678bf9d8ef5d5b9d96687d30b0c47ba
 SHA1 (patch-qjs.c) = bfabed96cfdd40214fede3069485394af2faef4f
 SHA1 (patch-qjsc.c) = bffd0222579f3996bc21116694343a7dd65d8f33
 SHA1 (patch-quickjs-libc.c) = 39c2b553ef04b308e7c477590edd345b62acc528
-SHA1 (patch-quickjs.c) = 0bd06241a4262168124171adf7cf963809e74915
+SHA1 (patch-quickjs.c) = 80f8ea109ed927d6b3213f5381026ad576a15909
Index: patches/patch-Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/lang/quickjs/patches/patch-Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 patch-Makefile
--- patches/patch-Makefile	12 Nov 2025 11:49:38 -0000	1.7
+++ patches/patch-Makefile	5 Mar 2026 16:21:10 -0000
@@ -2,7 +2,7 @@ $NetBSD: patch-Makefile,v 1.7 2025/11/12
 
 Portability patch for NetBSD.
 
---- Makefile.orig	2025-09-13 08:48:28.000000000 +0000
+--- Makefile.orig	2025-12-22 14:12:46.000000000 +0000
 +++ Makefile
 @@ -22,10 +22,14 @@
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
@@ -21,7 +21,7 @@ Portability patch for NetBSD.
  CONFIG_FREEBSD=y
  endif
  # Windows cross compilation from Linux
-@@ -77,6 +81,13 @@ CONFIG_CLANG=y
+@@ -81,6 +85,13 @@ CONFIG_CLANG=y
  CONFIG_DEFAULT_AR=y
  CONFIG_LTO=
  endif
@@ -35,7 +35,18 @@ Portability patch for NetBSD.
  
  ifdef CONFIG_WIN32
    ifdef CONFIG_M32
-@@ -243,11 +254,17 @@ QJS_LIB_OBJS=$(OBJDIR)/quickjs.o $(OBJDI
+@@ -217,8 +228,10 @@ QJSC_CC=$(CC)
+ QJSC=./qjsc$(EXE)
+ endif
+ PROGS+=libquickjs.a
++PROGS+=libquickjs.so
+ ifdef CONFIG_LTO
+ PROGS+=libquickjs.lto.a
++PROGS+=libquickjs.lto.so
+ endif
+ 
+ # examples
+@@ -247,11 +260,17 @@ QJS_LIB_OBJS=$(OBJDIR)/quickjs.o $(OBJDI
  
  QJS_OBJS=$(OBJDIR)/qjs.o $(OBJDIR)/repl.o $(QJS_LIB_OBJS)
  
@@ -54,7 +65,7 @@ Portability patch for NetBSD.
  LIBS+=$(EXTRA_LIBS)
  
  $(OBJDIR):
-@@ -285,6 +302,9 @@ QJSC_DEFINES:=-DCONFIG_CC=\"$(QJSC_CC)\"
+@@ -289,6 +308,9 @@ QJSC_DEFINES:=-DCONFIG_CC=\"$(QJSC_CC)\"
  ifdef CONFIG_LTO
  QJSC_DEFINES+=-DCONFIG_LTO
  endif
@@ -64,16 +75,34 @@ Portability patch for NetBSD.
  QJSC_HOST_DEFINES:=-DCONFIG_CC=\"$(HOST_CC)\" -DCONFIG_PREFIX=\"$(PREFIX)\"
  
  $(OBJDIR)/qjsc.o: CFLAGS+=$(QJSC_DEFINES)
-@@ -368,10 +388,9 @@ install: all
+@@ -302,10 +324,14 @@ endif
+ 
+ libquickjs$(LTOEXT).a: $(QJS_LIB_OBJS)
+ 	$(AR) rcs $@ $^
++libquickjs$(LTOEXT).so: $(QJS_LIB_OBJS)
++	$(CC) -shared -Wl,-soname=$@.0 $(LDFLAGS) -o $@ $^
+ 
+ ifdef CONFIG_LTO
+ libquickjs.a: $(patsubst %.o, %.nolto.o, $(QJS_LIB_OBJS))
+ 	$(AR) rcs $@ $^
++libquickjs.so: $(patsubst %.o, %.nolto.o, $(QJS_LIB_OBJS))
++	$(CC) -shared -Wl,-soname=$@.0 $(LDFLAGS) -o $@ $^
+ endif # CONFIG_LTO
+ 
+ libquickjs.fuzz.a: $(patsubst %.o, %.fuzz.o, $(QJS_LIB_OBJS))
+@@ -372,10 +398,12 @@ install: all
  	mkdir -p "$(DESTDIR)$(PREFIX)/bin"
  	$(STRIP) qjs$(EXE) qjsc$(EXE)
  	install -m755 qjs$(EXE) qjsc$(EXE) "$(DESTDIR)$(PREFIX)/bin"
 -	mkdir -p "$(DESTDIR)$(PREFIX)/lib/quickjs"
 -	install -m644 libquickjs.a "$(DESTDIR)$(PREFIX)/lib/quickjs"
++	mkdir -p "$(DESTDIR)$(PREFIX)/lib"
 +	install -m644 libquickjs.a "$(DESTDIR)$(PREFIX)/lib"
++	install -m644 libquickjs.so "$(DESTDIR)$(PREFIX)/lib"
  ifdef CONFIG_LTO
 -	install -m644 libquickjs.lto.a "$(DESTDIR)$(PREFIX)/lib/quickjs"
 +	install -m644 libquickjs.lto.a "$(DESTDIR)$(PREFIX)/lib"
++	install -m644 libquickjs.lto.so "$(DESTDIR)$(PREFIX)/lib"
  endif
  	mkdir -p "$(DESTDIR)$(PREFIX)/include/quickjs"
  	install -m644 quickjs.h quickjs-libc.h "$(DESTDIR)$(PREFIX)/include/quickjs"
Index: patches/patch-quickjs.c
===================================================================
RCS file: /cvsroot/pkgsrc/lang/quickjs/patches/patch-quickjs.c,v
retrieving revision 1.6
diff -u -p -r1.6 patch-quickjs.c
--- patches/patch-quickjs.c	12 Nov 2025 11:58:20 -0000	1.6
+++ patches/patch-quickjs.c	5 Mar 2026 16:21:10 -0000
@@ -1,10 +1,8 @@
 $NetBSD: patch-quickjs.c,v 1.6 2025/11/12 11:58:20 leot Exp $
 
 - Portability patch for NetBSD.
-- Backport commit c6fe5a98fd3ef3b7064e6e0145dfebfe12449fea to fix
-  CVE-2025-12745.
 
---- quickjs.c.orig	2025-09-13 08:48:28.000000000 +0000
+--- quickjs.c.orig	2026-03-05 15:33:25.381847153 +0000
 +++ quickjs.c
 @@ -69,7 +69,15 @@
  /* define to include Atomics.* operations which depend on the OS
@@ -22,7 +20,7 @@ $NetBSD: patch-quickjs.c,v 1.6 2025/11/1
  #endif
  
  #if !defined(EMSCRIPTEN)
-@@ -1669,7 +1677,7 @@ static size_t js_def_malloc_usable_size(
+@@ -1721,7 +1729,7 @@ static size_t js_def_malloc_usable_size(
      return malloc_size(ptr);
  #elif defined(_WIN32)
      return _msize((void *)ptr);
@@ -31,12 +29,3 @@ $NetBSD: patch-quickjs.c,v 1.6 2025/11/1
      return 0;
  #elif defined(__linux__) || defined(__GLIBC__)
      return malloc_usable_size((void *)ptr);
-@@ -52988,7 +52996,7 @@ static JSValue js_array_buffer_slice(JSC
-         goto fail;
-     }
-     /* must test again because of side effects */
--    if (abuf->detached) {
-+    if (abuf->detached || abuf->byte_length < start + new_len) {
-         JS_ThrowTypeErrorDetachedArrayBuffer(ctx);
-         goto fail;
-     }


Home | Main Index | Thread Index | Old Index