From: <jh...@us...> - 2011-10-24 21:09:23
|
Revision: 639 http://tpkg.svn.sourceforge.net/tpkg/?rev=639&view=rev Author: jheiss Date: 2011-10-24 21:09:17 +0000 (Mon, 24 Oct 2011) Log Message: ----------- ticket:43 Don't add extra dependencies to gems being packaged just due to dependencies. Only add the extra dependencies to the gems the user requested. Modified Paths: -------------- trunk/client/bin/gem2tpkg Modified: trunk/client/bin/gem2tpkg =================================================================== --- trunk/client/bin/gem2tpkg 2011-10-21 00:48:21 UTC (rev 638) +++ trunk/client/bin/gem2tpkg 2011-10-24 21:09:17 UTC (rev 639) @@ -393,6 +393,21 @@ pkgnamesuffix = '-' + @gemdep.first.sub(/\W/, '') end + # Determine if we're packaging a gem the user requested or a dependency gem. + # If we're packaging a dependency gem we don't want to add @extradeps or + # @nativedeps. Say you run gem2tpkg for gem foo. You specify some extra + # dependencies with --extra-deps and/or --native-deps. Gem foo depends on + # gems bar and baz. The generated tpkgs for bar and baz will include those + # extra dependencies. I don't think they should. Bar and baz may be very + # general gems with no close relationship to foo. It seems to me if the user + # needs bar and baz to have the same extra dependencies they should gem2tpkg + # those separately. We shouldn't assume everything in the dependency chain + # needs those same dependencies. + packaging_requested_gem = false + if @gems.include?(gem) + packaging_requested_gem = true + end + # Add tpkg.xml os = nil arch = nil @@ -419,7 +434,8 @@ file.puts " <architecture>#{arch}</architecture>" end if !deps.empty? || - !@extradeps.empty? || !@nativedeps.empty? || + (!@extradeps.empty? && packaging_requested_gem) || + (!@nativedeps.empty? && packaging_requested_gem) || !@gemdep.empty? file.puts ' <dependencies>' deps.each do |depgem, depvers| @@ -433,29 +449,31 @@ end file.puts ' </dependency>' end - @extradeps.each do |extradep, depvers| - file.puts ' <dependency>' - file.puts " <name>#{extradep}</name>" - if depvers[:minimum_version] - file.puts " <minimum_version>#{depvers[:minimum_version]}</minimum_version>" + if packaging_requested_gem + @extradeps.each do |extradep, depvers| + file.puts ' <dependency>' + file.puts " <name>#{extradep}</name>" + if depvers[:minimum_version] + file.puts " <minimum_version>#{depvers[:minimum_version]}</minimum_version>" + end + if depvers[:maximum_version] + file.puts " <maximum_version>#{depvers[:maximum_version]}</maximum_version>" + end + file.puts ' </dependency>' end - if depvers[:maximum_version] - file.puts " <maximum_version>#{depvers[:maximum_version]}</maximum_version>" + @nativedeps.each do |nativedep, depvers| + file.puts ' <dependency>' + file.puts " <name>#{nativedep}</name>" + if depvers[:minimum_version] + file.puts " <minimum_version>#{depvers[:minimum_version]}</minimum_version>" + end + if depvers[:maximum_version] + file.puts " <maximum_version>#{depvers[:maximum_version]}</maximum_version>" + end + file.puts ' <native/>' + file.puts ' </dependency>' end - file.puts ' </dependency>' end - @nativedeps.each do |nativedep, depvers| - file.puts ' <dependency>' - file.puts " <name>#{nativedep}</name>" - if depvers[:minimum_version] - file.puts " <minimum_version>#{depvers[:minimum_version]}</minimum_version>" - end - if depvers[:maximum_version] - file.puts " <maximum_version>#{depvers[:maximum_version]}</maximum_version>" - end - file.puts ' <native/>' - file.puts ' </dependency>' - end @gemdep.each do |gemdep| file.puts ' <dependency>' file.puts " <name>#{gemdep}</name>" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |