ruby-debian 0.3.8

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.
Files changed (56) hide show
  1. data/Makefile +47 -0
  2. data/README +55 -0
  3. data/TODO +29 -0
  4. data/bin/dpkg-checkdeps +163 -0
  5. data/bin/dpkg-ruby +148 -0
  6. data/debian/changelog +310 -0
  7. data/debian/compat +1 -0
  8. data/debian/control +56 -0
  9. data/debian/copyright +26 -0
  10. data/debian/dirs +2 -0
  11. data/debian/manpages +0 -0
  12. data/debian/ruby-debian.docs +3 -0
  13. data/debian/ruby-debian.examples +1 -0
  14. data/debian/ruby-debian.manpages +2 -0
  15. data/debian/rules +15 -0
  16. data/debian/source/format +1 -0
  17. data/examples/ONE_LINER +39 -0
  18. data/examples/dpkg.rb +95 -0
  19. data/examples/list_packages.rb +38 -0
  20. data/examples/unmet_packages.rb +39 -0
  21. data/ext/debian_version/Version.cpp +43 -0
  22. data/ext/debian_version/extconf.rb +7 -0
  23. data/lib/debian.rb +1063 -0
  24. data/lib/debian/ar.rb +159 -0
  25. data/lib/debian/utils.rb +111 -0
  26. data/man/dpkg-checkdeps.1 +102 -0
  27. data/man/dpkg-ruby.1 +99 -0
  28. data/t/d/available +492 -0
  29. data/t/d/non-US_sid_Sources +32 -0
  30. data/t/d/non-US_sid_i386_Packages +50 -0
  31. data/t/d/sid_Sources +287 -0
  32. data/t/d/sid_i386_Packages +456 -0
  33. data/t/d/status +324 -0
  34. data/t/d/w3m-ssl_0.2.1-1.f +24 -0
  35. data/t/d/w3m-ssl_0.2.1-2.dsc +12 -0
  36. data/t/d/w3m-ssl_0.2.1-2.f +24 -0
  37. data/t/d/w3m_0.2.1-1.dsc +12 -0
  38. data/t/d/w3m_0.2.1-1.f +21 -0
  39. data/t/d/w3m_0.2.1-2.dsc +12 -0
  40. data/t/d/w3m_0.2.1-2.f +21 -0
  41. data/t/d/w3m_met_list +83 -0
  42. data/t/testall.rb +50 -0
  43. data/t/testar.rb +59 -0
  44. data/t/testarchives.rb +277 -0
  45. data/t/testdeb.rb +239 -0
  46. data/t/testdep.rb +70 -0
  47. data/t/testdepterm.rb +140 -0
  48. data/t/testdepunmet.rb +71 -0
  49. data/t/testdpkg.rb +197 -0
  50. data/t/testdpkgdeb.rb +83 -0
  51. data/t/testdsc.rb +49 -0
  52. data/t/testfield.rb +155 -0
  53. data/t/testpackages.rb +138 -0
  54. data/t/testsources.rb +44 -0
  55. data/t/teststatus.rb +38 -0
  56. metadata +133 -0
@@ -0,0 +1,83 @@
1
+ Package: w3m
2
+ Priority: optional
3
+ Section: text
4
+ Maintainer: Fumitoshi UKAI <ukai@debian.or.jp>
5
+ Version: 0.2.1-2
6
+ Provides: www-browser
7
+ Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1)
8
+ Suggests: w3m-ssl (>= 0.2.1-2), mime-support, menu (>> 1.5), w3m-el
9
+ Description: test
10
+ test
11
+
12
+ Package: libc6
13
+ Version: 2.2.2-4
14
+ Section: base
15
+ Priority: required
16
+ Architecture: i386
17
+ Maintainer: foo bar <foo@bar>
18
+ Description: dependency test
19
+ dependency test
20
+
21
+ Package: libgc5
22
+ Version: 1:5.3-2
23
+ Section: libs
24
+ Priority: optional
25
+ Architecture: i386
26
+ Maintainer: foo bar <foo@bar>
27
+ Description: dependency test
28
+ dependency test
29
+
30
+ Package: libgpmg1
31
+ Version: 1.19.3-6
32
+ Priority: optional
33
+ Section: libs
34
+ Maintainer: foo bar <foo@bar>
35
+ Description: dependency test
36
+ dependency test
37
+
38
+ Package: libncurses5
39
+ Version: 5.2.20010318-1
40
+ Priority: required
41
+ Section: base
42
+ Source: ncurses
43
+ Maintainer: foo bar <foo@bar>
44
+ Description: dependency test
45
+ dependency test
46
+
47
+ Package: w3m-ssl
48
+ Version: 0.2.1-2
49
+ Priority: optional
50
+ Section: non-US/main
51
+ Provides: www-browser
52
+ Maintainer: foo bar <foo@bar>
53
+ Description: suggested
54
+ suggested
55
+
56
+ Package: mime-support
57
+ Priority: standard
58
+ Section: net
59
+ Maintainer: foo bar <foo@bar>
60
+ Version: 3.10-1
61
+ Conffiles:
62
+ /etc/mime.types 413ba91dc187d2343949b12a3122da3b
63
+ /etc/mailcap 57a603451802f5bd47e89b2f426077fa
64
+ /etc/mailcap.order ba07e08a7fe3741d0b8339127963190e
65
+ Description: suggested
66
+ suggested
67
+
68
+ Package: menu
69
+ Priority: optional
70
+ Section: admin
71
+ Version: 2.1.5-7
72
+ Maintainer: foo bar <foo@bar>
73
+ Description: suggested
74
+ suggested
75
+
76
+ Package: w3m-el
77
+ Priority: optional
78
+ Section: web
79
+ Installed-Size: 532
80
+ Version: 0.2.150-2
81
+ Maintainer: foo bar <foo@bar>
82
+ Description: suggested
83
+ suggested
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/ruby -- # -*- ruby -*-
2
+
3
+ require 'runit/testsuite'
4
+ require 'runit/cui/testrunner'
5
+ require 'getoptlong'
6
+
7
+ $:.unshift("../lib")
8
+
9
+ opts = GetoptLong.new(
10
+ ['--output', '-o', GetoptLong::REQUIRED_ARGUMENT],
11
+ ['--quiet', '-q', GetoptLong::NO_ARGUMENT],
12
+ ['--help', '-h', GetoptLong::NO_ARGUMENT])
13
+
14
+ outfile = '-'
15
+ opts.each {|opt, val|
16
+ case opt
17
+ when "--output" then $stdout = open(val, "w"); outfile = val
18
+ when "--quiet" then RUNIT::CUI::TestRunner.quiet_mode = true
19
+ when "--help" then
20
+ $stderr.puts "usage: #{$0} [-o file] [-q] [-h]"
21
+ exit 1
22
+ end
23
+ }
24
+
25
+ Dir["test*.rb"].each {|t|
26
+ next if t == __FILE__
27
+ require t
28
+ }
29
+
30
+ suite = RUNIT::TestSuite.new
31
+ ObjectSpace.each_object(Class) {|klass|
32
+ if klass.ancestors.include?(RUNIT::TestCase)
33
+ suite.add_test(klass.suite)
34
+ end
35
+ }
36
+ RUNIT::CUI::TestRunner.run(suite)
37
+ if outfile != '-'
38
+ $stdout.close
39
+ IO.readlines(outfile).each {|line|
40
+ line.chomp!
41
+ if /^Errors:/ =~ line
42
+ $stderr.puts "#{line}: See more detail in #{outfile}"
43
+ elsif /^Failures:/ =~ line
44
+ $stderr.puts "#{line}: See more detail in #{outfile}"
45
+ elsif /^OK/ =~ line
46
+ $stderr.puts "#{line}"
47
+ end
48
+ }
49
+ end
50
+
@@ -0,0 +1,59 @@
1
+ require 'runit/testcase'
2
+ require 'runit/cui/testrunner'
3
+
4
+ $:.unshift("../lib")
5
+ require 'debian/ar'
6
+
7
+ class TestDebian__Ar < RUNIT::TestCase
8
+
9
+ def setup
10
+ @ruby = Dir["/var/cache/apt/archives/ruby_1.6*.deb"]
11
+ if @ruby.empty?
12
+ assert_fail("no ruby package in /var/cache/apt/archives")
13
+ end
14
+ end
15
+ def test_list
16
+ @ruby.each {|deb|
17
+ assert_equals(['debian-binary','control.tar.gz','data.tar.gz'],
18
+ Debian::Ar.new(deb).list.collect {|arf| arf.name })
19
+ }
20
+ end
21
+
22
+ def test_each_file
23
+ @ruby.each {|deb|
24
+ lists = ['debian-binary','control.tar.gz','data.tar.gz']
25
+ Debian::Ar.new(deb).each_file {|name,io|
26
+ assert_equals(lists[0], name)
27
+ if name == 'debian-binary'
28
+ assert_equals("2.0\n", io.read)
29
+ end
30
+ assert_equals(0, io.stat.uid)
31
+ assert_equals(0, io.stat.gid)
32
+ assert_equals(0100644, io.stat.mode)
33
+ lists.shift
34
+ }
35
+ }
36
+ end
37
+
38
+ def test_open
39
+ @ruby.each {|deb|
40
+ ar = Debian::Ar.new(deb)
41
+ assert_not_nil(ar.open("debian-binary"))
42
+ assert_equals("2.0\n", ar.open("debian-binary").read)
43
+ assert_not_nil(ar.open("control.tar.gz"))
44
+ assert_not_nil(ar.open("data.tar.gz"))
45
+ }
46
+ end
47
+ end
48
+
49
+ if $0 == __FILE__
50
+ if ARGV.size == 0
51
+ suite = TestDebian__Ar.suite
52
+ else
53
+ suite = RUNIT::TestSuite.new
54
+ ARGV.each do |testmethod|
55
+ suite.add_test(TestDebian__Ar.new(testmethod))
56
+ end
57
+ end
58
+ RUNIT::CUI::TestRunner.run(suite)
59
+ end
@@ -0,0 +1,277 @@
1
+ require 'runit/testcase'
2
+ require 'runit/cui/testrunner'
3
+
4
+ $:.unshift("../lib")
5
+
6
+ require '../lib/debian.rb'
7
+
8
+ class TArchives < Debian::Archives
9
+ def initialize(f = "")
10
+ @file = []
11
+ @lists = {}
12
+ if f != ""
13
+ @file.push(f)
14
+ @lists = Debian::Archives.parseArchiveFile(f) {|info|
15
+ Debian::Deb.new(info)
16
+ }
17
+ end
18
+ end
19
+ end
20
+
21
+ class TestDebian__Archives < RUNIT::TestCase
22
+
23
+ def setup
24
+ @ar = [TArchives.new("d/status"),
25
+ TArchives.new("d/available"),
26
+ TArchives.new("d/sid_i386_Packages"),
27
+ TArchives.new("d/non-US_sid_i386_Packages")]
28
+ end
29
+ def test_AND # '&'
30
+ ar = @ar[0] & @ar[1]
31
+ assert_equals('dpkg-ruby', ar['dpkg-ruby'].package)
32
+ assert_nil(ar['smtpfeed'])
33
+ assert_nil(@ar[0]['smtpfeed'])
34
+ assert_equals('smtpfeed', @ar[1]['smtpfeed'].package)
35
+ end
36
+
37
+ def test_AREF # '[]'
38
+ assert_equals("dpkg-ruby", @ar[0]['dpkg-ruby'].package)
39
+ assert_equals("auto-apt", @ar[1]['auto-apt'].package)
40
+ assert_equals("hotplug", @ar[2]['hotplug'].package)
41
+ assert_equals("w3mmee-ssl", @ar[3]['w3mmee-ssl'].package)
42
+ end
43
+
44
+ def test_ASET # '[]='
45
+ deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join(""))
46
+ @ar[3]['w3m'] = deb
47
+ assert_equals(deb, @ar[3]['w3m'])
48
+ end
49
+
50
+ def test_LSHIFT # '<<'
51
+ deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join(""))
52
+ ar = @ar[3] << deb
53
+ assert_equals(deb, ar['w3m'])
54
+ assert_nil(@ar[3]['w3m'])
55
+ ar = @ar[3] << nil
56
+ assert_nil(ar['w3m'])
57
+ deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join(""))
58
+ ar = @ar[0] << deb
59
+ assert_equals('0.2.1-2', ar['w3m'].version)
60
+ end
61
+
62
+ def test_MINUS # '-'
63
+ ar = @ar[1] - @ar[0]
64
+ assert_nil(ar['dpkg-ruby'])
65
+ assert_equals('dpkg-ruby', @ar[1]['dpkg-ruby'].package)
66
+ assert_equals('dpkg-ruby', @ar[0]['dpkg-ruby'].package)
67
+ assert_equals('smtpfeed', ar['smtpfeed'].package)
68
+ end
69
+
70
+ def test_PLUS # '+'
71
+ ar = @ar[2] + @ar[3]
72
+ assert_equals('w3mmee-ssl', ar['w3mmee-ssl'].package)
73
+ assert_nil(@ar[2]['w3mmee-ssl'])
74
+ end
75
+
76
+ def test_RSHIFT # '>>'
77
+ deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join(""))
78
+ ar = @ar[0] >> deb
79
+ assert_nil(ar['w3m'])
80
+ assert_equals('w3m', @ar[0]['w3m'].package)
81
+ deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join(""))
82
+ ar = @ar[0] >> deb
83
+ assert_equals('w3m', ar['w3m'].package)
84
+ ar = @ar[0] >> nil
85
+ assert_equals('w3m', ar['w3m'].package)
86
+ end
87
+
88
+ def test_add
89
+ @ar[2].add(@ar[3])
90
+ assert_equals('w3mmee-ssl', @ar[2]['w3mmee-ssl'].package)
91
+ end
92
+
93
+ def test_delete
94
+ @ar[0].delete('w3m')
95
+ assert_nil(@ar[0]['w3m'])
96
+ end
97
+
98
+ def test_delete_if
99
+ deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join(""))
100
+ @ar[0].delete_if {|p,d| d == deb }
101
+ assert_equals('w3m', @ar[0]['w3m'].package)
102
+ deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join(""))
103
+ @ar[0].delete_if {|p,d| d == deb }
104
+ assert_nil(@ar[0]['w3m'])
105
+ end
106
+
107
+ def test_each
108
+ ps = ['w3mmee-ssl', 'w3m-ssl']
109
+ @ar[3].each {|p, d| ps.delete(p)}
110
+ assert(ps.empty?)
111
+ end
112
+
113
+ def test_each_key
114
+ ps = ['w3mmee-ssl', 'w3m-ssl']
115
+ @ar[3].each_key {|p| ps.delete(p)}
116
+ assert(ps.empty?)
117
+ end
118
+
119
+ def test_each_package
120
+ ds = [Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))]
121
+ @ar[3].each_package {|d| ds.delete(d)}
122
+ assert(ds.empty?)
123
+ end
124
+
125
+ def test_each_value
126
+ ds = [Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))]
127
+ @ar[3].each_package {|d| ds.delete(d)}
128
+ assert(ds.empty?)
129
+ end
130
+
131
+ def test_empty?
132
+ assert(!@ar[0].empty?)
133
+ ar = @ar[0] - @ar[0]
134
+ assert(ar.empty?)
135
+ end
136
+
137
+ def test_file
138
+ assert_equals(['d/status'], @ar[0].file)
139
+ assert_equals(['d/available'], @ar[1].file)
140
+ assert_equals(['d/sid_i386_Packages'], @ar[2].file)
141
+ assert_equals(['d/non-US_sid_i386_Packages'], @ar[3].file)
142
+ assert_equals(['d/status', 'd/available'], (@ar[0] + @ar[1]).file)
143
+ end
144
+
145
+ def test_has_key?
146
+ assert(@ar[0].has_key?('dpkg-ruby'))
147
+ assert(@ar[1].has_key?('auto-apt'))
148
+ assert(@ar[2].has_key?('hotplug'))
149
+ assert(@ar[3].has_key?('w3mmee-ssl'))
150
+ end
151
+
152
+ def test_has_value?
153
+ deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))
154
+ assert(!@ar[2].has_value?(deb))
155
+ assert(@ar[3].has_value?(deb))
156
+ deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join(""))
157
+ assert(!(@ar[3].has_value?(deb)))
158
+ end
159
+
160
+ def test_include?
161
+ assert(@ar[0].include?('dpkg-ruby'))
162
+ assert(@ar[1].include?('auto-apt'))
163
+ assert(@ar[2].include?('hotplug'))
164
+ assert(@ar[3].include?('w3mmee-ssl'))
165
+ end
166
+
167
+ def test_indexes
168
+ deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))
169
+ assert_equals([deb], @ar[3].indexes('w3m-ssl'))
170
+ end
171
+
172
+ def test_indices
173
+ deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))
174
+ assert_equals([deb], @ar[3].indexes('w3m-ssl'))
175
+ end
176
+
177
+ def test_intersect
178
+ ar = @ar[0].class.new
179
+ ar.intersect(@ar[0], @ar[1])
180
+ assert_equals('dpkg-ruby', ar['dpkg-ruby'].package)
181
+ assert_nil(ar['smtpfeed'])
182
+ assert_equals('smtpfeed', @ar[1]['smtpfeed'].package)
183
+ end
184
+
185
+ def test_key?
186
+ assert(@ar[0].key?('dpkg-ruby'))
187
+ assert(@ar[1].key?('auto-apt'))
188
+ assert(@ar[2].key?('hotplug'))
189
+ assert(@ar[3].key?('w3mmee-ssl'))
190
+ end
191
+
192
+ def test_keys
193
+ ps = ['w3m-ssl', 'w3mmee-ssl'].sort
194
+ assert_equals(ps, @ar[3].keys.sort)
195
+ end
196
+
197
+ def test_length
198
+ assert_equals(18, @ar[0].length)
199
+ assert_equals(24, @ar[1].length)
200
+ assert_equals(21, @ar[2].length)
201
+ assert_equals(2, @ar[3].length)
202
+ end
203
+
204
+ def test_lists
205
+ assert_equals(['w3m-ssl', 'w3mmee-ssl'].sort, @ar[3].lists.keys.sort)
206
+ end
207
+
208
+ def test_package
209
+ deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))
210
+ assert_nil(@ar[3].package('w3m'))
211
+ assert_equals(deb, @ar[3].package('w3m-ssl'))
212
+ end
213
+
214
+ def test_pkgnames
215
+ assert_equals(['w3m-ssl', 'w3mmee-ssl'].sort, @ar[3].pkgnames.sort)
216
+ end
217
+
218
+ def test_store
219
+ deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join(""))
220
+ @ar[3].store('w3m', deb)
221
+ assert_equals(deb, @ar[3]['w3m'])
222
+ end
223
+
224
+ def test_sub
225
+ @ar[1].sub(@ar[0])
226
+ assert_nil(@ar[1]['dpkg-ruby'])
227
+ assert_equals('dpkg-ruby', @ar[0]['dpkg-ruby'].package)
228
+ assert_equals('smtpfeed', @ar[1]['smtpfeed'].package)
229
+ end
230
+
231
+ def test_to_s
232
+ assert_equals("d/status", @ar[0].to_s)
233
+ assert_equals("d/available", @ar[1].to_s)
234
+ assert_equals("d/sid_i386_Packages", @ar[2].to_s)
235
+ assert_equals("d/non-US_sid_i386_Packages", @ar[3].to_s)
236
+ assert_equals("d/status+d/available", (@ar[0]+@ar[1]).to_s)
237
+ end
238
+
239
+ def test_value?
240
+ deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))
241
+ assert(!@ar[2].has_value?(deb))
242
+ assert(@ar[3].has_value?(deb))
243
+ deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join(""))
244
+ assert(!(@ar[3].has_value?(deb)))
245
+ end
246
+
247
+ def test_values
248
+ ds = [Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))]
249
+ @ar[3].values.each {|d| ds.delete(d)}
250
+ assert(ds.empty?)
251
+ end
252
+
253
+ # def test_s_parse
254
+ #
255
+ # end
256
+
257
+ # def test_s_parseAptLine
258
+ #
259
+ # end
260
+
261
+ # def test_s_parseArchiveFile
262
+ #
263
+ # end
264
+
265
+ end
266
+
267
+ if $0 == __FILE__
268
+ if ARGV.size == 0
269
+ suite = TestDebian__Archives.suite
270
+ else
271
+ suite = RUNIT::TestSuite.new
272
+ ARGV.each do |testmethod|
273
+ suite.add_test(TestDebian__Archives.new(testmethod))
274
+ end
275
+ end
276
+ RUNIT::CUI::TestRunner.run(suite)
277
+ end