ruby-dbus-openplacos 0.6.2 → 0.7.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.
- data/NEWS +16 -0
- data/Rakefile +19 -9
- data/VERSION +1 -1
- data/lib/dbus/auth.rb +9 -3
- data/lib/dbus/bus.rb +13 -10
- data/lib/dbus/export.rb +9 -0
- data/ruby-dbus-openplacos.gemspec +1 -0
- metadata +8 -11
data/NEWS
CHANGED
@@ -5,6 +5,22 @@ Note about bug numbers:
|
|
5
5
|
Issue#1 - http://github.com/mvidner/ruby-dbus/issues#issue/1
|
6
6
|
bnc#1 - https://bugzilla.novell.com/show_bug.cgi?id=1
|
7
7
|
|
8
|
+
== Ruby D-Bus 0.7.0 - 2011-07-26
|
9
|
+
|
10
|
+
Features:
|
11
|
+
* Added ASystemBus and ASessionBus, non-singletons useful in tests
|
12
|
+
and threads.
|
13
|
+
|
14
|
+
Bug fixes:
|
15
|
+
* Fixed handling of multibyte strings (Issue#8, by Takayuki YAMAGUCHI).
|
16
|
+
* Allow reopening of a dbus_interface declaration (Issue#9, by T. YAMAGUCHI).
|
17
|
+
* Fixed ruby-1.9.2 compatibility again (Issue#12).
|
18
|
+
* Fixed authentication on BSD (Issue#11, by Jonathan Walker)
|
19
|
+
* Fixed exiting a nested event loop for synchronous calls
|
20
|
+
(reported by Timo Warns).
|
21
|
+
* Fixed introspection calls leaking reply handlers.
|
22
|
+
* "rake test" now works, doing what was called "rake env:test"
|
23
|
+
|
8
24
|
== Ruby D-Bus 0.6.0 - 2010-12-11
|
9
25
|
|
10
26
|
Features:
|
data/Rakefile
CHANGED
@@ -3,33 +3,32 @@ require 'rake'
|
|
3
3
|
require 'rake/gempackagetask'
|
4
4
|
require 'fileutils'
|
5
5
|
include FileUtils
|
6
|
+
require 'tmpdir'
|
6
7
|
require 'rake/rdoctask'
|
7
8
|
require 'rake/testtask'
|
8
9
|
|
9
10
|
desc 'Default: run tests in the proper environment'
|
10
|
-
task :default =>
|
11
|
+
task :default => :test
|
11
12
|
|
12
13
|
def common_test_task(t)
|
13
14
|
t.libs << "lib"
|
14
15
|
t.test_files = FileList['test/*_test.rb', 'test/t[0-9]*.rb']
|
15
16
|
t.verbose = true
|
16
17
|
end
|
17
|
-
Rake::TestTask.new {|t| common_test_task t }
|
18
|
+
Rake::TestTask.new("bare:test") {|t| common_test_task t }
|
18
19
|
|
19
20
|
begin
|
20
21
|
require 'rcov/rcovtask'
|
21
|
-
Rcov::RcovTask.new {|t| common_test_task t }
|
22
|
+
Rcov::RcovTask.new("bare:rcov") {|t| common_test_task t }
|
22
23
|
rescue LoadError
|
23
24
|
# no rcov, never mind
|
24
25
|
end
|
25
26
|
|
26
27
|
%w(test rcov).each do |tname|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
system "./test_env rake #{tname}"
|
32
|
-
end
|
28
|
+
desc "Run bare:#{tname} in the proper environment"
|
29
|
+
task tname do |t|
|
30
|
+
cd "test" do
|
31
|
+
system "./test_env rake bare:#{tname}"
|
33
32
|
end
|
34
33
|
end
|
35
34
|
end
|
@@ -40,6 +39,17 @@ Rake::GemPackageTask.new(GEMSPEC) do |pkg|
|
|
40
39
|
# no other formats needed
|
41
40
|
end
|
42
41
|
|
42
|
+
desc "Build a package from a clone of the local Git repo"
|
43
|
+
task :package_git do |t|
|
44
|
+
Dir.mktmpdir do |temp|
|
45
|
+
sh "git clone . #{temp}"
|
46
|
+
cd temp do
|
47
|
+
sh "rake package"
|
48
|
+
end
|
49
|
+
cp_r "#{temp}/pkg", "."
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
43
53
|
Rake::RDocTask.new do |rd|
|
44
54
|
rd.rdoc_dir = 'doc/rdoc'
|
45
55
|
rd.rdoc_files.include("README", "lib/**/*.rb")
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.7.0
|
data/lib/dbus/auth.rb
CHANGED
@@ -8,6 +8,8 @@
|
|
8
8
|
|
9
9
|
$debug = $DEBUG #it's all over the state machine
|
10
10
|
|
11
|
+
require 'rbconfig'
|
12
|
+
|
11
13
|
module DBus
|
12
14
|
# Exception raised when authentication fails somehow.
|
13
15
|
class AuthenticationFailed < Exception
|
@@ -118,7 +120,11 @@ module DBus
|
|
118
120
|
|
119
121
|
# Start the authentication process.
|
120
122
|
def authenticate
|
121
|
-
|
123
|
+
if (RbConfig::CONFIG["target_os"] =~ /bsd/)
|
124
|
+
@socket.sendmsg(0.chr, 0, nil, [:SOCKET, :SCM_CREDS, ""])
|
125
|
+
else
|
126
|
+
@socket.write(0.chr)
|
127
|
+
end
|
122
128
|
next_authenticator
|
123
129
|
@state = :Starting
|
124
130
|
while @state != :Authenticated
|
@@ -142,12 +148,12 @@ module DBus
|
|
142
148
|
# Try authentication using the next authenticator.
|
143
149
|
def next_authenticator
|
144
150
|
begin
|
145
|
-
raise
|
151
|
+
raise AuthenticationFailed if @auth_list.size == 0
|
146
152
|
@authenticator = @auth_list.shift.new
|
147
153
|
auth_msg = ["AUTH", @authenticator.name, @authenticator.authenticate]
|
148
154
|
puts "DEBUG: auth_msg: #{auth_msg.inspect}" if $debug
|
149
155
|
send(auth_msg)
|
150
|
-
rescue
|
156
|
+
rescue AuthenticationFailed
|
151
157
|
@socket.close
|
152
158
|
raise
|
153
159
|
end
|
data/lib/dbus/bus.rb
CHANGED
@@ -30,11 +30,20 @@ module DBus
|
|
30
30
|
attr_reader :root
|
31
31
|
|
32
32
|
# Create a new service with a given _name_ on a given _bus_.
|
33
|
-
def initialize(name, bus)
|
33
|
+
def initialize(name, bus,threaded = false)
|
34
34
|
@name, @bus = name, bus
|
35
|
+
@threaded = threaded
|
35
36
|
@root = Node.new("/")
|
36
37
|
end
|
37
|
-
|
38
|
+
|
39
|
+
def threaded?
|
40
|
+
return @threaded
|
41
|
+
end
|
42
|
+
|
43
|
+
def threaded=(threaded)
|
44
|
+
@threaded = threaded
|
45
|
+
end
|
46
|
+
|
38
47
|
# Determine whether the service name already exists.
|
39
48
|
def exists?
|
40
49
|
bus.proxy.ListNames[0].member?(@name)
|
@@ -242,11 +251,7 @@ module DBus
|
|
242
251
|
@queue_used_by_thread[thread_in_wait] << ret # puts the message in the queue
|
243
252
|
end
|
244
253
|
else
|
245
|
-
|
246
|
-
@main_message_queue << ret
|
247
|
-
else
|
248
|
-
process(ret) # there is no main.run thread, process the message
|
249
|
-
end
|
254
|
+
@main_message_queue << ret
|
250
255
|
end
|
251
256
|
end
|
252
257
|
}
|
@@ -630,9 +635,7 @@ module DBus
|
|
630
635
|
if (@threaded)
|
631
636
|
@queue_used_by_thread.delete(Thread.current)
|
632
637
|
else
|
633
|
-
|
634
|
-
DBus::Message::METHOD_RETURN].include?(retm.message_type) and
|
635
|
-
retm.reply_serial == m.serial
|
638
|
+
while @method_call_replies.has_key? m.serial
|
636
639
|
retm = wait_for_message
|
637
640
|
process(retm)
|
638
641
|
end
|
data/lib/dbus/export.rb
CHANGED
@@ -42,6 +42,14 @@ module DBus
|
|
42
42
|
|
43
43
|
# Dispatch a message _msg_ to call exported methods
|
44
44
|
def dispatch(msg)
|
45
|
+
if @service.threaded?
|
46
|
+
Thread.new { process_dispatch(msg)}
|
47
|
+
else
|
48
|
+
process_dispatch(msg)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def process_dispatch(msg)
|
45
53
|
case msg.message_type
|
46
54
|
when Message::METHOD_CALL
|
47
55
|
reply = nil
|
@@ -70,6 +78,7 @@ module DBus
|
|
70
78
|
end
|
71
79
|
end
|
72
80
|
|
81
|
+
|
73
82
|
# Select (and create) the interface that the following defined methods
|
74
83
|
# belong to.
|
75
84
|
def self.dbus_interface(s)
|
@@ -8,6 +8,7 @@ GEMSPEC = Gem::Specification.new do |s|
|
|
8
8
|
s.summary = "Fork from ruby-dbus"
|
9
9
|
# s.description = FIXME
|
10
10
|
s.version = File.read("VERSION").strip
|
11
|
+
s.license = "LGPL v2.1"
|
11
12
|
s.author = "Openplacos Team"
|
12
13
|
s.homepage = "https://github.com/flagos/ruby-dbus"
|
13
14
|
s.files = FileList["{doc/tutorial,examples,lib,test}/**/*", "Rakefile", "ruby-dbus-openplacos.gemspec", "VERSION"].to_a.sort
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-dbus-openplacos
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
7
|
+
- 7
|
8
|
+
- 0
|
9
|
+
version: 0.7.0
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Openplacos Team
|
@@ -15,7 +14,7 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date:
|
17
|
+
date: 2012-03-10 00:00:00 +01:00
|
19
18
|
default_executable:
|
20
19
|
dependencies: []
|
21
20
|
|
@@ -84,8 +83,8 @@ files:
|
|
84
83
|
- NEWS
|
85
84
|
has_rdoc: true
|
86
85
|
homepage: https://github.com/flagos/ruby-dbus
|
87
|
-
licenses:
|
88
|
-
|
86
|
+
licenses:
|
87
|
+
- LGPL v2.1
|
89
88
|
post_install_message:
|
90
89
|
rdoc_options: []
|
91
90
|
|
@@ -96,7 +95,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
96
95
|
requirements:
|
97
96
|
- - ">="
|
98
97
|
- !ruby/object:Gem::Version
|
99
|
-
hash: 57
|
100
98
|
segments:
|
101
99
|
- 1
|
102
100
|
- 8
|
@@ -107,14 +105,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
105
|
requirements:
|
108
106
|
- - ">="
|
109
107
|
- !ruby/object:Gem::Version
|
110
|
-
hash: 3
|
111
108
|
segments:
|
112
109
|
- 0
|
113
110
|
version: "0"
|
114
111
|
requirements: []
|
115
112
|
|
116
113
|
rubyforge_project:
|
117
|
-
rubygems_version: 1.
|
114
|
+
rubygems_version: 1.3.7
|
118
115
|
signing_key:
|
119
116
|
specification_version: 3
|
120
117
|
summary: Fork from ruby-dbus
|