diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e2b3176..945f2c3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - ruby_version: [4.0.7, 3.4.11, 3.3.12] + ruby_version: [4.0.9, 3.4.12, 3.3.13] debian_release: [trixie, bookworm] timeout-minutes: 360 steps: diff --git a/Dockerfile b/Dockerfile index ad6c5be..3052e6d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,8 +9,6 @@ ARG RUBY_VERSION ENV RUBY_VERSION=${RUBY_VERSION} -COPY patches/ /tmp/ruby-patches/ - # Installs system dependencies required to run Ruby RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ --mount=type=cache,target=/var/cache/debconf,sharing=locked \ @@ -76,15 +74,10 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ cd / && rm -fr /src; \ export RUSTUP_HOME='/tmp/rust/rustup' CARGO_HOME='/tmp/rust/cargo';\ export PATH="$CARGO_HOME/bin:$PATH"; \ - # Backport ruby/ruby#16801 to the 3.4 release line - case "${RUBY_VERSION}" in \ - 3.4.*) CONFIGURE_OPTS="--disable-install-doc --enable-yjit" ruby-build --patch ${RUBY_VERSION} /usr/local < /tmp/ruby-patches/ruby-16801.patch ;; \ - *) CONFIGURE_OPTS="--disable-install-doc --enable-yjit" ruby-build ${RUBY_VERSION} /usr/local ;; \ - esac; \ + CONFIGURE_OPTS="--disable-install-doc --enable-yjit" ruby-build ${RUBY_VERSION} /usr/local; \ # Cleanup build dependencies rm -rf /tmp/rust; \ rm -rf /usr/local/bin/ruby-build; \ - rm -rf /tmp/ruby-patches; \ rm -rf /var/lib/apt/lists/*; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark > /dev/null; \ @@ -101,7 +94,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ if dpkg -l | grep -i ruby; then exit 1; fi; \ [ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; \ # Install latest bundler in addition to the one that comes with ruby - gem install bundler -v 4.0.11; \ + gem install bundler -v 4.0.23; \ # Disable system libffi for `ffi` gem because it currently doesn't work with Debian Bookworm's FFI # See https://github.com/ffi/ffi/issues/1036 bundle config build.ffi --disable-system-libffi; \ diff --git a/patches/ruby-16801.patch b/patches/ruby-16801.patch deleted file mode 100644 index 58506eb..0000000 --- a/patches/ruby-16801.patch +++ /dev/null @@ -1,45 +0,0 @@ -Backport ruby/ruby#16801 -https://github.com/ruby/ruby/commit/493d26dcdea8b2f0ac5d28e057b401bc809e7fae - ---- a/include/ruby/onigmo.h -+++ b/include/ruby/onigmo.h -@@ -687,6 +687,8 @@ - #define ONIGERR_NEVER_ENDING_RECURSION -221 - #define ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY -222 - #define ONIGERR_INVALID_CHAR_PROPERTY_NAME -223 -+#define ONIGERR_TOO_MANY_RANGE_REPEAT -224 -+#define ONIGERR_TOO_MANY_NULL_CHECK -225 - #define ONIGERR_INVALID_CODE_POINT_VALUE -400 - #define ONIGERR_INVALID_WIDE_CHAR_VALUE -400 - #define ONIGERR_TOO_BIG_WIDE_CHAR_VALUE -401 ---- a/regcomp.c -+++ b/regcomp.c -@@ -394,6 +394,7 @@ - r = add_mem_num(reg, reg->num_null_check); /* NULL CHECK ID */ - if (r) return r; - reg->num_null_check++; -+ if ((MemNumType)reg->num_null_check <= 0) return ONIGERR_TOO_MANY_NULL_CHECK; - } - - r = compile_tree(node, reg); -@@ -703,6 +704,7 @@ - if (r) return r; - r = add_mem_num(reg, num_repeat); /* OP_REPEAT ID */ - reg->num_repeat++; -+ if ((MemNumType)reg->num_repeat <= 0) return ONIGERR_TOO_MANY_RANGE_REPEAT; - if (r) return r; - r = add_rel_addr(reg, target_len + SIZE_OP_REPEAT_INC); - if (r) return r; ---- a/regerror.c -+++ b/regerror.c -@@ -165,6 +165,10 @@ - p = "group number is too big for capture history"; break; - case ONIGERR_INVALID_CHAR_PROPERTY_NAME: - p = "invalid character property name {%n}"; break; -+ case ONIGERR_TOO_MANY_RANGE_REPEAT: -+ p = "too many range repeat"; break; -+ case ONIGERR_TOO_MANY_NULL_CHECK: -+ p = "too many null check"; break; - case ONIGERR_TOO_MANY_CAPTURE_GROUPS: - p = "too many capture groups are specified"; break; - case ONIGERR_INVALID_CODE_POINT_VALUE: