GNOME Bugzilla – Bug 121202
the iso image to burn should be created on the fly
Last modified: 2004-12-22 21:47:04 UTC
nautilus-cd-burner should create the iso image to write to the CD on the fly by pipeing mkisofs to cdrecord. That way disk space doesn't have to be available to burn a CD. I've always burned cd's like this with no problems. If this is considered an acceptable idea I volunteer to work on it myself.
Knock yourself out. You will need to make the usage of a temporary ISO image optional (on by default), and handle growisofs support. Cheers :)
Frankly I think it should be off by default, there's very few users who need it on. What is growisofs and why is it needed?
I'd prefer n-c-b use temporary files so that it Just Works instead of Mostly Works in the situations where piping won't work (i.e. files on non-local disks or heavy load).
Lots of people burn CD without temporary iso image (for example this feature was already requested from Diego González, Zygimantas Augilius, Egle K., Mantas Kriauciunas and also author of dvd+rw-tools recommends to use growisofs without making temporary iso image - look at http://fy.chalmers.se/~appro/linux/DVD+RW/) For more detailed discusion with suggestions how to realize burning without creating temporary iso image look at bugs #116873 and #113480
After discussing with Robert Love, we came to these conclusions: - cdrecord and most likely mkisofs would need to be suid root - we'd want to mlock() or even mlock_all() the memory containing the data to be passed on to the burner - a lower nice value would also help greatly, there's no need for RT, or it could bring the machine down, should the burner go crazy.
I took a stab at this bug and got stuck at trying to connect two programs started with g_spawn_async_with_pipes. What I was trying to do was simply connect the stdout of mkisofs to the stdin of cdrecord. I'm guessing you're aiming for a more involved solution where n-c-b actually passes the data between the two itself.
*** This bug has been marked as a duplicate of 113480 ***