[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