7 Commits

Author SHA256 Message Date
692a497e25 Accepting request 1325981 from devel:languages:ruby
- Some gems (especially rust based ones) start failing if
  /usr/bin/ruby is not available. But they can take the desired
  ruby binary from the RUBY environment variable. Since we can not
  really set that properly via pre_install, set it within the loop
  to the current ruby binary before calling the ruby part of
  gem_install.sh.

OBS-URL: https://build.opensuse.org/request/show/1325981
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ruby-common?expand=0&rev=33
2026-01-09 16:02:56 +00:00
5a5423de46 - Some gems (especially rust based ones) start failing if
/usr/bin/ruby is not available. But they can take the desired
  ruby binary from the RUBY environment variable. Since we can not
  really set that properly via pre_install, set it within the loop
  to the current ruby binary before calling the ruby part of
  gem_install.sh.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:ruby/ruby-common?expand=0&rev=147
2026-01-08 15:07:00 +00:00
d7b02037eb Accepting request 1324398 from devel:languages:ruby
- instead of always recommending the gem2rpm of the default ruby
  version, lets recommend the version of ruby which we actually
  install

- Fix rubyX.Y-with(out)-yjit/jemalloc Requires. They failed when
  using prerelease ruby packages. We introduce 2 new macros:
  %requires_on_provides_eq
  %requires_on_provides_ge
  Which then are used by the subpackage template.
  The macros are copies of the normal %requires_(eq|ge) with 2
  changes
  - only the first argument is used
  - rpm -q is called with --whatprovides

- Update gem_packages.spec.erb 
  the has_rdoc? function was actually removed. I really thought
  would never happen. Since it was removed without a replacement,
  we disable the rdoc/ri packages all the time now.

OBS-URL: https://build.opensuse.org/request/show/1324398
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ruby-common?expand=0&rev=32
2026-01-05 13:51:18 +00:00
34b0b9d7ac fix recommends
OBS-URL: https://build.opensuse.org/package/show/devel:languages:ruby/ruby-common?expand=0&rev=145
2025-12-25 13:28:19 +00:00
62e5355e82 - instead of always recommending the gem2rpm of the default ruby
version, lets recommend the version of ruby which we actually
  install

OBS-URL: https://build.opensuse.org/package/show/devel:languages:ruby/ruby-common?expand=0&rev=144
2025-12-25 12:48:46 +00:00
3840ee9842 - Fix rubyX.Y-with(out)-yjit/jemalloc Requires. They failed when
using prerelease ruby packages. We introduce 2 new macros:
  %requires_on_provides_eq
  %requires_on_provides_ge
  Which then are used by the subpackage template.
  The macros are copies of the normal %requires_(eq|ge) with 2
  changes
  - only the first argument is used
  - rpm -q is called with --whatprovides

OBS-URL: https://build.opensuse.org/package/show/devel:languages:ruby/ruby-common?expand=0&rev=143
2025-12-02 17:02:13 +00:00
aba44c895d sync ruby-common and rubygem-gem2rpm
OBS-URL: https://build.opensuse.org/package/show/devel:languages:ruby/ruby-common?expand=0&rev=142
2025-12-02 14:51:11 +00:00
5 changed files with 63 additions and 26 deletions

View File

@@ -8,6 +8,7 @@ export LANG="en_US.UTF-8"
shopt -s nullglob
for ruby in $(/usr/bin/ruby-find-versioned) ; do
export GEM_HOME="$(${ruby} -r rubygems -e 'puts Gem.default_dir')"
export RUBY="${ruby}"
$ruby -x $0 "$@"
done
exit $?

View File

@@ -35,7 +35,7 @@
found_rpm_prefix = rpm_suffix_for_feature(feature)
if found_rpm_prefix
return "Requires: #{RbConfig::CONFIG['RUBY_SO_NAME']}-#{found_rpm_prefix} >= #{RbConfig::CONFIG['RUBY_PROGRAM_VERSION']}"
return "%{requires_on_provides_ge #{RbConfig::CONFIG['RUBY_SO_NAME']}-#{found_rpm_prefix}}"
end
#
return ""
@@ -136,9 +136,6 @@
#/ruby2.1
gem_plugins_dir = Gem.respond_to?(:plugindir) ? Gem.plugindir : nil
has_plugins = gem_plugins_dir && not( spec.files.select {|filename| filename =~ /rubygems_plugin#{Gem.suffix_regexp}\z/ }.empty? )
if config[:disable_docs].nil?
config[:disable_docs] ||= true
end
if config[:include_testsuite].nil?
config[:include_testsuite] ||= false
end
@@ -166,16 +163,6 @@ Enhances: <%= rb_pkgname %>
%description -n <%= pkg_basename %><%= config[:version_suffix] %>
<%= config[:description] or spec.description -%>
<% if spec.has_rdoc? && !(config[:disable_docs]) -%>
%package -n <%= pkg_basename %>-doc<%= config[:version_suffix] %>
Summary: RDoc documentation for <%= spec.name %>
Requires: <%= pkg_basename %><%= config[:version_suffix] %> = <%= spec.version %>
%description -n <%= pkg_basename %>-doc<%= config[:version_suffix] %>
Documentation generated at gem installation time.
Usually in RDoc and RI formats.
<% end -%>
<% test_frameworks = Hash.new
docdirfiles = []
format.file_entries.each do |entry|
@@ -191,6 +178,7 @@ Usually in RDoc and RI formats.
}
%w(changes
copying
contributing
history
legal
licence
@@ -275,15 +263,6 @@ fi
<% end -%>
<%= gem_spec_dir %>/<%= mod_full_name -%>.gemspec
<% if spec.has_rdoc? && !(config[:disable_docs]) -%>
%files -n <%= pkg_basename %>-doc<%= config[:version_suffix] %>
%defattr(-,root,root,-)
%doc <%= gem_doc_dir %>
<% unless spec.extensions.empty? or gem_extension_doc.nil? -%>
%doc <%= gem_extension_doc %>
<% end -%>
<% end -%>
<% if config[:include_testsuite] and !test_frameworks.empty? -%>
%files -n <%= pkg_basename %>-testsuite<%= config[:version_suffix] %>
%defattr(-,root,root,-)

View File

@@ -1,3 +1,44 @@
-------------------------------------------------------------------
Thu Jan 8 15:04:24 UTC 2026 - Marcus Rueckert <mrueckert@suse.de>
- Some gems (especially rust based ones) start failing if
/usr/bin/ruby is not available. But they can take the desired
ruby binary from the RUBY environment variable. Since we can not
really set that properly via pre_install, set it within the loop
to the current ruby binary before calling the ruby part of
gem_install.sh.
-------------------------------------------------------------------
Thu Dec 25 00:05:50 UTC 2025 - Marcus Rueckert <mrueckert@suse.de>
- instead of always recommending the gem2rpm of the default ruby
version, lets recommend the version of ruby which we actually
install
-------------------------------------------------------------------
Tue Dec 2 16:58:45 UTC 2025 - Marcus Rueckert <mrueckert@suse.de>
- Fix rubyX.Y-with(out)-yjit/jemalloc Requires. They failed when
using prerelease ruby packages. We introduce 2 new macros:
%requires_on_provides_eq
%requires_on_provides_ge
Which then are used by the subpackage template.
The macros are copies of the normal %requires_(eq|ge) with 2
changes
- only the first argument is used
- rpm -q is called with --whatprovides
-------------------------------------------------------------------
Tue Dec 2 14:49:26 UTC 2025 - Marcus Rueckert <mrueckert@suse.de>
- Update gem_packages.spec.erb
the has_rdoc? function was actually removed. I really thought
would never happen. Since it was removed without a replacement,
we disable the rdoc/ri packages all the time now.
-------------------------------------------------------------------
Wed Jan 22 10:27:14 UTC 2025 - Marcus Rueckert <mrueckert@suse.de>

View File

@@ -1,7 +1,7 @@
#
# spec file for package ruby-common
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -22,7 +22,7 @@
%endif
Name: ruby-common
Version: 3.2.1
Version: 4.0.0
Release: 0
# ruby-macros and ruby-common version
%define rpm_macros_version 5
@@ -54,8 +54,21 @@ License: MIT
Group: Development/Languages/Ruby
URL: https://github.com/openSUSE/ruby-packaging/
Requires: /usr/bin/getopt
#
# the requires
#
Requires: rubygem(gem2rpm)
Recommends: rubygem(%{rb_default_ruby_abi}:gem2rpm)
# old recommends
# Recommends: rubygem(%{rb_default_ruby_abi}:gem2rpm)
# new recommends
Recommends: (rubygem(ruby:4.0.0:gem2rpm) if ruby4.0)
Recommends: (rubygem(ruby:2.1.0:gem2rpm) if ruby2.1)
Recommends: (rubygem(ruby:2.5.0:gem2rpm) if ruby2.5)
Recommends: (rubygem(ruby:3.3.0:gem2rpm) if ruby3.3)
Recommends: (rubygem(ruby:3.4.0:gem2rpm) if ruby3.4)
#
#/ The End
#
Requires: fdupes
BuildArch: noarch
Provides: ruby-macros = %{rpm_macros_version}

View File

@@ -103,3 +103,6 @@ done \
%gem_extensions %(%{rb_binary} -rrubygems -e 'print Gem::Specification.new.extensions_dir' || echo %{_libdir}/ruby/gems/%{rb_ver}/gems )
%gem_doc_ext %(%{rb_binary} -r rubygems -e 'bs = Gem::Specification.new; rp = bs.extensions_dir.rpartition(bs.base_dir); print rp[1]+"/doc"+rp[2]' )
%gem_platform %(%{rb_binary} -r rubygems -r rbconfig -e 'print Gem::Platform.new(RbConfig::CONFIG["arch"]).to_s' )
%requires_on_provides_eq() %{expand:%(t=$(echo '%1' | LC_ALL=C xargs -r rpm -q --whatprovides --qf 'Requires: %1 = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not"); test -n "$t" || echo "%%{error: %%%%{requires_on_provides_eq %1} does not resolve}"; echo "$t")}
%requires_on_provides_ge() %{expand:%(t=$(echo '%1' | LC_ALL=C xargs -r rpm -q --whatprovides --qf 'Requires: %1 >= %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not"); test -n "$t" || echo "%%{error: %%%%{requires_on_provides_ge %1} does not resolve}"; echo "$t")}