-----------------------------------------------------------
|                                                         |
|                    X-CD-Roast 1.19                      |
|                                                         |
|            11.11.2018 T. Niederreiter                   |
|                                                         |
-----------------------------------------------------------

This is a reworked release of X-CD-Roast in order to make it
run again on current Linux systems. Also a great deal of bugs
were fixed and especially the first setup is now simpler.

X-CD-Roast requires now at least the alpha release of the cdrtools
3.02a09 or the final version 3.02. With older versions e.g.
cdrtools 3.01 or the fork cdrkit/wodim some things will not work. 


Whats new:
	
	- allow to set custom input/output charsets in the
	  ISO9660 options.

	- support for the ALSA sound driver on Linux.

	- a lot of bug fixes.


What is on the TODO list:

  	- finish port to GTK3.

	
Special thanks to Mathias B├╝ttner for lots of input, patches, testing and 
motivation to work on an updated version of X-CD-Roast. 


See the file ChangeLog for a complete list of changes.

 
For news see:

	http://www.xcdroast.org


Some features:

- Portable - runs on Linux, FreeBSD, OpenBSD, Solaris, HPUX, Irix, AIX ...
- Multi langual - translations available in 30 languages
- Graphical setup
- Graphical wav-player 
- Fully themeable via GTK2-Themes
- Tooltip help 
- Copies Data, Audio, Mixed-Modes
- Creates Data, Audio, Mixed-Mode, Multisession 
- Bootable support
- CD-Text
- CDDB-support via HTTP/Proxy or native 
- Copy/Master Data and Audio-CDs on the fly
- Administration mode for usage in computer pools 
- Data-DVD writing (DVD-R/RW, DVD+R/RW)
- Drag&Drop
- Networked device support (Remote-SCSI)


System-Requirements:

- GTK+ 2.24 
- cdrtools 3.02a09 (or greater, e.g. cdrtools 3.02)


Installation:

 - Install the required develop packages, depending on your distribution.

   For Ubuntu: 

	sudo apt-get install libgtk2.0-dev libasound2-dev

   For OpenSuse Leap:

	sudo zypper install make gtk2-devel alsa-devel

   For Fedora:

	sudo yum install gtk2-devel alsa-lib-devel 


 - Take care to REMOVE first old installations of X-CD-Roast first, especially
   if these were installed from RPMs/DEBs. Having two releases of X-CD-Roast 
   confuses most users.
   
 - Unpack xcdroast-1.19.tar.gz:

	tar xvfz xcdroast-1.19.tar.gz

   Change into the unpacked directory:

	cd xcdroast-1.19

   Run the configuration script:

	./configure

   To install xcdroast in another prefix-path than "/usr/local":

	./configure --prefix=/usr

   You can also configure where X-CD-Roast should look for the cdrtools.
   By default X-CD-Roast first looks in $PREFIX/lib/xcdroast/bin and
   then in $PREFIX/bin. 
   Example:

	./configure --prefix=/usr --with-cdrtools-prefix=/usr/local

   If you installed the cdrtools by a distribution package they will be most 
   likely installed in the /usr/bin path. Therefore you should compile 
   X-CD-Roast like this:

	./configure --with-cdrtools-prefix=/usr


   See "./configure --help" for a full list of supported options.

   Now compile X-CD-Roast with typing:

	make

   And install it with:

	sudo make install

 - Install cdrecord, mkisofs, cdda2wav and readcd: 
   Many distributions offer the cdrtools in their online repositories.
   Use that one, unless it is an old version.
   If you need cdrtools, download it here:

	http://cdrtools.sourceforge.net/private/cdrecord.html

   See the cdrtools documentation about details.

   Example under Linux:

	tar xvfz cdrtools-3.02a09.tar.gz 
	cd cdrtools-3.02
	make
	sudo make INS_BASE=/usr/local install

   If you don't set INS_BASE when doing "make install" the cdrtools will
   install themself to /opt/schily, so for compiling xcdroast you need then:

	./configure --with-cdrtools-prefix=/opt/schily

   X-CD-Roast looks for the cdrtools first in $PREFIX/lib/xcdroast/bin 
   ($PREFIX is /usr/local if you did not change it) and if it does not find
   them, it tries $PREFIX/bin (or whatever you configured as cdrtools prefix).


Now you can start X-CD-Roast with "xcdroast" from a terminal window. 


Permission Setup:

X-CD-Roast calls the tools cdrecord, cdda2wav and readcd which need root
permissions to be able to access the disc writer hardware directly. If you run
X-CD-Roast as the normal user, we need to setup cdrecord, etc. to give them
the neccessary rights. One way is here the SUID (Set User ID) directly on the
cdrtools binaries. If you compile and install the cdrtools by the source code
this is done automatically per "make install".

However, if cdrecord is installed by RPM or DEB, then most likely the SUID bit
was undone by the packager for possible security reasons. As an alternative
X-CD-Roast allows to set the SUID bit on a special tool (wrapper), which was
designed very securely and which will then call cdrecord, etc. itself. If you
install X-CD-Roast from source then the SUID bit will also be set automatically.
(Typical path of the wrapper: /usr/local/lib/xcdroast/bin/xcdrwrap)

In case X-CD-Roast is installed by RPM or DEB from your distribution, too,
again the wrapper may not have the SUID bit. This case, neither a SUID bit on
the cdrtools nor on the wrapper, is now detected by X-CD-Roast and there are
several ways to fix this.

At first is checked if the tool /usr/bin/gksudo is installed (e.g. by the package
gksu - this is to be checked by the creator of the RPM package). If this is
available, then this tool is launched to ask the user for the root password to
set the SUID bit on the wrapper tool.

If this fails, then the environment variable SUDO_ASKPASS (e.g. installed by
the package openssh-askpass) is checked per sudo -A. This will also set the
SUID bit on the wrapper tool securely. 

Should this fail, too, the user has to set the permission by himself by typing
this command which is fully displayed then by X-CD-Roast:

	sudo chmod 4711 ($PREFIX)/lib/xcdroast/bin/xcdrwrap 

If your prefix was /usr/local (the default) you need to use then:

	sudo chmod 4711 /usr/local/lib/xcdroast/bin/xcdrwrap 

It is also possible to start X-CD-Roast once as 'root' (without any setup).
This will check and set the SUID (Set User ID) bit silently.

 

See doc/DOCUMENTATION about basic usage and doc/FAQ for any questions you have.
 

Feedback / Bug Reports:

If you think you have found a bug, you have to find out first if you can
reproduce it reliably. Then run xcdroast in debug mode (-d 10 switch) and send
me the output. Please describe what you exactly did and what went wrong. Also,
set the language to English in the setup menu, so that I can understand all your
error messages myself. Please don't "complain" about missing features.
Remember that this release is another step of a work in progress.

Example of running X-CD-Roast in debug mode:

	xcdroast -d 10 2> debugoutput.txt
 

Please note:

The FAQ on http://www.xcdroast.org/faq is the first place to look when
you have problems.


11.11.2018 Thomas Niederreiter (tn@xcdroast.org)