Since Python 3.6 landed in Rawhide, all kickstart installs fail. This seems to be because python3 is broken in the anaconda dracut environment. A Python traceback appears in the journal when you attempt to install with a kickstart; you can reproduce the same traceback by booting the installer image with 'rd.break' and just trying to run 'python3' from the dracut environment. It ends with: File "/usr/lib64/python3.6/sysconfig.py", line 424, in _init_posix _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) ModuleNotFoundError: No module named '_sysconfigdata_m_mlinux_x86_64-linux-gnu' (well, on x86_64; on other arches it'd look a bit different, of course). This seems to be because /usr/lib64/python3.6/_sysconfigdata_m_linux_x86_64-linux-gnu.py (or other arch equivalent) is not included in the initramfs. AFAICT, the script /usr/lib/dracut/modules.d/80anaconda/python-deps - from anaconda-dracut - is used to include Python bits in the anaconda initramfs. It's called like this, in module-setup.sh: # python deps for parse-kickstart. DOUBLE WOOOO PYTHONHASHSEED=42 $moddir/python-deps $moddir/parse-kickstart $moddir/driver_updates.py | while read dep; do case "$dep" in *.so) inst_library $dep ;; *.py) inst_simple $dep ;; *) inst $dep ;; esac done so let's see what it prints out for those files: [adamw@adam 80anaconda]$ ./python-deps ./parse-kickstart ./driver_updates.py | grep sysconfig /usr/lib64/python3.6/distutils/sysconfig.py /usr/lib64/python3.6/sysconfig.py [adamw@adam 80anaconda]$ ...yeah, it does not detect that _sysconfigdata_m_linux_x86_64-linux-gnu.py is needed, by the looks of it. I haven't had time yet to further debug why that is. It does look like python-deps has a kind of override dict for things that it can't detect properly, called alsoNeeded, so we might just have to put it in there, but I'll dig in a bit more to see. Proposing as an Alpha blocker - this violates "The scripted installation mechanism must provide a working function for creating local user accounts, including the ability to specify a hashed password, and for specifying a hashed password for the root account.", because *nothing* about the 'scripted installation mechanism' works at all. https://fedoraproject.org/wiki/Fedora_26_Alpha_Release_Criteria#scripted-user-creation
oh, to add the missing piece of the puzzle, the relevant upstream change here seems to be this one: https://github.com/python/cpython/commit/a6431f2c8cf4783c2fd522b2f6ee04c3c204237f note particularly the change in sysconfig.py from: from _sysconfigdata import build_time_vars to: name = '_sysconfigdata_' + sys.abiflags _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) build_time_vars = _temp.build_time_vars I'm guessing it's the use of __import__ there that python-deps can't handle.
I figured that since modulefinder is part of the standard lib and it's failing to find a module used by the very core of Python itself, this would be worth reporting upstream, so I did: https://bugs.python.org/issue29113
https://github.com/rhinstaller/anaconda/pull/923
Merged to rawhide.
Discussed during the 2017-01-09 blocker review meeting: [1] The decision to classify this bug as an "AcceptedBlocker" was made as it violates the following criteria: "The scripted installation mechanism must provide a working function for creating local user accounts, including the ability to specify a hashed password, and for specifying a hashed password for the root account." (as the 'scripted installation mechanism' is entirely broken) [1] https://meetbot.fedoraproject.org/fedora-blocker-review/2017-01-09/f26-blocker-review.2017-01-09-17.00.txt
This bug appears to have been reported against 'rawhide' during the Fedora 26 development cycle. Changing version to '26'.
Kickstart installs confirmed working in current Rawhide (and 26, most likely).