pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/lang/ruby34
Module Name: pkgsrc
Committed By: taca
Date: Sat Mar 1 15:56:52 UTC 2025
Modified Files:
pkgsrc/lang/ruby34: Makefile distinfo
Added Files:
pkgsrc/lang/ruby34/patches: patch-prism_prism.c
Log Message:
lang/ruby34: Fix PRISM parser behavior on NetBSD
Fix segmentation fault when execute ruby binary without argument reported by ryoon@ and mef@.
prism/prism.c use "fgets" as functions's parameter and the parameter
is function pointer. On NetBSD, fgets(3) was called instead of passed
function pointer.
So, replace "fgets" to other name.
Bump PKGREVISION.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 pkgsrc/lang/ruby34/Makefile
cvs rdiff -u -r1.2 -r1.3 pkgsrc/lang/ruby34/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/lang/ruby34/patches/patch-prism_prism.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/lang/ruby34/Makefile
diff -u pkgsrc/lang/ruby34/Makefile:1.1 pkgsrc/lang/ruby34/Makefile:1.2
--- pkgsrc/lang/ruby34/Makefile:1.1 Thu Jan 2 06:51:04 2025
+++ pkgsrc/lang/ruby34/Makefile Sat Mar 1 15:56:52 2025
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.1 2025/01/02 06:51:04 taca Exp $
+# $NetBSD: Makefile,v 1.2 2025/03/01 15:56:52 taca Exp $
DISTNAME= ${RUBY_DISTNAME}
PKGNAME= ${RUBY_PKGPREFIX}-${RUBY_VERSION}
+PKGREVISION= 1
CATEGORIES= lang ruby
MASTER_SITES= ${MASTER_SITE_RUBY}
Index: pkgsrc/lang/ruby34/distinfo
diff -u pkgsrc/lang/ruby34/distinfo:1.2 pkgsrc/lang/ruby34/distinfo:1.3
--- pkgsrc/lang/ruby34/distinfo:1.2 Mon Feb 17 15:21:03 2025
+++ pkgsrc/lang/ruby34/distinfo Sat Mar 1 15:56:52 2025
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.2 2025/02/17 15:21:03 taca Exp $
+$NetBSD: distinfo,v 1.3 2025/03/01 15:56:52 taca Exp $
BLAKE2s (ruby-3.4.2.tar.xz) = 533535bba86fd5a3b28b0211908f889a29719c6eea469736052a38ac7dc5edff
SHA512 (ruby-3.4.2.tar.xz) = cb8b5023bce316393716548c5f0a44c7d0240724ff79b995517641266af30bedc6f402c1c8fa27368ea607e2aa6d36bbb201e00c6e9dd2a80d837431d32343b5
@@ -16,6 +16,7 @@ SHA1 (patch-lib_rubygems_dependency__ins
SHA1 (patch-lib_rubygems_install__update__options.rb) = 0cd0816e1cd7c84c1dab1e091787c4dc38d28273
SHA1 (patch-lib_rubygems_installer.rb) = 4ef74b4f79837a929e81bcd0e7eba9061a442304
SHA1 (patch-lib_rubygems_platform.rb) = bde36a8fc1ba2fbf4d6fb8829bc116fb4d09b404
+SHA1 (patch-prism_prism.c) = 7f4221b01b4b4b412ba30050a886773b7877403c
SHA1 (patch-test_rubygems_test__gem.rb) = 32f7c7d7f8a024c045d78c2bce93944fc3113d04
SHA1 (patch-thread__pthread.c) = 7c1231933a2d6ce9d56891ab512371841697fbca
SHA1 (patch-tool_ifchange) = 1803bb6a1836e232dcabcf38f11c9881dbf726ea
Added files:
Index: pkgsrc/lang/ruby34/patches/patch-prism_prism.c
diff -u /dev/null pkgsrc/lang/ruby34/patches/patch-prism_prism.c:1.1
--- /dev/null Sat Mar 1 15:56:52 2025
+++ pkgsrc/lang/ruby34/patches/patch-prism_prism.c Sat Mar 1 15:56:52 2025
@@ -0,0 +1,56 @@
+$NetBSD: patch-prism_prism.c,v 1.1 2025/03/01 15:56:52 taca Exp $
+
+Avoid use the same name as standard library.
+
+--- prism/prism.c.orig 2025-02-14 21:25:54.000000000 +0000
++++ prism/prism.c
+@@ -22615,11 +22615,11 @@ pm_parse(pm_parser_t *parser) {
+ * otherwise return true.
+ */
+ static bool
+-pm_parse_stream_read(pm_buffer_t *buffer, void *stream, pm_parse_stream_fgets_t *fgets) {
++pm_parse_stream_read(pm_buffer_t *buffer, void *stream, pm_parse_stream_fgets_t *pm_stream_fgets) {
+ #define LINE_SIZE 4096
+ char line[LINE_SIZE];
+
+- while (memset(line, '\n', LINE_SIZE), fgets(line, LINE_SIZE, stream) != NULL) {
++ while (memset(line, '\n', LINE_SIZE), pm_stream_fgets(line, LINE_SIZE, stream) != NULL) {
+ size_t length = LINE_SIZE;
+ while (length > 0 && line[length - 1] == '\n') length--;
+
+@@ -22686,16 +22686,16 @@ pm_parse_stream_unterminated_heredoc_p(p
+ * can stream stdin in to Ruby so we need to support a streaming API.
+ */
+ PRISM_EXPORTED_FUNCTION pm_node_t *
+-pm_parse_stream(pm_parser_t *parser, pm_buffer_t *buffer, void *stream, pm_parse_stream_fgets_t *fgets, const pm_options_t *options) {
++pm_parse_stream(pm_parser_t *parser, pm_buffer_t *buffer, void *stream, pm_parse_stream_fgets_t *pm_stream_fgets, const pm_options_t *options) {
+ pm_buffer_init(buffer);
+
+- bool eof = pm_parse_stream_read(buffer, stream, fgets);
++ bool eof = pm_parse_stream_read(buffer, stream, pm_stream_fgets);
+ pm_parser_init(parser, (const uint8_t *) pm_buffer_value(buffer), pm_buffer_length(buffer), options);
+ pm_node_t *node = pm_parse(parser);
+
+ while (!eof && parser->error_list.size > 0 && (parser->lex_modes.index > 0 || pm_parse_stream_unterminated_heredoc_p(parser))) {
+ pm_node_destroy(parser, node);
+- eof = pm_parse_stream_read(buffer, stream, fgets);
++ eof = pm_parse_stream_read(buffer, stream, pm_stream_fgets);
+
+ pm_parser_free(parser);
+ pm_parser_init(parser, (const uint8_t *) pm_buffer_value(buffer), pm_buffer_length(buffer), options);
+@@ -22787,13 +22787,13 @@ pm_serialize_parse(pm_buffer_t *buffer,
+ * given stream into to the given buffer.
+ */
+ PRISM_EXPORTED_FUNCTION void
+-pm_serialize_parse_stream(pm_buffer_t *buffer, void *stream, pm_parse_stream_fgets_t *fgets, const char *data) {
++pm_serialize_parse_stream(pm_buffer_t *buffer, void *stream, pm_parse_stream_fgets_t *pm_stream_fgets, const char *data) {
+ pm_parser_t parser;
+ pm_options_t options = { 0 };
+ pm_options_read(&options, data);
+
+ pm_buffer_t parser_buffer;
+- pm_node_t *node = pm_parse_stream(&parser, &parser_buffer, stream, fgets, &options);
++ pm_node_t *node = pm_parse_stream(&parser, &parser_buffer, stream, pm_stream_fgets, &options);
+ pm_serialize_header(buffer);
+ pm_serialize_content(&parser, node, buffer);
+ pm_buffer_append_byte(buffer, '\0');
Home |
Main Index |
Thread Index |
Old Index