Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1759925

Summary: python-whitenoise fails to build in Fedora 32 with Django 3
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python-whitenoiseAssignee: Piotr Popieluch <piotr1212>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 32CC: mplch, mrunge, piotr1212
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-whitenoise-5.1.0-1.fc32 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-06-14 17:02:54 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1750908, 1758690, 1785415    

Description Miro Hrončok 2019-10-09 12:37:31 UTC
Description of problem:
python-whitenoise fails to build in Fedora with Django 3
See https://fedoraproject.org/wiki/Changes/Django3

Version-Release number of selected component (if applicable):
python-whitenoise-4.1.4-1.fc32

How reproducible:
[python-whitenoise (master)]$ fedpkg --release master build

+ python3 -m unittest discover
Traceback (most recent call last):
  File "/usr/lib64/python3.8/runpy.py", line 192, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib64/python3.8/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/lib64/python3.8/unittest/__main__.py", line 18, in <module>
    main(module=None)
  File "/usr/lib64/python3.8/unittest/main.py", line 100, in __init__
    self.parseArgs(argv)
  File "/usr/lib64/python3.8/unittest/main.py", line 124, in parseArgs
    self._do_discovery(argv[2:])
  File "/usr/lib64/python3.8/unittest/main.py", line 244, in _do_discovery
    self.createTests(from_discovery=True, Loader=Loader)
  File "/usr/lib64/python3.8/unittest/main.py", line 154, in createTests
    self.test = loader.discover(self.start, self.pattern, self.top)
  File "/usr/lib64/python3.8/unittest/loader.py", line 349, in discover
    tests = list(self._find_tests(start_dir, pattern))
  File "/usr/lib64/python3.8/unittest/loader.py", line 414, in _find_tests
    yield from self._find_tests(full_path, pattern, namespace)
  File "/usr/lib64/python3.8/unittest/loader.py", line 405, in _find_tests
    tests, should_recurse = self._find_test_path(
  File "/usr/lib64/python3.8/unittest/loader.py", line 460, in _find_test_path
    return self.loadTestsFromModule(module, pattern=pattern), False
  File "/usr/lib64/python3.8/unittest/loader.py", line 123, in loadTestsFromModule
    if isinstance(obj, type) and issubclass(obj, case.TestCase):
  File "/usr/lib/python3.8/site-packages/django/utils/functional.py", line 224, in inner
    self._setup()
  File "/usr/lib/python3.8/site-packages/django/contrib/staticfiles/storage.py", line 500, in _setup
    self._wrapped = get_storage_class(settings.STATICFILES_STORAGE)()
  File "/usr/lib/python3.8/site-packages/django/contrib/staticfiles/storage.py", line 379, in __init__
    self.hashed_files = self.load_manifest()
  File "/usr/lib/python3.8/site-packages/django/contrib/staticfiles/storage.py", line 389, in load_manifest
    content = self.read_manifest()
  File "/usr/lib/python3.8/site-packages/django/contrib/staticfiles/storage.py", line 383, in read_manifest
    with self.open(self.manifest_name) as manifest:
  File "/usr/lib/python3.8/site-packages/django/core/files/storage.py", line 36, in open
    return self._open(name, mode)
  File "/usr/lib/python3.8/site-packages/django/core/files/storage.py", line 231, in _open
    return File(open(self.path(name), mode))
NotADirectoryError: [Errno 20] Not a directory: '/dev/null/staticfiles.json'

Comment 1 Miro Hrončok 2020-01-20 20:34:20 UTC
This blocks the Python 3.9 rebuild.

Comment 2 Piotr Popieluch 2020-01-21 08:11:29 UTC
Updated to 5.0.1, builds now with Django 3.0

Comment 3 Miro Hrončok 2020-01-21 10:04:02 UTC
Thank You for the quick fix.

Comment 4 Ben Cotton 2020-02-11 17:31:33 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle.
Changing version to 32.

Comment 5 Miro Hrončok 2020-05-25 13:01:27 UTC
This comment is mass posted to all bugs blocking the Python 3.9 tracker, sorry if it is not 100 % relevant. When in doubt, please ask.


The Python 3.9 rebuild is in progress in a Koji side tag.

If you fix this bug, please don't rebuild the package in regular rawhide, but do it in the side tag with:

    $ fedpkg build --target=f33-python

The rebuild is progressing slowly and it is possible this package won't have all the required build dependencies yet. If that's the case, please just leave the fix committed and pushed and we will eventually rebuild it for you.

You are not asked to go and try rebuild all the missing dependencies yourself. If you know there is a bootstrap loop in the dependencies, let me know and we can untangle it together.

If you want to test your fix or reproduce the failure, you can still use the Copr repo mentioned in the initial comment of this bug: https://copr.fedorainfracloud.org/coprs/g/python/python3.9/

Comment 6 Fedora Update System 2020-06-12 21:14:07 UTC
FEDORA-2020-924ad8311d has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-924ad8311d

Comment 7 Fedora Update System 2020-06-14 17:02:54 UTC
python-whitenoise-5.1.0-1.fc32 has been pushed to the Fedora 32 stable repository. If problems still persist, please make note of it in this bug report.