./www/ruby-rack, Modular Ruby webserver interface

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 2.2.2, Package name: ruby26-rack-2.2.2, Maintainer: pkgsrc-users

Rack provides a minimal, modular and adaptable interface for developing
web applications in Ruby. By wrapping HTTP requests and responses in
the simplest way possible, it unifies and distills the API for web
servers, web frameworks, and software in between (the so-called
middleware) into a single method call.

Required to run:

Required to build:

Master sites:

SHA1: ee6605164c9ee810ddf29f3bb23dc1bbc67b4de9
RMD160: 4f096b37bcca1144f9d4840f41b2b3d05867d37d
Filesize: 147.5 KB

Version history: (Expand)

CVS history: (Expand)

   2020-03-20 17:19:33 by Takahiro Kambe | Files touched by this commit (3) | Package updated
Log message:
www/ruby-rack: update to 2.2.2

Update ruby-rack to 2.2.2.

## [2.2.2] - 2020-02-11

### Fixed

- Fix incorrect `Rack::Request#host` value. \ 
([#1591](https://github.com/rack/rack/pull/1591), \ 
- Revert `Rack::Handler::Thin` implementation. \ 
([#1583](https://github.com/rack/rack/pull/1583), \ 
- Double assignment is still needed to prevent an "unused variable" \ 
warning. ([#1589](https://github.com/rack/rack/pull/1589), \ 
- Fix to handle same_site option for session pool. \ 
([#1587](https://github.com/rack/rack/pull/1587), \ 

## [2.2.1] - 2020-02-09

### Fixed

- Rework `Rack::Request#ip` to handle empty `forwarded_for`. \ 
([#1577](https://github.com/rack/rack/pull/1577), \ 

## [2.2.0] - 2020-02-08

### SPEC Changes

- `rack.session` request environment entry must respond to `to_hash` and return \ 
unfrozen Hash. ([@jeremyevans](https://github.com/jeremyevans))
- Request environment cannot be frozen. \ 
- CGI values in the request environment with non-ASCII characters must use \ 
ASCII-8BIT encoding. ([@jeremyevans](https://github.com/jeremyevans))
- Improve SPEC/lint relating to SERVER_NAME, SERVER_PORT and HTTP_HOST. \ 
([#1561](https://github.com/rack/rack/pull/1561), \ 

### Added

- `rackup` supports multiple `-r` options and will require all arguments. \ 
- `Server` supports an array of paths to require for the `:require` option. \ 
- `Files` supports multipart range requests. \ 
- `Multipart::UploadedFile` supports an IO-like object instead of using the \ 
filesystem, using `:filename` and `:io` options. \ 
- `Multipart::UploadedFile` supports keyword arguments `:path`, `:content_type`, \ 
and `:binary` in addition to positional arguments. \ 
- `Static` supports a `:cascade` option for calling the app if there is no \ 
matching file. ([@jeremyevans](https://github.com/jeremyevans))
- `Session::Abstract::SessionHash#dig`. \ 
- `Response.[]` and `MockResponse.[]` for creating instances using status, \ 
headers, and body. ([@ioquatix](https://github.com/ioquatix))
- Convenient cache and content type methods for `Rack::Response`. \ 
([#1555](https://github.com/rack/rack/pull/1555), \ 

### Changed

- `Request#params` no longer rescues EOFError. \ 
- `Directory` uses a streaming approach, significantly improving time to first \ 
byte for large directories. ([@jeremyevans](https://github.com/jeremyevans))
- `Directory` no longer includes a Parent directory link in the root directory \ 
index. ([@jeremyevans](https://github.com/jeremyevans))
- `QueryParser#parse_nested_query` uses original backtrace when reraising \ 
exception with new class. ([@jeremyevans](https://github.com/jeremyevans))
- `ConditionalGet` follows RFC 7232 precedence if both If-None-Match and \ 
If-Modified-Since headers are provided. \ 
- `.ru` files supports the `frozen-string-literal` magic comment. \ 
- Rely on autoload to load constants instead of requiring internal files, make \ 
sure to require 'rack' and not just 'rack/...'. \ 
- `Etag` will continue sending ETag even if the response should not be cached. \ 
- `Request#host_with_port` no longer includes a colon for a missing or empty \ 
port. ([@AlexWayfer](https://github.com/AlexWayfer))
- All handlers uses keywords arguments instead of an options hash argument. \ 
- `Files` handling of range requests no longer return a body that supports \ 
`to_path`, to ensure range requests are handled correctly. \ 
- `Multipart::Generator` only includes `Content-Length` for files with paths, \ 
and `Content-Disposition` `filename` if the `UploadedFile` instance has one. \ 
- `Request#ssl?` is true for the `wss` scheme (secure websockets). \ 
- `Rack::HeaderHash` is memoized by default. \ 
([#1549](https://github.com/rack/rack/pull/1549), \ 
- `Rack::Directory` allow directory traversal inside root directory. \ 
([#1417](https://github.com/rack/rack/pull/1417), \ 
- Sort encodings by server preference. \ 
([#1184](https://github.com/rack/rack/pull/1184), \ 
[@ioquatix](https://github.com/ioquatix), \ 
- Rework host/hostname/authority implementation in `Rack::Request`. `#host` and \ 
`#host_with_port` have been changed to correctly return IPv6 addresses formatted \ 
with square brackets, as defined by \ 
[RFC3986](https://tools.ietf.org/html/rfc3986#section-3.2.2). \ 
([#1561](https://github.com/rack/rack/pull/1561), \ 
- `Rack::Builder` parsing options on first `#\` line is deprecated. \ 
([#1574](https://github.com/rack/rack/pull/1574), \ 

### Removed

- `Directory#path` as it was not used and always returned nil. \ 
- `BodyProxy#each` as it was only needed to work around a bug in Ruby <1.9.3. \ 
- `URLMap::INFINITY` and `URLMap::NEGATIVE_INFINITY`, in favor of \ 
`Float::INFINITY`. ([@ch1c0t](https://github.com/ch1c0t))
- Deprecation of `Rack::File`. It will be deprecated again in rack 2.2 or 3.0. \ 
- Support for Ruby 2.2 as it is well past EOL. \ 
- Remove `Rack::Files#response_body` as the implementation was broken. \ 
([#1153](https://github.com/rack/rack/pull/1153), \ 
- Remove `SERVER_ADDR` which was never part of the original SPEC. \ 
([#1573](https://github.com/rack/rack/pull/1573), \ 

### Fixed

- `Directory` correctly handles root paths containing glob metacharacters. \ 
- `Cascade` uses a new response object for each call if initialized with no \ 
apps. ([@jeremyevans](https://github.com/jeremyevans))
- `BodyProxy` correctly delegates keyword arguments to the body object on Ruby \ 
2.7+. ([@jeremyevans](https://github.com/jeremyevans))
- `BodyProxy#method` correctly handles methods delegated to the body object. \ 
- `Request#host` and `Request#host_with_port` handle IPv6 addresses correctly. \ 
- `Lint` checks when response hijacking that `rack.hijack` is called with a \ 
valid object. ([@jeremyevans](https://github.com/jeremyevans))
- `Response#write` correctly updates `Content-Length` if initialized with a \ 
body. ([@jeremyevans](https://github.com/jeremyevans))
- `CommonLogger` includes `SCRIPT_NAME` when logging. \ 
- `Utils.parse_nested_query` correctly handles empty queries, using an empty \ 
instance of the params class instead of a hash. \ 
- `Directory` correctly escapes paths in links. ([@yous](https://github.com/yous))
- `Request#delete_cookie` and related `Utils` methods handle `:domain` and \ 
`:path` options in same call. ([@jeremyevans](https://github.com/jeremyevans))
- `Request#delete_cookie` and related `Utils` methods do an exact match on \ 
`:domain` and `:path` options. ([@jeremyevans](https://github.com/jeremyevans))
- `Static` no longer adds headers when a gzipped file request has a 304 \ 
response. ([@chooh](https://github.com/chooh))
- `ContentLength` sets `Content-Length` response header even for bodies not \ 
responding to `to_ary`. ([@jeremyevans](https://github.com/jeremyevans))
- Thin handler supports options passed directly to \ 
`Thin::Controllers::Controller`. \ 
- WEBrick handler no longer ignores `:BindAddress` option. \ 
- `ShowExceptions` handles invalid POST data. \ 
- Basic authentication requires a password, even if the password is empty. \ 
- `Lint` checks response is array with 3 elements, per SPEC. \ 
- Support for using `:SSLEnable` option when using WEBrick handler. (Gregor Melhorn)
- Close response body after buffering it when buffering. \ 
- Only accept `;` as delimiter when parsing cookies. \ 
- `Utils::HeaderHash#clear` clears the name mapping as well. \ 
- Support for passing `nil` `Rack::Files.new`, which notably fixes Rails' \ 
current `ActiveStorage::FileServer` implementation. \ 

### Documentation

- CHANGELOG updates. ([@aupajo](https://github.com/aupajo))
- Added [CONTRIBUTING](CONTRIBUTING.md). ([@dblock](https://github.com/dblock))

## [2.1.2] - 2020-01-27

- Fix multipart parser for some files to prevent denial of service \ 
- Fix `Rack::Builder#use` with keyword arguments \ 
- Skip deflating in Rack::Deflater if Content-Length is 0 \ 
- Remove `SessionHash#transform_keys`, no longer needed \ 
- Add to_hash to wrap Hash and Session classes \ 
- Handle case where session id key is requested but missing \ 

## [2.1.1] - 2020-01-12

- Remove `Rack::Chunked` from `Rack::Server` default middleware. \ 
([#1475](https://github.com/rack/rack/pull/1475), \ 

## 2.1.0

_Note: There are many unreleased changes in Rack (`master` is around 300 commits \ 
ahead of `2-0-stable`), and below is not an exhaustive list. If you would like \ 
to help out and document some of the unreleased changes, PRs are welcome._

### Added

- Add support for `SameSite=None` cookie value. \ 
- Add trailer headers. ([@eileencodes](https://github.com/eileencodes))
- Add MIME Types for video streaming. ([@styd](https://github.com/styd))
- Add MIME Type for WASM. ([@buildrtech](https://github.com/buildrtech))
- Add `Early Hints(103)` to status codes. ([@egtra](https://github.com/egtra))
- Add `Too Early(425)` to status codes. ([@y-yagi]((https://github.com/y-yagi)))
- Add `Bandwidth Limit Exceeded(509)` to status codes. \ 
- Add method for custom `ip_filter`. ([@svcastaneda](https://github.com/svcastaneda))
- Add boot-time profiling capabilities to `rackup`. \ 
- Add multi mapping support for `X-Accel-Mappings` header. \ 
- Add `sync: false` option to `Rack::Deflater`. (Eric Wong)
- Add `Builder#freeze_app` to freeze application and all middleware instances. \ 
- Add API to extract cookies from `Rack::MockResponse`. \ 

### Changed

- Don't propagate nil values from middleware. \ 
- Lazily initialize the response body and only buffer it if required. \ 
- Fix deflater zlib buffer errors on empty body part. \ 
- Set `X-Accel-Redirect` to percent-encoded path. \ 
- Remove unnecessary buffer growing when parsing multipart. \ 
- Expand the root path in `Rack::Static` upon initialization. \ 
- Make `ShowExceptions` work with binary data. ([@axyjo](https://github.com/axyjo))
- Use buffer string when parsing multipart requests. \ 
- Support optional UTF-8 Byte Order Mark (BOM) in config.ru. \ 
- Handle `X-Forwarded-For` with optional port. \ 
- Use `Time#httpdate` format for Expires, as proposed by RFC 7231. \ 
- Make `Utils.status_code` raise an error when the status symbol is invalid \ 
instead of `500`. ([@adambutler](https://github.com/adambutler))
- Rename `Request::SCHEME_WHITELIST` to `Request::ALLOWED_SCHEMES`.
- Make `Multipart::Parser.get_filename` accept files with `+` in their name. \ 
- Add Falcon to the default handler fallbacks. \ 
- Update codebase to avoid string mutations in preparation for \ 
`frozen_string_literals`. ([@pat](https://github.com/pat))
- Change `MockRequest#env_for` to rely on the input optionally responding to \ 
`#size` instead of `#length`. ([@janko](https://github.com/janko))
- Rename `Rack::File` -> `Rack::Files` and add deprecation notice. \ 

### Removed

- Remove `to_ary` from Response ([@tenderlove](https://github.com/tenderlove))
- Deprecate `Rack::Session::Memcache` in favor of `Rack::Session::Dalli` from \ 
dalli gem ([@fatkodima](https://github.com/fatkodima))

### Documentation

- Update broken example in `Session::Abstract::ID` documentation. \ 
- Add Padrino to the list of frameworks implmenting Rack. \ 
- Remove Mongrel from the suggested server options in the help output. \ 
- Replace `HISTORY.md` and `NEWS.md` with `CHANGELOG.md`. \ 
- Backfill `CHANGELOG.md` from 2.0.1 to 2.0.7 releases. \ 

## [2.0.8] - 2019-12-08

- [[CVE-2019-16782](https://nvd.nist.gov/vuln/detail/CVE-2019-16782)] Prevent \ 
timing attacks targeted at session ID lookup. BREAKING CHANGE: Session ID is now \ 
a SessionId instance instead of a String. \ 
([@tenderlove](https://github.com/tenderlove), \ 
   2020-01-19 00:36:14 by Roland Illig | Files touched by this commit (3046)
Log message:
all: migrate several HOMEPAGEs to https

pkglint --only "https instead of http" -r -F

With manual adjustments afterwards since pkglint 19.4.4 fixed a few
indentations in unrelated lines.

This mainly affects projects hosted at SourceForce, as well as
freedesktop.org, CTAN and GNU.
   2019-02-03 16:51:31 by Takahiro Kambe | Files touched by this commit (2) | Package updated
Log message:
www/ruby-rack: update to 2.0.6

* pkgsrc change: add "USE_LANGAUGES= # none" line.

Update to 2.0.6 which fixes security problems of CVE-2018-16470 and
   2017-09-19 18:36:07 by Takahiro Kambe | Files touched by this commit (11)
Log message:
cleanup: remove unnecessary RUBY_VERSIONS_ACCEPTED

Remove unnecessary RUBY_VERSIONS_ACCEPTED since ruby21 removed.
   2017-06-18 15:48:55 by Takahiro Kambe | Files touched by this commit (18)
Log message:
   2017-06-04 17:15:39 by Takahiro Kambe | Files touched by this commit (1)
Log message:
Do not add "20" to PKGPATH for now.
   2017-06-04 17:10:09 by Takahiro Kambe | Files touched by this commit (4) | Package updated
Log message:
Update ruby-rack to 2.0.3.

pkgsrc change: restrict to ruby22 and ruby23.

Changes are not well documented and commited changes are too many to
summarize here.
   2017-06-03 05:06:01 by Takahiro Kambe | Files touched by this commit (3) | Package updated
Log message:
Update ruby-rack to 1.6.8.


* prevent exception caused by a race condition on multi-threaded server
  like Puma.

* Handle NULL byte in multipart file name.


* Ensure env values are ASCII 8BIT encoded.


* Fix mistake in encoding change.