Linux vacca.o2switch.net 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP Thu May 7 23:17:13 UTC 2026 x86_64
/
proc
/
3281657
/
root
/
proc
/
thread-self
/
root
/
proc
/
3281657
/
cwd
/
lib
/
rpm
/
//proc/3281657/root/proc/thread-self/root/proc/3281657/cwd/lib/rpm/rubygems.con
#!/usr/bin/ruby require 'rubygems/package' module RubyGemsReq module Helpers # Keep only '!=' requirements. def self.conflicts(requirements) conflicts = requirements.select {|r| r.first == '!='} end # Converts Gem::Requirement into array of requirements strings compatible # with RPM .spec file. def self.requirement_versions_to_rpm(requirement) self.conflicts(requirement.requirements).map do |op, version| version == Gem::Version.new(0) ? "" : "= #{version}" end end end # Report conflicting gem dependencies including their version. def self.gem_depenencies(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}" end if conflict_strings.length > 0 conflict_string = conflict_strings.join(' with ') conflict_string.prepend('(').concat(')') if conflict_strings.length > 1 puts conflict_string end end end # Reports all conflicts specified by all provided .gemspec files. def self.conflicts while filename = gets filename.strip! begin specification = Gem::Specification.load filename gem_depenencies(specification) rescue => e # Ignore all errors. end end end end if __FILE__ == $0 RubyGemsReq::conflicts end