autoproj 1.7.10 → 1.7.11.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +38 -0
- data/bin/autoproj_bootstrap +9 -6
- data/lib/autoproj/autobuild.rb +30 -6
- data/lib/autoproj/cmdline.rb +11 -1
- data/lib/autoproj/gitorious.rb +14 -2
- data/lib/autoproj/manifest.rb +90 -5
- data/lib/autoproj/osdeps.rb +9 -6
- data/lib/autoproj/version.rb +1 -1
- metadata +13 -9
data/History.txt
CHANGED
|
@@ -1,3 +1,41 @@
|
|
|
1
|
+
= Version 1.7.11
|
|
2
|
+
* loads of fixes related to ignore_packages
|
|
3
|
+
- fix ignored packages being built if a package depends on them
|
|
4
|
+
- allow whole package sets to be ignored
|
|
5
|
+
- make setup_package(package_name) { |pkg| ... } ignore the block if the
|
|
6
|
+
package is ignored
|
|
7
|
+
* really fix ignoring osdeps dependencies completely (thought to be working in
|
|
8
|
+
1.7.9). The following syntax is now accepted in osdeps files:
|
|
9
|
+
|
|
10
|
+
ruby: ignore
|
|
11
|
+
|
|
12
|
+
* add the 'nonexistent' keyword in osdeps files. In combination with the
|
|
13
|
+
default target, it makes it easier to add new osdeps packages. For instance,
|
|
14
|
+
the following snippet will cause anyone trying to get libnl2-dev to fail on
|
|
15
|
+
older ubuntu versions:
|
|
16
|
+
|
|
17
|
+
libnl2:
|
|
18
|
+
debian: libnl2-dev
|
|
19
|
+
ubuntu:
|
|
20
|
+
'10.04,10.10': nonexistent
|
|
21
|
+
default: libnl2-dev
|
|
22
|
+
|
|
23
|
+
* add more fine-grained control over the osdeps/source packages relationships.
|
|
24
|
+
Until now, we had a fallback mechanism in which nonexistent osdeps would be
|
|
25
|
+
replaced by source packages with the same name.
|
|
26
|
+
|
|
27
|
+
The replacement packages can now be specified (they don't have to have the
|
|
28
|
+
same name) with
|
|
29
|
+
|
|
30
|
+
Autoproj.add_osdeps_overrides 'opencv', :packages => ['external/opencv']
|
|
31
|
+
|
|
32
|
+
Moreover, if one wants to make sure that the source package is taken instead
|
|
33
|
+
of the osdeps one regardless of everything else, he can do
|
|
34
|
+
|
|
35
|
+
Autoproj.add_osdeps_overrides 'opencv', :packages => ['external/opencv'], :force => true
|
|
36
|
+
|
|
37
|
+
* small API addition and fixes
|
|
38
|
+
|
|
1
39
|
= Version 1.7.10
|
|
2
40
|
* really fix support of virtual packages on dpkg-based systems (debian, ubuntu)
|
|
3
41
|
1.7.9 was only supporting packages that were providing only one package
|
data/bin/autoproj_bootstrap
CHANGED
|
@@ -432,13 +432,11 @@ fi
|
|
|
432
432
|
dep_def = definitions[name]
|
|
433
433
|
if !dep_def
|
|
434
434
|
return NO_PACKAGE
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
if dep_def == 'ignore'
|
|
435
|
+
elsif dep_def == 'ignore'
|
|
438
436
|
return IGNORE
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
437
|
+
elsif dep_def == 'nonexistent'
|
|
438
|
+
return WRONG_OS_VERSION
|
|
439
|
+
elsif !os_names
|
|
442
440
|
return UNKNOWN_OS
|
|
443
441
|
end
|
|
444
442
|
|
|
@@ -478,6 +476,10 @@ fi
|
|
|
478
476
|
data = version_entry.last
|
|
479
477
|
end
|
|
480
478
|
|
|
479
|
+
if data.respond_to?(:to_str) && data.to_str == 'nonexistent'
|
|
480
|
+
return WRONG_OS_VERSION
|
|
481
|
+
end
|
|
482
|
+
|
|
481
483
|
if data.respond_to?(:to_ary)
|
|
482
484
|
# List of packages
|
|
483
485
|
return [PACKAGES, data]
|
|
@@ -602,6 +604,7 @@ fi
|
|
|
602
604
|
if pkg_def.respond_to?(:to_str)
|
|
603
605
|
case(pkg_def.to_str)
|
|
604
606
|
when "ignore" then
|
|
607
|
+
osdeps << name
|
|
605
608
|
when "gem" then
|
|
606
609
|
gems << name
|
|
607
610
|
else
|
data/lib/autoproj/autobuild.rb
CHANGED
|
@@ -98,6 +98,8 @@ module Autobuild
|
|
|
98
98
|
def depends_on(name)
|
|
99
99
|
if Autoproj::CmdLine.ignore_dependencies?
|
|
100
100
|
return
|
|
101
|
+
elsif Autoproj.manifest.ignored?(name)
|
|
102
|
+
return
|
|
101
103
|
end
|
|
102
104
|
|
|
103
105
|
@os_packages ||= Set.new
|
|
@@ -111,8 +113,22 @@ module Autobuild
|
|
|
111
113
|
osdeps_availability = Autoproj.osdeps.availability_of(name)
|
|
112
114
|
available_as_source = Autobuild::Package[name]
|
|
113
115
|
|
|
116
|
+
osdeps_overrides = Autoproj.manifest.osdeps_overrides[name]
|
|
117
|
+
if osdeps_overrides
|
|
118
|
+
source_packages = osdeps_overrides[:packages]
|
|
119
|
+
if source_packages.empty?
|
|
120
|
+
source_packages << name
|
|
121
|
+
end
|
|
122
|
+
force_source_usage = osdeps_overrides[:force]
|
|
123
|
+
available_as_source = true
|
|
124
|
+
end
|
|
125
|
+
|
|
114
126
|
# Prefer OS packages to source packages
|
|
115
|
-
if !
|
|
127
|
+
if force_source_usage && !source_packages.any? { |pkg_name| Autoproj.manifest.excluded?(pkg_name) }
|
|
128
|
+
source_packages.each do |pkg_name|
|
|
129
|
+
__depends_on__(pkg_name)
|
|
130
|
+
end
|
|
131
|
+
elsif !explicit_selection
|
|
116
132
|
if osdeps_availability == Autoproj::OSDependencies::AVAILABLE
|
|
117
133
|
@os_packages << name
|
|
118
134
|
return
|
|
@@ -149,10 +165,11 @@ module Autobuild
|
|
|
149
165
|
end
|
|
150
166
|
# Should never reach further than that
|
|
151
167
|
end
|
|
168
|
+
__depends_on__(name) # to get the error message
|
|
169
|
+
else
|
|
170
|
+
# Normal dependency
|
|
171
|
+
__depends_on__(name)
|
|
152
172
|
end
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
__depends_on__(name) # to get the error message
|
|
156
173
|
end
|
|
157
174
|
|
|
158
175
|
def depends_on_os_package(name)
|
|
@@ -259,6 +276,10 @@ module Autoproj
|
|
|
259
276
|
@file_stack.pop
|
|
260
277
|
end
|
|
261
278
|
|
|
279
|
+
class << self
|
|
280
|
+
attr_reader :loaded_autobuild_files
|
|
281
|
+
end
|
|
282
|
+
|
|
262
283
|
def self.import_autobuild_file(source, path)
|
|
263
284
|
return if @loaded_autobuild_files.include?(path)
|
|
264
285
|
|
|
@@ -302,8 +323,11 @@ def setup_package(package_name, &block)
|
|
|
302
323
|
package_definition = Autoproj.manifest.package(package_name)
|
|
303
324
|
if !package_definition
|
|
304
325
|
raise ConfigError.new, "#{package_name} is not a known package"
|
|
326
|
+
elsif package_definition.autobuild.kind_of?(Autobuild::DummyPackage)
|
|
327
|
+
# Nothing to do!
|
|
328
|
+
else
|
|
329
|
+
package_definition.add_setup_block(block)
|
|
305
330
|
end
|
|
306
|
-
package_definition.add_setup_block(block)
|
|
307
331
|
end
|
|
308
332
|
|
|
309
333
|
# Common setup for packages
|
|
@@ -319,7 +343,7 @@ def package_common(package_type, spec, &block) # :nodoc:
|
|
|
319
343
|
end
|
|
320
344
|
|
|
321
345
|
# Check if this package is ignored
|
|
322
|
-
if Autoproj.manifest.ignored?(package_name)
|
|
346
|
+
if Autoproj.manifest.ignored?(package_name) || Autoproj.manifest.ignored?(Autoproj.current_file[0].name)
|
|
323
347
|
return Autoproj.define(:dummy, spec)
|
|
324
348
|
end
|
|
325
349
|
|
data/lib/autoproj/cmdline.rb
CHANGED
|
@@ -41,6 +41,10 @@ module Autoproj
|
|
|
41
41
|
Autobuild::Reporting << Autobuild::MailReporter.new(mail_config)
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
+
# Remove from LOADED_FEATURES everything that is coming from our
|
|
45
|
+
# configuration directory
|
|
46
|
+
Autobuild::Package.clear
|
|
47
|
+
Autoproj.loaded_autobuild_files.clear
|
|
44
48
|
Autoproj.load_config
|
|
45
49
|
|
|
46
50
|
if Autoproj.has_config_key?('prefix')
|
|
@@ -302,6 +306,7 @@ module Autoproj
|
|
|
302
306
|
pkg.user_blocks.each do |blk|
|
|
303
307
|
blk[pkg.autobuild]
|
|
304
308
|
end
|
|
309
|
+
pkg.setup = true
|
|
305
310
|
end
|
|
306
311
|
|
|
307
312
|
# Load the package's override files. each_source must not load the
|
|
@@ -469,6 +474,7 @@ module Autoproj
|
|
|
469
474
|
while sel != '/'
|
|
470
475
|
if handler = Autoproj.package_handler_for(sel)
|
|
471
476
|
Autoproj.progress " auto-adding #{sel} using the #{handler.gsub(/_package/, '')} package handler"
|
|
477
|
+
sel = File.expand_path(sel)
|
|
472
478
|
relative_to_root = Pathname.new(sel).relative_path_from(Pathname.new(Autoproj.root_dir))
|
|
473
479
|
pkg = Autoproj.in_package_set(manifest.local_package_set, manifest.file) do
|
|
474
480
|
send(handler, relative_to_root)
|
|
@@ -550,7 +556,8 @@ module Autoproj
|
|
|
550
556
|
current_packages = current_packages.sort_by(&:name)
|
|
551
557
|
|
|
552
558
|
current_packages.
|
|
553
|
-
delete_if { |pkg| all_enabled_packages.include?(pkg.name) }
|
|
559
|
+
delete_if { |pkg| all_enabled_packages.include?(pkg.name) }.
|
|
560
|
+
delete_if { |pkg| Autoproj.manifest.ignored?(pkg.name) }
|
|
554
561
|
all_enabled_packages |= current_packages.map(&:name).to_set
|
|
555
562
|
|
|
556
563
|
# Recursively check that no package in the selection depend on
|
|
@@ -1632,6 +1639,9 @@ export PATH=$GEM_HOME/bin:$PATH
|
|
|
1632
1639
|
|
|
1633
1640
|
Autoproj::CmdLine.update_os_dependencies = false
|
|
1634
1641
|
Autoproj::CmdLine.initialize
|
|
1642
|
+
if Autobuild.do_update
|
|
1643
|
+
Autoproj::CmdLine.update_configuration
|
|
1644
|
+
end
|
|
1635
1645
|
Autoproj::CmdLine.load_configuration
|
|
1636
1646
|
Autoproj::CmdLine.setup_all_package_directories
|
|
1637
1647
|
Autoproj::CmdLine.finalize_package_setup
|
data/lib/autoproj/gitorious.rb
CHANGED
|
@@ -55,14 +55,26 @@ module Autoproj
|
|
|
55
55
|
root_rx = /^(?:http:\/\/git\.|git:\/\/|git@)#{Regexp.quote(base_url)}:?/
|
|
56
56
|
if importer.kind_of?(Autobuild::Git) && importer.repository =~ root_rx && importer.repository !~ /^http/
|
|
57
57
|
Autoproj.warn "import from #{importer.repository} failed, falling back to using http for all packages on #{base_url}"
|
|
58
|
+
|
|
59
|
+
base_replace_string = "http://git.#{base_url}"
|
|
58
60
|
Autobuild::Package.each do |pkg_name, pkg|
|
|
59
61
|
if pkg.importer.kind_of?(Autobuild::Git) && pkg.importer.repository =~ root_rx
|
|
60
|
-
pkg.importer.repository
|
|
62
|
+
if pkg.importer.repository =~ /^git@/
|
|
63
|
+
replace_string = "#{base_replace_string}/"
|
|
64
|
+
else
|
|
65
|
+
replace_string = base_replace_string
|
|
66
|
+
end
|
|
67
|
+
pkg.importer.repository.gsub!(root_rx, replace_string)
|
|
61
68
|
end
|
|
62
69
|
end
|
|
63
70
|
|
|
64
71
|
http_importer = importer.dup
|
|
65
|
-
http_importer.repository
|
|
72
|
+
if http_importer.repository =~ /^git@/
|
|
73
|
+
replace_string = "#{base_replace_string}/"
|
|
74
|
+
else
|
|
75
|
+
replace_string = base_replace_string
|
|
76
|
+
end
|
|
77
|
+
http_importer.repository = importer.repository.gsub(root_rx, replace_string)
|
|
66
78
|
http_importer
|
|
67
79
|
end
|
|
68
80
|
end
|
data/lib/autoproj/manifest.rb
CHANGED
|
@@ -696,6 +696,8 @@ module Autoproj
|
|
|
696
696
|
attr_reader :user_blocks
|
|
697
697
|
attr_reader :package_set
|
|
698
698
|
attr_reader :file
|
|
699
|
+
def setup?; !!@setup end
|
|
700
|
+
attr_writer :setup
|
|
699
701
|
|
|
700
702
|
def initialize(autobuild, package_set, file)
|
|
701
703
|
@autobuild, @package_set, @file =
|
|
@@ -705,6 +707,9 @@ module Autoproj
|
|
|
705
707
|
|
|
706
708
|
def add_setup_block(block)
|
|
707
709
|
user_blocks << block
|
|
710
|
+
if setup?
|
|
711
|
+
block.call(autobuild)
|
|
712
|
+
end
|
|
708
713
|
end
|
|
709
714
|
end
|
|
710
715
|
|
|
@@ -813,6 +818,7 @@ module Autoproj
|
|
|
813
818
|
@constants_definitions = Hash.new
|
|
814
819
|
@disabled_imports = Set.new
|
|
815
820
|
@moved_packages = Hash.new
|
|
821
|
+
@osdeps_overrides = Hash.new
|
|
816
822
|
|
|
817
823
|
@constant_definitions = Hash.new
|
|
818
824
|
if Autoproj.has_config_key?('manifest_source')
|
|
@@ -834,12 +840,35 @@ module Autoproj
|
|
|
834
840
|
# This is useful if the packages are already installed on this system.
|
|
835
841
|
def ignored?(package_name)
|
|
836
842
|
if data['ignore_packages']
|
|
837
|
-
data['ignore_packages'].any?
|
|
843
|
+
data['ignore_packages'].any? do |l|
|
|
844
|
+
if package_name == l
|
|
845
|
+
true
|
|
846
|
+
elsif source = definition_source(package_name)
|
|
847
|
+
source.name == l
|
|
848
|
+
else
|
|
849
|
+
false
|
|
850
|
+
end
|
|
851
|
+
end
|
|
838
852
|
else
|
|
839
853
|
false
|
|
840
854
|
end
|
|
841
855
|
end
|
|
842
856
|
|
|
857
|
+
# Removes all registered exclusions
|
|
858
|
+
def clear_exclusions
|
|
859
|
+
automatic_exclusions.clear
|
|
860
|
+
if excl = data['exclude_packages']
|
|
861
|
+
excl.clear
|
|
862
|
+
end
|
|
863
|
+
end
|
|
864
|
+
|
|
865
|
+
# Removes all registered ignored packages
|
|
866
|
+
def clear_ignored
|
|
867
|
+
if ignored = data['ignore_packages']
|
|
868
|
+
ignored.clear
|
|
869
|
+
end
|
|
870
|
+
end
|
|
871
|
+
|
|
843
872
|
# The set of package names that are listed in the excluded_packages
|
|
844
873
|
# section of the manifest
|
|
845
874
|
def manifest_exclusions
|
|
@@ -1061,10 +1090,14 @@ module Autoproj
|
|
|
1061
1090
|
end
|
|
1062
1091
|
|
|
1063
1092
|
def definition_source(package_name)
|
|
1064
|
-
@packages[package_name]
|
|
1093
|
+
if pkg_def = @packages[package_name]
|
|
1094
|
+
pkg_def.package_set
|
|
1095
|
+
end
|
|
1065
1096
|
end
|
|
1066
1097
|
def definition_file(package_name)
|
|
1067
|
-
@packages[package_name]
|
|
1098
|
+
if pkg_def = @packages[package_name]
|
|
1099
|
+
pkg_def.file
|
|
1100
|
+
end
|
|
1068
1101
|
end
|
|
1069
1102
|
|
|
1070
1103
|
def package(name)
|
|
@@ -1408,7 +1441,9 @@ module Autoproj
|
|
|
1408
1441
|
layout_data.each do |value|
|
|
1409
1442
|
if value.kind_of?(Hash)
|
|
1410
1443
|
subname, subdef = value.find { true }
|
|
1411
|
-
|
|
1444
|
+
if subdef
|
|
1445
|
+
normalized_layout(result, "#{layout_level}#{subname}/", subdef)
|
|
1446
|
+
end
|
|
1412
1447
|
else
|
|
1413
1448
|
result[value] = layout_level
|
|
1414
1449
|
end
|
|
@@ -1526,6 +1561,31 @@ module Autoproj
|
|
|
1526
1561
|
Autoproj.osdeps.install(required_os_packages, package_os_deps)
|
|
1527
1562
|
end
|
|
1528
1563
|
|
|
1564
|
+
# The set of overrides added with #add_osdeps_overrides
|
|
1565
|
+
attr_reader :osdeps_overrides
|
|
1566
|
+
|
|
1567
|
+
# Declares that autoproj should use normal package(s) to provide the
|
|
1568
|
+
# +osdeps_name+ OS package in cases +osdeps_name+ does not exist.
|
|
1569
|
+
#
|
|
1570
|
+
# The full syntax is
|
|
1571
|
+
#
|
|
1572
|
+
# Autoproj.add_osdeps_overrides 'opencv', :package => 'external/opencv'
|
|
1573
|
+
#
|
|
1574
|
+
# If more than one packages should be built, use the :packages option
|
|
1575
|
+
# with an array:
|
|
1576
|
+
#
|
|
1577
|
+
# Autoproj.add_osdeps_overrides 'opencv', :packages => ['external/opencv', 'external/test']
|
|
1578
|
+
#
|
|
1579
|
+
# The :force option allows to force the usage of the source package(s),
|
|
1580
|
+
# regardless of the availability of the osdeps package.
|
|
1581
|
+
def add_osdeps_overrides(osdeps_name, options)
|
|
1582
|
+
options = Kernel.validate_options options, :package => nil, :packages => [], :force => false
|
|
1583
|
+
if pkg = options.delete(:package)
|
|
1584
|
+
options[:packages] << pkg
|
|
1585
|
+
end
|
|
1586
|
+
@osdeps_overrides[osdeps_name.to_s] = options
|
|
1587
|
+
end
|
|
1588
|
+
|
|
1529
1589
|
# Package selection can be done in three ways:
|
|
1530
1590
|
# * as a subdirectory in the layout
|
|
1531
1591
|
# * as a on-disk directory
|
|
@@ -1585,7 +1645,29 @@ module Autoproj
|
|
|
1585
1645
|
end
|
|
1586
1646
|
|
|
1587
1647
|
# Remove packages that are explicitely excluded and/or ignored
|
|
1588
|
-
|
|
1648
|
+
#
|
|
1649
|
+
# Raise an error if an explicit selection expands only to an
|
|
1650
|
+
# excluded package, and display a warning for ignored packages
|
|
1651
|
+
matches.each do |sel, expansion|
|
|
1652
|
+
next if expansion.empty?
|
|
1653
|
+
excluded, other = expansion.partition { |pkg_name| excluded?(pkg_name) }
|
|
1654
|
+
ignored, ok = other.partition { |pkg_name| ignored?(pkg_name) }
|
|
1655
|
+
|
|
1656
|
+
if ok.empty? && ignored.empty?
|
|
1657
|
+
packages = excluded.map do |pkg_name|
|
|
1658
|
+
[pkg_name, Autoproj.manifest.exclusion_reason(pkg_name)]
|
|
1659
|
+
end
|
|
1660
|
+
raise ConfigError.new, "selection #{sel} expands to #{packages.map(&:first).join(", ")} which are excluded from the build:\n #{packages.map { |name, reason| "#{name}: #{reason}" }.join("\n ")}"
|
|
1661
|
+
elsif !ignored.empty?
|
|
1662
|
+
ignored.each do |pkg_name|
|
|
1663
|
+
Autoproj.warn "#{pkg_name} was selected for #{sel}, but is explicitely ignored in the manifest"
|
|
1664
|
+
end
|
|
1665
|
+
end
|
|
1666
|
+
end
|
|
1667
|
+
|
|
1668
|
+
expanded_packages.delete_if do |pkg_name|
|
|
1669
|
+
excluded?(pkg_name) || ignored?(pkg_name)
|
|
1670
|
+
end
|
|
1589
1671
|
return expanded_packages.to_set, (selection - matches.keys)
|
|
1590
1672
|
end
|
|
1591
1673
|
|
|
@@ -1719,5 +1801,8 @@ module Autoproj
|
|
|
1719
1801
|
end
|
|
1720
1802
|
end
|
|
1721
1803
|
end
|
|
1804
|
+
def self.add_osdeps_overrides(*args, &block)
|
|
1805
|
+
manifest.add_osdeps_overrides(*args, &block)
|
|
1806
|
+
end
|
|
1722
1807
|
end
|
|
1723
1808
|
|
data/lib/autoproj/osdeps.rb
CHANGED
|
@@ -333,13 +333,11 @@ fi
|
|
|
333
333
|
dep_def = definitions[name]
|
|
334
334
|
if !dep_def
|
|
335
335
|
return NO_PACKAGE
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
if dep_def == 'ignore'
|
|
336
|
+
elsif dep_def == 'ignore'
|
|
339
337
|
return IGNORE
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
338
|
+
elsif dep_def == 'nonexistent'
|
|
339
|
+
return WRONG_OS_VERSION
|
|
340
|
+
elsif !os_names
|
|
343
341
|
return UNKNOWN_OS
|
|
344
342
|
end
|
|
345
343
|
|
|
@@ -379,6 +377,10 @@ fi
|
|
|
379
377
|
data = version_entry.last
|
|
380
378
|
end
|
|
381
379
|
|
|
380
|
+
if data.respond_to?(:to_str) && data.to_str == 'nonexistent'
|
|
381
|
+
return WRONG_OS_VERSION
|
|
382
|
+
end
|
|
383
|
+
|
|
382
384
|
if data.respond_to?(:to_ary)
|
|
383
385
|
# List of packages
|
|
384
386
|
return [PACKAGES, data]
|
|
@@ -503,6 +505,7 @@ fi
|
|
|
503
505
|
if pkg_def.respond_to?(:to_str)
|
|
504
506
|
case(pkg_def.to_str)
|
|
505
507
|
when "ignore" then
|
|
508
|
+
osdeps << name
|
|
506
509
|
when "gem" then
|
|
507
510
|
gems << name
|
|
508
511
|
else
|
data/lib/autoproj/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: autoproj
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
5
|
-
prerelease:
|
|
4
|
+
hash: 15424031
|
|
5
|
+
prerelease: 7
|
|
6
6
|
segments:
|
|
7
7
|
- 1
|
|
8
8
|
- 7
|
|
9
|
-
-
|
|
10
|
-
|
|
9
|
+
- 11
|
|
10
|
+
- rc
|
|
11
|
+
- 1
|
|
12
|
+
version: 1.7.11.rc1
|
|
11
13
|
platform: ruby
|
|
12
14
|
authors:
|
|
13
15
|
- Sylvain Joyeux
|
|
@@ -15,7 +17,7 @@ autorequire:
|
|
|
15
17
|
bindir: bin
|
|
16
18
|
cert_chain: []
|
|
17
19
|
|
|
18
|
-
date: 2011-05-
|
|
20
|
+
date: 2011-05-17 00:00:00 Z
|
|
19
21
|
dependencies:
|
|
20
22
|
- !ruby/object:Gem::Dependency
|
|
21
23
|
name: autobuild
|
|
@@ -242,12 +244,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
242
244
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
243
245
|
none: false
|
|
244
246
|
requirements:
|
|
245
|
-
- - "
|
|
247
|
+
- - ">"
|
|
246
248
|
- !ruby/object:Gem::Version
|
|
247
|
-
hash:
|
|
249
|
+
hash: 25
|
|
248
250
|
segments:
|
|
249
|
-
-
|
|
250
|
-
|
|
251
|
+
- 1
|
|
252
|
+
- 3
|
|
253
|
+
- 1
|
|
254
|
+
version: 1.3.1
|
|
251
255
|
requirements: []
|
|
252
256
|
|
|
253
257
|
rubyforge_project: autobuild
|