Bug 211692 - Kadischi may raise an exception when attempting to copy device files.
Kadischi may raise an exception when attempting to copy device files.
Product: Fedora
Classification: Fedora
Component: kadischi (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: Chitlesh GOORAH
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2006-10-20 16:48 EDT by Toshio Kuratomi
Modified: 2007-11-30 17:11 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2007-07-07 18:21:37 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Toshio Kuratomi 2006-10-20 16:48:45 EDT
Description of problem:
Kadischi (in movefiles.py) uses shutil.copytree() to copy files from the livecd
directory into the system directory.  Unfortunately, copytree() doesn't work
with device special files.  This becomes a problem when copying the contents of
the /etc/udev directory as there may be precreated device files in one of the

Version-Release number of selected component (if applicable):
kadischi cvs checkout 10-20-2006

How reproducible:

Steps to Reproduce:
1. Have kadischi install the xorg-x11-drv-nvidia package from livna into the livecd.
2. This package creates /etc/udev/devices/* files which are device files
3. kadischi invokes movefiles.py which runs shutil.copytree().  When copytree()
tries to copy the device files, it raises an exception.
Actual results:
Exception is raised and kadischi terminates

Expected results:
Kadischi handles the exception and continues.

Additional info:
shutil.py copytree() has a note in the code that it doesn't handle sockets nad
device files properly.  It looks like we may need to make our own version that
does  (Maybe upstream would be interested in it as well.)

There's an if-then-else in shutil that checks for symlinks and directories.  It
also needs to check for device special files using stat before it can decide
that it's just a regular file and perform a normal copy.

Note: With the current implementation of copytree(), if the device files
reference a device built into the buildhost's kernel, we'll probably end up
reading from the device and outputting that data to the other directory.
Comment 1 Jasper O. Hartline 2007-02-27 22:30:47 EST
Can you provide some output from the terminal when the exception happens?
Comment 2 Toshio Kuratomi 2007-02-28 04:44:50 EST
I'm afraid I'm not creating any livecds anymore.  (I was laid off from my last
job because our livecd work was not generating enough revenue.)  So I don't have
an environment to reproduce this anymore.  I don't even know if recent versions
of the code still have this issue.  If you can't reproduce it, I can close this
bug report.
Comment 3 Chitlesh GOORAH 2007-07-07 18:21:37 EDT
Kadischi's development has stalled for a long time now.
There is no one to lead this project.

I'm therefore closing all open bugs related to kadischi as WONTFIX.

However I recommend you do try "revisor" to create your custom spins.
On Fedora 7, you can install revisor with:

yum install revisor

as root.

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