Hello community, here is the log from the commit of package rubygem-rack-1_6 for openSUSE:Factory checked in at 2017-06-08 15:01:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-rack-1_6 (Old) and /work/SRC/openSUSE:Factory/.rubygem-rack-1_6.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-rack-1_6" Thu Jun 8 15:01:19 2017 rev:3 rq:497695 version:1.6.8 Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-rack-1_6/rubygem-rack-1_6.changes 2016-11-14 20:14:00.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.rubygem-rack-1_6.new/rubygem-rack-1_6.changes 2017-06-08 15:01:20.293121418 +0200 @@ -1,0 +2,6 @@ +Tue May 23 10:12:19 UTC 2017 - co...@suse.com + +- updated to version 1.6.8 + see installed HISTORY.md + +------------------------------------------------------------------- Old: ---- rack-1.6.5.gem New: ---- rack-1.6.8.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-rack-1_6.spec ++++++ --- /var/tmp/diff_new_pack.4DtGZs/_old 2017-06-08 15:01:20.849042961 +0200 +++ /var/tmp/diff_new_pack.4DtGZs/_new 2017-06-08 15:01:20.857041832 +0200 @@ -1,7 +1,7 @@ # # spec file for package rubygem-rack-1_6 # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 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-rack-1_6 -Version: 1.6.5 +Version: 1.6.8 Release: 0 %define mod_name rack %define mod_full_name %{mod_name}-%{version} ++++++ rack-1.6.5.gem -> rack-1.6.8.gem ++++++ Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rack/mock.rb new/lib/rack/mock.rb --- old/lib/rack/mock.rb 2016-11-10 22:54:16.000000000 +0100 +++ new/lib/rack/mock.rb 2017-05-16 23:28:07.000000000 +0200 @@ -91,13 +91,7 @@ env = DEFAULT_ENV.dup - env[REQUEST_METHOD] = opts[:method] ? opts[:method].to_s.upcase : "GET" - env["SERVER_NAME"] = uri.host || "example.org" - env["SERVER_PORT"] = uri.port ? uri.port.to_s : "80" - env[QUERY_STRING] = uri.query.to_s - env[PATH_INFO] = (!uri.path || uri.path.empty?) ? "/" : uri.path - env["rack.url_scheme"] = uri.scheme || "http" - env["HTTPS"] = env["rack.url_scheme"] == "https" ? "on" : "off" + env_with_encoding(env, opts, uri) env[SCRIPT_NAME] = opts[:script_name] || "" @@ -148,6 +142,28 @@ env end + + if "<3".respond_to? :b + def self.env_with_encoding(env, opts, uri) + env[REQUEST_METHOD] = (opts[:method] ? opts[:method].to_s.upcase : "GET").b + env["SERVER_NAME"] = (uri.host || "example.org").b + env["SERVER_PORT"] = (uri.port ? uri.port.to_s : "80").b + env[QUERY_STRING] = (uri.query.to_s).b + env[PATH_INFO] = ((!uri.path || uri.path.empty?) ? "/" : uri.path).b + env["rack.url_scheme"] = (uri.scheme || "http").b + env["HTTPS"] = (env["rack.url_scheme"] == "https" ? "on" : "off").b + end + else + def self.env_with_encoding(env, opts, uri) + env[REQUEST_METHOD] = opts[:method] ? opts[:method].to_s.upcase : "GET" + env["SERVER_NAME"] = uri.host || "example.org" + env["SERVER_PORT"] = uri.port ? uri.port.to_s : "80" + env[QUERY_STRING] = uri.query.to_s + env[PATH_INFO] = (!uri.path || uri.path.empty?) ? "/" : uri.path + env["rack.url_scheme"] = uri.scheme || "http" + env["HTTPS"] = env["rack.url_scheme"] == "https" ? "on" : "off" + end + end end # Rack::MockResponse provides useful helpers for testing your apps. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rack/multipart/parser.rb new/lib/rack/multipart/parser.rb --- old/lib/rack/multipart/parser.rb 2016-11-10 22:54:16.000000000 +0100 +++ new/lib/rack/multipart/parser.rb 2017-05-16 23:28:07.000000000 +0200 @@ -6,7 +6,6 @@ class Parser BUFSIZE = 16384 - DUMMY = Struct.new(:parse).new def self.create(env) @@ -19,7 +18,7 @@ content_length = content_length.to_i if content_length tempfile = env['rack.multipart.tempfile_factory'] || - lambda { |filename, content_type| Tempfile.new(["RackMultipart", ::File.extname(filename)]) } + lambda { |filename, content_type| Tempfile.new(["RackMultipart", ::File.extname(filename.gsub("\0".freeze, '%00'.freeze))]) } bufsize = env['rack.multipart.buffer_size'] || BUFSIZE new($1, io, content_length, env, tempfile, bufsize) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rack/server.rb new/lib/rack/server.rb --- old/lib/rack/server.rb 2016-11-10 22:54:16.000000000 +0100 +++ new/lib/rack/server.rb 2017-05-16 23:28:07.000000000 +0200 @@ -1,4 +1,5 @@ require 'optparse' +require 'fileutils' module Rack @@ -352,7 +353,7 @@ def write_pid ::File.open(options[:pid], ::File::CREAT | ::File::EXCL | ::File::WRONLY ){ |f| f.write("#{Process.pid}") } - at_exit { ::File.delete(options[:pid]) if ::File.exist?(options[:pid]) } + at_exit { ::FileUtils.rm_f(options[:pid]) } rescue Errno::EEXIST check_pid! retry diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rack.rb new/lib/rack.rb --- old/lib/rack.rb 2016-11-10 22:54:15.000000000 +0100 +++ new/lib/rack.rb 2017-05-16 23:28:07.000000000 +0200 @@ -20,7 +20,7 @@ # Return the Rack release as a dotted string. def self.release - "1.6.5" + "1.6.8" end PATH_INFO = 'PATH_INFO'.freeze REQUEST_METHOD = 'REQUEST_METHOD'.freeze diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2016-11-10 22:54:15.000000000 +0100 +++ new/metadata 2017-05-16 23:28:06.000000000 +0200 @@ -1,38 +1,38 @@ --- !ruby/object:Gem::Specification name: rack version: !ruby/object:Gem::Version - version: 1.6.5 + version: 1.6.8 platform: ruby authors: - Christian Neukirchen -autorequire: +autorequire: bindir: bin cert_chain: [] -date: 2016-11-10 00:00:00.000000000 Z +date: 2017-05-16 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency - name: bacon requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' - type: :development + name: bacon prerelease: false + type: :development version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' - !ruby/object:Gem::Dependency - name: rake requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' - type: :development + name: rake prerelease: false + type: :development version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" @@ -165,6 +165,7 @@ - test/multipart/filename_and_no_name - test/multipart/filename_with_escaped_quotes - test/multipart/filename_with_escaped_quotes_and_modification_param +- test/multipart/filename_with_null_byte - test/multipart/filename_with_percent_escaped_quotes - test/multipart/filename_with_unescaped_percentages - test/multipart/filename_with_unescaped_percentages2 @@ -239,7 +240,7 @@ licenses: - MIT metadata: {} -post_install_message: +post_install_message: rdoc_options: [] require_paths: - lib @@ -255,8 +256,8 @@ version: '0' requirements: [] rubyforge_project: rack -rubygems_version: 2.5.1 -signing_key: +rubygems_version: 2.6.8 +signing_key: specification_version: 4 summary: a modular Ruby webserver interface test_files: @@ -309,4 +310,4 @@ - test/spec_utils.rb - test/spec_version.rb - test/spec_webrick.rb -has_rdoc: +has_rdoc: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rack.gemspec new/rack.gemspec --- old/rack.gemspec 2016-11-10 22:54:16.000000000 +0100 +++ new/rack.gemspec 2017-05-16 23:28:07.000000000 +0200 @@ -1,6 +1,6 @@ Gem::Specification.new do |s| s.name = "rack" - s.version = "1.6.5" + s.version = "1.6.8" s.platform = Gem::Platform::RUBY s.summary = "a modular Ruby webserver interface" s.license = "MIT" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/multipart/filename_with_null_byte new/test/multipart/filename_with_null_byte --- old/test/multipart/filename_with_null_byte 1970-01-01 01:00:00.000000000 +0100 +++ new/test/multipart/filename_with_null_byte 2017-05-16 23:28:07.000000000 +0200 @@ -0,0 +1,7 @@ +--AaB03x +Content-Type: image/jpeg +Content-Disposition: attachment; name="files"; filename="flowers.exe%00.jpg" +Content-Description: a complete map of the human genome + +contents +--AaB03x-- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/spec_mock.rb new/test/spec_mock.rb --- old/test/spec_mock.rb 2016-11-10 22:54:16.000000000 +0100 +++ new/test/spec_mock.rb 2017-05-16 23:28:07.000000000 +0200 @@ -211,6 +211,26 @@ Rack::MockRequest.new(capp).get('/', :lint => true) called.should.equal true end + + if "<3".respond_to? :b + should "defaults encoding to ASCII 8BIT" do + req = Rack::MockRequest.env_for("/foo") + + keys = [ + Rack::REQUEST_METHOD, + "SERVER_NAME", + "SERVER_PORT", + Rack::QUERY_STRING, + Rack::PATH_INFO, + "rack.url_scheme", + "HTTPS" + ] + + keys.each do |k| + req[k].encoding.should.equal Encoding::ASCII_8BIT + end + end + end end describe Rack::MockResponse do diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/spec_multipart.rb new/test/spec_multipart.rb --- old/test/spec_multipart.rb 2016-11-10 22:54:16.000000000 +0100 +++ new/test/spec_multipart.rb 2017-05-16 23:28:07.000000000 +0200 @@ -261,6 +261,16 @@ params["files"].size.should.equal 252 end + should "parse multipart form with a null byte in the filename" do + env = Rack::MockRequest.env_for '/', multipart_fixture(:filename_with_null_byte) + params = Rack::Multipart.parse_multipart(env) + if "<3".respond_to?(:encoding) + params["files"][:filename].should.equal "flowers.exe\u0000.jpg" + else + params["files"][:filename].should.equal "flowers.exe\000.jpg" + end + end + should "parse multipart/mixed" do env = Rack::MockRequest.env_for("/", multipart_fixture(:mixed_files)) params = Rack::Utils::Multipart.parse_multipart(env)