summaryrefslogtreecommitdiff
path: root/dev-ruby/websocket-driver
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-03-31 22:06:41 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-03-31 22:06:41 +0100
commit9ab9a2c6661b7cb6bbaeeb3fbdfedd7546b0142f (patch)
tree8e2efb08866063f75d3d4927f8ac76e6554d4704 /dev-ruby/websocket-driver
parent569e3558cac0a0ecdc6b80debb515b5ed8515df9 (diff)
gentoo auto-resync : 31:03:2023 - 22:06:41
Diffstat (limited to 'dev-ruby/websocket-driver')
-rw-r--r--dev-ruby/websocket-driver/Manifest2
-rw-r--r--dev-ruby/websocket-driver/files/websocket-driver-0.7.5-ruby32.patch125
-rw-r--r--dev-ruby/websocket-driver/websocket-driver-0.7.5-r1.ebuild35
3 files changed, 162 insertions, 0 deletions
diff --git a/dev-ruby/websocket-driver/Manifest b/dev-ruby/websocket-driver/Manifest
index be68aac65659..c9953ffda651 100644
--- a/dev-ruby/websocket-driver/Manifest
+++ b/dev-ruby/websocket-driver/Manifest
@@ -1,5 +1,7 @@
+AUX websocket-driver-0.7.5-ruby32.patch 4305 BLAKE2B ba2a2142b496178381b4e568f2062422e802115f3fecee907d148829950e7e085aeb51083eb9a1e9376319582275a877193345b1238d26a070fed856576993ea SHA512 81013e4f3553272eb6ecd15e6c5ac55e7237076342c1e392ee37f55dc81bb2064612aa0a576498571e766d338b580bdc6c615efbaa71a197192106f515f0f78d
DIST websocket-driver-0.6.5.tar.gz 24737 BLAKE2B 137c16a69309a1aad07fff663ff95a888a151f0fa20e78e754ae62ddfc8c2bdbfda926d7f4c53549e92646d018df7f374721e95246eb2985012e6b219970c4c6 SHA512 6915fdefac26a24e1f7d3d9a7e6bc6afc84b491150290a75a14243c233f5029d7d6e90a803b34bd6a8e8717322c6ae6fd4d3f3dad7a50c8eb18f17c3f2e9bbd0
DIST websocket-driver-0.7.5.tar.gz 26179 BLAKE2B 8e7739d6cf48de5a2ef443f476652af74b269c075aa1e6bc13b2ac3ac17ede1699594a9380a137b307eaaed19ac2868b6a1362a66f835262f18e82f81c8e445f SHA512 538c78cd39507fb6cddeaa6196f0e2bbb89d7293f062d9b0231b6c6988a46b718c91b69a50b4cbf5b227067e6ed4ee89c61759bf340fc3e483c4af97052d42f9
EBUILD websocket-driver-0.6.5-r1.ebuild 831 BLAKE2B 70f301dbf5789c5fb4a0ccdd5f2186a96a267a4a0b8cbfdf14d94adb51ed20e276f3a21e0f35e412111e7c766a4040ecdbbe8f97fb81abde36f033b762b1cf02 SHA512 642f7ef178dfdc5c0aa843ab669e5f083b7f5489461ea47c3d519b7f9f48bbd6a3e848a36869bfe8ebb439d58db0cc0997b3bf0a6c29880eb3dd4608d93d7d75
+EBUILD websocket-driver-0.7.5-r1.ebuild 876 BLAKE2B b5b3bd2f5e92ea08dfc2a1b81b7c9813179e5eea156ecf8698775e2df67bfff7bca36d40b6328c0f1a61b595bcb4c1001c804e6feddf7720eed019f15e990551 SHA512 f9649e38e12c45e312c864cce585d579fe63f602f0cdc32385c7a28bddeadb0c5dfa6f7899222dfe1695391e92d7c0e2e241cee786185083c866361ff5af5f9e
EBUILD websocket-driver-0.7.5.ebuild 1069 BLAKE2B 043dcdc303aa452fca7565067c0a19537892a0f0fdd140bbb32385bd2a6ad9cae02d58a51b7e32022a534ae7aed93dd3f4f5a5ca725e2ebb236f76f9666af746 SHA512 2f5f5039eda6a546c4e4f6772c7fc723518c92c025167a1bf2c9688921b599820275c3bc89c73d9f6f2c81fcd174bef7a6383099b380c0fc10214a3ca3b4851e
MISC metadata.xml 353 BLAKE2B 6d6cd2bb65746c1d9bcd4ef50619b7005445623a728503bc4a5e99d38cd82a205c3ecf38e8ef4db9c1767d0b3376cf25f0d76c40b00c511c4926beb9648c5d91 SHA512 614b428fb42838fe85b90f37bb24bcffee597e90748b2da88b94098e8f96238a244fb00ddd7913ba414cb50817c0fa36438bfe7d05344a4d771e9d622594982a
diff --git a/dev-ruby/websocket-driver/files/websocket-driver-0.7.5-ruby32.patch b/dev-ruby/websocket-driver/files/websocket-driver-0.7.5-ruby32.patch
new file mode 100644
index 000000000000..e4f58e495cfd
--- /dev/null
+++ b/dev-ruby/websocket-driver/files/websocket-driver-0.7.5-ruby32.patch
@@ -0,0 +1,125 @@
+https://github.com/faye/websocket-driver-ruby/commit/3a2931751c6893e312ee24d9c6392bd096a798fd
+
+From 3a2931751c6893e312ee24d9c6392bd096a798fd Mon Sep 17 00:00:00 2001
+From: James Coglan <jcoglan@gmail.com>
+Date: Sat, 10 Sep 2022 15:37:55 +0100
+Subject: [PATCH] Fix handling of default ports on Ruby 3.1
+
+--- a/lib/websocket/driver.rb
++++ b/lib/websocket/driver.rb
+@@ -42,6 +42,7 @@ def Mask.mask(payload, mask)
+ end
+
+ MAX_LENGTH = 0x3ffffff
++ PORTS = { 'ws' => 80, 'wss' => 443 }
+ STATES = [:connecting, :open, :closing, :closed]
+
+ ConnectEvent = Struct.new(nil)
+@@ -209,6 +210,14 @@ def self.encode(data, encoding = nil)
+ data.force_encoding(encoding)
+ end
+
++ def self.host_header(uri)
++ host = uri.host
++ if uri.port and uri.port != PORTS[uri.scheme]
++ host += ":#{uri.port}"
++ end
++ host
++ end
++
+ def self.validate_options(options, valid_keys)
+ options.keys.each do |key|
+ unless valid_keys.include?(key)
+--- a/lib/websocket/driver/client.rb
++++ b/lib/websocket/driver/client.rb
+@@ -23,11 +23,10 @@ def initialize(socket, options = {})
+ raise URIError, "#{ socket.url } is not a valid WebSocket URL"
+ end
+
+- host = uri.host + (uri.port ? ":#{ uri.port }" : '')
+ path = (uri.path == '') ? '/' : uri.path
+ @pathname = path + (uri.query ? '?' + uri.query : '')
+
+- @headers['Host'] = host
++ @headers['Host'] = Driver.host_header(uri)
+ @headers['Upgrade'] = 'websocket'
+ @headers['Connection'] = 'Upgrade'
+ @headers['Sec-WebSocket-Key'] = @key
+--- a/lib/websocket/driver/proxy.rb
++++ b/lib/websocket/driver/proxy.rb
+@@ -4,8 +4,6 @@ class Driver
+ class Proxy
+ include EventEmitter
+
+- PORTS = { 'ws' => 80, 'wss' => 443 }
+-
+ attr_reader :status, :headers
+
+ def initialize(client, origin, options)
+@@ -20,7 +18,7 @@ def initialize(client, origin, options)
+ @state = 0
+
+ @headers = Headers.new
+- @headers['Host'] = @origin.host + (@origin.port ? ":#{ @origin.port }" : '')
++ @headers['Host'] = Driver.host_header(@origin)
+ @headers['Connection'] = 'keep-alive'
+ @headers['Proxy-Connection'] = 'keep-alive'
+
+--- a/spec/websocket/driver/client_spec.rb
++++ b/spec/websocket/driver/client_spec.rb
+@@ -121,6 +121,54 @@
+ end
+ end
+
++ describe "with an explicit port" do
++ let(:url) { "ws://www.example.com:3000/socket" }
++
++ it "includes the port in the Host header" do
++ expect(socket).to receive(:write).with(
++ "GET /socket HTTP/1.1\r\n" +
++ "Host: www.example.com:3000\r\n" +
++ "Upgrade: websocket\r\n" +
++ "Connection: Upgrade\r\n" +
++ "Sec-WebSocket-Key: 2vBVWg4Qyk3ZoM/5d3QD9Q==\r\n" +
++ "Sec-WebSocket-Version: 13\r\n" +
++ "\r\n")
++ driver.start
++ end
++ end
++
++ describe "with a wss: URL" do
++ let(:url) { "wss://www.example.com/socket" }
++
++ it "does not include the port in the Host header" do
++ expect(socket).to receive(:write).with(
++ "GET /socket HTTP/1.1\r\n" +
++ "Host: www.example.com\r\n" +
++ "Upgrade: websocket\r\n" +
++ "Connection: Upgrade\r\n" +
++ "Sec-WebSocket-Key: 2vBVWg4Qyk3ZoM/5d3QD9Q==\r\n" +
++ "Sec-WebSocket-Version: 13\r\n" +
++ "\r\n")
++ driver.start
++ end
++ end
++
++ describe "with a wss: URL and explicit port" do
++ let(:url) { "wss://www.example.com:3000/socket" }
++
++ it "includes the port in the Host header" do
++ expect(socket).to receive(:write).with(
++ "GET /socket HTTP/1.1\r\n" +
++ "Host: www.example.com:3000\r\n" +
++ "Upgrade: websocket\r\n" +
++ "Connection: Upgrade\r\n" +
++ "Sec-WebSocket-Key: 2vBVWg4Qyk3ZoM/5d3QD9Q==\r\n" +
++ "Sec-WebSocket-Version: 13\r\n" +
++ "\r\n")
++ driver.start
++ end
++ end
++
+ describe "with custom headers" do
+ before do
+ driver.set_header "User-Agent", "Chrome"
+
diff --git a/dev-ruby/websocket-driver/websocket-driver-0.7.5-r1.ebuild b/dev-ruby/websocket-driver/websocket-driver-0.7.5-r1.ebuild
new file mode 100644
index 000000000000..a9cd58bc570f
--- /dev/null
+++ b/dev-ruby/websocket-driver/websocket-driver-0.7.5-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+RUBY_FAKEGEM_EXTENSIONS=(ext/websocket-driver/extconf.rb)
+
+inherit ruby-fakegem
+
+DESCRIPTION="A complete implementation of the WebSocket protocols"
+HOMEPAGE="https://github.com/faye/websocket-driver-ruby"
+SRC_URI="https://github.com/faye/websocket-driver-ruby/archive/${PV}.tar.gz -> ${P}.tar.gz"
+RUBY_S="${PN}-ruby-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0.7"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE=""
+
+ruby_add_rdepend ">=dev-ruby/websocket-extensions-0.1.0"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-ruby32.patch
+)
+
+all_ruby_prepare() {
+ sed -i -e '/bundler/ s:^:#:' spec/spec_helper.rb || die
+}