Hello community,

here is the log from the commit of package ruby-common for openSUSE:Factory 
checked in at 2018-07-13 10:13:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ruby-common (Old)
 and      /work/SRC/openSUSE:Factory/.ruby-common.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ruby-common"

Fri Jul 13 10:13:27 2018 rev:13 rq:620969 version:2.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/ruby-common/ruby-common.changes  2018-02-12 
10:08:36.639785557 +0100
+++ /work/SRC/openSUSE:Factory/.ruby-common.new/ruby-common.changes     
2018-07-13 10:13:33.301900856 +0200
@@ -1,0 +2,11 @@
+Wed Jun  6 15:11:27 UTC 2018 - mrueck...@suse.de
+
+- rename the gem_packages template from opensuse.spec.erb to
+  gem_packages.spec.erb
+- add support for binary_map flag in gem2rpm.yml
+  - This can be used to rename the _unversioned_ symlink of the
+    binaries in /usr/bin/ to avoid conflicts with other packages
+- gem_packages.spec.erb: sync with file in gem2rpm
+  
+
+-------------------------------------------------------------------

Old:
----
  opensuse.spec.erb

New:
----
  gem_packages.spec.erb

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ruby-common.spec ++++++
--- /var/tmp/diff_new_pack.ygvQ03/_old  2018-07-13 10:13:33.869901523 +0200
+++ /var/tmp/diff_new_pack.ygvQ03/_new  2018-07-13 10:13:33.869901523 +0200
@@ -36,7 +36,7 @@
 Source8:        ruby-common.macros
 Source9:        ruby.rpm-macros
 Source10:       gem_packages.sh
-Source11:       opensuse.spec.erb
+Source11:       gem_packages.spec.erb
 Source12:       ruby-find-versioned
 Source13:       gemfile.attr
 Source14:       gemfile.rb

++++++ gem_install.sh ++++++
--- /var/tmp/diff_new_pack.ygvQ03/_old  2018-07-13 10:13:33.897901556 +0200
+++ /var/tmp/diff_new_pack.ygvQ03/_new  2018-07-13 10:13:33.897901556 +0200
@@ -22,6 +22,7 @@
 require 'logger'
 require 'rubygems'
 require 'rubygems/package'
+require 'yaml'
 begin
   require 'rubygems/format'
 rescue LoadError => ex
@@ -48,6 +49,7 @@
 options.verbose = false
 options.rpmsourcedir = ENV['RPM_SOURCE_DIR'] || '/home/abuild/rpmbuild/SOURCES'
 options.rpmbuildroot = ENV['RPM_BUILD_ROOT'] || 
'/home/abuild/rpmbuild/BUILDROOT/just-testing'
+options.parsed_config = nil
 
 GILogger = Logger.new(STDERR)
 GILogger.level=Logger::DEBUG
@@ -75,6 +77,20 @@
     end
 end
 
+def map_executable(options, executable)
+  if not(options.parsed_config.nil? or
+         options.parsed_config[:binary_map].nil? or
+         options.parsed_config[:binary_map][executable].nil?)
+    executable=options.parsed_config[:binary_map][executable]
+  end
+  executable
+end
+
+def initialized_gem2rpm_config(options, name)
+  options.config = name
+  options.parsed_config = YAML.load_file(name)
+end
+
 opt_parser = OptionParser.new do |opts|
   opts.banner = "Usage: gem_install.rb [options]"
 
@@ -82,7 +98,7 @@
   opts.separator "Specific options:"
 
   opts.on('--config [FILENAME]', 'path to gem2rpm.yml') do |name|
-    options.config = name
+    initialized_gem2rpm_config(options, name)
   end
 
   opts.on('--default-gem [FILENAME]', 'Which filename to use when we dont find 
another gem file.') do |fname|
@@ -152,6 +168,13 @@
   GILogger.info "Found gem #{options.gemfile}"
 end
 
+if options.config.nil?
+  name = File.join(options.rpmsourcedir, 'gem2rpm.yml')
+  if File.exist?(name)
+    initialized_gem2rpm_config(options, name)
+  end
+end
+
 package   = Gem::Package.new(options.gemfile) rescue 
Gem::Format.from_file_by_path(options.gemfile)
 spec      = package.spec
 gemdir    = File.join(Gem.dir, 'gems', 
"#{options.gemname}-#{options.gemversion}")
@@ -212,6 +235,7 @@
       full_versioned = "#{unversioned}#{options.rubysuffix}-#{spec.version}"
       ruby_versioned = "#{unversioned}#{options.rubysuffix}"
       gem_versioned  = "#{unversioned}-#{spec.version}"
+      unversioned = map_executable(options, unversioned)
       File.rename(default_path, full_versioned)
       patchfile(full_versioned,  />= 0(\.a)?/, "= #{options.gemversion}")
       # unversioned

++++++ gem_packages.spec.erb ++++++
<%

  begin
    require 'rbconfigpackagingsupport'
  rescue LoadError => ex
  end
  def self.patch_mod_full_name(path, mod_full_name)
    path.gsub(/\/-/, "/#{mod_full_name}")
  end
  
  def self.patch_libdir(path)
    # path ? path.gsub(/\/usr\/lib(64)?/, '%{_libdir}') : path
    path
  end

  def self.get_extension_doc_dir(gem_spec)
    return nil unless Gem.ruby_engine == 'ruby' && Gem::Requirement.new("~> 
2.1.0").satisfied_by?(Gem.ruby_version)
    if gem_spec.respond_to?(:extensions_dir)
      rp = gem_spec.extensions_dir.rpartition(gem_spec.base_dir)
      return File.join(rp[1], 'doc', rp[2]) 
    end
    return nil
  end

  def self.get_mod_weight(spec)
    versions=spec.version.to_s.split('.')
    begin v1=Integer(versions[0]) rescue v1=1 end
    begin v2=Integer(versions[1]) rescue v2=0 end
    begin v3=Integer(versions[2]) rescue v3=0 end 
    weight=v1*10000+v2*100+v3
  end

  def self.map_executable(config, executable)
    if not(config[:binary_map].nil? or
           config[:binary_map][executable].nil?)
      executable=config[:binary_map][executable]
    end
    executable
  end

  def self.filecontent_or_value(path)
    (path and File.exists?(path)) ? File.read(path) : path
  end

  def self.parse_custom_pkgs(env_value)
    custom_pkgs = {}
    if env_value
      list = env_value.split(/\s+/)
      list.each do |element|
        pkg_name,filelist_path, preamble, description = element.split(/\|/, 4)
        filelist    = filecontent_or_value(filelist_path)
        preamble    = filecontent_or_value(preamble)
        description = filecontent_or_value(description)
        custom_pkgs[pkg_name] = {
          "filelist" => filelist,
          "preamble" => preamble,
          "description" => description,
        }
      end
    end
    custom_pkgs
  end
  
  rb_suffix          = RbConfig::CONFIG['ruby_install_name'].gsub(/^ruby/, '')
  rb_pkgname         = RbConfig::CONFIG['ruby_install_name'].gsub(/^ruby\./, '')
  if rb_suffix =~ /\A\d+\.\d+\z/
    rb_suffix  = '.ruby' + rb_suffix
  end
  pkg_basename       = rb_pkgname + '-rubygem-' + spec.name

  mod_full_name      = "#{spec.name}-#{spec.version}"
  mod_weight         = get_mod_weight(spec) 

  gem_platform       = Gem::Platform.new(RbConfig::CONFIG["arch"]).to_s
  rb_bindir          = RbConfig::CONFIG['bindir']
  rb_sysconfdir      = RbConfig::CONFIG['sysconfdir']
  docdir             = '/usr/share/doc/packages'
  gem_spec           = Gem::Specification.new
  gem_base_dir       = patch_libdir(gem_spec.base_dir)
  gem_cache_dir      = patch_libdir(gem_spec.cache_dir)
  gem_gems_dir       = patch_libdir(gem_spec.gems_dir)
  gem_spec_dir       = patch_libdir(gem_spec.spec_dir)
  gem_bin_dir        = patch_libdir(patch_mod_full_name(gem_spec.bin_dir , 
mod_full_name ))
  gem_doc_dir        = patch_libdir(patch_mod_full_name(gem_spec.doc_dir,  
mod_full_name ))
  gem_gem_dir        = patch_libdir(patch_mod_full_name(gem_spec.gem_dir,  
mod_full_name ))
  gem_ri_dir         = patch_libdir(patch_mod_full_name(gem_spec.ri_dir,   
mod_full_name ))
  #ruby2.1
  gem_extensions_dir = gem_spec.respond_to?(:extensions_dir) ? 
patch_libdir(gem_spec.extensions_dir) : nil
  gem_extension_dir  = gem_spec.respond_to?(:extension_dir)  ? 
patch_libdir(patch_mod_full_name(gem_spec.extension_dir, mod_full_name)) : nil
  gem_extension_doc  = patch_libdir(get_extension_doc_dir(gem_spec))
  #/ruby2.1
%>
%package -n <%= pkg_basename %><%= config[:version_suffix] %>
# MANUAL
<% if config[:main] && config[:main][:preamble] -%>
<%= config[:main][:preamble] %>
<% end -%>
# /MANUAL
Summary:        <%= config[:summary] or spec.summary %>
Group:          Development/Languages/Ruby
<% unless spec.executables.empty? -%>
PreReq:         update-alternatives
<% end -%>
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 %>
Group:          Development/Languages/Ruby
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|
     # new rubygems version has it different
     if entry.kind_of?(Array)
       path=entry[0]['path']
     else
       path=entry
     end
     path.gsub!(%r{^\./}, '')
     %w(test spec).each { |framework|
       test_frameworks[framework] = 1 if path.index(framework + "/") == 0
     }
     %w(changes
        copying
        history
        legal
        licence
        license
        license-mit
        mit-license
        changelog
        news
        release_notes
        readme
       ).each { |file|
      bpath = path.downcase.gsub(%r{\.rdoc$}, '').gsub(%r{\.txt$}, 
'').gsub(%r{\.md$}, '').gsub(%r{\.markdown$}, '')
      #$stderr.puts "PATH #{path} #{bpath} #{file}"
      docdirfiles << path if bpath == file
     }
   end

   test_frameworks = test_frameworks.keys.sort
-%>
<% unless test_frameworks.empty? -%>
%package -n <%= pkg_basename %>-testsuite<%= config[:version_suffix] %>
Summary:        Test suite for <%= spec.name %>
Group:          Development/Languages/Ruby
Requires:       <%= pkg_basename %><%= config[:version_suffix] %> = <%= 
spec.version %>

%description -n <%= pkg_basename %>-testsuite<%= config[:version_suffix] %>
Test::Unit or RSpec files, useful for developers.

<% end -%>

<% unless spec.executables.empty? -%>
%post -n <%= pkg_basename %><%= config[:version_suffix] %>
<% spec.executables.each do |executable| -%>
/usr/sbin/update-alternatives --install \
    <%= rb_bindir %>/<%= map_executable(config, executable) %> <%= 
map_executable(config, executable) %> <%= rb_bindir %>/<%= 
"#{executable}#{rb_suffix}-#{spec.version}" %> <%= mod_weight %>
/usr/sbin/update-alternatives --install \
    <%= rb_bindir %>/<%= "#{executable}-#{spec.version}" %>    <%= 
"#{executable}-#{spec.version}"    %> <%= rb_bindir %>/<%= 
"#{executable}#{rb_suffix}-#{spec.version}" %> <%= mod_weight %>
/usr/sbin/update-alternatives --install \
    <%= rb_bindir %>/<%= "#{executable}#{rb_suffix}" %>        <%= 
"#{executable}#{rb_suffix}"        %> <%= rb_bindir %>/<%= 
"#{executable}#{rb_suffix}-#{spec.version}" %> <%= mod_weight %>
<% end -%>

%preun -n <%= pkg_basename %><%= config[:version_suffix] %>
if [ "$1" = 0 ] ; then
<% spec.executables.each do |executable| -%>
    /usr/sbin/update-alternatives --remove <%= map_executable(config, 
executable) %> <%= rb_bindir %>/<%= "#{executable}#{rb_suffix}-#{spec.version}" 
%>
    /usr/sbin/update-alternatives --remove <%= "#{executable}-#{spec.version}"  
  %> <%= rb_bindir %>/<%= "#{executable}#{rb_suffix}-#{spec.version}" %>
    /usr/sbin/update-alternatives --remove <%= "#{executable}#{rb_suffix}"      
  %> <%= rb_bindir %>/<%= "#{executable}#{rb_suffix}-#{spec.version}" %>
<% end -%>
fi
<% end -%>

%files -n <%= pkg_basename %><%= config[:version_suffix] %>
%defattr(-,root,root,-)
# MANUAL
<% if config[:main] && config[:main][:filelist] -%>
<%= config[:main][:filelist] -%>
<% end -%>
# /MANUAL
<% unless docdirfiles.empty? -%>
<%= docdir %>/<%= pkg_basename %><%= config[:version_suffix] %>
<% end -%>
<% spec.executables.each do |executable| -%>
<%= rb_bindir %>/<%= "#{executable}#{rb_suffix}-#{spec.version}" %>
<%= rb_bindir %>/<%= "#{executable}#{rb_suffix}" %>
<%= rb_bindir %>/<%= "#{executable}-#{spec.version}" %>
<%= rb_bindir %>/<%= map_executable(config, executable) %>
%ghost <%= rb_sysconfdir %>/alternatives/<%= map_executable(config, executable) 
%>
%ghost <%= rb_sysconfdir %>/alternatives/<%= "#{executable}#{rb_suffix}" %>
%ghost <%= rb_sysconfdir %>/alternatives/<%= "#{executable}-#{spec.version}" %>
<% end -%>
# cache file
<%= gem_cache_dir %>/<%= mod_full_name %>.gem
<%= gem_gem_dir %>
<% unless spec.extensions.empty? or gem_extension_dir.nil? -%>
<%= gem_extension_dir %>
<% end -%>
<% test_frameworks.each do |framework| -%>
%exclude <%= File.join gem_gem_dir, framework %>
<% 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 -%>

<% unless test_frameworks.empty? -%>
%files -n <%= pkg_basename %>-testsuite<%= config[:version_suffix] %>
%defattr(-,root,root,-)
<%   test_frameworks.each do |framework| -%>
<%= File.join gem_gem_dir, framework %>
<%   end -%>
<% end -%>
<%
  if config[:custom_pkgs_ruby_versioned]
    config[:custom_pkgs_ruby_versioned].each do |custom_pkg_name, data|
-%> 
%package -n <%= pkg_basename %>-<%= custom_pkg_name %><%= 
config[:version_suffix] %>
<% if data[:preamble] and data[:preamble] != '' -%>
<%= data[:preamble] %>
<% else %>
Summary:        <%= custom_pkg_name %> sub package for <%= spec.name %>
Group:          Development/Languages/Ruby
<% end %>
Requires:       <%= pkg_basename %><%= config[:version_suffix] %> = <%= 
spec.version %>
%description -n <%= pkg_basename %>-<%= custom_pkg_name %><%= 
config[:version_suffix] %>
<% if data[:description] and data[:description] != '' -%>
<%= data[:description] %>
<% else %>
<%= spec.description -%>

This package holds the <%= custom_pkg_name %> sub package for <%= spec.name -%>
<% end %>
%files -n <%= pkg_basename %>-<%= custom_pkg_name %><%= config[:version_suffix] 
%>
%defattr(-,root,root,-)
<%= data['filelist'] -%>
<%
     end
   end
-%>

Reply via email to