Hello community, here is the log from the commit of package rubygem-httpclient for openSUSE:Factory checked in at 2016-03-18 21:39:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-httpclient (Old) and /work/SRC/openSUSE:Factory/.rubygem-httpclient.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-httpclient" Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-httpclient/rubygem-httpclient.changes 2015-12-14 10:13:59.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.rubygem-httpclient.new/rubygem-httpclient.changes 2016-03-18 21:39:07.000000000 +0100 @@ -1,0 +2,6 @@ +Thu Jan 21 05:37:01 UTC 2016 - co...@suse.com + +- updated to version 2.7.1 + no changelog found + +------------------------------------------------------------------- Old: ---- httpclient-2.7.0.1.gem New: ---- httpclient-2.7.1.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-httpclient.spec ++++++ --- /var/tmp/diff_new_pack.FPLjzs/_old 2016-03-18 21:39:08.000000000 +0100 +++ /var/tmp/diff_new_pack.FPLjzs/_new 2016-03-18 21:39:08.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package rubygem-httpclient # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ # Name: rubygem-httpclient -Version: 2.7.0.1 +Version: 2.7.1 Release: 0 %define mod_name httpclient %define mod_full_name %{mod_name}-%{version} ++++++ httpclient-2.7.0.1.gem -> httpclient-2.7.1.gem ++++++ Files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/cookie.rb new/lib/httpclient/cookie.rb --- old/lib/httpclient/cookie.rb 2015-11-07 16:00:43.000000000 +0100 +++ new/lib/httpclient/cookie.rb 2016-01-01 15:52:04.000000000 +0100 @@ -3,9 +3,12 @@ begin # for catching LoadError and load webagent-cookie instead require 'http-cookie' +require 'httpclient/util' class HTTPClient class CookieManager + include HTTPClient::Util + attr_reader :format, :jar attr_accessor :cookies_file @@ -68,7 +71,7 @@ end def find(uri) - warn('CookieManager#find is deprecated and will be removed in near future. Use HTTP::Cookie.cookie_value(CookieManager#cookies) instead') + warning('CookieManager#find is deprecated and will be removed in near future. Use HTTP::Cookie.cookie_value(CookieManager#cookies) instead') if cookie = cookies(uri) HTTP::Cookie.cookie_value(cookie) end @@ -174,8 +177,7 @@ CookieManager = ::HTTPClient::CookieManager class Cookie < HTTP::Cookie - @@domain_warned = false - @@warned = false + include HTTPClient::Util def url deprecated('url', 'origin') @@ -195,7 +197,7 @@ alias original_domain domain def domain - domain_warning + warning('Cookie#domain returns dot-less domain name now. Use Cookie#dot_domain if you need "." at the beginning.') self.original_domain end @@ -206,18 +208,8 @@ private - def domain_warning - unless @@domain_warned - warn('Cookie#domain returns dot-less domain name now. Use Cookie#dot_domain if you need "." at the beginning.') - @@domain_warned = true - end - end - def deprecated(old, new) - unless @@warned - warn("WebAgent::Cookie is deprecated and will be replaced with HTTP::Cookie in the near future. Please use Cookie##{new} instead of Cookie##{old} for the replacement.") - @@warned = true - end + warning("WebAgent::Cookie is deprecated and will be replaced with HTTP::Cookie in the near future. Please use Cookie##{new} instead of Cookie##{old} for the replacement.") end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/http.rb new/lib/httpclient/http.rb --- old/lib/httpclient/http.rb 2015-11-07 16:00:43.000000000 +0100 +++ new/lib/httpclient/http.rb 2016-01-01 15:52:04.000000000 +0100 @@ -12,6 +12,7 @@ if defined?(Encoding::ASCII_8BIT) require 'open-uri' # for encoding end +require 'httpclient/util' # A namespace module for HTTP Message definitions used by HTTPClient. @@ -95,6 +96,7 @@ # p res.header['last-modified'].first # class Message + include HTTPClient::Util CRLF = "\r\n" @@ -980,12 +982,12 @@ VERSION_WARNING = 'Message#version (Float) is deprecated. Use Message#http_version (String) instead.' def version - warn(VERSION_WARNING) + warning(VERSION_WARNING) @http_header.http_version.to_f end def version=(version) - warn(VERSION_WARNING) + warning(VERSION_WARNING) @http_header.http_version = version end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/jruby_ssl_socket.rb new/lib/httpclient/jruby_ssl_socket.rb --- old/lib/httpclient/jruby_ssl_socket.rb 2015-11-07 16:00:43.000000000 +0100 +++ new/lib/httpclient/jruby_ssl_socket.rb 2016-01-01 15:52:04.000000000 +0100 @@ -315,7 +315,7 @@ def add(file_or_dir) return if file_or_dir == :default if File.directory?(file_or_dir) - warn('directory not yet supported') + warn("#{file_or_dir}: directory not yet supported") else pem = nil File.read(file_or_dir).each_line do |line| @@ -447,7 +447,7 @@ if config.ssl_version == :auto ssl_version = DEFAULT_SSL_PROTOCOL else - ssl_version = config.to_s.gsub(/_/, '.') + ssl_version = config.ssl_version.to_s.gsub(/_/, '.') end unless config.cert_store_crl_items.empty? raise NotImplementedError.new('Manual CRL configuration is not yet supported') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/session.rb new/lib/httpclient/session.rb --- old/lib/httpclient/session.rb 2015-11-07 16:00:43.000000000 +0100 +++ new/lib/httpclient/session.rb 2016-01-01 15:52:04.000000000 +0100 @@ -14,6 +14,7 @@ require 'socket' require 'thread' +require 'timeout' require 'stringio' require 'zlib' @@ -497,7 +498,7 @@ # Use absolute URI (not absolute path) iif via proxy AND not HTTPS. req.header.request_absolute_uri = !@proxy.nil? && !https?(@dest) begin - timeout(@send_timeout, SendTimeoutError) do + ::Timeout.timeout(@send_timeout, SendTimeoutError) do set_header(req) req.dump(@socket) # flush the IO stream as IO::sync mode is false @@ -731,7 +732,7 @@ site = @proxy || @dest retry_number = 0 begin - timeout(@connect_timeout, ConnectTimeoutError) do + ::Timeout.timeout(@connect_timeout, ConnectTimeoutError) do if str = @test_loopback_http_response.shift @socket = create_loopback_socket(site.host, site.port, str) elsif https?(@dest) @@ -784,7 +785,7 @@ StatusParseRegexp = %r(\AHTTP/(\d+\.\d+)\s+(\d\d\d)\s*([^\r\n]+)?\r?\n\z) def parse_header(socket) - timeout(@receive_timeout, ReceiveTimeoutError) do + ::Timeout.timeout(@receive_timeout, ReceiveTimeoutError) do initial_line = nil begin begin @@ -864,7 +865,7 @@ buf = empty_bin_str maxbytes = @read_block_size maxbytes = @content_length if maxbytes > @content_length && @content_length > 0 - timeout(@receive_timeout, ReceiveTimeoutError) do + ::Timeout.timeout(@receive_timeout, ReceiveTimeoutError) do begin @socket.readpartial(maxbytes, buf) rescue EOFError @@ -897,7 +898,7 @@ @socket.gets(RS) return end - timeout(@receive_timeout, ReceiveTimeoutError) do + ::Timeout.timeout(@receive_timeout, ReceiveTimeoutError) do @socket.read(@chunk_length, buf) @socket.read(2) end @@ -914,7 +915,7 @@ end while true buf = empty_bin_str - timeout(@receive_timeout, ReceiveTimeoutError) do + ::Timeout.timeout(@receive_timeout, ReceiveTimeoutError) do begin @socket.readpartial(@read_block_size, buf) rescue EOFError diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/ssl_config.rb new/lib/httpclient/ssl_config.rb --- old/lib/httpclient/ssl_config.rb 2015-11-07 16:00:43.000000000 +0100 +++ new/lib/httpclient/ssl_config.rb 2016-01-01 15:52:04.000000000 +0100 @@ -35,6 +35,7 @@ # You may want to change trust anchor by yourself. Call clear_cert_store # then add_trust_ca for that purpose. class SSLConfig + include HTTPClient::Util include OpenSSL if SSLEnabled CIPHERS_DEFAULT = "ALL:!aNULL:!eNULL:!SSLv2" # OpenSSL >1.0.0 default @@ -446,11 +447,14 @@ (ver.start_with?('OpenSSL ') && ver >= 'OpenSSL 1.0.2d') || defined?(JRuby) filename = 'cacert.pem' else - warn("RSA 1024 bit CA certificates are loaded due to old openssl compatibility") + warning("RSA 1024 bit CA certificates are loaded due to old openssl compatibility") filename = 'cacert1024.pem' end file = File.join(File.dirname(__FILE__), filename) - add_trust_ca_to_store(cert_store, file) + unless defined?(JRuby) + # JRuby uses @cert_store_items + add_trust_ca_to_store(cert_store, file) + end @cert_store_items << file end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/util.rb new/lib/httpclient/util.rb --- old/lib/httpclient/util.rb 2015-11-07 16:00:43.000000000 +0100 +++ new/lib/httpclient/util.rb 2016-01-01 15:52:04.000000000 +0100 @@ -198,6 +198,16 @@ end module_function :try_require + # show one warning message only once by caching message + # + # it cached all messages in memory so be careful not to show many kinds of warning message. + @@__warned = {} + def warning(message) + return if @@__warned.key?(message) + warn(message) + @@__warned[message] = true + end + # Checks if the given URI is https. def https?(uri) uri.scheme && uri.scheme.downcase == 'https' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/version.rb new/lib/httpclient/version.rb --- old/lib/httpclient/version.rb 2015-11-07 16:00:43.000000000 +0100 +++ new/lib/httpclient/version.rb 2016-01-01 15:52:04.000000000 +0100 @@ -1,3 +1,3 @@ class HTTPClient - VERSION = '2.7.0.1' + VERSION = '2.7.1' end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient/webagent-cookie.rb new/lib/httpclient/webagent-cookie.rb --- old/lib/httpclient/webagent-cookie.rb 2015-11-07 16:00:43.000000000 +0100 +++ new/lib/httpclient/webagent-cookie.rb 2016-01-01 15:52:04.000000000 +0100 @@ -456,4 +456,4 @@ class HTTPClient CookieManager = WebAgent::CookieManager -end +end unless defined?(HTTPClient::CookieManager) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/httpclient.rb new/lib/httpclient.rb --- old/lib/httpclient.rb 2015-11-07 16:00:43.000000000 +0100 +++ new/lib/httpclient.rb 2016-01-01 15:52:04.000000000 +0100 @@ -393,10 +393,25 @@ # # After you set :base_url, all resources you pass to get, post and other # methods are recognized to be prefixed with base_url. Say base_url is - # 'https://api.example.com/v1, get('/users') is the same as + # 'https://api.example.com/v1/, get('users') is the same as # get('https://api.example.com/v1/users') internally. You can also pass # full URL from 'http://' even after setting base_url. # + # The expected base_url and path behavior is the following. Please take + # care of '/' in base_url and path. + # + # The last '/' is important for base_url: + # 1. http://foo/bar/baz/ + path -> http://foo/bar/baz/path + # 2. http://foo/bar/baz + path -> http://foo/bar/path + # Relative path handling: + # 3. http://foo/bar/baz/ + ../path -> http://foo/bar/path + # 4. http://foo/bar/baz + ../path -> http://foo/path + # 5. http://foo/bar/baz/ + ./path -> http://foo/bar/baz/path + # 6. http://foo/bar/baz + ./path -> http://foo/bar/path + # The leading '/' of path means absolute path: + # 7. http://foo/bar/baz/ + /path -> http://foo/path + # 8. http://foo/bar/baz + /path -> http://foo/path + # # :default_header is for providing default headers Hash that all HTTP # requests should have, such as custom 'Authorization' header in API. # You can override :default_header with :header Hash parameter in HTTP @@ -703,9 +718,9 @@ def default_redirect_uri_callback(uri, res) newuri = urify(res.header['location'][0]) if !http?(newuri) && !https?(newuri) - newuri = uri + newuri - warn("could be a relative URI in location header which is not recommended") + warn("#{newuri}: a relative URI in location header which is not recommended") warn("'The field value consists of a single absolute URI' in HTTP spec") + newuri = uri + newuri end if https?(uri) && !https?(newuri) raise BadResponseError.new("redirecting to non-https resource") @@ -1133,7 +1148,7 @@ boundary = nil if body _, content_type = header.find { |key, value| - key.downcase == 'content-type' + key.to_s.downcase == 'content-type' } if content_type if /\Amultipart/ =~ content_type @@ -1142,7 +1157,7 @@ else boundary = create_boundary content_type = "#{content_type}; boundary=#{boundary}" - header = override_header(header, 'Content-Type', content_type) + header = override_header(header, 'content-type', content_type) end end else @@ -1180,7 +1195,7 @@ def override_header(header, key, value) result = [] header.each do |k, v| - if k.downcase == key.downcase + if k.to_s.downcase == key result << [key, value] else result << [k, v] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2015-11-07 16:00:43.000000000 +0100 +++ new/metadata 2016-01-01 15:52:04.000000000 +0100 @@ -1,14 +1,14 @@ --- !ruby/object:Gem::Specification name: httpclient version: !ruby/object:Gem::Version - version: 2.7.0.1 + version: 2.7.1 platform: ruby authors: - Hiroshi Nakamura autorequire: bindir: bin cert_chain: [] -date: 2015-11-07 00:00:00.000000000 Z +date: 2016-01-01 00:00:00.000000000 Z dependencies: [] description: email: n...@ruby-lang.org @@ -103,7 +103,7 @@ version: '0' requirements: [] rubyforge_project: -rubygems_version: 2.4.5.1 +rubygems_version: 2.5.1 signing_key: specification_version: 4 summary: gives something like the functionality of libwww-perl (LWP) in Ruby diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/test_auth.rb new/test/test_auth.rb --- old/test/test_auth.rb 2015-11-07 16:00:43.000000000 +0100 +++ new/test/test_auth.rb 2016-01-01 15:52:04.000000000 +0100 @@ -465,6 +465,7 @@ # TODO: WEBrick server returns ECONNRESET/EPIPE before sending Unauthorized response to client? raise if retry_times > 5 retry_times += 1 + sleep 1 retry end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/test_httpclient.rb new/test/test_httpclient.rb --- old/test/test_httpclient.rb 2015-11-07 16:00:43.000000000 +0100 +++ new/test/test_httpclient.rb 2016-01-01 15:52:04.000000000 +0100 @@ -115,6 +115,14 @@ assert_equal("Accept: text/html", lines[4]) end + def test_header_symbol + str = "" + @client.debug_dev = str + @client.post(serverurl + 'servlet', :header => {:'Content-Type' => 'application/json'}, :body => 'hello') + lines = str.split(/(?:\r?\n)+/).grep(/^Content-Type/) + assert_equal(2, lines.size) # 1 for both request and response + end + def test_host_given str = "" @client.debug_dev = str @@ -138,7 +146,7 @@ def test_redirect_returns_not_modified assert_nothing_raised do - timeout(2) do + ::Timeout.timeout(2) do @client.get(serverurl + 'status', {:status => 306}, {:follow_redirect => true}) end end @@ -531,7 +539,7 @@ def test_no_content assert_nothing_raised do - timeout(2) do + ::Timeout.timeout(2) do @client.get(serverurl + 'status', :status => 101) @client.get(serverurl + 'status', :status => 204) @client.get(serverurl + 'status', :status => 304) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/test_ssl.rb new/test/test_ssl.rb --- old/test/test_ssl.rb 2015-11-07 16:00:43.000000000 +0100 +++ new/test/test_ssl.rb 2016-01-01 15:52:04.000000000 +0100 @@ -11,7 +11,6 @@ super @serverpid = @client = nil @verify_callback_called = false - @verbose, $VERBOSE = $VERBOSE, nil setup_server setup_client @url = "https://localhost:#{serverport}/hello" @@ -19,7 +18,6 @@ def teardown super - $VERBOSE = @verbose end def path(filename)