[packages/rpm/dev-5.4.17] - ruby macros and rubyprov moved to rpm-build-macros

qboosh qboosh at pld-linux.org
Wed Feb 5 17:22:00 CET 2020


commit 07403805ae9faed98f7354d48c9fde16aea188eb
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Thu Jan 2 22:21:43 2020 +0900

    - ruby macros and rubyprov moved to rpm-build-macros

 gem_helper.rb | 197 ----------------------------------------------------------
 rpm.spec      |  31 +--------
 rubygems.rb   | 128 --------------------------------------
 3 files changed, 3 insertions(+), 353 deletions(-)
---
diff --git a/rpm.spec b/rpm.spec
index 9dab25b..742cc55 100644
--- a/rpm.spec
+++ b/rpm.spec
@@ -97,8 +97,6 @@ Source26:	%{name}db_checkversion.c
 Source27:	macros.lang
 Source28:	%{name}db_reset.c
 Source29:	dbupgrade.sh
-Source30:	rubygems.rb
-Source31:	gem_helper.rb
 Patch0:		%{name}-branch.patch
 Patch1:		%{name}-man_pl.patch
 Patch2:		%{name}-popt-aliases.patch
@@ -676,7 +674,7 @@ Summary(uk.UTF-8):	Скрипти та утиліти, необхідні для
 Group:		Applications/File
 Requires(pretrans):	coreutils
 Requires(pretrans):	findutils
-Requires:	%{name}-build-macros >= 1.712
+Requires:	%{name}-build-macros >= 1.744-3
 Requires:	%{name}-utils = %{version}-%{release}
 Requires:	/bin/id
 Requires:	awk
@@ -804,23 +802,6 @@ packages.
 Dodatkowe narzędzia do sprawdzenia zależności skryptów PHP PEAR w
 pakietach RPM.
 
-%package rubyprov
-Summary:	Ruby tools, which simplify creation of RPM packages with Ruby software
-Summary(pl.UTF-8):	Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Ruby
-Group:		Applications/File
-Requires:	%{name} = %{version}-%{release}
-Requires:	ruby
-Requires:	ruby-modules
-Requires:	ruby-rubygems
-
-%description rubyprov
-Ruby tools, which simplifies creation of RPM packages with Ruby
-software.
-
-%description rubyprov -l pl.UTF-8
-Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
-Ruby.
-
 %package -n python-rpm
 Summary:	Python interface to RPM library
 Summary(pl.UTF-8):	Pythonowy interfejs do biblioteki RPM-a
@@ -1027,8 +1008,6 @@ install %{SOURCE2} macros/pld.in
 install %{SOURCE8} scripts/php.prov.in
 install %{SOURCE9} scripts/php.req.in
 install %{SOURCE11} scripts/perl.prov.in
-cp -p %{SOURCE30} scripts/rubygems.rb
-cp -p %{SOURCE31} scripts/gem_helper.rb
 
 %{__rm} scripts/find-php*
 
@@ -1331,6 +1310,8 @@ done
 
 # moved to rpm-build-macros 1.699
 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/macros.d/kernel
+# moved to rpm-build-macros 1.744
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/macros.d/ruby
 
 # for rpm -e|-U --repackage
 install -d $RPM_BUILD_ROOT/var/{spool/repackage,lock/rpm}
@@ -1614,7 +1595,6 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 %{_rpmlibdir}/macros.d/php
 %{_rpmlibdir}/macros.d/pkgconfig
 %{_rpmlibdir}/macros.d/python
-%{_rpmlibdir}/macros.d/ruby
 %{_rpmlibdir}/macros.d/selinux
 %{_rpmlibdir}/macros.d/tcl
 %{_rpmlibdir}/macros.rpmbuild
@@ -1647,11 +1627,6 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 # needs jar (any jdk), jcf-dump (gcc-java) to work
 %attr(755,root,root) %{_rpmlibdir}/javadeps.sh
 
-%files rubyprov
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_rpmlibdir}/gem_helper.rb
-%attr(755,root,root) %{_rpmlibdir}/rubygems.rb
-
 %files perlprov
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_rpmlibdir}/perl.*
diff --git a/gem_helper.rb b/gem_helper.rb
deleted file mode 100755
index 11de3be..0000000
--- a/gem_helper.rb
+++ /dev/null
@@ -1,197 +0,0 @@
-#!/usr/bin/env ruby
-#--
-# Copyright 2010 Per Øyvind Karlsen <peroyvind at mandriva.org>
-# This program is free software. It may be redistributed and/or modified under
-# the terms of the LGPL version 2.1 (or later).
-#++
-
-require 'optparse'
-require 'rubygems'
-
-# Write the .gemspec specification (in Ruby)
-def writespec(spec)
-	file_name = spec.full_name.untaint + '.gemspec'
-	File.open(file_name, "w") do |file|
-		file.puts spec.to_ruby_for_cache
-	end
-	print "Wrote: %s\n" % file_name
-end
-
-# make gemspec self-contained
-if ARGV[0] == "spec-dump"
-	spec = eval(File.read(ARGV[1]))
-	writespec(spec)
-	exit(0)
-end
-
-if ARGV[0] == "build" or ARGV[0] == "install" or ARGV[0] == "spec"
-  require 'yaml'
-  require 'zlib'
-
-  filter = nil
-  opts = nil
-  keepcache = false
-  fixperms = false
-  gemdir = nil
-  dry_run = false
-  files = []
-  argv = ARGV[1..-1]
-  # Push this into some environment variables as the modified classes doesn't
-  # seem to be able to access our global variables.. </lameworkaround>
-  ENV['GEM_MODE'] = ARGV[0]
-  if ARGV[0] == "build"
-    opts = OptionParser.new("#{$0} <--filter PATTERN>")
-    opts.on("-f", "--filter PATTERN", "Filter pattern to use for gem files") do |val|
-      filter = val
-    end
-    opts.on("-j", "--jobs JOBS", "Number  of  jobs to run simultaneously.") do |val|
-      ENV['jobs'] = "-j"+val
-    end
-    opts.on("--dry-run", "Only show the files the gem will include") do
-      ARGV.delete("--dry-run")
-      dry_run = true
-    end
-  elsif ARGV[0] == "install"
-    opts = OptionParser.new("#{$0} <--keep-cache>")
-    opts.on("--keep-cache", "Don't delete gem copy from cache") do
-      ARGV.delete("--keep-cache")
-      keepcache = true
-    end
-    opts.on("--fix-permissions", "Force standard permissions for files installed") do
-      ARGV.delete("--fix-permissions")
-      fixperms = true
-    end    
-    opts.on("-i", "--install-dir GEMDIR", "Gem repository directory") do |val|
-      gemdir = val
-    end
-  end
-  while argv.length > 0
-    begin
-      opts.parse!(argv)
-    rescue OptionParser::InvalidOption => e
-      e.recover(argv)
-    end
-    argv.delete_at(0)
-  end
-
-  file_data = Zlib::GzipReader.open("metadata.gz") {|io| io.read}
-  header = YAML::load(file_data)
-  body = {}
-  # I don't know any better.. :/
-  header.instance_variables.each do |iv|
-	  body[iv.to_s.sub(/^@/,'')] = header.instance_variable_get(iv)
-  end
-
-  spec = Gem::Specification.from_yaml(YAML.dump(header))
-
-  if ARGV[0] == "spec"
-    writespec(spec)
-    exit(0)
-  end
-
-  if ARGV[0] == "install"
-    system("gem %s %s.gem" % [ARGV.join(' '), spec.full_name])
-    if !keepcache
-      require 'fileutils'
-      FileUtils.rm_rf("%s/cache" % gemdir)
-    end
-    if fixperms
-      chmod = "chmod u+r,u+w,g-w,g+r,o+r -R %s" % gemdir
-      print "\nFixing permissions:\n\n%s\n" % chmod
-      system("%s" % chmod)
-      print "\n"
-    end
-  end
-
-  if body['extensions'].size > 0
-    require 'rubygems/ext'
-    module Gem::Ext
-      class Builder
-	def self.make(dest_path, results)
-	  make_program = ENV['make']
-	  unless make_program then
-	    make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make'
-	  end
-	  cmd = make_program
-	  if ENV['GEM_MODE'] == "build"
-  	    cmd += " %s" % ENV['jobs']
-	  elsif ENV['GEM_MODE'] == "install"
-	    cmd += " DESTDIR='%s' install" % ENV['DESTDIR']
-	  end
-	  results << cmd
-	  results << `#{cmd} #{redirector}`
-
-	  raise Gem::ExtensionBuildError, "make failed:\n\n#{results}" unless
-	  $?.success?
-	end
-      end
-    end
-
-    require 'rubygems/installer'
-    module Gem
-      class Installer
-      	def initialize(spec, options={})
-	  @gem_dir = Dir.pwd
-      	  @spec = spec
-	end
-      end
-      class ConfigFile
-	def really_verbose
-	  true
-	end
-      end
-    end
-
-    unless dry_run
-      Gem::Installer.new(spec).build_extensions
-    else
-      for ext in body['extensions']
-	files.push(ext[0..ext.rindex("/")-1]+".so")
-      end
-    end
-
-    body['extensions'].clear()
-  end
-  if ARGV[0] == "build"
-    body['test_files'].clear()
-
-    # We don't want ext/ in require_paths, it will only contain content for
-    # building extensions which needs to be installed in sitearchdir anyways..
-    idx = 0
-    for i in 0..body['require_paths'].size()-1
-      if body['require_paths'][idx].match("^ext(/|$)")
-	body['require_paths'].delete_at(idx)
-      else
-	idx += 1
-      end
-    end
-
-    # We'll get rid of all the files we don't really need to install
-    idx = 0
-    for i in 0..body['files'].size()-1
-      if filter and body['files'][idx].match(filter)
-	match = true
-      else
-	match = false
-	for path in body['require_paths']
-	  if body['files'][idx].match("^%s/" % path)
-	    match = true
-	  end
-	end
-      end
-      if !match
-	body['files'].delete_at(idx)
-      else
-	idx += 1
-      end
-    end
-
-    spec = Gem::Specification.from_yaml(YAML.dump(header))
-    unless dry_run
-      Gem::Builder.new(spec).build
-    else
-      files.concat(spec.files)
-      print "%s\n" % files.join("\n")
-    end
-  end
-end
diff --git a/rubygems.rb b/rubygems.rb
deleted file mode 100755
index a3f63aa..0000000
--- a/rubygems.rb
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/env ruby
-#--
-# Copyright 2010 Per Øyvind Karlsen <peroyvind at mandriva.org>
-# This program is free software. It may be redistributed and/or modified under
-# the terms of the LGPL version 2.1 (or later).
-#
-# FIXME: Someone with actual ruby skills should really clean up and sanitize
-# 	 this! fugliness obvious...
-#++
-
-require 'optparse'
-require 'rbconfig'
-
-provides = false
-requires = false
-
-opts = OptionParser.new("#{$0} <--provides|--requires>")
-opts.on("-P", "--provides", "Print provides") do |val|
-  provides = true
-end
-opts.on("-R", "--requires", "Print requires") do |val|
-  requires= true
-end
-
-rest = opts.permute(ARGV)
-
-if rest.size != 0 or (!provides and !requires) or (provides and requires)
-  $stderr.puts "Use either --provides OR --requires"
-  $stderr.puts opts
-  exit(1)
-end
-
-require 'rubygems'
-gem_dir = Gem.respond_to?(:default_dirs) ? Gem.default_dirs[:system][:gem_dir] : Gem.path.first
-specpatt = "#{gem_dir}/specifications/.*\.gemspec$"
-gems = []
-ruby_versioned = false
-abi_provide = false
-# as ruby_version may be empty, take version from basename of archdir
-ruby_version = RbConfig::CONFIG["ruby_version"].empty? ? File.basename(RbConfig::CONFIG["archdir"]) : RbConfig::CONFIG["ruby_version"]
-
-for path in $stdin.readlines
-  # way fugly, but we make the assumption that if the package has
-  # this file, the package is the current ruby version, and should
-  # therefore provide ruby(abi) = version
-  if provides and path.match(RbConfig::CONFIG["archdir"] + "/rbconfig.rb")
-     abi_provide = true
-     ruby_versioned = true
-  elsif path.match(specpatt)
-    gems.push(path.chomp)
-  # this is quite ugly and lame, but the assumption made is that if any files
-  # found in any of these directories specific to this ruby version, the
-  # package is dependent on this specific version.
-  # FIXME: only supports current ruby version
-  elsif not ruby_versioned
-    if path.match(RbConfig::CONFIG["rubylibdir"])
-      ruby_versioned = true
-    elsif path.match(RbConfig::CONFIG["archdir"])
-      ruby_versioned = true
-    elsif path.match(RbConfig::CONFIG["sitelibdir"])
-      ruby_versioned = !RbConfig::CONFIG["ruby_version"].empty?
-    elsif path.match(RbConfig::CONFIG["sitearchdir"])
-      ruby_versioned = true
-    elsif path.match(RbConfig::CONFIG["vendorlibdir"])
-      ruby_versioned = !RbConfig::CONFIG["ruby_version"].empty?
-    elsif path.match(RbConfig::CONFIG["vendorarchdir"])
-      ruby_versioned = true
-    end
-  end
-end
-
-if requires or abi_provide
-  abidep = "ruby(abi)"
-  if ruby_versioned
-    abidep += " = %s" % ruby_version
-  end
-  print abidep + "\n"
-end
-
-if gems.length > 0
-  require 'rubygems'
-
-  if requires
-
-    module Gem
-      class Requirement
-        def rpm_dependency_transform(name, version)
-          pessimistic = ""
-          if version == "> 0.0.0" or version == ">= 0"
-            version = ""
-          else
-            if version[0..1] == "~>"
-              pessimistic = "rubygem(%s) < %s\n" % [name, Gem::Version.create(version[3..-1]).bump]
-              version = version.gsub(/\~>/, '=>')
-            end
-            if version[0..1] == "!="
-              version = version.gsub(/\!=/, '>')
-            end
-            version = version.sub(/^/, ' ')
-          end
-          version = "rubygem(%s)%s\n%s" % [name, version, pessimistic]
-        end
-
-        def to_rpm(name)
-          result = as_list
-          return result.map { |version| rpm_dependency_transform(name, version) }
-        end
-
-      end
-    end
-  end
-
-  for gem in gems
-    data = File.read(gem)
-    spec = eval(data)
-    if provides
-      print "rubygem(%s) = %s\n" % [spec.name, spec.version]
-    end
-    if requires
-      for d in spec.dependencies
-        print d.requirement.to_rpm(d.name)[0] unless d.type != :runtime
-      end
-      for d in spec.required_rubygems_version.to_rpm("rubygems")
-        print d.gsub(/(rubygem\()|(\))/, "")
-      end
-    end
-  end
-end
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/rpm.git/commitdiff/cffb64ba2db7b311147604c09b2ed00ea8974d6d



More information about the pld-cvs-commit mailing list