commit
28f1bfa9ec
@ -0,0 +1 @@
|
|||||||
|
SOURCES/tornado-6.3.3.tar.gz
|
@ -0,0 +1 @@
|
|||||||
|
4db49c4d5570e6fdc7ec845335bb341ebd5346a7 SOURCES/tornado-6.3.3.tar.gz
|
@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/tornado/test/runtests.py b/tornado/test/runtests.py
|
||||||
|
index 6075b1e..dc4fb89 100644
|
||||||
|
--- a/tornado/test/runtests.py
|
||||||
|
+++ b/tornado/test/runtests.py
|
||||||
|
@@ -123,7 +123,6 @@ def main():
|
||||||
|
# Tornado generally shouldn't use anything deprecated, but some of
|
||||||
|
# our dependencies do (last match wins).
|
||||||
|
warnings.filterwarnings("ignore", category=DeprecationWarning)
|
||||||
|
- warnings.filterwarnings("error", category=DeprecationWarning, module=r"tornado\..*")
|
||||||
|
warnings.filterwarnings("ignore", category=PendingDeprecationWarning)
|
||||||
|
warnings.filterwarnings(
|
||||||
|
"error", category=PendingDeprecationWarning, module=r"tornado\..*"
|
@ -0,0 +1,404 @@
|
|||||||
|
diff --git a/requirements.txt b/requirements.txt
|
||||||
|
index 349db21..e96c870 100644
|
||||||
|
--- a/requirements.txt
|
||||||
|
+++ b/requirements.txt
|
||||||
|
@@ -12,7 +12,7 @@ black==22.12.0
|
||||||
|
# via -r requirements.in
|
||||||
|
build==0.10.0
|
||||||
|
# via pip-tools
|
||||||
|
-cachetools==5.2.1
|
||||||
|
+cachetools==5.3.1
|
||||||
|
# via tox
|
||||||
|
certifi==2022.12.7
|
||||||
|
# via requests
|
||||||
|
@@ -32,7 +32,7 @@ docutils==0.17.1
|
||||||
|
# via
|
||||||
|
# sphinx
|
||||||
|
# sphinx-rtd-theme
|
||||||
|
-filelock==3.9.0
|
||||||
|
+filelock==3.12.0
|
||||||
|
# via
|
||||||
|
# tox
|
||||||
|
# virtualenv
|
||||||
|
@@ -54,7 +54,7 @@ mypy-extensions==0.4.3
|
||||||
|
# via
|
||||||
|
# black
|
||||||
|
# mypy
|
||||||
|
-packaging==23.0
|
||||||
|
+packaging==23.1
|
||||||
|
# via
|
||||||
|
# build
|
||||||
|
# pyproject-api
|
||||||
|
@@ -64,7 +64,7 @@ pathspec==0.10.3
|
||||||
|
# via black
|
||||||
|
pip-tools==6.12.1
|
||||||
|
# via -r requirements.in
|
||||||
|
-platformdirs==2.6.2
|
||||||
|
+platformdirs==3.5.1
|
||||||
|
# via
|
||||||
|
# black
|
||||||
|
# tox
|
||||||
|
@@ -77,7 +77,7 @@ pyflakes==3.0.1
|
||||||
|
# via flake8
|
||||||
|
pygments==2.14.0
|
||||||
|
# via sphinx
|
||||||
|
-pyproject-api==1.5.0
|
||||||
|
+pyproject-api==1.5.1
|
||||||
|
# via tox
|
||||||
|
pyproject-hooks==1.0.0
|
||||||
|
# via build
|
||||||
|
@@ -115,7 +115,7 @@ tomli==2.0.1
|
||||||
|
# mypy
|
||||||
|
# pyproject-api
|
||||||
|
# tox
|
||||||
|
-tox==4.3.5
|
||||||
|
+tox==4.6.0
|
||||||
|
# via -r requirements.in
|
||||||
|
types-pycurl==7.45.2.0
|
||||||
|
# via -r requirements.in
|
||||||
|
@@ -123,7 +123,7 @@ typing-extensions==4.4.0
|
||||||
|
# via mypy
|
||||||
|
urllib3==1.26.14
|
||||||
|
# via requests
|
||||||
|
-virtualenv==20.17.1
|
||||||
|
+virtualenv==20.23.0
|
||||||
|
# via tox
|
||||||
|
wheel==0.38.4
|
||||||
|
# via pip-tools
|
||||||
|
diff --git a/tornado/httputil.py b/tornado/httputil.py
|
||||||
|
index 9c341d4..b21d804 100644
|
||||||
|
--- a/tornado/httputil.py
|
||||||
|
+++ b/tornado/httputil.py
|
||||||
|
@@ -856,7 +856,8 @@ def format_timestamp(
|
||||||
|
|
||||||
|
The argument may be a numeric timestamp as returned by `time.time`,
|
||||||
|
a time tuple as returned by `time.gmtime`, or a `datetime.datetime`
|
||||||
|
- object.
|
||||||
|
+ object. Naive `datetime.datetime` objects are assumed to represent
|
||||||
|
+ UTC; aware objects are converted to UTC before formatting.
|
||||||
|
|
||||||
|
>>> format_timestamp(1359312200)
|
||||||
|
'Sun, 27 Jan 2013 18:43:20 GMT'
|
||||||
|
diff --git a/tornado/locale.py b/tornado/locale.py
|
||||||
|
index 55072af..c552670 100644
|
||||||
|
--- a/tornado/locale.py
|
||||||
|
+++ b/tornado/locale.py
|
||||||
|
@@ -333,7 +333,7 @@ class Locale(object):
|
||||||
|
shorter: bool = False,
|
||||||
|
full_format: bool = False,
|
||||||
|
) -> str:
|
||||||
|
- """Formats the given date (which should be GMT).
|
||||||
|
+ """Formats the given date.
|
||||||
|
|
||||||
|
By default, we return a relative time (e.g., "2 minutes ago"). You
|
||||||
|
can return an absolute date string with ``relative=False``.
|
||||||
|
@@ -343,10 +343,16 @@ class Locale(object):
|
||||||
|
|
||||||
|
This method is primarily intended for dates in the past.
|
||||||
|
For dates in the future, we fall back to full format.
|
||||||
|
+
|
||||||
|
+ .. versionchanged:: 6.4
|
||||||
|
+ Aware `datetime.datetime` objects are now supported (naive
|
||||||
|
+ datetimes are still assumed to be UTC).
|
||||||
|
"""
|
||||||
|
if isinstance(date, (int, float)):
|
||||||
|
- date = datetime.datetime.utcfromtimestamp(date)
|
||||||
|
- now = datetime.datetime.utcnow()
|
||||||
|
+ date = datetime.datetime.fromtimestamp(date, datetime.timezone.utc)
|
||||||
|
+ if date.tzinfo is None:
|
||||||
|
+ date = date.replace(tzinfo=datetime.timezone.utc)
|
||||||
|
+ now = datetime.datetime.now(datetime.timezone.utc)
|
||||||
|
if date > now:
|
||||||
|
if relative and (date - now).seconds < 60:
|
||||||
|
# Due to click skew, things are some things slightly
|
||||||
|
diff --git a/tornado/test/httpclient_test.py b/tornado/test/httpclient_test.py
|
||||||
|
index a71ec0a..a41040e 100644
|
||||||
|
--- a/tornado/test/httpclient_test.py
|
||||||
|
+++ b/tornado/test/httpclient_test.py
|
||||||
|
@@ -28,7 +28,7 @@ from tornado.iostream import IOStream
|
||||||
|
from tornado.log import gen_log, app_log
|
||||||
|
from tornado import netutil
|
||||||
|
from tornado.testing import AsyncHTTPTestCase, bind_unused_port, gen_test, ExpectLog
|
||||||
|
-from tornado.test.util import skipOnTravis
|
||||||
|
+from tornado.test.util import skipOnTravis, ignore_deprecation
|
||||||
|
from tornado.web import Application, RequestHandler, url
|
||||||
|
from tornado.httputil import format_timestamp, HTTPHeaders
|
||||||
|
|
||||||
|
@@ -887,7 +887,15 @@ class HTTPRequestTestCase(unittest.TestCase):
|
||||||
|
self.assertEqual(request.body, utf8("foo"))
|
||||||
|
|
||||||
|
def test_if_modified_since(self):
|
||||||
|
- http_date = datetime.datetime.utcnow()
|
||||||
|
+ http_date = datetime.datetime.now(datetime.timezone.utc)
|
||||||
|
+ request = HTTPRequest("http://example.com", if_modified_since=http_date)
|
||||||
|
+ self.assertEqual(
|
||||||
|
+ request.headers, {"If-Modified-Since": format_timestamp(http_date)}
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+ def test_if_modified_since_naive_deprecated(self):
|
||||||
|
+ with ignore_deprecation():
|
||||||
|
+ http_date = datetime.datetime.utcnow()
|
||||||
|
request = HTTPRequest("http://example.com", if_modified_since=http_date)
|
||||||
|
self.assertEqual(
|
||||||
|
request.headers, {"If-Modified-Since": format_timestamp(http_date)}
|
||||||
|
diff --git a/tornado/test/httputil_test.py b/tornado/test/httputil_test.py
|
||||||
|
index 8424491..aa9b6ee 100644
|
||||||
|
--- a/tornado/test/httputil_test.py
|
||||||
|
+++ b/tornado/test/httputil_test.py
|
||||||
|
@@ -13,6 +13,7 @@ from tornado.httputil import (
|
||||||
|
from tornado.escape import utf8, native_str
|
||||||
|
from tornado.log import gen_log
|
||||||
|
from tornado.testing import ExpectLog
|
||||||
|
+from tornado.test.util import ignore_deprecation
|
||||||
|
|
||||||
|
import copy
|
||||||
|
import datetime
|
||||||
|
@@ -412,8 +413,29 @@ class FormatTimestampTest(unittest.TestCase):
|
||||||
|
self.assertEqual(9, len(tup))
|
||||||
|
self.check(tup)
|
||||||
|
|
||||||
|
- def test_datetime(self):
|
||||||
|
- self.check(datetime.datetime.utcfromtimestamp(self.TIMESTAMP))
|
||||||
|
+ def test_utc_naive_datetime(self):
|
||||||
|
+ self.check(
|
||||||
|
+ datetime.datetime.fromtimestamp(
|
||||||
|
+ self.TIMESTAMP, datetime.timezone.utc
|
||||||
|
+ ).replace(tzinfo=None)
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+ def test_utc_naive_datetime_deprecated(self):
|
||||||
|
+ with ignore_deprecation():
|
||||||
|
+ self.check(datetime.datetime.utcfromtimestamp(self.TIMESTAMP))
|
||||||
|
+
|
||||||
|
+ def test_utc_aware_datetime(self):
|
||||||
|
+ self.check(
|
||||||
|
+ datetime.datetime.fromtimestamp(self.TIMESTAMP, datetime.timezone.utc)
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+ def test_other_aware_datetime(self):
|
||||||
|
+ # Other timezones are ignored; the timezone is always printed as GMT
|
||||||
|
+ self.check(
|
||||||
|
+ datetime.datetime.fromtimestamp(
|
||||||
|
+ self.TIMESTAMP, datetime.timezone(datetime.timedelta(hours=-4))
|
||||||
|
+ )
|
||||||
|
+ )
|
||||||
|
|
||||||
|
|
||||||
|
# HTTPServerRequest is mainly tested incidentally to the server itself,
|
||||||
|
diff --git a/tornado/test/locale_test.py b/tornado/test/locale_test.py
|
||||||
|
index ee74cb0..a2e0872 100644
|
||||||
|
--- a/tornado/test/locale_test.py
|
||||||
|
+++ b/tornado/test/locale_test.py
|
||||||
|
@@ -91,45 +91,55 @@ class EnglishTest(unittest.TestCase):
|
||||||
|
locale.format_date(date, full_format=True), "April 28, 2013 at 6:35 pm"
|
||||||
|
)
|
||||||
|
|
||||||
|
- now = datetime.datetime.utcnow()
|
||||||
|
-
|
||||||
|
- self.assertEqual(
|
||||||
|
- locale.format_date(now - datetime.timedelta(seconds=2), full_format=False),
|
||||||
|
- "2 seconds ago",
|
||||||
|
- )
|
||||||
|
- self.assertEqual(
|
||||||
|
- locale.format_date(now - datetime.timedelta(minutes=2), full_format=False),
|
||||||
|
- "2 minutes ago",
|
||||||
|
- )
|
||||||
|
- self.assertEqual(
|
||||||
|
- locale.format_date(now - datetime.timedelta(hours=2), full_format=False),
|
||||||
|
- "2 hours ago",
|
||||||
|
- )
|
||||||
|
-
|
||||||
|
- self.assertEqual(
|
||||||
|
- locale.format_date(
|
||||||
|
- now - datetime.timedelta(days=1), full_format=False, shorter=True
|
||||||
|
- ),
|
||||||
|
- "yesterday",
|
||||||
|
- )
|
||||||
|
-
|
||||||
|
- date = now - datetime.timedelta(days=2)
|
||||||
|
- self.assertEqual(
|
||||||
|
- locale.format_date(date, full_format=False, shorter=True),
|
||||||
|
- locale._weekdays[date.weekday()],
|
||||||
|
- )
|
||||||
|
-
|
||||||
|
- date = now - datetime.timedelta(days=300)
|
||||||
|
- self.assertEqual(
|
||||||
|
- locale.format_date(date, full_format=False, shorter=True),
|
||||||
|
- "%s %d" % (locale._months[date.month - 1], date.day),
|
||||||
|
- )
|
||||||
|
-
|
||||||
|
- date = now - datetime.timedelta(days=500)
|
||||||
|
- self.assertEqual(
|
||||||
|
- locale.format_date(date, full_format=False, shorter=True),
|
||||||
|
- "%s %d, %d" % (locale._months[date.month - 1], date.day, date.year),
|
||||||
|
- )
|
||||||
|
+ aware_dt = datetime.datetime.now(datetime.timezone.utc)
|
||||||
|
+ naive_dt = aware_dt.replace(tzinfo=None)
|
||||||
|
+ for name, now in {"aware": aware_dt, "naive": naive_dt}.items():
|
||||||
|
+ with self.subTest(dt=name):
|
||||||
|
+ self.assertEqual(
|
||||||
|
+ locale.format_date(
|
||||||
|
+ now - datetime.timedelta(seconds=2), full_format=False
|
||||||
|
+ ),
|
||||||
|
+ "2 seconds ago",
|
||||||
|
+ )
|
||||||
|
+ self.assertEqual(
|
||||||
|
+ locale.format_date(
|
||||||
|
+ now - datetime.timedelta(minutes=2), full_format=False
|
||||||
|
+ ),
|
||||||
|
+ "2 minutes ago",
|
||||||
|
+ )
|
||||||
|
+ self.assertEqual(
|
||||||
|
+ locale.format_date(
|
||||||
|
+ now - datetime.timedelta(hours=2), full_format=False
|
||||||
|
+ ),
|
||||||
|
+ "2 hours ago",
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+ self.assertEqual(
|
||||||
|
+ locale.format_date(
|
||||||
|
+ now - datetime.timedelta(days=1),
|
||||||
|
+ full_format=False,
|
||||||
|
+ shorter=True,
|
||||||
|
+ ),
|
||||||
|
+ "yesterday",
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+ date = now - datetime.timedelta(days=2)
|
||||||
|
+ self.assertEqual(
|
||||||
|
+ locale.format_date(date, full_format=False, shorter=True),
|
||||||
|
+ locale._weekdays[date.weekday()],
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+ date = now - datetime.timedelta(days=300)
|
||||||
|
+ self.assertEqual(
|
||||||
|
+ locale.format_date(date, full_format=False, shorter=True),
|
||||||
|
+ "%s %d" % (locale._months[date.month - 1], date.day),
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+ date = now - datetime.timedelta(days=500)
|
||||||
|
+ self.assertEqual(
|
||||||
|
+ locale.format_date(date, full_format=False, shorter=True),
|
||||||
|
+ "%s %d, %d" % (locale._months[date.month - 1], date.day, date.year),
|
||||||
|
+ )
|
||||||
|
|
||||||
|
def test_friendly_number(self):
|
||||||
|
locale = tornado.locale.get("en_US")
|
||||||
|
diff --git a/tornado/test/web_test.py b/tornado/test/web_test.py
|
||||||
|
index c2d057c..a9bce04 100644
|
||||||
|
--- a/tornado/test/web_test.py
|
||||||
|
+++ b/tornado/test/web_test.py
|
||||||
|
@@ -404,10 +404,10 @@ class CookieTest(WebTestCase):
|
||||||
|
match = re.match("foo=bar; expires=(?P<expires>.+); Path=/", header)
|
||||||
|
assert match is not None
|
||||||
|
|
||||||
|
- expires = datetime.datetime.utcnow() + datetime.timedelta(days=10)
|
||||||
|
- parsed = email.utils.parsedate(match.groupdict()["expires"])
|
||||||
|
- assert parsed is not None
|
||||||
|
- header_expires = datetime.datetime(*parsed[:6])
|
||||||
|
+ expires = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(
|
||||||
|
+ days=10
|
||||||
|
+ )
|
||||||
|
+ header_expires = email.utils.parsedate_to_datetime(match.groupdict()["expires"])
|
||||||
|
self.assertTrue(abs((expires - header_expires).total_seconds()) < 10)
|
||||||
|
|
||||||
|
def test_set_cookie_false_flags(self):
|
||||||
|
@@ -1697,11 +1697,10 @@ class DateHeaderTest(SimpleHandlerTestCase):
|
||||||
|
|
||||||
|
def test_date_header(self):
|
||||||
|
response = self.fetch("/")
|
||||||
|
- parsed = email.utils.parsedate(response.headers["Date"])
|
||||||
|
- assert parsed is not None
|
||||||
|
- header_date = datetime.datetime(*parsed[:6])
|
||||||
|
+ header_date = email.utils.parsedate_to_datetime(response.headers["Date"])
|
||||||
|
self.assertTrue(
|
||||||
|
- header_date - datetime.datetime.utcnow() < datetime.timedelta(seconds=2)
|
||||||
|
+ header_date - datetime.datetime.now(datetime.timezone.utc)
|
||||||
|
+ < datetime.timedelta(seconds=2)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -3010,10 +3009,12 @@ class XSRFCookieKwargsTest(SimpleHandlerTestCase):
|
||||||
|
match = re.match(".*; expires=(?P<expires>.+);.*", header)
|
||||||
|
assert match is not None
|
||||||
|
|
||||||
|
- expires = datetime.datetime.utcnow() + datetime.timedelta(days=2)
|
||||||
|
- parsed = email.utils.parsedate(match.groupdict()["expires"])
|
||||||
|
- assert parsed is not None
|
||||||
|
- header_expires = datetime.datetime(*parsed[:6])
|
||||||
|
+ expires = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(
|
||||||
|
+ days=2
|
||||||
|
+ )
|
||||||
|
+ header_expires = email.utils.parsedate_to_datetime(match.groupdict()["expires"])
|
||||||
|
+ if header_expires.tzinfo is None:
|
||||||
|
+ header_expires = header_expires.replace(tzinfo=datetime.timezone.utc)
|
||||||
|
self.assertTrue(abs((expires - header_expires).total_seconds()) < 10)
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/tornado/web.py b/tornado/web.py
|
||||||
|
index 5651404..439e02c 100644
|
||||||
|
--- a/tornado/web.py
|
||||||
|
+++ b/tornado/web.py
|
||||||
|
@@ -647,7 +647,9 @@ class RequestHandler(object):
|
||||||
|
if domain:
|
||||||
|
morsel["domain"] = domain
|
||||||
|
if expires_days is not None and not expires:
|
||||||
|
- expires = datetime.datetime.utcnow() + datetime.timedelta(days=expires_days)
|
||||||
|
+ expires = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(
|
||||||
|
+ days=expires_days
|
||||||
|
+ )
|
||||||
|
if expires:
|
||||||
|
morsel["expires"] = httputil.format_timestamp(expires)
|
||||||
|
if path:
|
||||||
|
@@ -698,7 +700,9 @@ class RequestHandler(object):
|
||||||
|
raise TypeError(
|
||||||
|
f"clear_cookie() got an unexpected keyword argument '{excluded_arg}'"
|
||||||
|
)
|
||||||
|
- expires = datetime.datetime.utcnow() - datetime.timedelta(days=365)
|
||||||
|
+ expires = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(
|
||||||
|
+ days=365
|
||||||
|
+ )
|
||||||
|
self.set_cookie(name, value="", expires=expires, **kwargs)
|
||||||
|
|
||||||
|
def clear_all_cookies(self, **kwargs: Any) -> None:
|
||||||
|
@@ -2812,12 +2816,12 @@ class StaticFileHandler(RequestHandler):
|
||||||
|
# content has not been modified
|
||||||
|
ims_value = self.request.headers.get("If-Modified-Since")
|
||||||
|
if ims_value is not None:
|
||||||
|
- date_tuple = email.utils.parsedate(ims_value)
|
||||||
|
- if date_tuple is not None:
|
||||||
|
- if_since = datetime.datetime(*date_tuple[:6])
|
||||||
|
- assert self.modified is not None
|
||||||
|
- if if_since >= self.modified:
|
||||||
|
- return True
|
||||||
|
+ if_since = email.utils.parsedate_to_datetime(ims_value)
|
||||||
|
+ if if_since.tzinfo is None:
|
||||||
|
+ if_since = if_since.replace(tzinfo=datetime.timezone.utc)
|
||||||
|
+ assert self.modified is not None
|
||||||
|
+ if if_since >= self.modified:
|
||||||
|
+ return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
@@ -2981,6 +2985,10 @@ class StaticFileHandler(RequestHandler):
|
||||||
|
object or None.
|
||||||
|
|
||||||
|
.. versionadded:: 3.1
|
||||||
|
+
|
||||||
|
+ .. versionchanged:: 6.4
|
||||||
|
+ Now returns an aware datetime object instead of a naive one.
|
||||||
|
+ Subclasses that override this method may return either kind.
|
||||||
|
"""
|
||||||
|
stat_result = self._stat()
|
||||||
|
# NOTE: Historically, this used stat_result[stat.ST_MTIME],
|
||||||
|
@@ -2991,7 +2999,9 @@ class StaticFileHandler(RequestHandler):
|
||||||
|
# consistency with the past (and because we have a unit test
|
||||||
|
# that relies on this), we truncate the float here, although
|
||||||
|
# I'm not sure that's the right thing to do.
|
||||||
|
- modified = datetime.datetime.utcfromtimestamp(int(stat_result.st_mtime))
|
||||||
|
+ modified = datetime.datetime.fromtimestamp(
|
||||||
|
+ int(stat_result.st_mtime), datetime.timezone.utc
|
||||||
|
+ )
|
||||||
|
return modified
|
||||||
|
|
||||||
|
def get_content_type(self) -> str:
|
@ -0,0 +1,373 @@
|
|||||||
|
%global srcname tornado
|
||||||
|
%global common_description %{expand:
|
||||||
|
Tornado is an open source version of the scalable, non-blocking web
|
||||||
|
server and tools.
|
||||||
|
|
||||||
|
The framework is distinct from most mainstream web server frameworks
|
||||||
|
(and certainly most Python frameworks) because it is non-blocking and
|
||||||
|
reasonably fast. Because it is non-blocking and uses epoll, it can
|
||||||
|
handle thousands of simultaneous standing connections, which means it is
|
||||||
|
ideal for real-time web services.}
|
||||||
|
|
||||||
|
Name: python-%{srcname}
|
||||||
|
Version: 6.3.3
|
||||||
|
Release: 5%{?dist}
|
||||||
|
Summary: Scalable, non-blocking web server and tools
|
||||||
|
|
||||||
|
License: Apache-2.0
|
||||||
|
URL: https://www.tornadoweb.org
|
||||||
|
Source0: https://github.com/tornadoweb/tornado/archive/v%{version}/%{srcname}-%{version}.tar.gz
|
||||||
|
|
||||||
|
# Do not turn DeprecationWarning in tornado module into Exception
|
||||||
|
# fixes FTBFS with Python 3.8
|
||||||
|
Patch1: Do-not-turn-DeprecationWarning-into-Exception.patch
|
||||||
|
# Fixes for Python 3.12 - rebased
|
||||||
|
# https://github.com/tornadoweb/tornado/pull/3288
|
||||||
|
Patch2: python-tornado-Python-3.12.patch
|
||||||
|
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: python3-devel
|
||||||
|
|
||||||
|
%description %{common_description}
|
||||||
|
|
||||||
|
%package -n python3-%{srcname}
|
||||||
|
Summary: %{summary}
|
||||||
|
|
||||||
|
%description -n python3-%{srcname} %{common_description}
|
||||||
|
|
||||||
|
%package doc
|
||||||
|
Summary: Examples for %{name}
|
||||||
|
|
||||||
|
%description doc %{common_description}
|
||||||
|
|
||||||
|
This package contains some example applications.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1 -n %{srcname}-%{version}
|
||||||
|
|
||||||
|
%generate_buildrequires
|
||||||
|
%pyproject_buildrequires
|
||||||
|
|
||||||
|
%build
|
||||||
|
%pyproject_wheel
|
||||||
|
|
||||||
|
%install
|
||||||
|
%pyproject_install
|
||||||
|
%pyproject_save_files %{srcname}
|
||||||
|
|
||||||
|
%check
|
||||||
|
# Skip the same timing-related tests that upstream skips when run in Travis CI.
|
||||||
|
# https://github.com/tornadoweb/tornado/commit/abc5780a06a1edd0177a399a4dd4f39497cb0c57
|
||||||
|
export TRAVIS=true
|
||||||
|
|
||||||
|
# Increase timeout for tests on riscv64
|
||||||
|
%ifarch riscv64
|
||||||
|
export ASYNC_TEST_TIMEOUT=80
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%{py3_test_envvars} %{python3} -m tornado.test
|
||||||
|
|
||||||
|
%files -n python3-%{srcname} -f %{pyproject_files}
|
||||||
|
%doc README.rst
|
||||||
|
|
||||||
|
%files doc
|
||||||
|
%license LICENSE
|
||||||
|
%doc demos
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Oct 25 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 6.3.3-5
|
||||||
|
- Rebuilt for MSVSphere 10
|
||||||
|
|
||||||
|
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 6.3.3-5
|
||||||
|
- Bump release for June 2024 mass rebuild
|
||||||
|
|
||||||
|
* Fri Jun 07 2024 Richard W.M. Jones <rjones@redhat.com> - 6.3.3-4
|
||||||
|
- Increase timeout for tests on riscv64
|
||||||
|
|
||||||
|
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.3.3-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.3.3-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Aug 11 2023 Gwyn Ciesla <gwync@protonmail.com> - 6.3.3-1
|
||||||
|
- 6.3.3
|
||||||
|
|
||||||
|
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.3.2-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jun 22 2023 Orion Poplawski <orion@nwra.com> - 6.3.2-4
|
||||||
|
- Add upstream patch for Python 3.12 support
|
||||||
|
|
||||||
|
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 6.3.2-3
|
||||||
|
- Rebuilt for Python 3.12
|
||||||
|
|
||||||
|
* Tue May 23 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 6.3.2-2
|
||||||
|
- Avoid tox dependency
|
||||||
|
|
||||||
|
* Tue May 16 2023 Orion Poplawski <orion@nwra.com> - 6.3.2-1
|
||||||
|
- Update to 6.3.2
|
||||||
|
|
||||||
|
* Wed Mar 08 2023 Gwyn Ciesla <gwync@protonmail.com> - 6.2.0-4
|
||||||
|
- migrated to SPDX license
|
||||||
|
|
||||||
|
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 07 2022 Carl George <carl@george.computer> - 6.2.0-1
|
||||||
|
- Latest upstream, resolves rhbz#1883858
|
||||||
|
|
||||||
|
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 6.1.0-7
|
||||||
|
- Rebuilt for Python 3.11
|
||||||
|
|
||||||
|
* Tue Feb 08 2022 Carl George <carl@george.computer> - 6.1.0-6
|
||||||
|
- Convert to pyproject macros
|
||||||
|
|
||||||
|
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.0-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.0-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jun 03 2021 Python Maint <python-maint@redhat.com> - 6.1.0-3
|
||||||
|
- Rebuilt for Python 3.10
|
||||||
|
|
||||||
|
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Nov 03 2020 Fabian Affolter <mail@fabian-affolter.ch> -6.1.0-1
|
||||||
|
- Update to latest upstream release 6.1.0 (#1883858)
|
||||||
|
|
||||||
|
* Sun Sep 13 2020 Fabian Affolter <mail@fabian-affolter.ch> - 6.0.4-1
|
||||||
|
- Update to latest upstream release 6.0.3 (#1809858)
|
||||||
|
|
||||||
|
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.3-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat May 23 2020 Miro Hrončok <mhroncok@redhat.com> - 6.0.3-2
|
||||||
|
- Rebuilt for Python 3.9
|
||||||
|
|
||||||
|
* Mon Feb 24 2020 Peter Robinson <pbrobinson@fedoraproject.org> - 6.0.3-1
|
||||||
|
- Update to 6.0.3
|
||||||
|
|
||||||
|
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.2-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 6.0.2-4
|
||||||
|
- Rebuilt for Python 3.8.0rc1 (#1748018)
|
||||||
|
|
||||||
|
* Thu Aug 15 2019 Miro Hrončok <mhroncok@redhat.com> - 6.0.2-3
|
||||||
|
- Rebuilt for Python 3.8
|
||||||
|
|
||||||
|
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.2-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jun 03 2019 Miro Hrončok <mhroncok@redhat.com> - 6.0.2-1
|
||||||
|
- Update to 6.0.2 (#1600318)
|
||||||
|
|
||||||
|
* Thu May 16 2019 Lumír Balhar <lbalhar@redhat.com> - 5.1.1-2
|
||||||
|
- New patch to not turn DeprecationWarning in tornado module into Exception
|
||||||
|
- Fixes FTBFS with Python 3.8
|
||||||
|
|
||||||
|
* Wed Mar 27 2019 Miro Hrončok <mhroncok@redhat.com> - 5.1.1-1
|
||||||
|
- Update to 5.1.1
|
||||||
|
- Fix SyntaxWarnings (turned into SyntaxErrors) on Python 3.8
|
||||||
|
|
||||||
|
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.2-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.2-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jun 15 2018 Miro Hrončok <mhroncok@redhat.com> - 5.0.2-3
|
||||||
|
- Rebuilt for Python 3.7
|
||||||
|
|
||||||
|
* Sat May 19 2018 Miro Hrončok <mhroncok@redhat.com> - 5.0.2-2
|
||||||
|
- Require python2-futures
|
||||||
|
|
||||||
|
* Fri May 18 2018 Charalampos Stratakis <cstratak@redhat.com> - 5.0.2-1
|
||||||
|
- Update to 5.0.2
|
||||||
|
|
||||||
|
* Thu Apr 26 2018 Lumír Balhar <lbalhar@redhat.com> - 4.5.2-5
|
||||||
|
- New conditionals for Python 2
|
||||||
|
- Drop Python 3 conditional
|
||||||
|
|
||||||
|
* Mon Feb 12 2018 Iryna Shcherbina <ishcherb@redhat.com> - 4.5.2-4
|
||||||
|
- Update Python 2 dependency declarations to new packaging standards
|
||||||
|
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
|
||||||
|
|
||||||
|
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.2-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Nov 07 2017 Charalampos Stratakis <cstratak@redhat.com> - 4.5.2-2
|
||||||
|
- Fix dist tag and bump release for rebuild
|
||||||
|
|
||||||
|
* Tue Nov 07 2017 Charalampos Stratakis <cstratak@redhat.com> - 4.5.2-1
|
||||||
|
- Update to 4.5.2
|
||||||
|
|
||||||
|
* Fri Sep 29 2017 Troy Dawson <tdawson@redhat.com> - 4.5.1-4
|
||||||
|
- Cleanup spec file conditionals
|
||||||
|
|
||||||
|
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Apr 20 2017 Orion Poplawski <orion@cora.nwra.com> - 4.5.1-1
|
||||||
|
- Update to 4.5.1
|
||||||
|
|
||||||
|
* Mon Apr 17 2017 Orion Poplawski <orion@cora.nwra.com> - 4.5-1
|
||||||
|
- Update to 4.5
|
||||||
|
|
||||||
|
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.2-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Dec 13 2016 Stratakis Charalampos <cstratak@redhat.com> - 4.4.2-2
|
||||||
|
- Rebuild for Python 3.6
|
||||||
|
- Added patch to fix Python 3.6 test failures
|
||||||
|
|
||||||
|
* Sun Oct 2 2016 Orion Poplawski <orion@cora.nwra.com> - 4.4.2-1
|
||||||
|
- Update to 4.4.2
|
||||||
|
|
||||||
|
* Thu Sep 15 2016 Orion Poplawski <orion@cora.nwra.com> - 4.4.1-1
|
||||||
|
- Update to 4.4.1
|
||||||
|
- Drop requires patch, fixed upstream
|
||||||
|
|
||||||
|
* Thu Sep 15 2016 Orion Poplawski <orion@cora.nwra.com> - 4.3-5
|
||||||
|
- Remove backports.ssl_match_hostname from python2-tornado egg requires (bug #1372887)
|
||||||
|
|
||||||
|
* Thu Sep 15 2016 Orion Poplawski <orion@cora.nwra.com> - 4.3-4
|
||||||
|
- Remove certifi from python2-tornado egg requires (bug #1372886)
|
||||||
|
|
||||||
|
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.3-3
|
||||||
|
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
|
||||||
|
|
||||||
|
* Mon Feb 22 2016 Orion Poplawski <orion@cora.nwra.com> - 4.3-2
|
||||||
|
- Properly build python2-tornado
|
||||||
|
|
||||||
|
* Thu Feb 18 2016 Orion Poplawski <orion@cora.nwra.com> - 4.3-1
|
||||||
|
- Update to 4.3
|
||||||
|
- Drop upstream patches
|
||||||
|
|
||||||
|
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.1-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Nov 10 2015 Orion Poplawski <orion@cora.nwra.com> - 4.2.1-3
|
||||||
|
- Build python2 packages, drop separate python3 doc package
|
||||||
|
|
||||||
|
* Wed Oct 14 2015 Robert Kuska <rkuska@redhat.com> - 4.2.1-2
|
||||||
|
- Rebuilt for Python3.5 rebuild
|
||||||
|
- Add patch to use getfullargspec on python3
|
||||||
|
- Add patch to fix failing tests with python3.5
|
||||||
|
|
||||||
|
* Fri Sep 18 2015 Orion Poplawski <orion@cora.nwra.com> - 4.2.1-1
|
||||||
|
- Update to 4.2.1
|
||||||
|
- Modernize spec
|
||||||
|
|
||||||
|
* Fri Jul 10 2015 Orion Poplawski <orion@cora.nwra.com> - 4.1-3
|
||||||
|
- Do not require python-backports-ssl_match_hostname for F22+ (bug #1231368)
|
||||||
|
|
||||||
|
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Mar 1 2015 Orion Poplawski <orion@cora.nwra.com> - 4.1-1
|
||||||
|
- Update to 4.1
|
||||||
|
- Modernize spec
|
||||||
|
|
||||||
|
* Fri Dec 5 2014 Orion Poplawski <orion@cora.nwra.com> - 3.2.1-4
|
||||||
|
- Drop requires python-simplejson
|
||||||
|
|
||||||
|
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu May 22 2014 Thomas Spura <tomspur@fedoraproject.org> - 3.2.1-1
|
||||||
|
- update to 3.2.1
|
||||||
|
- no noarch anymore
|
||||||
|
- remove defattr
|
||||||
|
|
||||||
|
* Wed May 14 2014 Bohuslav Kabrda <bkabrda@redhat.com> - 2.2.1-7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4
|
||||||
|
|
||||||
|
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.1-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jun 14 2013 Thomas Spura <tomspur@fedoraproject.org> - 2.2.1-5
|
||||||
|
- remove rhel conditional for with_python3:
|
||||||
|
https://fedorahosted.org/fpc/ticket/200
|
||||||
|
|
||||||
|
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.1-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Aug 04 2012 David Malcolm <dmalcolm@redhat.com> - 2.2.1-3
|
||||||
|
- rebuild for https://fedoraproject.org/wiki/Features/Python_3.3
|
||||||
|
|
||||||
|
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun May 20 2012 Thomas Spura <tomspur@fedoraproject.org> - 2.2.1-1
|
||||||
|
- update to upstream release 2.2.1 (fixes CVE-2012-2374)
|
||||||
|
- fix typo for epel6 macro bug #822972 (Florian La Roche)
|
||||||
|
|
||||||
|
* Thu Feb 9 2012 Ionuț C. Arțăriși <mapleoin@fedoraproject.org> - 2.2-1
|
||||||
|
- upgrade to upstream release 2.2
|
||||||
|
|
||||||
|
* Thu Feb 9 2012 Ionuț C. Arțăriși <mapleoin@fedoraproject.org> - 2.1.1-4
|
||||||
|
- remove python3-simplejson dependency
|
||||||
|
|
||||||
|
* Fri Jan 27 2012 Thomas Spura <tomspur@fedoraproject.org> - 2.1.1-3
|
||||||
|
- build python3 package
|
||||||
|
|
||||||
|
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Oct 25 2011 Ionuț C. Arțăriși <mapleoin@fedoraproject.org> - 2.1.1-1
|
||||||
|
- new upstream version 2.1.1
|
||||||
|
- remove double word in description and rearrange it (#715272)
|
||||||
|
- fixed removal of shebangs
|
||||||
|
- added %%check section to run unittests during package build
|
||||||
|
|
||||||
|
* Tue Mar 29 2011 Ionuț C. Arțăriși <mapleoin@fedoraproject.org> - 1.2.1-1
|
||||||
|
- new upstream version 1.2.1
|
||||||
|
|
||||||
|
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Sep 8 2010 Ionuț C. Arțăriși <mapleoin@fedoraproject.org> - 1.1-1
|
||||||
|
- new upstream release 1.1
|
||||||
|
|
||||||
|
* Tue Aug 17 2010 Ionuț Arțăriși <mapleoin@fedoraproject.org> - 1.0.1-1
|
||||||
|
- new upstream bugfix release: 1.0.1
|
||||||
|
|
||||||
|
* Wed Aug 4 2010 Ionuț C. Arțăriși <mapleoin@fedoraproject.org> - 1.0-2
|
||||||
|
- changed upstream source url
|
||||||
|
|
||||||
|
* Wed Aug 4 2010 Ionuț C. Arțăriși <mapleoin@fedoraproject.org> - 1.0-1
|
||||||
|
- new upstream release 1.0
|
||||||
|
- there's no longer a problem with spurious permissions, so remove that fix
|
||||||
|
|
||||||
|
* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 0.2-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
|
||||||
|
|
||||||
|
* Wed Oct 21 2009 Ionuț Arțăriși <mapleoin@fedoraproject.org> - 0.2-3
|
||||||
|
- changed -doc package group to Documentation
|
||||||
|
- use global instead of define
|
||||||
|
|
||||||
|
* Tue Oct 20 2009 Ionuț Arțăriși <mapleoin@fedoraproject.org> - 0.2-2
|
||||||
|
- create -doc package for examples
|
||||||
|
- altered description to not include references to FriendFeed
|
||||||
|
- rename to python-tornado
|
||||||
|
|
||||||
|
* Fri Sep 25 2009 Ionuț Arțăriși <mapleoin@lavabit.com> - 0.2-1
|
||||||
|
- New upstream version
|
||||||
|
- Fixed macro usage and directory ownership in spec
|
||||||
|
|
||||||
|
* Thu Sep 10 2009 Ionuț Arțăriși <mapleoin@lavabit.com> - 0.1-1
|
||||||
|
- Initial release
|
||||||
|
|
Loading…
Reference in new issue