Here's a reproducer: # rm -fr /var/lib/mock/* /var/cache/mock/* $ mock -r fedora-rawhide-x86_64 --init [... snip mock output ...] $ mock -r fedora-rawhide-x86_64 --shell [... snip mock output ...] <mock-chroot>sh-4.3# So entering the shell works here. Now let's try something: <mock-chroot>sh-4.3# logout $ mock -r fedora-rawhide-x86_64 --install dnf [... snip mock output ...] $ mock -r fedora-rawhide-x86_64 --shell INFO: mock.py version 1.2.8 starting (python version = 3.4.2)... Start: init plugins INFO: selinux disabled Finish: init plugins Start: run Start: chroot init INFO: calling preinit hooks INFO: enabled root cache INFO: enabled dnf cache Start: cleaning dnf metadata Finish: cleaning dnf metadata INFO: enabled ccache Traceback (most recent call last): File "/usr/sbin/mock", line 831, in <module> main() File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace result = func(*args, **kw) File "/usr/sbin/mock", line 653, in main run_command(options, args, config_opts, commands, buildroot, state) File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace result = func(*args, **kw) File "/usr/sbin/mock", line 684, in run_command commands.init(do_log=False) File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace result = func(*args, **kw) File "/usr/lib/python3.4/site-packages/mockbuild/backend.py", line 123, in init self.buildroot.initialize(**kwargs) File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace result = func(*args, **kw) File "/usr/lib/python3.4/site-packages/mockbuild/buildroot.py", line 84, in initialize self._init(prebuild=prebuild, do_log=do_log) File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace result = func(*args, **kw) File "/usr/lib/python3.4/site-packages/mockbuild/buildroot.py", line 128, in _init self._setup_devices() File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace result = func(*args, **kw) File "/usr/lib/python3.4/site-packages/mockbuild/buildroot.py", line 442, in _setup_devices os.symlink("/proc/self/mounts", self.make_chroot_path('etc', 'mtab')) FileExistsError: [Errno 17] File exists: '/proc/self/mounts' -> '/var/lib/mock/fedora-rawhide-x86_64/root/etc/mtab' It seems to me mock should handle this more gracefully: if the destination of the symlink already exists, either do nothing, or remove it before symlinking it.
And I see it's fixed upstream in commit cd3406f2eb4449a442e15bb8b1653436585c7c1c Can we get that in Fedora, please? :)
*** This bug has been marked as a duplicate of bug 1224732 ***