mirror of
https://github.com/openwrt/packages.git
synced 2026-04-15 19:02:09 +00:00
Ruby 4.0 introduces "Ruby Box" and "ZJIT", and adds many improvements. - Introduce experimental ZJIT compiler - Improve YJIT performance and memory usage - Add experimental Ruby Boxes object layout optimization - VM and GC performance improvements - Ractor runtime and scheduling enhancements - Update language syntax and semantics (*nil behavior, logical operator parsing) - Add Array#rfind and optimized Array#find - Improve Binding API and implicit parameter access - Extend Enumerator.produce with size keyword - Enhance ArgumentError diagnostics with caller/callee context - Add Fiber#raise(cause:) - IO.select accepts Float::INFINITY timeout - Improve Kernel#inspect extensibility - Add Math.log1p and Math.expm1 - Promote Pathname and Set to core classes - Extend Ractor API (join, value, lifecycle helpers) - Fix endless and infinite Range behavior - Define new top-level Ruby module - Update Unicode to 17.0 and extend String strip methods - Update bundled gems (RubyGems, Bundler, IRB, etc.) Packaging changes: - Include license files for all packages - As ruby set moved into core, ruby-set is gone. ruby-setsubclasscompact was added to include the set subclass compatible layer - Added conditional libatomic dependency for libruby - YJIT and ZJIT are not built when cross-compiling (almost always for openwrt, even when archs matches). However, the Makefile is ready for both when upstream adds that feature. Config entries are marked as BROKEN for now. Changelog: https://github.com/ruby/ruby/compare/v3_4_0...v4.0.0 Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
79 lines
2.4 KiB
Bash
79 lines
2.4 KiB
Bash
#!/bin/bash
|
|
#
|
|
# bash feeds/packages/lang/ruby/ruby_missingfiles staging_dir/target-x86_64_musl/ bin/packages/x86_64/packages/*ruby*_3.1.2*
|
|
#
|
|
|
|
function list_staging_files {
|
|
cd "$1"; find \
|
|
\( \( -name "root-*" -or -name "packages" -or -name "stamp" -or -name "pkginfo" -or -name "host" -or -name man \) -prune \) -or -true \
|
|
\( \
|
|
-path "*ruby*" -or \
|
|
-name "bundle" -or \
|
|
-name "bundler" -or \
|
|
-name "erb" -or \
|
|
-name "gem" -or \
|
|
-name "irb" -or \
|
|
-name "racc" -or \
|
|
-name "racc2y" -or \
|
|
-name "rake" -or \
|
|
-name "rbs" -or \
|
|
-name "rdbg" -or \
|
|
-name "rdoc" -or \
|
|
-name "ri" -or \
|
|
-name "syntax_suggest" -or \
|
|
-name "testrb" -or \
|
|
-name "typeprof" -or \
|
|
-name "y2racc" \
|
|
\) \
|
|
-not -path "*/usr/lib/ruby/gems/*/cache/*" \
|
|
-not -name "*test_case.rb" \
|
|
-not -name "*.rdoc" \
|
|
-not -name "*.md" \
|
|
-not -name "*.mk" \
|
|
-not -name "*.doc" \
|
|
\( -name "LICENSE.txt" -or -not -name "*.txt" \) \
|
|
-not -name "*.travis.yml" \
|
|
-not -name "Rakefile" \
|
|
-not -path "*/ext/java/*" \
|
|
-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 -regex ".*/usr/lib/ruby/gems/[^/]*/gems/fiddle[^/]*/ext/.*" \
|
|
-not -type d \
|
|
-print | sort | sed -e 's,^\./,/,'
|
|
}
|
|
|
|
function list_ipkg_files {
|
|
for OPKG; do
|
|
tar --to-stdout -xzf "$OPKG" ./data.tar.gz | tar tzv | grep -v ^d | sed -e 's,.* \./,./,;s/ -> .*//'
|
|
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_apk_file "$@") -W $COLUMNS
|
|
|