Bug 1695953

Summary: cloud-init-17.1-8.fc31 FTBFS (not only) with Python 3.8
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: cloud-initAssignee: Garrett Holmstrom <gholms>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: rawhideCC: adimania, apevec, besser82, eterrell, fweimer, gholms, lars, shardy, s, zbyszek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: cloud-init-17.1-10.fc31 cloud-init-17.1-9.fc30 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-04-23 19:27:52 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: 1700317, 1675080, 1686977, 1732841    

Description Miro Hrončok 2019-04-03 23:35:33 UTC
There are several stages of FTBFS with cloud-init-17.1-8.fc31

If I do a Fedora Koji scratchbuild:

 $ fedpkg --release master build --scratch

I get:

BUILDSTDERR: error: This macro requires some arguments
BUILDSTDERR: error: line 124: %systemd_postun


In my Copr with Python 3.8, built from SRPM I get the actual Python 3.8 problem:

+ /usr/bin/python3 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/cloud-init-17.1-8.fc31.x86_64 --init-system=systemd
Traceback (most recent call last):
  File "setup.py", line 125, in <module>
    'systemd': [render_tmpl(f)
  File "setup.py", line 125, in <listcomp>
    'systemd': [render_tmpl(f)
  File "setup.py", line 114, in render_tmpl
    tiny_p([sys.executable, './tools/render-cloudcfg', template, fpath])
  File "setup.py", line 44, in tiny_p
    raise RuntimeError("Failed running %s [rc=%s] (%s, %s)" %
RuntimeError: Failed running ['/usr/bin/python3', './tools/render-cloudcfg', 'systemd/cloud-init.service.tmpl', 'tmph0v9h1_q/cloud-init.service'] [rc=1] (, Traceback (most recent call last):
  File "./tools/render-cloudcfg", line 44, in <module>
    main()
  File "./tools/render-cloudcfg", line 19, in main
    platform = util.system_info()
  File "/builddir/build/BUILD/cloud-init-17.1/cloudinit/util.py", line 589, in system_info
    'dist': platform.dist(),  # pylint: disable=W1505
AttributeError: module 'platform' has no attribute 'dist'


That is indeed removed from Python 3.8

$ python3.7
>>> import platform
>>> platform.dist()
__main__:1: DeprecationWarning: dist() and linux_distribution() functions are deprecated in Python 3.5
('fedora', '29', 'Twenty Nine')


$ python3.8
>>> import platform
>>> platform.dist()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'platform' has no attribute 'dist'

Comment 1 Miro Hrončok 2019-04-03 23:40:14 UTC
CC'ing zbyszek about the %systemd_postun failure.

My Copr still has systemd 241-4.gitcbf14c9.fc31, Koji has 242~rc2-1.fc31.

Comment 2 Miro Hrončok 2019-04-03 23:45:15 UTC
And according to koschei, the tests are failing anyway since mid February

https://apps.fedoraproject.org/koschei/package/cloud-init
https://apps.fedoraproject.org/koschei/build/6037690
looks like bash update problem to me

So this now has 3 levels of FTBFS:

level 1) systemd macro problem with systemd 242
level 2) setup.py install platfrom.dist() problem with Python 3.8
level 3) %check failure anywhere caused by something that happened in February, maybe BASH 5

Comment 3 Miro Hrončok 2019-04-03 23:48:33 UTC
Seems like Bash 5 added EPOCHREALTIME env varibale and that's causing the tests to fail.

https://lists.gnu.org/archive/html/bug-bash/2018-05/msg00068.html

Comment 4 Zbigniew Jędrzejewski-Szmek 2019-04-04 16:03:38 UTC
It's not a bug, it's a feature!

$ fedpkg srpm && mock -n $(ls -t1r *.src.rpm|tail -n1)
Downloading cloud-init-17.1.tar.gz
######################################################################## 100.0%
error: This macro requires some arguments
error: line 124: %systemd_postun

As it says, this macro requires some arguments, most likely the same ones that are used for %systemd_post and %systemd_preun in the lines right above.

Comment 5 Miro Hrončok 2019-04-15 15:52:30 UTC
Could you please try to fix this? Or should this be brought upstream?

Comment 6 Miro Hrončok 2019-04-23 13:24:48 UTC
Please respond.

Comment 8 Björn Esser (besser82) 2019-04-23 19:09:24 UTC
I'm not the maintainer of the package, but as a proven packager I have fixed the three issues mentioned in comment #2 since the maintainer was not replying.  The package now builds fine on F30 and Rawhide (even with Python 3.8) again.

Comment 9 Björn Esser (besser82) 2019-04-23 19:14:34 UTC
I forgot to mention:  To fix that issue with platform.dist, I needed to add (Build)Requires: python3-distro.

Comment 11 Fedora Update System 2019-04-23 19:26:43 UTC
cloud-init-17.1-9.fc30 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-67d7987a7b

Comment 12 Fedora Update System 2019-04-24 20:27:53 UTC
cloud-init-17.1-9.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-67d7987a7b

Comment 13 Fedora Update System 2019-04-29 01:41:39 UTC
cloud-init-17.1-9.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.