-----------------------------------------------------------
|                                                         |
|                    X-CD-Roast 1.18                      |
|                                                         |
|               23.12.2017 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 some things will not work. 


Whats new:
	
	- the nonroot-mode (run as normal user) was made the
	  default setup, but without all the complicated setup

	- instead a user-host-mode was introduced to cover the
	  features of the old nonroot-mode for multiuser-setup
	  where you can decide which user or hosts are allowed
	  to start xcdroast. (Useful e.g. for computer labs in
	  universities)

	- reworked paranoia mode with several new settings

	- show a hidden audio track option

	- audio deemphasis option

	- improved the cddb-code (get cd text titles from the internet)

	- lots of charset bugfixes

	- modernized GTK2 code


What is on the TODO list:

  	- finish port to GTK3

	- native support for Linux ALSA sound drivers. 
	  (See the FAQ for a workaround to get working sound output now)

	
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 GTK2-devel packages, depending on your distribution.

   For Ubuntu 16.04: 

	sudo apt-get install libgtk2.0-dev gksu

   For OpenSuse Leap 42:

	sudo zypper install make gtk2-devel

   For Fedora 25:

	sudo yum install gtk2-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.18.tar.gz and run 

	./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

   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 

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.


23.12.2017 Thomas Niederreiter (tn@xcdroast.org)