Bug 1706213 - graphite-web FTBFS with Python 3.8 [NEEDINFO]
Summary: graphite-web FTBFS with Python 3.8
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: graphite-web
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Jonathan Steffan
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PYTHON38 F32FTBFS F32FailsToInstall
TreeView+ depends on / blocked
 
Reported: 2019-05-03 19:54 UTC by Charalampos Stratakis
Modified: 2019-12-26 12:54 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-12-26 12:54:22 UTC
mhroncok: needinfo? (jonathansteffan)


Attachments (Terms of Use)
Full log from Copr (233.06 KB, text/plain)
2019-05-03 19:54 UTC, Charalampos Stratakis
no flags Details

Description Charalampos Stratakis 2019-05-03 19:54:02 UTC
Created attachment 1562704 [details]
Full log from Copr

graphite-web-1.1.5-2 fails to build with Python 3.8 due to syntax warnings for invalid escape sequences during %check.

Snippet:

builddir/build/BUILD/graphite-web-53d96432b6ba1c30797405dff97ba01af009cb25/webapp/tests/test_functions.py:1313: SyntaxWarning: invalid escape sequence \(
  with self.assertRaisesRegexp(ValueError, "divideSeries second argument must reference exactly 1 series \(got 2\)")

This is due to https://bugs.python.org/issue32912

Full log attached

Comment 1 Miro Hrončok 2019-05-29 12:27:21 UTC
Latest failure:

https://copr.fedorainfracloud.org/coprs/g/python/python3.8/build/912011/

Destroying test database for alias 'default'...
Traceback (most recent call last):
  File "manage.py", line 12, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python3.8/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python3.8/site-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python3.8/site-packages/django/core/management/commands/test.py", line 23, in run_from_argv
    super().run_from_argv(argv)
  File "/usr/lib/python3.8/site-packages/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/lib/python3.8/site-packages/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/python3.8/site-packages/django/core/management/commands/test.py", line 53, in handle
    failures = test_runner.run_tests(test_labels)
  File "/usr/lib/python3.8/site-packages/django/test/runner.py", line 632, in run_tests
    self.run_checks()
  File "/usr/lib/python3.8/site-packages/django/test/runner.py", line 570, in run_checks
    call_command('check', verbosity=self.verbosity)
  File "/usr/lib/python3.8/site-packages/django/core/management/__init__.py", line 148, in call_command
    return command.execute(*args, **defaults)
  File "/usr/lib/python3.8/site-packages/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/python3.8/site-packages/django/core/management/commands/check.py", line 59, in handle
    self.check(
  File "/usr/lib/python3.8/site-packages/django/core/management/base.py", line 387, in check
    all_issues = self._run_checks(
  File "/usr/lib/python3.8/site-packages/django/core/management/base.py", line 377, in _run_checks
    return checks.run_checks(**kwargs)
  File "/usr/lib/python3.8/site-packages/django/core/checks/registry.py", line 72, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/usr/lib/python3.8/site-packages/django/core/checks/urls.py", line 40, in check_url_namespaces_unique
    all_namespaces = _load_all_namespaces(resolver)
  File "/usr/lib/python3.8/site-packages/django/core/checks/urls.py", line 57, in _load_all_namespaces
    url_patterns = getattr(resolver, 'url_patterns', [])
  File "/usr/lib/python3.8/site-packages/django/utils/functional.py", line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/lib/python3.8/site-packages/django/urls/resolvers.py", line 571, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/usr/lib/python3.8/site-packages/django/utils/functional.py", line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/lib/python3.8/site-packages/django/urls/resolvers.py", line 564, in urlconf_module
    return import_module(self.urlconf_name)
  File "/usr/lib64/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 778, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/builddir/build/BUILD/graphite-web-53d96432b6ba1c30797405dff97ba01af009cb25/webapp/graphite/urls.py", line 22, in <module>
    url('^render', include('graphite.render.urls')),
  File "/usr/lib/python3.8/site-packages/django/urls/conf.py", line 34, in include
    urlconf_module = import_module(urlconf_module)
  File "/usr/lib64/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 778, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/builddir/build/BUILD/graphite-web-53d96432b6ba1c30797405dff97ba01af009cb25/webapp/graphite/render/urls.py", line 16, in <module>
    from . import views
  File "/builddir/build/BUILD/graphite-web-53d96432b6ba1c30797405dff97ba01af009cb25/webapp/graphite/render/views.py", line 23, in <module>
    from cgi import parse_qs
ImportError: cannot import name 'parse_qs' from 'cgi' (/usr/lib64/python3.8/cgi.py)

Comment 2 Miro Hrončok 2019-07-10 11:12:44 UTC
Please respond.

Comment 3 Piotr Popieluch 2019-07-10 13:14:01 UTC
Just fixed it upstream

Comment 4 Ben Cotton 2019-08-13 16:47:08 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to '31'.

Comment 5 Miro Hrončok 2019-08-14 22:24:10 UTC
The coordinated rebuild of Python 3.8 has started in the `f32-python` side tag.

If you figure out how to rebuild this package, please don't rebuild it in regular rawhide, but use the side tag instead:

    on branch master:
    $ fedpkg build --target=f32-python

To wait for a build to show up in the side tag, do:

    $ koji wait-repo f32-python --build=<nvr>

Where <nvr> is name-version-release of the source package, e.g. python-foo-1.1-2.fc32.

An updated mock config is posted at:
http://copr.fedorainfracloud.org/coprs/g/python/python3.8/

Note that it will take a while before the essential packages are rebuilt, so don't expect all your dependencies to be available right away.

Thanks. Let us know if you need up to date info, or if you have any questions.



PS this message is mass posted to all the bugs that block the PYTHON38 bug. If this is also a Fedora 31 FTBFS bug and you manage to fix it, you can do a f31 build as usual:

    on branch f31:
    $ fedpkg build

Comment 6 Miro Hrončok 2019-08-21 16:34:25 UTC
The f32-python side tag has been merged. In order to rebuild the package, do it in regular rawhide, but please wait until python3-3.8 is tagged:

  $ koji wait-repo f32-build --build python3-3.8.0~b3-3.fc32


If your built already started in f32-python, after it is finished, please tag it to rawhide with:

  $ koji tag-build f32-pending <nvr>

For example:

  $ koji tag-build f32-pending libreoffice-6.3.0.4-3.fc32

Thanks!

(This comment is mass posted to all bugzillas blocking the PYTHON38 tracking bug.)

Comment 7 Miro Hrončok 2019-08-21 17:29:00 UTC
(Python 3.8 has landed in the rawhide buildroot.)

Comment 8 Miro Hrončok 2019-09-16 08:07:57 UTC
This issue is blocking the Python 3.8 rebuilds. If this package won't build with 3.8, it won't be installable, along with all its dependent packages, in Fedora 32.
Furthermore, as it fails to install, its dependent packages will fail to install and/or build as well.

Could you please backport the upstream fix?

Comment 9 Miro Hrončok 2019-12-26 12:54:22 UTC
Automation has figured out the package is retired in rawhide.

If you like it to be unretired, please open a ticket at https://pagure.io/releng/new_issue?template=package_unretirement


Note You need to log in before you can comment on or make changes to this bug.