[prev in list] [next in list] [prev in thread] [next in thread]
List: rpm-devel
Subject: Re: [CVS] RPM: rpm/ CHANGES rpm/autodeps/ linux.prov linux.req
From: Jeff Johnson <n3npq () mac ! com>
Date: 2010-03-18 13:37:43
Message-ID: 0BC54A4E-E31E-4CB1-9825-288BFD9646FD () mac ! com
[Download RAW message or body]
Just FYI:
find-{requires,provides}.sh went obsolete in RHL9.
Yes RedHat Linux 9 released in 2003? 2002? A l-o-o-o-n-g time ago.
So at a minimum, there's another (more modern) place that the
same patch needs to be done.
ANd perhaps Mandriva might do better than patching find-requires some day ...
73 de Jeff
On Mar 18, 2010, at 5:54 AM, Per Øyvind Karlsen wrote:
> RPM Package Manager, CVS Repository
> http://rpm5.org/cvs/
> ____________________________________________________________________________
>
> Server: rpm5.org Name: Per Øyvind Karlsen
> Root: /v/rpm/cvs Email: pkarlsen@rpm5.org
> Module: rpm Date: 18-Mar-2010 10:54:57
> Branch: HEAD Handle: 2010031809545501
>
> Added files:
> rpm/scripts rubygems.rb
> Modified files:
> rpm CHANGES
> rpm/autodeps linux.prov linux.req
>
> Log:
> add rubygem(...) extractors from mandriva.
>
> Summary:
> Revision Changes Path
> 1.3286 +1 -0 rpm/CHANGES
> 1.16 +6 -0 rpm/autodeps/linux.prov
> 1.35 +6 -0 rpm/autodeps/linux.req
> 1.1 +83 -0 rpm/scripts/rubygems.rb
> ____________________________________________________________________________
>
> patch -p0 <<'@@ .'
> Index: rpm/CHANGES
> ============================================================================
> $ cvs diff -u -r1.3285 -r1.3286 CHANGES
> --- rpm/CHANGES 16 Mar 2010 01:42:12 -0000 1.3285
> +++ rpm/CHANGES 18 Mar 2010 09:54:55 -0000 1.3286
> @@ -1,5 +1,6 @@
>
> 5.2b1 -> 5.3a1
> + - proyvind: add rubygem(...) extractors from mandriva.
> - jbj: qf: add --wdj:srpm query format template.
> - jbj: add api-sanity-autotest.pl (GPL->LGPLv2 expected on next release).
> - jbj: _RequestPass: convert assert to returning "" if no password.
> @@ .
> patch -p0 <<'@@ .'
> Index: rpm/autodeps/linux.prov
> ============================================================================
> $ cvs diff -u -r1.15 -r1.16 linux.prov
> --- rpm/autodeps/linux.prov 25 May 2007 17:35:55 -0000 1.15
> +++ rpm/autodeps/linux.prov 18 Mar 2010 09:54:56 -0000 1.16
> @@ -12,6 +12,7 @@
> xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1)
> pythonlist=
> tcllist=
> +rubygemlist=$(echo "$filelist"| egrep "\.gemspec$")
>
> #
> # --- Alpha does not mark 64bit dependencies
> @@ -61,4 +62,9 @@
> [ -x "$usrlibrpm/tcl.prov" -a -n "$tcllist" ] &&
> echo $tcllist | tr '[:blank:]' \\n | "$usrlibrpm/tcl.prov" | sort -u
>
> +#
> +# --- Ruby gems.
> +[ -x "$usrlibrpm/rubygems.rb" -a -n "$rubygemlist" ] &&
> + echo $rubygemlist | tr '[:blank:]' \\n | "$usrlibrpm/rubygems.rb" --provides | sort -u
> +
> exit 0
> @@ .
> patch -p0 <<'@@ .'
> Index: rpm/autodeps/linux.req
> ============================================================================
> $ cvs diff -u -r1.34 -r1.35 linux.req
> --- rpm/autodeps/linux.req 25 May 2007 17:35:55 -0000 1.34
> +++ rpm/autodeps/linux.req 18 Mar 2010 09:54:56 -0000 1.35
> @@ -34,6 +34,7 @@
> perllist=
> pythonlist=
> tcllist=
> +rubygemlist=`echo "$filelist"| egrep "\.gemspec$"`
>
> #
> # --- Alpha does not mark 64bit dependencies
> @@ -134,4 +135,9 @@
> [ -x "$usrlibrpm/tcl.req" -a -n "$tcllist" ] && \
> echo $tcllist | tr '[:blank:]' \\n | "$usrlibrpm/tcl.req" | sort -u
>
> +#
> +# --- Ruby gems
> +[ -x "$usrlibrpm/rubygems.rb" -a -n "$rubygemlist" ] &&
> + echo $rubygemlist | tr '[:blank:]' \\n | "$usrlibrpm/rubygems.rb" --requires | sort -u
> +
> exit 0
> @@ .
> patch -p0 <<'@@ .'
> Index: rpm/scripts/rubygems.rb
> ============================================================================
> $ cvs diff -u -r0 -r1.1 rubygems.rb
> --- /dev/null 2010-03-18 10:45:42 +0100
> +++ rubygems.rb 2010-03-18 10:54:57 +0100
> @@ -0,0 +1,83 @@
> +#!/usr/bin/env ruby
> +#--
> +# Copyright 2010 Per Øyvind Karlsen <peroyvind@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'
> +
> +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
> +
> +specpath = "%s/specifications/.*\.gemspec$" % Gem::dir
> +gems = []
> +for gemspec in $stdin.readlines
> + if gemspec.match(specpath)
> + gems.push(gemspec.chomp)
> + end
> +end
> +if gems.length > 0
> + if requires
> + require 'rbconfig'
> +
> + 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, version[3..-1]]
> + pessimistic[-2] = pessimistic[-2] + 1
> + version = version.gsub(/\~>/, '=>')
> + end
> + version = version.gsub(/^/, ' ')
> + 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
> + print "ruby >= %s\n" % Config::CONFIG["ruby_version"]
> + 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.version_requirements.to_rpm(d.name)
> + end
> + for d in spec.required_rubygems_version.to_rpm("rubygems")
> + print d.gsub(/(rubygem\()|(\))/, "")
> + end
> + end
> + end
> +end
> @@ .
> ______________________________________________________________________
> RPM Package Manager http://rpm5.org
> CVS Sources Repository rpm-cvs@rpm5.org
______________________________________________________________________
RPM Package Manager http://rpm5.org
Developer Communication List rpm-devel@rpm5.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic