ruby: update to 3.4.5

Ruby 3.4.0 is a major release that introduces several changes:
- Adds `it` block parameter reference
- Switches default parser to Prism
- Implements Happy Eyeballs Version 2 in the socket library
- Improves YJIT
- Adds Modular GC
- And more (see changelog for full details)

Subsequent minor releases include:
- 3.4.1: fixes version description
- 3.4.2: routine bugfix release
- 3.4.3: routine bugfix release
- 3.4.4: routine bugfix release (Linux-specific)
- 3.4.5: routine bugfix release, adds GCC 15 support

Packaging changes:
- (NEW) ruby-repl_type_completor (packaging the repl_type_completor gem)
- Refreshed package dependencies
- Updated `ruby_missingfiles` (detects unpacked files) to use `apk`
- Refactored `ruby_find_pkgsdeps` (detects inter-package dependencies)
  to use the Ruby parser (Prism) instead of heuristic string matching

Changelog: https://www.ruby-lang.org/en/news/2024/12/25/ruby-3-4-0-released/
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
This commit is contained in:
Luiz Angelo Daros de Luca
2025-02-08 04:59:08 -03:00
committed by Hannu Nyman
parent 60ee485816
commit 4410c80283
4 changed files with 475 additions and 168 deletions

View File

@@ -31,14 +31,19 @@ function list_staging_files {
-not -name "*.doc" \
-not -name "*.md" \
-not -name "*.txt" \
-not -name "BSDL" \
-not -name "COPYING" \
-not -name "*.travis.yml" \
-not -name "Rakefile" \
-not -path "*/ext/java/*" \
-not -name "gem.build_complete" \
-not -regex ".*/usr/lib/ruby/gems/[^/]*/gems/[^/]*/benchmark/.*" \
-not -regex ".*/usr/lib/ruby/gems/[^/]*/gems/[^/]*/evaluation/.*" \
-not -regex ".*/usr/lib/ruby/gems/[^/]*/gems/[^/]*/sample/.*" \
-not -regex ".*/usr/lib/ruby/gems/[^/]*/gems/[^/]*/test/.*" \
-not -regex ".*/usr/lib/ruby/gems/[^/]*/gems/[^/]*/doc/.*" \
-not -type d \
-print | sort
-print | sort | sed -e 's,^\./,/,'
}
function list_ipkg_files {
@@ -47,17 +52,28 @@ function list_ipkg_files {
done | sort -u | grep -v ./usr/lib/ruby/ruby...-bin
}
function list_apk_file {
local pkg
$HOST_STAGING_DIR/bin/apk adbdump --allow-untrusted "$@" |
sed -e '/|$/{N;s/|\n *//}' |
awk '/^ - name: / { dir=$3 } /^ - name:/ { printf "%s/%s\n", dir, $3}' |
grep -v ^lib/apk/packages | sort -u | sed -e 's,^,/,' | grep -v /usr/lib/ruby/ruby...-bin
}
set -e
: ${1:?First arg is staging_dir}
: ${2:?Second and following args are ruby ipkg packages}
STAGING_DIR=$1; shift
HOST_STAGING_DIR=$STAGING_DIR/../host
(cd "$STAGING_DIR" )
if ! [ -e "$1" ]; then
echo "$1 does not exist!"
exit 1
fi
printf '%-62s %-62s\n' "Installed in Staging" "From Packages Files"
diff -d -y <(list_staging_files "$STAGING_DIR") <(list_ipkg_files "$@") -W $COLUMNS
#diff -d -y <(list_staging_files "$STAGING_DIR") <(list_ipkg_files "$@") -W $COLUMNS
diff -d -y <(list_staging_files "$STAGING_DIR") <(list_apk_file "$@") -W $COLUMNS