[DRE-commits] [ruby-websocket-parser] 01/02: A bit of packaging work

Hleb Valoshka tsfgnu-guest at moszumanska.debian.org
Wed Jul 15 09:03:30 UTC 2015


This is an automated email from the git hooks/post-receive script.

tsfgnu-guest pushed a commit to branch master
in repository ruby-websocket-parser.

commit 78cdbbcbcec09a5481bc256ddff453203d7e71ab
Author: Hleb Valoshka <375gnu at gmail.com>
Date:   Wed Jul 15 12:01:54 2015 +0300

    A bit of packaging work
---
 debian/control                                     |   6 +-
 debian/copyright                                   |  45 ++-
 debian/patches/0001-Do-not-require-bundler.patch   |  17 +
 ...specs-to-RSpec-3.3.1-syntax-with-Transpec.patch | 349 +++++++++++++++++++++
 debian/patches/0003-Add-absent-require-uri.patch   |  26 ++
 debian/patches/series                              |   3 +
 debian/tests/control.ex                            |  13 -
 7 files changed, 420 insertions(+), 39 deletions(-)

diff --git a/debian/control b/debian/control
index 82fe9c9..06e7bef 100644
--- a/debian/control
+++ b/debian/control
@@ -20,5 +20,7 @@ XB-Ruby-Versions: ${ruby:Versions}
 Depends: ruby | ruby-interpreter,
          ${misc:Depends},
          ${shlibs:Depends}
-Description: Parse websockets messages in Ruby
- WebsocketParser is a RFC6455 compliant parser for websocket messages
+Description: RFC6455 compliant parser for websocket messages
+ WebsocketParser is a RFC6455 compliant parser for websocket messages written
+ in Ruby. It is intended to write websockets servers in Ruby, but it only
+ handles the parsing of the WebSocket protocol, leaving I/O to the server.
diff --git a/debian/copyright b/debian/copyright
index fd159a3..237804b 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,35 +1,32 @@
 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: websocket_parser
-Source: FIXME <http://example.com/>
+Source: https://github.com/afcapel/websocket_parser
 
 Files: *
-Copyright: <years> <put author's name and email here>
-           <years> <likewise for another author>
-License: GPL-2+ (FIXME)
+Copyright: 2012-2015 Alberto Fernandez-Capel <afcapel at gmail.com>
+License: Expat
 
 Files: debian/*
 Copyright: 2015 Hleb Valoshka <375gnu at gmail.com>
-License: GPL-2+ (FIXME)
+License: Expat
 Comment: the Debian packaging is licensed under the same terms as the original package.
 
-License: GPL-2+ (FIXME)
- This program is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later
- version.
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
  .
- This program is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied
- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE.  See the GNU General Public License for more
- details.
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
  .
- You should have received a copy of the GNU General Public
- License along with this package; if not, write to the Free
- Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- Boston, MA  02110-1301 USA
- .
- On Debian systems, the full text of the GNU General Public
- License version 2 can be found in the file
- `/usr/share/common-licenses/GPL-2'.
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/debian/patches/0001-Do-not-require-bundler.patch b/debian/patches/0001-Do-not-require-bundler.patch
new file mode 100644
index 0000000..4f72e1f
--- /dev/null
+++ b/debian/patches/0001-Do-not-require-bundler.patch
@@ -0,0 +1,17 @@
+From: Hleb Valoshka <375gnu at gmail.com>
+Date: Tue, 7 Jul 2015 18:29:49 +0300
+Subject: Do not require bundler
+
+---
+ spec/spec_helper.rb | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
+index e2b6dc9..4bb9503 100644
+--- a/spec/spec_helper.rb
++++ b/spec/spec_helper.rb
+@@ -1,4 +1,3 @@
+-require 'bundler/setup'
+ require 'websocket_parser'
+ 
+ RSpec.configure do |config|
diff --git a/debian/patches/0002-Convert-specs-to-RSpec-3.3.1-syntax-with-Transpec.patch b/debian/patches/0002-Convert-specs-to-RSpec-3.3.1-syntax-with-Transpec.patch
new file mode 100644
index 0000000..52bdccd
--- /dev/null
+++ b/debian/patches/0002-Convert-specs-to-RSpec-3.3.1-syntax-with-Transpec.patch
@@ -0,0 +1,349 @@
+From: Hleb Valoshka <375gnu at gmail.com>
+Date: Tue, 7 Jul 2015 18:38:51 +0300
+Subject: Convert specs to RSpec 3.3.1 syntax with Transpec
+
+This conversion is done by Transpec 3.1.0 with the following command:
+    transpec
+
+* 58 conversions
+    from: obj.should
+      to: expect(obj).to
+
+* 2 conversions
+    from: be_true
+      to: be_truthy
+
+* 1 conversion
+    from: be_false
+      to: be_falsey
+
+For more details: https://github.com/yujinakayama/transpec#supported-conversions
+---
+ spec/websocket/handshake_spec.rb | 10 +++----
+ spec/websocket/message_spec.rb   | 46 +++++++++++++++---------------
+ spec/websocket/parser_spec.rb    | 60 ++++++++++++++++++++--------------------
+ 3 files changed, 58 insertions(+), 58 deletions(-)
+
+diff --git a/spec/websocket/handshake_spec.rb b/spec/websocket/handshake_spec.rb
+index 6a62f75..99460ce 100644
+--- a/spec/websocket/handshake_spec.rb
++++ b/spec/websocket/handshake_spec.rb
+@@ -16,15 +16,15 @@ describe WebSocket::ClientHandshake do
+   let(:client_handshake) { WebSocket::ClientHandshake.new(:get, '/', handshake_headers) }
+ 
+   it "can validate handshake format" do
+-    client_handshake.valid?.should be_true
++    expect(client_handshake.valid?).to be_truthy
+   end
+ 
+   it "can generate an accept response for the client" do
+     response = client_handshake.accept_response
+ 
+-    response.headers['Upgrade'].should eq('websocket')
+-    response.headers['Connection'].should eq('Upgrade')
+-    response.headers['Sec-WebSocket-Accept'].should eq('s3pPLMBiTxaQ9kYGzzhZRbK+xOo=')
++    expect(response.headers['Upgrade']).to eq('websocket')
++    expect(response.headers['Connection']).to eq('Upgrade')
++    expect(response.headers['Sec-WebSocket-Accept']).to eq('s3pPLMBiTxaQ9kYGzzhZRbK+xOo=')
+   end
+ 
+   it "can be seariakized to data" do
+@@ -40,6 +40,6 @@ describe WebSocket::ClientHandshake do
+       "\r\n"
+     ]
+ 
+-    client_handshake.to_data.should eq expected_lines.join("\r\n")
++    expect(client_handshake.to_data).to eq expected_lines.join("\r\n")
+   end
+ end
+diff --git a/spec/websocket/message_spec.rb b/spec/websocket/message_spec.rb
+index a07a37d..43fff11 100644
+--- a/spec/websocket/message_spec.rb
++++ b/spec/websocket/message_spec.rb
+@@ -7,14 +7,14 @@ describe WebSocket::Message do
+     data = message.to_data
+ 
+     # 2 bytes from header + 8 bytes from extended payload length + payload
+-    data.size.should eq(2 + 8 + text.length)
++    expect(data.size).to eq(2 + 8 + text.length)
+ 
+     first_byte, second_byte, ext_length, payload = data.unpack("CCQ>a#{text.length}")
+ 
+-    first_byte.should  eq(0b10000001) # Text frame with FIN bit set
+-    second_byte.should eq(0b01111111) # Unmasked. Payload length 127.
+-    ext_length.should  eq(text.length)
+-    payload.should     eq(text)
++    expect(first_byte).to  eq(0b10000001) # Text frame with FIN bit set
++    expect(second_byte).to eq(0b01111111) # Unmasked. Payload length 127.
++    expect(ext_length).to  eq(text.length)
++    expect(payload).to     eq(text)
+   end
+ 
+   it "knows binary representation of messages between 126 and 65,535 bytes" do
+@@ -22,16 +22,16 @@ describe WebSocket::Message do
+     data = WebSocket::Message.new(text).to_data
+ 
+     # 2 bytes from header + 2 bytes from extended payload length + payload
+-    data.size.should eq(2 + 2 + text.length)
++    expect(data.size).to eq(2 + 2 + text.length)
+     # extended payload length should respect endianness
+-    data[2..3].should eq([0x00, 0x7F].pack('C*'))
++    expect(data[2..3]).to eq([0x00, 0x7F].pack('C*'))
+ 
+     first_byte, second_byte, ext_length, payload = data.unpack("CCna#{text.length}")
+ 
+-    first_byte.should  eq(0b10000001) # Text frame with FIN bit set
+-    second_byte.should eq(0b01111110) # Unmasked. Payload length 126.
+-    ext_length.should  eq(text.length)
+-    payload.should     eq(text)
++    expect(first_byte).to  eq(0b10000001) # Text frame with FIN bit set
++    expect(second_byte).to eq(0b01111110) # Unmasked. Payload length 126.
++    expect(ext_length).to  eq(text.length)
++    expect(payload).to     eq(text)
+   end
+ 
+   it "knows binary representation of messages with less than 126 bytes" do
+@@ -39,31 +39,31 @@ describe WebSocket::Message do
+     data = WebSocket::Message.new(text).to_data
+ 
+     # 2 bytes from header + payload
+-    data.size.should eq(2 + text.length)
++    expect(data.size).to eq(2 + text.length)
+ 
+     first_byte, second_byte, payload = data.unpack("CCa#{text.length}")
+ 
+-    first_byte.should  eq(0b10000001) # Text frame with FIN bit set
+-    second_byte.should eq(0b01111101) # Unmasked. Payload length 125.
+-    payload.should     eq(text)
++    expect(first_byte).to  eq(0b10000001) # Text frame with FIN bit set
++    expect(second_byte).to eq(0b01111101) # Unmasked. Payload length 125.
++    expect(payload).to     eq(text)
+   end
+ 
+   it "can be masked" do
+     message = WebSocket::Message.new('The man with the Iron Mask')
+-    message.masked?.should be_false
++    expect(message.masked?).to be_falsey
+ 
+     message.mask!
+ 
+-    message.masked?.should be_true
++    expect(message.masked?).to be_truthy
+   end
+ 
+   it "allows status codes for control frames" do
+     msg = WebSocket::Message.close(1001, 'Bye')
+ 
+-    msg.status_code.should eq(1001)
+-    msg.payload.should eq([1001, 'Bye'].pack('S<a*'))
+-    msg.status.should eq(:peer_going_away)
+-    msg.status_message.should eq('Bye')
++    expect(msg.status_code).to eq(1001)
++    expect(msg.payload).to eq([1001, 'Bye'].pack('S<a*'))
++    expect(msg.status).to eq(:peer_going_away)
++    expect(msg.status_message).to eq('Bye')
+   end
+ 
+   it "does not allow a status message without status code" do
+@@ -74,7 +74,7 @@ describe WebSocket::Message do
+     ping = WebSocket::Message.ping('Roman Ping Pong')
+     pong = WebSocket::Message.pong(ping.payload)
+ 
+-    pong.type.should    eq(:pong)
+-    pong.payload.should eq('Roman Ping Pong')
++    expect(pong.type).to    eq(:pong)
++    expect(pong.payload).to eq('Roman Ping Pong')
+   end
+ end
+diff --git a/spec/websocket/parser_spec.rb b/spec/websocket/parser_spec.rb
+index c7a31e9..cfc290d 100644
+--- a/spec/websocket/parser_spec.rb
++++ b/spec/websocket/parser_spec.rb
+@@ -22,7 +22,7 @@ describe WebSocket::Parser do
+   it "recognizes a text message" do
+     parser << WebSocket::Message.new('Once upon a time').to_data
+ 
+-    received_messages.first.should eq('Once upon a time')
++    expect(received_messages.first).to eq('Once upon a time')
+   end
+ 
+   it "returns parsed messages on parse" do
+@@ -30,30 +30,30 @@ describe WebSocket::Parser do
+     msg2 = WebSocket::Message.new('Made glorious summer by this sun of York').to_data
+ 
+     messages = parser << msg1.slice!(0,5)
+-    messages.should be_empty # We don't have a complete message yet
++    expect(messages).to be_empty # We don't have a complete message yet
+ 
+     messages = parser << msg1 + msg2
+ 
+-    messages[0].should eq('Now is the winter of our discontent')
+-    messages[1].should eq('Made glorious summer by this sun of York')
++    expect(messages[0]).to eq('Now is the winter of our discontent')
++    expect(messages[1]).to eq('Made glorious summer by this sun of York')
+   end
+ 
+   it "does not return control frames" do
+     msg = WebSocket::Message.close(1001, 'Goodbye!').to_data
+ 
+     messages = parser << msg
+-    messages.should be_empty
++    expect(messages).to be_empty
+   end
+ 
+   it "can receive a message in parts" do
+     data = WebSocket::Message.new('Once upon a time').to_data
+     parser << data.slice!(0, 5)
+ 
+-    received_messages.should be_empty
++    expect(received_messages).to be_empty
+ 
+     parser << data
+ 
+-    received_messages.first.should eq('Once upon a time')
++    expect(received_messages.first).to eq('Once upon a time')
+   end
+ 
+   it "can receive succesive messages" do
+@@ -63,60 +63,60 @@ describe WebSocket::Parser do
+     parser << msg1.to_data
+     parser << msg2.to_data
+ 
+-    received_messages[0].should eq('Now is the winter of our discontent')
+-    received_messages[1].should eq('Made glorious summer by this sun of York')
++    expect(received_messages[0]).to eq('Now is the winter of our discontent')
++    expect(received_messages[1]).to eq('Made glorious summer by this sun of York')
+   end
+ 
+   it "can receive medium size messages" do
+     # Medium size messages has a payload length between 127 and 65_535 bytes
+ 
+     text = 4.times.collect { 'All work and no play makes Jack a dull boy.' }.join("\n\n")
+-    text.length.should be > 127
+-    text.length.should be < 65_536
++    expect(text.length).to be > 127
++    expect(text.length).to be < 65_536
+ 
+     parser << WebSocket::Message.new(text).to_data
+-    received_messages.first.should eq(text)
++    expect(received_messages.first).to eq(text)
+   end
+ 
+   it "can receive large size messages" do
+     # Large size messages has a payload length greater than 65_535 bytes
+ 
+     text = 1500.times.collect { 'All work and no play makes Jack a dull boy.' }.join("\n\n")
+-    text.length.should be > 65_536
++    expect(text.length).to be > 65_536
+ 
+     parser << WebSocket::Message.new(text).to_data
+ 
+     # Check lengths first to avoid gigantic error message
+-    received_messages.first.length.should eq(text.length)
+-    received_messages.first.should eq(text)
++    expect(received_messages.first.length).to eq(text.length)
++    expect(received_messages.first).to eq(text)
+   end
+ 
+   it "recognizes a ping message" do
+     parser << WebSocket::Message.ping.to_data
+ 
+-    received_pings.size.should eq(1)
++    expect(received_pings.size).to eq(1)
+   end
+ 
+   it "recognizes a pong message" do
+     parser << WebSocket::Message.pong.to_data
+ 
+-    received_pongs.size.should eq(1)
++    expect(received_pongs.size).to eq(1)
+   end
+ 
+   it "recognizes a close message with status code and message" do
+     parser << WebSocket::Message.close(1001, 'Browser leaving page').to_data
+ 
+     status, message = received_closes.first
+-    status.should  eq(:peer_going_away) # Status code 1001
+-    message.should eq('Browser leaving page')
++    expect(status).to  eq(:peer_going_away) # Status code 1001
++    expect(message).to eq('Browser leaving page')
+   end
+ 
+   it "recognizes a close message without status code" do
+     parser << WebSocket::Message.close.to_data
+ 
+     status, message = received_closes.first
+-    status.should  be_nil
+-    message.should be_empty
++    expect(status).to  be_nil
++    expect(message).to be_empty
+   end
+ 
+   it "recognizes a masked frame" do
+@@ -125,7 +125,7 @@ describe WebSocket::Parser do
+ 
+     parser << msg.to_data
+ 
+-    received_messages.first.should eq('Once upon a time')
++    expect(received_messages.first).to eq('Once upon a time')
+   end
+ 
+   context "examples from the spec" do
+@@ -134,49 +134,49 @@ describe WebSocket::Parser do
+     it "recognizes single-frame unmasked text message" do
+       parser << [0x81, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f].pack('C*')
+ 
+-      received_messages.first.should eq('Hello')
++      expect(received_messages.first).to eq('Hello')
+     end
+ 
+     it "recognizes single-frame masked text message" do
+       parser << [0x81, 0x85, 0x37, 0xfa, 0x21, 0x3d, 0x7f, 0x9f, 0x4d, 0x51, 0x58].pack('C*')
+ 
+-      received_messages.first.should eq('Hello')
++      expect(received_messages.first).to eq('Hello')
+     end
+ 
+     it "recognizes a fragmented unmasked text message" do
+       parser << [0x01, 0x03, 0x48, 0x65, 0x6c].pack('C*') # contains "Hel"
+ 
+-      received_messages.should be_empty
++      expect(received_messages).to be_empty
+ 
+       parser << [0x80, 0x02, 0x6c, 0x6f].pack('C*') # contains "lo"
+ 
+-      received_messages.first.should eq('Hello')
++      expect(received_messages.first).to eq('Hello')
+     end
+ 
+     it "recognizes an unnmasked ping request" do
+       parser << [0x89, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f].pack('C*')
+ 
+-      received_pings.size.should eq(1)
++      expect(received_pings.size).to eq(1)
+     end
+ 
+     it "recognizes a masked pong response" do
+       parser << [0x8a, 0x85, 0x37, 0xfa, 0x21, 0x3d, 0x7f, 0x9f, 0x4d, 0x51, 0x58].pack('C*')
+ 
+-      received_pongs.size.should eq(1)
++      expect(received_pongs.size).to eq(1)
+     end
+ 
+     it "recognizes 256 bytes binary message in a single unmasked frame" do
+       data = Array.new(256) { rand(256) }.pack('c*')
+       parser << [0x82, 0x7E, 0x0100].pack('CCn') + data
+ 
+-      received_messages.first.should eq(data)
++      expect(received_messages.first).to eq(data)
+     end
+ 
+     it "recoginzes 64KiB binary message in a single unmasked frame" do
+       data = Array.new(65536) { rand(256) }.pack('c*')
+       parser << [0x82, 0x7F, 0x0000000000010000].pack('CCQ>') + data
+ 
+-      received_messages.first.should eq(data)
++      expect(received_messages.first).to eq(data)
+     end
+   end
+ end
diff --git a/debian/patches/0003-Add-absent-require-uri.patch b/debian/patches/0003-Add-absent-require-uri.patch
new file mode 100644
index 0000000..58bc4ef
--- /dev/null
+++ b/debian/patches/0003-Add-absent-require-uri.patch
@@ -0,0 +1,26 @@
+From: Hleb Valoshka <375gnu at gmail.com>
+Date: Tue, 7 Jul 2015 18:47:13 +0300
+Subject: Add absent require 'uri'
+
+---
+ lib/websocket/client_handshake.rb | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/lib/websocket/client_handshake.rb b/lib/websocket/client_handshake.rb
+index e3aa8d0..d3f43e6 100644
+--- a/lib/websocket/client_handshake.rb
++++ b/lib/websocket/client_handshake.rb
+@@ -1,5 +1,6 @@
+ require 'digest/sha1'
+ require 'base64'
++require 'uri'
+ 
+ module WebSocket
+   class ClientHandshake
+@@ -62,4 +63,4 @@ module WebSocket
+       data
+     end
+   end
+-end
+\ No newline at end of file
++end
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..84bee80
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,3 @@
+0001-Do-not-require-bundler.patch
+0002-Convert-specs-to-RSpec-3.3.1-syntax-with-Transpec.patch
+0003-Add-absent-require-uri.patch
diff --git a/debian/tests/control.ex b/debian/tests/control.ex
deleted file mode 100644
index d604201..0000000
--- a/debian/tests/control.ex
+++ /dev/null
@@ -1,13 +0,0 @@
-# AUTOGENERATED FILE
-#
-# As of autopkgtest 3.5, Ruby packages that use gem2deb are automatically
-# detected, and if debian/tests/control does not exist the contents below will
-# be assumed (with the exception of gem2deb being filtered out from
-# @builddeps@):
-
-Test-Command: gem2deb-test-runner --autopkgtest --check-dependencies 2>&1
-Depends: @, @builddeps@, gem2deb-test-runner
-
-# if you would need to change something to the above, to that and rename this
-# file to `control`. Otherwise, you should probably delete this file
-# (recommended).

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-websocket-parser.git



More information about the Pkg-ruby-extras-commits mailing list