ruby-dbus 0.12.0 → 0.13.0
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.
- checksums.yaml +4 -4
- data/NEWS.md +344 -0
- data/Rakefile +21 -15
- data/VERSION +1 -1
- data/doc/Reference.md +26 -37
- data/examples/doc/_extract_examples +4 -4
- data/examples/gdbus/gdbus +40 -39
- data/examples/no-introspect/nm-test.rb +1 -3
- data/examples/no-introspect/tracker-test.rb +2 -4
- data/examples/rhythmbox/playpause.rb +1 -2
- data/examples/service/call_service.rb +0 -3
- data/examples/service/service_newapi.rb +3 -4
- data/examples/simple/call_introspect.rb +0 -3
- data/examples/simple/get_id.rb +1 -3
- data/examples/simple/properties.rb +3 -4
- data/examples/utils/listnames.rb +6 -7
- data/examples/utils/notify.rb +3 -5
- data/lib/dbus.rb +8 -20
- data/lib/dbus/auth.rb +59 -61
- data/lib/dbus/bus.rb +86 -97
- data/lib/dbus/error.rb +1 -1
- data/lib/dbus/export.rb +20 -18
- data/lib/dbus/introspect.rb +26 -28
- data/lib/dbus/logger.rb +1 -1
- data/lib/dbus/marshall.rb +72 -74
- data/lib/dbus/matchrule.rb +22 -26
- data/lib/dbus/message.rb +24 -33
- data/lib/dbus/message_queue.rb +30 -30
- data/lib/dbus/proxy_object.rb +34 -30
- data/lib/dbus/proxy_object_factory.rb +5 -2
- data/lib/dbus/proxy_object_interface.rb +10 -8
- data/lib/dbus/type.rb +154 -156
- data/lib/dbus/xml.rb +22 -16
- data/ruby-dbus.gemspec +15 -3
- data/spec/async_spec.rb +2 -4
- data/spec/binding_spec.rb +1 -5
- data/spec/bus_and_xml_backend_spec.rb +6 -9
- data/spec/bus_spec.rb +1 -1
- data/spec/byte_array_spec.rb +0 -2
- data/spec/err_msg_spec.rb +13 -10
- data/spec/introspect_xml_parser_spec.rb +2 -2
- data/spec/introspection_spec.rb +1 -1
- data/spec/main_loop_spec.rb +4 -5
- data/spec/property_spec.rb +0 -3
- data/spec/proxy_object_spec.rb +42 -0
- data/spec/server_robustness_spec.rb +0 -2
- data/spec/service_newapi.rb +51 -41
- data/spec/session_bus_spec.rb +6 -7
- data/spec/signal_spec.rb +2 -3
- data/spec/spec_helper.rb +28 -24
- data/spec/thread_safety_spec.rb +1 -2
- data/spec/type_spec.rb +2 -2
- data/spec/value_spec.rb +7 -10
- data/spec/variant_spec.rb +15 -16
- metadata +60 -3
- data/NEWS +0 -279
data/spec/session_bus_spec.rb
CHANGED
@@ -19,14 +19,14 @@ describe DBus::ASessionBus do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
describe "#address_from_file" do
|
22
|
-
let(:session_bus_file_path) {
|
22
|
+
let(:session_bus_file_path) { %r{\.dbus/session-bus/baz-\d} }
|
23
23
|
|
24
24
|
before do
|
25
25
|
# mocks of files for address_from_file method
|
26
26
|
machine_id_path = File.expand_path("/etc/machine-id", __FILE__)
|
27
|
-
expect(Dir).to receive(:[]).with(any_args) {[machine_id_path] }
|
27
|
+
expect(Dir).to receive(:[]).with(any_args) { [machine_id_path] }
|
28
28
|
expect(File).to receive(:read).with(machine_id_path) { "baz" }
|
29
|
-
expect(File).to receive(:
|
29
|
+
expect(File).to receive(:exist?).with(session_bus_file_path) { true }
|
30
30
|
end
|
31
31
|
|
32
32
|
around(:each) do |example|
|
@@ -36,9 +36,8 @@ describe DBus::ASessionBus do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
context "when DBUS_SESSION_BUS_ADDRESS from file is surrounded by quotation marks" do
|
39
|
-
|
40
39
|
it "returns session bus address without single quotation marks" do
|
41
|
-
expect(File).to receive(:open).with(session_bus_file_path) { <<-EOS.gsub(/^\s*/,
|
40
|
+
expect(File).to receive(:open).with(session_bus_file_path) { <<-EOS.gsub(/^\s*/, "") }
|
42
41
|
DBUS_SESSION_BUS_ADDRESS='#{dbus_session_bus_address}'
|
43
42
|
DBUS_SESSION_BUS_PID=12345
|
44
43
|
DBUS_SESSION_BUS_WINDOWID=12345678
|
@@ -47,7 +46,7 @@ describe DBus::ASessionBus do
|
|
47
46
|
end
|
48
47
|
|
49
48
|
it "returns session bus address without double quotation marks" do
|
50
|
-
expect(File).to receive(:open).with(session_bus_file_path) { <<-EOS.gsub(/^\s*/,
|
49
|
+
expect(File).to receive(:open).with(session_bus_file_path) { <<-EOS.gsub(/^\s*/, "") }
|
51
50
|
DBUS_SESSION_BUS_ADDRESS="#{dbus_session_bus_address}"
|
52
51
|
DBUS_SESSION_BUS_PID=12345
|
53
52
|
DBUS_SESSION_BUS_WINDOWID=12345678
|
@@ -58,7 +57,7 @@ describe DBus::ASessionBus do
|
|
58
57
|
|
59
58
|
context "when DBUS_SESSION_BUS_ADDRESS from file is not surrounded by any quotation marks" do
|
60
59
|
it "returns session bus address as it is" do
|
61
|
-
expect(File).to receive(:open).with(session_bus_file_path) { <<-EOS.gsub(/^\s*/,
|
60
|
+
expect(File).to receive(:open).with(session_bus_file_path) { <<-EOS.gsub(/^\s*/, "") }
|
62
61
|
DBUS_SESSION_BUS_ADDRESS=#{dbus_session_bus_address}
|
63
62
|
DBUS_SESSION_BUS_PID=12345
|
64
63
|
DBUS_SESSION_BUS_WINDOWID=12345678
|
data/spec/signal_spec.rb
CHANGED
@@ -8,7 +8,6 @@ describe "SignalHandlerTest" do
|
|
8
8
|
@session_bus = DBus::ASessionBus.new
|
9
9
|
svc = @session_bus.service("org.ruby.service")
|
10
10
|
@obj = svc.object("/org/ruby/MyInstance")
|
11
|
-
@obj.introspect # necessary
|
12
11
|
@obj.default_iface = "org.ruby.Loop"
|
13
12
|
@intf = @obj["org.ruby.Loop"]
|
14
13
|
|
@@ -35,7 +34,7 @@ describe "SignalHandlerTest" do
|
|
35
34
|
|
36
35
|
quitter = Thread.new do
|
37
36
|
DBus.logger.debug "sleep before quit"
|
38
|
-
# FIXME if we sleep for too long
|
37
|
+
# FIXME: if we sleep for too long
|
39
38
|
# the socket will be drained and we deadlock in a select.
|
40
39
|
# It could be worked around by sending ourselves a Unix signal
|
41
40
|
# (with a dummy handler) to interrupt the select
|
@@ -73,7 +72,7 @@ describe "SignalHandlerTest" do
|
|
73
72
|
expect(started).to eq(true)
|
74
73
|
expect(counter).to eq(1)
|
75
74
|
expect { @intf.on_signal }.to raise_error(ArgumentError) # not enough
|
76
|
-
expect { @intf.on_signal
|
75
|
+
expect { @intf.on_signal "to", "many", "yarrrrr!" }.to raise_error(ArgumentError)
|
77
76
|
end
|
78
77
|
|
79
78
|
it "tests too many rules" do
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
if ENV["COVERAGE"]
|
2
|
-
|
3
|
-
else
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
coverage = if ENV["COVERAGE"]
|
2
|
+
ENV["COVERAGE"] == "true"
|
3
|
+
else
|
4
|
+
# heuristics: enable for interactive builds (but not in OBS)
|
5
|
+
# or in Travis
|
6
|
+
ENV["DISPLAY"] || ENV["TRAVIS"]
|
7
|
+
end
|
7
8
|
|
8
9
|
if coverage
|
9
10
|
require "simplecov"
|
@@ -21,7 +22,7 @@ if coverage
|
|
21
22
|
SimpleCov.start
|
22
23
|
end
|
23
24
|
|
24
|
-
|
25
|
+
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
|
25
26
|
|
26
27
|
if Object.const_defined? "RSpec"
|
27
28
|
# http://betterspecs.org/#expect
|
@@ -56,35 +57,38 @@ def with_private_bus(&block)
|
|
56
57
|
pid_file = Tempfile.new("dbus-pid")
|
57
58
|
output_file = Tempfile.new("dbus-output") # just in case
|
58
59
|
|
59
|
-
|
60
|
-
with_env("XDG_DATA_DIRS",
|
61
|
-
cmd = "dbus-daemon --nofork --config-file=#{config_file_path}
|
60
|
+
temp_dir = Dir.mktmpdir
|
61
|
+
with_env("XDG_DATA_DIRS", temp_dir) do
|
62
|
+
cmd = "dbus-daemon --nofork --config-file=#{config_file_path} " \
|
63
|
+
"--print-address=3 3>#{address_file.path} " \
|
64
|
+
"--print-pid=4 4>#{pid_file.path} " \
|
65
|
+
">#{output_file.path} 2>&1 &"
|
62
66
|
system cmd
|
63
|
-
end
|
64
67
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
68
|
+
# wait until dbus-daemon writes the info
|
69
|
+
Timeout.timeout(10) do
|
70
|
+
until File.size?(address_file) && File.size?(pid_file)
|
71
|
+
sleep 0.1
|
72
|
+
end
|
69
73
|
end
|
70
|
-
end
|
71
74
|
|
72
|
-
|
73
|
-
|
75
|
+
address = address_file.read.chomp
|
76
|
+
pid = pid_file.read.chomp.to_i
|
74
77
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
+
with_env("DBUS_SESSION_BUS_ADDRESS", address) do
|
79
|
+
block.call
|
80
|
+
end
|
78
81
|
|
79
|
-
|
80
|
-
|
82
|
+
Process.kill("TERM", pid)
|
83
|
+
end
|
84
|
+
FileUtils.rm_rf temp_dir
|
81
85
|
end
|
82
86
|
|
83
87
|
def with_service_by_activation(&block)
|
84
88
|
name = "org.ruby.service"
|
85
89
|
exec = "#{TOPDIR}/spec/service_newapi.rb"
|
86
90
|
|
87
|
-
service_dir = "#{
|
91
|
+
service_dir = "#{ENV["XDG_DATA_DIRS"]}/dbus-1/services"
|
88
92
|
FileUtils.mkdir_p service_dir
|
89
93
|
# file name actually does not need to match the service name
|
90
94
|
File.open("#{service_dir}/#{name}.service", "w") do |f|
|
data/spec/thread_safety_spec.rb
CHANGED
@@ -15,7 +15,6 @@ describe "ThreadSafetyTest" do
|
|
15
15
|
bus = DBus::ASessionBus.new
|
16
16
|
svc = bus.service("org.ruby.service")
|
17
17
|
obj = svc.object("/org/ruby/MyInstance")
|
18
|
-
obj.introspect
|
19
18
|
obj.default_iface = "org.ruby.SampleInterface"
|
20
19
|
|
21
20
|
10.times do |i|
|
@@ -26,6 +25,6 @@ describe "ThreadSafetyTest" do
|
|
26
25
|
end
|
27
26
|
end
|
28
27
|
end
|
29
|
-
jobs.each
|
28
|
+
jobs.each(&:join)
|
30
29
|
end
|
31
30
|
end
|
data/spec/type_spec.rb
CHANGED
@@ -6,13 +6,13 @@ describe DBus do
|
|
6
6
|
describe ".type" do
|
7
7
|
%w{i ai a(ii) aai}.each do |s|
|
8
8
|
it "parses some type #{s}" do
|
9
|
-
expect(DBus
|
9
|
+
expect(DBus.type(s).to_s).to be_eql s
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
13
|
%w{aa (ii ii) hrmp}.each do |s|
|
14
14
|
it "raises exception for invalid type #{s}" do
|
15
|
-
expect {DBus
|
15
|
+
expect { DBus.type(s).to_s }.to raise_error DBus::Type::SignatureException
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
data/spec/value_spec.rb
CHANGED
@@ -8,14 +8,13 @@ describe "ValueTest" do
|
|
8
8
|
session_bus = DBus::ASessionBus.new
|
9
9
|
@svc = session_bus.service("org.ruby.service")
|
10
10
|
@obj = @svc.object("/org/ruby/MyInstance")
|
11
|
-
@obj.introspect # necessary
|
12
11
|
@obj.default_iface = "org.ruby.SampleInterface"
|
13
12
|
end
|
14
13
|
|
15
14
|
it "tests passing an array of structs through a variant" do
|
16
|
-
triple = [
|
15
|
+
triple = ["a(uuu)", []]
|
17
16
|
@obj.test_variant(triple)
|
18
|
-
quadruple = [
|
17
|
+
quadruple = ["a(uuuu)", []] # a(uuu) works fine
|
19
18
|
# The bus disconnects us because of malformed message,
|
20
19
|
# code 12: DBUS_INVALID_TOO_MUCH_DATA
|
21
20
|
@obj.test_variant(quadruple)
|
@@ -39,7 +38,6 @@ describe "ValueTest" do
|
|
39
38
|
|
40
39
|
it "retrieves a single return value with API V1" do
|
41
40
|
obj = @svc["/org/ruby/MyInstance"]
|
42
|
-
obj.introspect
|
43
41
|
obj.default_iface = "org.ruby.SampleInterface"
|
44
42
|
|
45
43
|
expect(obj.bounce_variant("cuckoo")).to eq("cuckoo")
|
@@ -51,16 +49,15 @@ describe "ValueTest" do
|
|
51
49
|
|
52
50
|
# these are ambiguous
|
53
51
|
it "tests pairs with a string" do
|
54
|
-
|
55
52
|
# deprecated
|
56
53
|
expect(@obj.bounce_variant(["s", "foo"])[0]).to eq("foo")
|
57
|
-
|
54
|
+
|
58
55
|
expect(@obj.bounce_variant(DBus.variant("s", "foo"))[0]).to eq("foo")
|
59
56
|
expect(@obj.bounce_variant([DBus.type("s"), "foo"])[0]).to eq("foo")
|
60
57
|
|
61
58
|
# does not work, because the server side forgets the explicit typing
|
62
|
-
# assert_equal ["s", "foo"], @obj.bounce_variant(["av", ["s", "foo"]])[0]
|
63
|
-
# assert_equal ["s", "foo"], @obj.bounce_variant(["as", ["s", "foo"]])[0]
|
59
|
+
# assert_equal ["s", "foo"], @obj.bounce_variant(["av", ["s", "foo"]])[0]
|
60
|
+
# assert_equal ["s", "foo"], @obj.bounce_variant(["as", ["s", "foo"]])[0]
|
64
61
|
|
65
62
|
# instead, use this to demonstrate that the variant is passed as expected
|
66
63
|
expect(@obj.variant_size(["s", "four"])[0]).to eq(4)
|
@@ -73,8 +70,8 @@ describe "ValueTest" do
|
|
73
70
|
# https://trac.luon.net/ruby-dbus/ticket/30
|
74
71
|
@obj.default_iface = "org.ruby.Ticket30"
|
75
72
|
choices = []
|
76
|
-
choices << [
|
77
|
-
choices << [
|
73
|
+
choices << ["s", "Plan A"]
|
74
|
+
choices << ["s", "Plan B"]
|
78
75
|
# old explicit typing
|
79
76
|
expect(@obj.Sybilla(choices)[0]).to eq("Do Plan A")
|
80
77
|
# automatic typing
|
data/spec/variant_spec.rb
CHANGED
@@ -25,7 +25,7 @@ describe "VariantTest" do
|
|
25
25
|
# less specific test: just run it thru a loopback
|
26
26
|
expect(make_variant(3_000_000_000)).to eq(["x", 3_000_000_000])
|
27
27
|
expect(make_variant(5_000_000_000)).to eq(["x", 5_000_000_000])
|
28
|
-
|
28
|
+
|
29
29
|
expect(make_variant(3.14)).to eq(["d", 3.14])
|
30
30
|
|
31
31
|
expect(make_variant("foo")).to eq(["s", "foo"])
|
@@ -34,32 +34,31 @@ describe "VariantTest" do
|
|
34
34
|
# left: strruct, array, dict
|
35
35
|
# object path: detect exported objects?, signature
|
36
36
|
|
37
|
-
# # by Ruby types
|
38
|
-
# class Foo
|
39
|
-
# end
|
40
|
-
# make_variant(Foo.new)
|
41
|
-
# if we don;t understand a class, the error should be informative -> new exception
|
37
|
+
# # by Ruby types
|
38
|
+
# class Foo
|
39
|
+
# end
|
40
|
+
# make_variant(Foo.new)
|
41
|
+
# if we don;t understand a class, the error should be informative -> new exception
|
42
42
|
end
|
43
43
|
|
44
44
|
it "tests make variant array" do
|
45
45
|
ai = [1, 2, 3]
|
46
|
-
# as = ["one", "two", "three"]
|
47
|
-
|
48
|
-
# expect(make_variant(ai)).to eq(["ai", [1, 2, 3]])
|
46
|
+
# as = ["one", "two", "three"]
|
47
|
+
# which?
|
48
|
+
# expect(make_variant(ai)).to eq(["ai", [1, 2, 3]])
|
49
49
|
expect(make_variant(ai)).to eq(["av", [["i", 1],
|
50
|
-
|
51
|
-
|
50
|
+
["i", 2],
|
51
|
+
["i", 3]]])
|
52
52
|
a0 = []
|
53
53
|
expect(make_variant(a0)).to eq(["av", []])
|
54
|
-
|
55
54
|
end
|
56
55
|
|
57
56
|
it "tests make variant hash" do
|
58
|
-
h = {"k1" => "v1", "k2" => "v2"}
|
57
|
+
h = { "k1" => "v1", "k2" => "v2" }
|
59
58
|
expect(make_variant(h)).to eq(["a{sv}", {
|
60
|
-
|
61
|
-
|
62
|
-
|
59
|
+
"k1" => ["s", "v1"],
|
60
|
+
"k2" => ["s", "v2"]
|
61
|
+
}])
|
63
62
|
h0 = {}
|
64
63
|
expect(make_variant(h0)).to eq(["a{sv}", {}])
|
65
64
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-dbus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ruby DBus Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: coveralls
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: packaging_rake_tasks
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -24,8 +38,50 @@ dependencies:
|
|
24
38
|
- - ">="
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.41.2
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.41.2
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: simplecov
|
29
85
|
requirement: !ruby/object:Gem::Requirement
|
30
86
|
requirements:
|
31
87
|
- - ">="
|
@@ -46,7 +102,7 @@ extra_rdoc_files: []
|
|
46
102
|
files:
|
47
103
|
- ".rspec"
|
48
104
|
- COPYING
|
49
|
-
- NEWS
|
105
|
+
- NEWS.md
|
50
106
|
- README.md
|
51
107
|
- Rakefile
|
52
108
|
- VERSION
|
@@ -100,6 +156,7 @@ files:
|
|
100
156
|
- spec/introspection_spec.rb
|
101
157
|
- spec/main_loop_spec.rb
|
102
158
|
- spec/property_spec.rb
|
159
|
+
- spec/proxy_object_spec.rb
|
103
160
|
- spec/server_robustness_spec.rb
|
104
161
|
- spec/server_spec.rb
|
105
162
|
- spec/service_newapi.rb
|
data/NEWS
DELETED
@@ -1,279 +0,0 @@
|
|
1
|
-
= Ruby D-Bus NEWS
|
2
|
-
|
3
|
-
Note about bug numbers:
|
4
|
-
Ticket#1 - https://trac.luon.net/ruby-dbus/ticket/1
|
5
|
-
Issue#1 - http://github.com/mvidner/ruby-dbus/issues#issue/1
|
6
|
-
bnc#1 - https://bugzilla.novell.com/show_bug.cgi?id=1
|
7
|
-
|
8
|
-
== Unreleased
|
9
|
-
|
10
|
-
== Ruby D-Bus 0.12.0 - 2016-09-12
|
11
|
-
|
12
|
-
API:
|
13
|
-
* Added proxy objects whose methods return single values instead of arrays
|
14
|
-
(use Service#[] instead of Service#object; Issue#30).
|
15
|
-
|
16
|
-
Requirements:
|
17
|
-
* Require ruby 2.0.0, stopped supporting 1.9.3.
|
18
|
-
|
19
|
-
== Ruby D-Bus 0.11.2 - 2016-09-11
|
20
|
-
|
21
|
-
Bug fixes:
|
22
|
-
* Fixed reading a quoted session bus address, as written by dbus-1.10.10
|
23
|
-
(Yasuhiro Asaka)
|
24
|
-
|
25
|
-
== Ruby D-Bus 0.11.1 - 2016-05-12
|
26
|
-
|
27
|
-
Bug fixes:
|
28
|
-
* Fix default path finding on FreeBSD (Greg)
|
29
|
-
* Service#unexport fixed to really return the unexported object
|
30
|
-
|
31
|
-
Requirements:
|
32
|
-
* made tests compatible with RSpec 3
|
33
|
-
|
34
|
-
== Ruby D-Bus 0.11.0 - 2014-02-17
|
35
|
-
|
36
|
-
API:
|
37
|
-
* Connection: split off MessageQueue, marked other methods as private.
|
38
|
-
|
39
|
-
Requirements:
|
40
|
-
* converted tests to RSpec, rather mechanically for now
|
41
|
-
|
42
|
-
== Ruby D-Bus 0.10.0 - 2014-01-10
|
43
|
-
|
44
|
-
Bug fixes:
|
45
|
-
* fixed "Interfaces added with singleton_class.instance_eval aren't
|
46
|
-
exported" (Issue#22, by miaoufkirsh)
|
47
|
-
|
48
|
-
Requirements:
|
49
|
-
* Require ruby 1.9.3, stopped supporting 1.8.7.
|
50
|
-
|
51
|
-
== Ruby D-Bus 0.9.3 - 2014-01-02
|
52
|
-
|
53
|
-
Bug fixes:
|
54
|
-
* re-added COPYING, NEWS, README.md to the gem (Issue#47,
|
55
|
-
by Cédric Boutillier)
|
56
|
-
|
57
|
-
Packaging:
|
58
|
-
* use packaging_rake_tasks
|
59
|
-
|
60
|
-
== Ruby D-Bus 0.9.2 - 2013-05-08
|
61
|
-
|
62
|
-
Features:
|
63
|
-
* Ruby strings can be passed where byte arrays ("ay") are expected
|
64
|
-
(Issue#40, by Jesper B. Rosenkilde)
|
65
|
-
|
66
|
-
Bug fixes:
|
67
|
-
* Fixed accessing ModemManager properties (Issue#41, reported
|
68
|
-
by Ernest Bursa). MM introspection produces two elements
|
69
|
-
for a single interface; merge them.
|
70
|
-
|
71
|
-
== Ruby D-Bus 0.9.1 - 2013-04-23
|
72
|
-
|
73
|
-
Bug fixes:
|
74
|
-
* Prefer /etc/machine-id to /var/lib/dbus/machine-id
|
75
|
-
when DBUS_SESSION_BUS_ADDRESS is unset (Issue#39, by WU Jun).
|
76
|
-
|
77
|
-
== Ruby D-Bus 0.9.0 - 2012-11-06
|
78
|
-
|
79
|
-
Features:
|
80
|
-
* When calling methods, the interface can be left unspecified if unambiguous
|
81
|
-
(Damiano Stoffie)
|
82
|
-
* YARD documentation, Reference.md
|
83
|
-
|
84
|
-
Bug fixes:
|
85
|
-
* Introspection attribute "direction" can be omitted
|
86
|
-
as allowed by the specification (Noah Meyerhans).
|
87
|
-
* ProxyObjectInterface#on_signal no longer needs the "bus" parameter
|
88
|
-
(Issue#31, by Damiano Stoffie)
|
89
|
-
|
90
|
-
== Ruby D-Bus 0.8.0 - 2012-09-20
|
91
|
-
|
92
|
-
Features:
|
93
|
-
* Add Anonymous authentication (Issue#27, by Walter Brebels).
|
94
|
-
* Use Nokogiri for XML parsing when available (Issue#24, by Geoff Youngs).
|
95
|
-
|
96
|
-
Bug fixes:
|
97
|
-
* Use SCM_CREDS authentication only on FreeBSD, not on OpenBSD (Issue#21,
|
98
|
-
reported by Adde Nilsson).
|
99
|
-
* Recognize signature "h" (UNIX_FD) used eg. by Upstart (Issue#23,
|
100
|
-
by Bernd Ahlers).
|
101
|
-
* Find the session bus also via launchd, on OS X (Issue#20, reported
|
102
|
-
by Paul Sturgess).
|
103
|
-
|
104
|
-
Other:
|
105
|
-
* Now doing continuous integration with Travis:
|
106
|
-
http://travis-ci.org/#!/mvidner/ruby-dbus
|
107
|
-
|
108
|
-
|
109
|
-
== Ruby D-Bus 0.7.2 - 2012-04-05
|
110
|
-
|
111
|
-
A brown-paper-bag release.
|
112
|
-
|
113
|
-
Bug fixes:
|
114
|
-
* Fixed "undefined local variable or method `continue'" in
|
115
|
-
DBus::Main#run when a service becomes idle (by Ravil Bayramgalin)
|
116
|
-
|
117
|
-
== Ruby D-Bus 0.7.1 - 2012-04-04
|
118
|
-
|
119
|
-
Bug fixes:
|
120
|
-
* Fixed calling asynchronous methods on the default interface (Issue#13,
|
121
|
-
by Eugene Korbut).
|
122
|
-
* Fixed Main#quit to really quit the loop (by Josef Reidinger)
|
123
|
-
* Unbundled files from Active Support (by Bohuslav Kabrda)
|
124
|
-
|
125
|
-
== Ruby D-Bus 0.7.0 - 2011-07-26
|
126
|
-
|
127
|
-
Features:
|
128
|
-
* Added ASystemBus and ASessionBus, non-singletons useful in tests
|
129
|
-
and threads.
|
130
|
-
|
131
|
-
Bug fixes:
|
132
|
-
* Fixed handling of multibyte strings (Issue#8, by Takayuki YAMAGUCHI).
|
133
|
-
* Allow reopening of a dbus_interface declaration (Issue#9, by T. YAMAGUCHI).
|
134
|
-
* Fixed ruby-1.9.2 compatibility again (Issue#12).
|
135
|
-
* Fixed authentication on BSD (Issue#11, by Jonathan Walker)
|
136
|
-
* Fixed exiting a nested event loop for synchronous calls
|
137
|
-
(reported by Timo Warns).
|
138
|
-
* Fixed introspection calls leaking reply handlers.
|
139
|
-
* "rake test" now works, doing what was called "rake env:test"
|
140
|
-
|
141
|
-
== Ruby D-Bus 0.6.0 - 2010-12-11
|
142
|
-
|
143
|
-
Features:
|
144
|
-
* Clients can access properties conveniently (Ticket#28).
|
145
|
-
|
146
|
-
Bug fixes:
|
147
|
-
* Service won't crash whan handling an unknown method or interface (Ticket#31).
|
148
|
-
* Don't send an invalid error name when it originates from a NameError.
|
149
|
-
|
150
|
-
== Ruby D-Bus 0.5.0 - 2010-11-07
|
151
|
-
|
152
|
-
Features:
|
153
|
-
* Better binding of Ruby Exceptions to D-Bus Errors.
|
154
|
-
* Converted the package to a Gem (Issue#6).
|
155
|
-
* Converted the tutorial from Webgen to Markdown.
|
156
|
-
|
157
|
-
Bug fixes:
|
158
|
-
* Don't pass file descriptors to subprocesses.
|
159
|
-
* Fixed InterfaceElement::validate_name (Ticket#38, by Herwin Weststrate).
|
160
|
-
* Fixed a typo in InvalidDestinationName description (Ticket#40).
|
161
|
-
|
162
|
-
== Ruby D-Bus 0.4.0 - 2010-08-20
|
163
|
-
|
164
|
-
Features:
|
165
|
-
* TCP transport (by pangdudu)
|
166
|
-
* Enabled test code coverage report (rcov)
|
167
|
-
|
168
|
-
Bug fixes:
|
169
|
-
* Classes should not share all interfaces (Ticket#36/Issue#5)
|
170
|
-
* Ruby 1.9 compatibility (Ticket#37, by Myra Nelson)
|
171
|
-
|
172
|
-
== Ruby D-Bus 0.3.1 - 2010-07-22
|
173
|
-
|
174
|
-
Bug fixes:
|
175
|
-
* Many on_signal could cause DBus.Error.LimitsExceeded bnc#617350).
|
176
|
-
Don't add a match rule that already exists, enable removing match
|
177
|
-
rules. Now only one handler for a rule is called (but it is possible
|
178
|
-
for one signal to match more rules). This reverts the half-fix done
|
179
|
-
to fix Issue#3
|
180
|
-
* Re-added InterfaceElement#add_param for compatibility.
|
181
|
-
* Handle more ways which tell us that a bus connection has died.
|
182
|
-
|
183
|
-
== Ruby D-Bus 0.3.0 - 2010-03-28
|
184
|
-
|
185
|
-
Bug fixes:
|
186
|
-
|
187
|
-
* Fixed "undefined method `get_node' for nil:NilClass"
|
188
|
-
on Ubuntu Karmic (Ticket#34).
|
189
|
-
* Get the session bus address even if unset in ENV (Issue#4).
|
190
|
-
* Improved exceptions a bit:
|
191
|
-
UndefinedInterface, InvalidMethodName, NoMethodError, no RuntimeException
|
192
|
-
|
193
|
-
These are by Klaus Kaempf:
|
194
|
-
* Make the signal dispatcher call all handlers (Issue#3).
|
195
|
-
* Run on Ruby < 1.8.7 (Issue#2).
|
196
|
-
* Avoid needless DBus::IncompleteBufferException (Ticket#33).
|
197
|
-
* Don't ignore DBus Errors in request_service, raise them (Ticket#32).
|
198
|
-
|
199
|
-
Features:
|
200
|
-
|
201
|
-
* Automatic signature inference for variants.
|
202
|
-
* Introduced FormalParameter where a plain pair had been used.
|
203
|
-
|
204
|
-
== Ruby D-Bus 0.2.12 - 2010-01-24
|
205
|
-
|
206
|
-
Bug fixes:
|
207
|
-
|
208
|
-
* Fixed a long-standing bug where a service activated by the bus
|
209
|
-
would fail with "undefined method `get_node' for nil:NilClass"
|
210
|
-
(Tickets#25 and #29).
|
211
|
-
|
212
|
-
== Ruby D-Bus 0.2.11 - 2009-11-12
|
213
|
-
|
214
|
-
Features:
|
215
|
-
|
216
|
-
* Added DBus::Service#unexport (da1l6).
|
217
|
-
|
218
|
-
Bug fixes:
|
219
|
-
|
220
|
-
* Return org.freedesktop.DBus.Error.UnknownObject instead of crashing
|
221
|
-
(Ticket#31).
|
222
|
-
* Rescue exceptions in dbus_methods and reply with DBus errors instead of
|
223
|
-
crashing (da1l6).
|
224
|
-
* Better exception messages when sending nil, or mismatched structs.
|
225
|
-
* Call mktemp without --tmpdir, to build on older distros.
|
226
|
-
|
227
|
-
== Ruby D-Bus 0.2.10 - 2009-09-10
|
228
|
-
|
229
|
-
Bug fixes:
|
230
|
-
|
231
|
-
* DBus::Service.exists? fixed (Murat Demirten).
|
232
|
-
* Ruby 1.9 fixes (Jedediah Smith).
|
233
|
-
* Fixed an endless sleep in DBus::Main.run (bnc#537401).
|
234
|
-
* Added details to PacketMarshaller exceptions (bnc#538050).
|
235
|
-
|
236
|
-
(bnc#FOO refers to https://bugzilla.novell.com/show_bug.cgi?id=FOO )
|
237
|
-
|
238
|
-
== Ruby D-Bus "I'm not dead" 0.2.9 - 2009-08-26
|
239
|
-
|
240
|
-
Thank you to Paul and Arnaud for starting the project. I, Martin
|
241
|
-
Vidner, am continuing with it on GitHub.
|
242
|
-
|
243
|
-
* Fixed passing an array through a variant (no ticket).
|
244
|
-
* Fixed marshalling "av" (Ticket #30).
|
245
|
-
* Fixed variant alignment (Ticket #27).
|
246
|
-
* Added DBus::Main.quit.
|
247
|
-
* Mention the DBus interface in a NameError for an unknown method.
|
248
|
-
* Fixed ruby-1.9 "warning: default `to_a' will be obsolete".
|
249
|
-
* Added Rakefile and gemspec.
|
250
|
-
|
251
|
-
== Ruby D-Bus "Thanks for all the fish" 0.2.1 - 2007-12-29
|
252
|
-
|
253
|
-
More bugfixes, mostly supplied by users supplying us with patches. Thanks!
|
254
|
-
|
255
|
-
* Support for new types added:
|
256
|
-
- dict (courtesy of Drake Wilson);
|
257
|
-
- double (courtesy of Patrick Sissons);
|
258
|
-
- variant.
|
259
|
-
* Improved exception raise support (courtesy of Sjoerd Simons,
|
260
|
-
Patrick Sissons).
|
261
|
-
* Some polish (removed debug output, solved unnecessary warnings).
|
262
|
-
* Documentation updates, example fixes and updates.
|
263
|
-
|
264
|
-
== Ruby D-Bus "Almost live from DebConf 7" 0.2.0 - 2007-06-02
|
265
|
-
|
266
|
-
Again a bugfix release, also meant to be the public release
|
267
|
-
for exploratory purposes. New in 0.2.0:
|
268
|
-
|
269
|
-
* Complete tutorial revamp.
|
270
|
-
* Relicensed to the LGPL.
|
271
|
-
|
272
|
-
== Ruby D-Bus "Release Often" 0.1.1 - 2007-04-23
|
273
|
-
|
274
|
-
Bugfix release. Fixes hardcoded string for requesting bus names,
|
275
|
-
found by Rudi Cilibrasi.
|
276
|
-
|
277
|
-
== Ruby D-Bus "Happy Birthday Paul" 0.1.0 - 2007-04-17
|
278
|
-
|
279
|
-
First release. Supports most of D-Bus' features.
|