diff --git a/macros.rubygems b/macros.rubygems index 8c4d0676b74a3d75948703262886d1c740c627d5..f6e830f6ead048a848a6e9b9825211e6b7e46e7f 100644 --- a/macros.rubygems +++ b/macros.rubygems @@ -2,14 +2,31 @@ %gem_dir %{_datadir}/gems %gem_archdir %{_libdir}/gems +# %gem_name_version - Provides gem_name-version string. +# +# Usage: %gem_name_version [custom_gem_name] +# +# Prints gem_name-version string, by default joining %gem_name, %version and +# %prerelease macros. When [custom_gem_name] is provided, the +# custom_gem_name is joined with %custom_gem_name_version macro which needs +# to be predefined. Please note that for the version macros are the dashes +# replaced by underscores. +# +%gem_name_version() %{?1}%{!?1:%{gem_name}}-%{?1:%{expand:%{%{gsub %{1} - _}_version}}}%{!?1:%{version}}%{?prerelease} + # Common gem locations and files. -%gem_instdir %{gem_dir}/gems/%{gem_name}-%{version}%{?prerelease} -%gem_extdir_mri %{gem_archdir}/%{name}/%{gem_name}-%{version}%{?prerelease} -%gem_libdir %{gem_instdir}/lib -%gem_cache %{gem_dir}/cache/%{gem_name}-%{version}%{?prerelease}.gem -%gem_spec %{gem_dir}/specifications/%{gem_name}-%{version}%{?prerelease}.gemspec -%gem_docdir %{gem_dir}/doc/%{gem_name}-%{version}%{?prerelease} -%gem_plugin %{gem_dir}/plugins/%{gem_name}_plugin.rb +# +# These macros leverages %gem_name_version macro and accepts custom gem_name. +# +# -d Use default gem install location. +# +%gem_instdir() %{gem_dir}/gems/%{gem_name_version %{?1}} +%gem_extdir_mri() %{gem_archdir}/%{name}/%{gem_name_version %{?1}} +%gem_libdir() %{gem_instdir %{?1}}/lib +%gem_cache() %{gem_dir}/cache/%{gem_name_version %{?1}}.gem +%gem_spec(d) %{gem_dir}/specifications%{?-d:/default}/%{gem_name_version %{?1}}.gemspec +%gem_docdir() %{gem_dir}/doc/%{gem_name_version %{?1}} +%gem_plugin() %{gem_dir}/plugins/%{?1}%{!?1:%{gem_name}}_plugin.rb # %gem_install - Install gem into appropriate directory. diff --git a/operating_system.rb b/operating_system.rb index d95b303af99b73eb8140ced5ee95ae45593e55a3..fd56386d621bc90bbe1801d1c9f0d0e420dd5653 100644 --- a/operating_system.rb +++ b/operating_system.rb @@ -87,41 +87,51 @@ module Gem # Remove methods we are going to override. This avoids "method redefined;" # warnings otherwise issued by Ruby. - remove_method :operating_system_defaults if method_defined? :operating_system_defaults remove_method :default_dir if method_defined? :default_dir + remove_method :default_specifications_dir if method_defined? :default_specifications_dir remove_method :default_path if method_defined? :default_path + remove_method :default_bindir if method_defined? :default_bindir remove_method :default_ext_dir_for if method_defined? :default_ext_dir_for ## - # Regular user installs into user directory, root manages /usr/local. - - def operating_system_defaults - unless opt_build_root? - options = if Process.uid == 0 - "--install-dir=#{Gem.default_dirs[:local][:gem_dir]} --bindir #{Gem.default_dirs[:local][:bin_dir]}" - else - "--user-install --bindir #{File.join [Dir.home, 'bin']}" - end + # RubyGems default overrides. - {"gem" => options} + def default_dir + if opt_build_root? + Gem.default_dirs[:system][:gem_dir] + elsif Process.uid == 0 + Gem.default_dirs[:local][:gem_dir] else - {} + Gem.user_dir end end ## - # RubyGems default overrides. + # Path to specification files of default gems. - def default_dir - Gem.default_dirs[:system][:gem_dir] + def default_specifications_dir + @default_specifications_dir ||= File.join(Gem.default_dirs[:system][:gem_dir], "specifications", "default") end + ## + # Default gem load path + def default_path path = default_dirs.collect {|location, paths| paths[:gem_dir]} path.unshift Gem.user_dir if File.exist? Gem.user_home path end + def default_bindir + if opt_build_root? + Gem.default_dirs[:system][:bin_dir] + elsif Process.uid == 0 + Gem.default_dirs[:local][:bin_dir] + else + File.join [Dir.home, 'bin'] + end + end + def default_ext_dir_for base_dir dir = if rpmbuild? build_dir = base_dir.chomp Gem.default_dirs[:system][:gem_dir] diff --git a/ruby-3.3.8.tar.xz b/ruby-3.3.9.tar.xz similarity index 66% rename from ruby-3.3.8.tar.xz rename to ruby-3.3.9.tar.xz index 60aa1c17e323bdc067a7ce2b5ca5ce037dfba674..ae52c2da2c6eab71711c616664abf9e1db365b66 100644 Binary files a/ruby-3.3.8.tar.xz and b/ruby-3.3.9.tar.xz differ diff --git a/ruby.spec b/ruby.spec index 9d6b25a4c74cfc0584bf4d4246890329570b8df3..46a930eefceac1c0497decd2c4c461e84e926b08 100644 --- a/ruby.spec +++ b/ruby.spec @@ -1,7 +1,7 @@ -%define anolis_release 1 +%define anolis_release 5 %global major_version 3 %global minor_version 3 -%global teeny_version 8 +%global teeny_version 9 %global major_minor_version %{major_version}.%{minor_version} %global ruby_version %{major_minor_version}.%{teeny_version} @@ -49,7 +49,7 @@ %global rexml_version 3.3.9 %global rss_version 0.3.1 %global net_ftp_version 0.3.4 -%global net_imap_version 0.4.19 +%global net_imap_version 0.4.21 %global net_pop_version 0.1.2 %global net_smtp_version 0.5.1 %global matrix_version 0.4.2 @@ -1019,7 +1019,7 @@ rm -rf %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/.github %{gem_dir}/specifications/default/pstore-0.1.3.gemspec %{gem_dir}/specifications/default/readline-0.0.4.gemspec %{gem_dir}/specifications/default/reline-0.5.10.gemspec -%{gem_dir}/specifications/default/resolv-0.3.0.gemspec +%{gem_dir}/specifications/default/resolv-0.3.1.gemspec %{gem_dir}/specifications/default/resolv-replace-0.1.1.gemspec %{gem_dir}/specifications/default/rinda-0.2.0.gemspec %{gem_dir}/specifications/default/ruby2_keywords-0.0.5.gemspec @@ -1196,6 +1196,9 @@ rm -rf %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/.github %{_datadir}/ri %changelog +* Tue Sep 23 2025 mgb01105731 - 3.3.9-5 +- Update to 3.3.9 to fix CVE-2025-43857 + * Wed Jul 16 2025 wh02252983 - 3.3.8-1 - update to 3.3.8 to Fix CVE-2025-25186 - The patch was removed because the new version already included the patch content diff --git a/rubygems.con b/rubygems.con index 1a99ed06cbcdb97443bf11e755b8b7ff014d68ea..bcdeddc3ca06e63da3be886a9d67e526c501760f 100644 --- a/rubygems.con +++ b/rubygems.con @@ -19,7 +19,7 @@ module RubyGemsReq end # Report conflicting gem dependencies including their version. - def self.gem_depenencies(specification) + def self.gem_dependencies(specification) specification.runtime_dependencies.each do |dependency| conflict_strings = Helpers::requirement_versions_to_rpm(dependency.requirement).map do |requirement| requirement_string = "rubygem(#{dependency.name}) #{requirement}" @@ -39,7 +39,7 @@ module RubyGemsReq begin specification = Gem::Specification.load filename - gem_depenencies(specification) + gem_dependencies(specification) rescue => e # Ignore all errors. end diff --git a/rubygems.req b/rubygems.req index 38e4a9c71633ce1ffb89030bde2a018c3cca4e8a..70aebd46a90ff77f1fce92c90413fbe314b69f0a 100644 --- a/rubygems.req +++ b/rubygems.req @@ -58,7 +58,7 @@ module RubyGemsReq end # Report all gem dependencies including their version. - def self.gem_depenencies(specification) + def self.gem_dependencies(specification) specification.runtime_dependencies.each do |dependency| dependency_name = "rubygem(#{dependency.name})" requirements = Helpers::requirement_versions_to_rpm(dependency.requirement) @@ -75,7 +75,7 @@ module RubyGemsReq specification = Gem::Specification.load filename rubygems_dependency(specification) - gem_depenencies(specification) + gem_dependencies(specification) rescue => e # Ignore all errors. end