diff --git a/.cdrkit.metadata b/.cdrkit.metadata
new file mode 100644
index 0000000..ea6fa92
--- /dev/null
+++ b/.cdrkit.metadata
@@ -0,0 +1 @@
+3f7ddc06db0272942e1a4cd98c3c96462df77387 SOURCES/cdrkit-1.1.11.tar.gz
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..336fdae
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/cdrkit-1.1.11.tar.gz
diff --git a/SOURCES/0001-fix-file-name-buffer-overflow-in-isoinfo.patch b/SOURCES/0001-fix-file-name-buffer-overflow-in-isoinfo.patch
new file mode 100644
index 0000000..b547049
--- /dev/null
+++ b/SOURCES/0001-fix-file-name-buffer-overflow-in-isoinfo.patch
@@ -0,0 +1,40 @@
+From 05c639c8a0f61da73ca8f1f725f8f5394d8bf15f Mon Sep 17 00:00:00 2001
+From: Jakub Martisko <jamartis@redhat.com>
+Date: Thu, 2 Aug 2018 09:34:18 +0200
+Subject: [PATCH] fix: file name buffer overflow in isoinfo
+
+---
+ genisoimage/diag/isoinfo.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/genisoimage/diag/isoinfo.c b/genisoimage/diag/isoinfo.c
+index 3cc2678..a08141d 100644
+--- a/genisoimage/diag/isoinfo.c
++++ b/genisoimage/diag/isoinfo.c
+@@ -763,6 +763,11 @@ parse_dir(char *rootname, int extent, int len)
+ 				strcat(td->name, name_buf);
+ 				strcat(td->name, "/");
+ 			} else {
++				if ( (PATH_MAX - strlen(rootname)) < strlen(name_buf))
++				{
++					fprintf(stderr, "Name too long: %s%s\n", rootname, name_buf);
++					exit(1);
++				}	
+ 				strcpy(testname, rootname);
+ 				strcat(testname, name_buf);
+ 				if (xtract && strcmp(xtract, testname) == 0) {
+@@ -772,6 +777,11 @@ parse_dir(char *rootname, int extent, int len)
+ 			if (do_find &&
+ 			    (idr->name_len[0] != 1 ||
+ 			    (idr->name[0] != 0 && idr->name[0] != 1))) {
++				if ( (PATH_MAX - strlen(rootname)) < strlen(name_buf))
++				{
++					fprintf(stderr, "Name too long: %s%s\n", rootname, name_buf);
++					exit(1);
++				}	
+ 				strcpy(testname, rootname);
+ 				strcat(testname, name_buf);
+ 				printf("%s\n", testname);
+-- 
+2.14.4
+
diff --git a/SOURCES/cdrkit-1.1.10-build-fix.patch b/SOURCES/cdrkit-1.1.10-build-fix.patch
new file mode 100644
index 0000000..75c4db2
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.10-build-fix.patch
@@ -0,0 +1,11 @@
+diff -up cdrkit-1.1.10/genisoimage/genisoimage.c.build-fix cdrkit-1.1.10/genisoimage/genisoimage.c
+--- cdrkit-1.1.10/genisoimage/genisoimage.c.build-fix	2010-01-20 11:05:05.000000000 +0100
++++ cdrkit-1.1.10/genisoimage/genisoimage.c	2010-01-20 11:21:16.144098749 +0100
+@@ -47,6 +47,7 @@
+ 
+ #include <mconfig.h>
+ #include "genisoimage.h"
++#include "checksum.h"
+ #include "iso9660.h"
+ #include <errno.h>
+ #include <timedefs.h>
diff --git a/SOURCES/cdrkit-1.1.11-cmakewarn.patch b/SOURCES/cdrkit-1.1.11-cmakewarn.patch
new file mode 100644
index 0000000..a171e39
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-cmakewarn.patch
@@ -0,0 +1,9 @@
+diff -up cdrkit-1.1.11/CMakeLists.txt.cmakewarn cdrkit-1.1.11/CMakeLists.txt
+--- cdrkit-1.1.11/CMakeLists.txt.cmakewarn	2012-07-31 13:11:10.075500531 +0200
++++ cdrkit-1.1.11/CMakeLists.txt	2012-07-31 13:11:41.069108287 +0200
+@@ -1,3 +1,5 @@
++cmake_minimum_required(VERSION 2.8)
++cmake_policy(SET CMP0015 OLD)
+ PROJECT (cdrkit C)
+ SUBDIRS(include genisoimage wodim libedc libhfs_iso icedax libusal librols libunls readom netscsid 3rd-party/dirsplit)
+ 
diff --git a/SOURCES/cdrkit-1.1.11-devname.patch b/SOURCES/cdrkit-1.1.11-devname.patch
new file mode 100644
index 0000000..93e32d6
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-devname.patch
@@ -0,0 +1,30 @@
+diff -up wrk/libusal/scsi-linux-sg.c.wrk wrk/libusal/scsi-linux-sg.c
+--- wrk/libusal/scsi-linux-sg.c.wrk	2015-05-29 13:30:41.088896572 +0200
++++ wrk/libusal/scsi-linux-sg.c	2015-05-29 13:38:25.776303388 +0200
+@@ -509,7 +509,9 @@ usalo_open(SCSI *usalp, char *device)
+ 		/* scan and maybe keep one open, sg_setup decides */
+ #define HDX 0
+ #define SCD 1
+-#define SG 2
++/* second scd option included because of Fedora naming convention /dev/srN */
++#define SCD2 2
++#define SG 3
+ 		int h;
+ /*
+ retry_scan_open:
+@@ -533,6 +535,15 @@ retry_scan_open:
+ 						first=0;
+ 						last=255;
+ 						break;
++					}
++				case(SCD2):
++					{
++						if(!check_linux_26())
++							continue;
++						pattern="/dev/sr%d";
++						first=0;
++						last=255;
++						break;
+ 					}
+ 				case(SG):
+ 					{
diff --git a/SOURCES/cdrkit-1.1.11-dvdman.patch b/SOURCES/cdrkit-1.1.11-dvdman.patch
new file mode 100644
index 0000000..471a7a9
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-dvdman.patch
@@ -0,0 +1,70 @@
+diff -up cdrkit-1.1.11/wodim/wodim.1.dvdman cdrkit-1.1.11/wodim/wodim.1
+--- cdrkit-1.1.11/wodim/wodim.1.dvdman	2011-06-08 14:49:00.073093571 +0200
++++ cdrkit-1.1.11/wodim/wodim.1	2011-06-08 14:50:59.707093540 +0200
+@@ -835,49 +835,33 @@ newer ones) still implement the Sony pro
+ not yet become a problem to use this driver for all Sony drives. If you find
+ a newer Sony drive that does not work with this driver, please report.
+ .TP
+-.B mmc_dvd
++.B mmc_mdvd
+ The generic SCSI-3/mmc-2 DVD-R/DVD-RW driver is auto-selected whenever
+ .B wodim
+ finds a MMC-2 or MMC-3 compliant drive that supports to write DVDs and
+ an appropriate medium is loaded.
+-There is no Track At Once mode for DVD writers.
+-.TP
+-.B mmc_dvdplus
+-The generic SCSI-3/mmc-3 DVD+R/DVD+RW driver is auto-selected whenever
+-one of the DVD+ media types that are incompatible to each other is found.
+-It checks media and then 
+-branches to the driver that matches the current medium.
+-.TP
+-.B mmc_dvdplusr
+-The generic SCSI-3/mmc-3 DVD+R driver is auto-selected whenever
+-a DVD+R medium is found in an appropriate writer.
+ Note that for unknown reason, the DVD-Plus alliance does not
+-like that there is a simulation mode for DVD+R media.
+-The author of
+-.B wodim
+-tries to convince manufacturers to implement a simulation mode for DVD+R
+-and implement support.
+-DVD+R only supports one write mode that is somewhere between Track At Once
+-and Packet writing; this mode is selected in 
++like that there is a simulation mode for DVD+R and DVD+RW media nor a way 
++to erase DVD+RW media.
++DVD+R and DVD+RW only supports one write mode that is somewhere between 
++Track At Once and Packet writing; this mode is selected in 
+ .B wodim
+ via a the 
+ .BR \-dao / \-sao
+ option.
+-.TP
+-.B mmc_dvdplusrw
+-The generic SCSI-3/mmc-3 DVD+RW driver is auto-selected whenever
+-a DVD+RW medium is found in an appropriate writer.
+-As DVD+RW media needs to be formatted before its first use, wodim
+-auto-detects this media state and performs a format before it starts
+-to write.
+-Note that for unknown reason, the DVD-Plus alliance does not
+-like that there is a simulation mode nor a way to erase DVD+RW media.
+-DVD+RW only supports one write mode that is close to
+-Packet writing; this mode is selected in 
++As DVD+RW media needs to be formatted before its first use, 
+ .B wodim
+-via a the 
+-.BR \-dao / \-sao
+-option.
++auto-detects this media state and performs a format before it starts
++to write. 
++.sp
++Note: If you have any problems during burning DVDs using 
++.BR wodim , 
++please consider 
++.B growisofs 
++from package
++.BR dvd+rw-tools , 
++which often works better 
++in these cases.
+ .TP
+ .B cw_7501
+ The driver for Matsushita/Panasonic CW-7501 is auto-selected when
diff --git a/SOURCES/cdrkit-1.1.11-format.patch b/SOURCES/cdrkit-1.1.11-format.patch
new file mode 100644
index 0000000..983ed23
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-format.patch
@@ -0,0 +1,129 @@
+diff -up cdrkit-1.1.11/wodim/drv_mmc.c.format cdrkit-1.1.11/wodim/drv_mmc.c
+--- cdrkit-1.1.11/wodim/drv_mmc.c.format	2011-05-18 16:49:14.591822130 +0200
++++ cdrkit-1.1.11/wodim/drv_mmc.c	2011-05-18 16:49:14.596822130 +0200
+@@ -1507,6 +1507,11 @@ getdisktype_mdvd(SCSI *usalp, cdr_t *dp)
+ 	dstat_t	*dsp = dp->cdr_dstat;
+ 
+ 	struct track_info track_info;
++
++	extern char *buf;
++	struct disk_info *dip;
++	int profile;
++
+     if(lverbose)
+         printf("HINT: use dvd+rw-mediainfo from dvd+rw-tools for information extraction.\n");
+ 	/* if(getdisktype_mmc(usalp, dp)<0)
+@@ -1521,6 +1526,18 @@ getdisktype_mdvd(SCSI *usalp, cdr_t *dp)
+ 	dsp->ds_disktype&= ~DT_CD;
+ 	dsp->ds_disktype|= DT_DVD;
+ 
++	profile = get_curprofile(usalp);
++	if (profile == 0x1A) {
++		dip = (struct disk_info *)buf;
++		if (get_diskinfo(usalp, dip) < 0)
++			return (-1);
++		if (dip->disk_status == DS_EMPTY) {	/* Unformatted	    */
++			dsp->ds_flags |= DSF_NEED_FORMAT;
++			if(lverbose)
++				printf("The medium is empty, it will be auto formatted.\n");
++		}
++	}
++	
+ 	return (ret);
+ 
+ }
+diff -up cdrkit-1.1.11/wodim/scsi_cdr.c.format cdrkit-1.1.11/wodim/scsi_cdr.c
+--- cdrkit-1.1.11/wodim/scsi_cdr.c.format	2011-05-18 16:49:14.601822130 +0200
++++ cdrkit-1.1.11/wodim/scsi_cdr.c	2011-05-18 16:49:14.600822130 +0200
+@@ -1328,7 +1328,7 @@ scsi_format(SCSI *usalp, caddr_t addr, i
+ 	}
+ 	sleep(10);
+ 	printf("\rFormating in progress: 100.00 %% done.        \n");
+-	if (pid) exit (0);
++	if (pid > 0) exit (0);
+ 	return ret;
+ }
+ 
+diff -up cdrkit-1.1.11/wodim/wodim.c.format cdrkit-1.1.11/wodim/wodim.c
+--- cdrkit-1.1.11/wodim/wodim.c.format	2011-05-18 16:49:14.584822130 +0200
++++ cdrkit-1.1.11/wodim/wodim.c	2011-05-18 17:21:59.510821630 +0200
+@@ -946,6 +946,40 @@ int main(int argc, char *argv[])
+ 		print_toc(usalp, dp);
+ 		comexit(0);
+ 	}
++	
++	if ((flags & F_FORMAT) || (dp->cdr_dstat->ds_flags & DSF_NEED_FORMAT)) {
++		printf("wodim: media format asked\n");
++		/*
++		* Do not abort if OPC failes. Just give it a chance
++		* for better laser power calibration than without OPC.
++		*
++		* Ricoh drives return with a vendor unique sense code.
++		* This is most likely because they refuse to do OPC
++		* on a non blank media.
++		*/
++		usalp->silent++;
++		do_opc(usalp, dp, flags);
++		usalp->silent--;
++		wait_unit_ready(usalp, 120);
++		if (gettimeofday(&starttime, (struct timezone *)0) < 0)
++			errmsg("Cannot get start time\n");
++		
++		if ((*dp->cdr_format)(usalp, dp, formattype) < 0) {
++			errmsgno(EX_BAD, "Cannot format disk, aborting.\n");
++			comexit(EX_BAD);
++		}
++		if (gettimeofday(&fixtime, (struct timezone *)0) < 0)
++			errmsg("Cannot get format time\n");
++		if (lverbose)
++			prtimediff("Formatting time: ", &starttime, &fixtime);
++
++		if (!wait_unit_ready(usalp, 240) || tracks == 0) {
++			comexit(0);
++		}
++		if (gettimeofday(&starttime, (struct timezone *)0) < 0)
++			errmsg("Cannot get start time\n");
++	}
++	
+ #ifdef	XXX
+ 	if ((*dp->cdr_check_session)() < 0) {
+ 		comexit(EX_BAD);
+@@ -1230,38 +1264,6 @@ int main(int argc, char *argv[])
+ 			comexit(0);
+ 		}
+ 	}
+-	if (flags & F_FORMAT) {
+-		printf("wodim: media format asked\n");
+-		/*
+-		* Do not abort if OPC failes. Just give it a chance
+-		* for better laser power calibration than without OPC.
+-		*
+-		* Ricoh drives return with a vendor unique sense code.
+-		* This is most likely because they refuse to do OPC
+-		* on a non blank media.
+-		*/
+-		usalp->silent++;
+-		do_opc(usalp, dp, flags);
+-		usalp->silent--;
+-		wait_unit_ready(usalp, 120);
+-		if (gettimeofday(&starttime, (struct timezone *)0) < 0)
+-			errmsg("Cannot get start time\n");
+-
+-		if ((*dp->cdr_format)(usalp, dp, formattype) < 0) {
+-			errmsgno(EX_BAD, "Cannot format disk, aborting.\n");
+-			comexit(EX_BAD);
+-		}
+-		if (gettimeofday(&fixtime, (struct timezone *)0) < 0)
+-			errmsg("Cannot get format time\n");
+-		if (lverbose)
+-			prtimediff("Formatting time: ", &starttime, &fixtime);
+-
+-		if (!wait_unit_ready(usalp, 240) || tracks == 0) {
+-			comexit(0);
+-		}
+-		if (gettimeofday(&starttime, (struct timezone *)0) < 0)
+-			errmsg("Cannot get start time\n");
+-	}
+ 	/*
+ 	* Reset start time so we will not see blanking time and
+ 	* writing time counted together.
diff --git a/SOURCES/cdrkit-1.1.11-handler.patch b/SOURCES/cdrkit-1.1.11-handler.patch
new file mode 100644
index 0000000..5b3fa6a
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-handler.patch
@@ -0,0 +1,12 @@
+diff -up cdrkit-1.1.11/icedax/icedax.c.handler cdrkit-1.1.11/icedax/icedax.c
+--- cdrkit-1.1.11/icedax/icedax.c.handler	2011-06-02 16:37:02.446206285 +0200
++++ cdrkit-1.1.11/icedax/icedax.c	2011-06-02 16:37:25.444206279 +0200
+@@ -1054,7 +1054,7 @@ static void exit_wrapper(int status)
+ 
+ 	if (child_pid != 0) {
+ 		SCSI *usalp = get_scsi_p();
+-		if (usalp->running) {
++		if (usalp && usalp->running) {
+ 			usalp->cb_fun = on_exitscsi;
+ 			usalp->cb_arg = (void *) (uintptr_t) status;
+ 		} else {
diff --git a/SOURCES/cdrkit-1.1.11-manpagefix.patch b/SOURCES/cdrkit-1.1.11-manpagefix.patch
new file mode 100644
index 0000000..6ff51c0
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-manpagefix.patch
@@ -0,0 +1,201 @@
+diff -up wrk/genisoimage/genisoimage.1.wrk wrk/genisoimage/genisoimage.1
+--- wrk/genisoimage/genisoimage.1.wrk	2017-01-04 15:58:13.697936687 +0100
++++ wrk/genisoimage/genisoimage.1	2017-01-04 16:08:22.411801026 +0100
+@@ -115,7 +115,8 @@ is the path of the directory tree to be
+ Multiple paths can be specified, and
+ .B genisoimage
+ will merge the files found in all of the specified path components to
+-form the filesystem image.
++form the filesystem image. If an error is encountered while handling directory tree, 
++only error messages are produced and the process is aborted - incomplete image is not created.
+ .PP
+ If the option
+ .B \-graft\-points
+@@ -180,6 +181,8 @@ in the
+ file.
+ .TP
+ .BI \-A " application_id"
++.TP
++.BI \-appid " application_id"
+ Specifies a text string that will be written into the volume header.
+ This should describe the application that will be on the disc.  There
+ is space for 128 characters.  Equivalent to
+@@ -365,6 +368,8 @@ the Sun disk label will overlay the firs
+ boot image.
+ .TP
+ .BI \-b " eltorito_boot_image"
++.TP
++.BI \-eltorito\-boot " eltorito_boot_image"
+ Specifies the path and filename of the boot image to be used when making
+ an El Torito bootable CD for x86 PCs. The pathname must be relative to
+ the source path specified to
+@@ -427,6 +432,8 @@ See the
+ section for a description of this table.
+ .TP
+ .BI \-C " last_sess_start,next_sess_start"
++.TP
++.BI \-cdrecord\-params " last_sess_start,next_sess_start"
+ This option is needed to create a CD Extra or the image of a second
+ session or a higher-level session for a multisession disc.
+ .B \-C
+@@ -452,6 +459,8 @@ session on a CD Extra. This is a multise
+ in the first session and an ISO9660 filesystem in the second session.
+ .TP
+ .BI \-c " boot_catalog"
++.TP
++.BI \-eltorito\-catalog " boot_catalog"
+ Specifies the path and filename of the boot catalog, which is required
+ for an El Torito bootable CD. The pathname must be relative to the source
+ path specified to
+@@ -488,6 +497,12 @@ For the parameter
+ see the description of
+ .BR \-M .
+ .TP
++.BI \-checksum_algorithm_iso " alg1,alg2,..."
++Specify the checksum types desired for the output image.
++.TP
++.BI \-checksum_algorithm_template " alg1,alg2,..."
++Specify the checksum types desired for the output jigdo template.
++.TP
+ .BI \-copyright " file"
+ Specifies copyright information, typically a filename on the disc.
+ There is space for 37 characters.  Equivalent to
+@@ -497,12 +512,16 @@ in the
+ file.
+ .TP
+ .B \-d
++.TP
++.B \-omit\-period
+ Do not append a period to files that do not have one.
+ .br
+ This violates the ISO9660 standard, but it happens to work on many systems.
+ Use with caution.
+ .TP
+ .B \-D
++.TP
++.B \-disable\-deep\-relocation
+ Do not use deep directory relocation, and instead just pack them in the
+ way we see them.
+ .br
+@@ -510,6 +529,9 @@ If ISO9660:1999 has not been selected,
+ this violates the ISO9660 standard, but it happens to work on many systems.
+ Use with caution.
+ .TP
++.B \-debug
++Set debug flag.
++.TP
+ .BI \-dir\-mode " mode"
+ Overrides the mode of directories used to create the image to
+ .IR mode ,
+@@ -535,7 +557,14 @@ another directory
+ needs to include all needed files (filenames must be all caps) for a
+ compliant DVD-Video filesystem.
+ .TP
++.BI \-e " efi_boot_file"
++.TP
++.BI \-efi\-boot " efi_boot_file"
++Set EFI boot image name.
++.TP
+ .B \-f
++.TP
++.B \-follow\-links
+ Follow symbolic links when generating the filesystem.  When this option is not
+ in use, symbolic links will be entered using Rock Ridge if enabled, otherwise
+ they will be ignored.
+@@ -740,6 +769,8 @@ See the
+ section below for more details.
+ .TP
+ .B \-l
++.TP
++.B \-full\-iso9660\-filenames
+ Allow full 31-character filenames.  Normally the ISO9660 filename will be in an
+ 8.3 format which is compatible with MS-DOS, even though the ISO9660 standard
+ allows filenames of up to 31 characters.  If you use this option, the disc may
+@@ -870,6 +901,8 @@ with
+ .BR \-C .
+ .TP
+ .B \-N
++.TP
++.B \-omit\-version\-number
+ Omit version numbers from ISO9660 filenames.
+ .br
+ This violates the ISO9660 standard, but no one really uses the
+@@ -967,6 +1000,8 @@ in the
+ file.
+ .TP
+ .BI \-p " preparer_id"
++.TP
++.BI \-preparer " preparer_id"
+ Specifies a text string that will be written into the volume header.
+ This should describe the preparer of the CD-ROM, usually with a mailing
+ address and phone number.  There is space for 128 characters.
+@@ -1008,10 +1043,14 @@ This makes
+ even less verbose.  No progress output will be provided.
+ .TP
+ .B \-R
++.TP
++.B \-rock
+ Generate SUSP and RR records using the Rock Ridge protocol to further describe
+ the files on the ISO9660 filesystem.
+ .TP
+ .B \-r
++.TP
++.B \-rational\-rock
+ This is like the \-R option, but file ownership and modes are set to
+ more useful values.  The uid and gid are set to zero, because they are
+ usually only useful on the author's system, and not useful to the
+@@ -1092,6 +1131,11 @@ intentionally. Accessing several older v
+ support by the operating system to choose which sessions are to be
+ mounted.
+ .TP
++.BI \-s " sector type"
++.TP
++.BI \-sectype " sector type"
++Set output sector type to e.g. data/xa1/raw.
++ .TP
+ .BI \-sort " sort_file"
+ Sort file locations on the media. Sorting is controlled by a file that
+ contains pairs of filenames and sorting offset weighting.
+@@ -1213,6 +1257,8 @@ in the
+ file.
+ .TP
+ .B \-T
++.TP
++.B \-translation\-table
+ Generate a file
+ .I TRANS.TBL
+ in each directory on the CD-ROM, which can be used
+@@ -1262,6 +1308,8 @@ to
+ This option is the default on VMS. 
+ .TP
+ .B \-U
++.TP
++.B \-untranslated\-filenames
+ Allows "untranslated" filenames, completely violating the ISO9660 standards
+ described above.  Enables the following flags:
+ .B \-d \-l \-N \-allow\-leading\-dots \-relaxed\-filenames
+@@ -1333,6 +1381,8 @@ must be specified before
+ on each command line.
+ .TP
+ .B \-v
++.TP
++.B \-verbose
+ Verbose execution. If given twice on the command line, extra debug information
+ will be printed.
+ .TP
+@@ -1341,7 +1391,15 @@ Identical to
+ .B \-m
+ .IR glob .
+ .TP
++.B \-XA
++Generate XA directory attruibutes.
++.TP
++.B \-xa
++Generate rationalized XA directory attruibutes.
++.TP
+ .B \-z
++.TP
++.B \-transparent\-compression
+ Generate special
+ .I RRIP
+ records for transparently compressed files.
diff --git a/SOURCES/cdrkit-1.1.11-memset.patch b/SOURCES/cdrkit-1.1.11-memset.patch
new file mode 100644
index 0000000..6609159
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-memset.patch
@@ -0,0 +1,37 @@
+diff -up wrk/genisoimage/jte.c.wrk wrk/genisoimage/jte.c
+--- wrk/genisoimage/jte.c.wrk	2013-02-22 13:24:47.722196877 +0100
++++ wrk/genisoimage/jte.c	2013-02-25 12:41:45.136653487 +0100
+@@ -280,7 +280,7 @@ extern int list_file_in_jigdo(char *file
+     if (!jtemplate_out)
+         return 0;
+ 
+-    memset(md5, 0, sizeof(md5));
++    memset(md5, 0, 16);
+ 
+     /* Cheaper to check file size first */
+     if (size < jte_min_size)
+diff -up wrk/genisoimage/md5.c.wrk wrk/genisoimage/md5.c
+--- wrk/genisoimage/md5.c.wrk	2013-02-22 13:15:18.210866321 +0100
++++ wrk/genisoimage/md5.c	2013-02-22 13:15:29.979935133 +0100
+@@ -183,7 +183,7 @@ mk_MD5Final (unsigned char digest[16], s
+ 	putu32(ctx->buf[1], digest + 4);
+ 	putu32(ctx->buf[2], digest + 8);
+ 	putu32(ctx->buf[3], digest + 12);
+-	memset(ctx, 0, sizeof(ctx));	/* In case it's sensitive */
++	memset(ctx, 0, sizeof(*ctx));	/* In case it's sensitive */
+ }
+ 
+ /* The four core functions - F1 is optimized somewhat */
+diff -up wrk/libedc/edcspeed.c.wrk wrk/libedc/edcspeed.c
+--- wrk/libedc/edcspeed.c.wrk	2013-02-22 10:45:33.353219110 +0100
++++ wrk/libedc/edcspeed.c	2013-02-22 10:46:52.497686387 +0100
+@@ -35,7 +35,8 @@ static int encspeed()
+ 	secs = 10;
+ 	end = 75*1000000 * secs;
+ 
+-	memset(sect, 0, sizeof(sect));
++	//faulty and unneccessary, immediately rewritten again
++	//memset(sect, 0, sizeof(sect));
+ 	for (i=0; i < 2352; ) {
+ 		sect[i++] = 'J';
+ 		sect[i++] = 'S';
diff --git a/SOURCES/cdrkit-1.1.11-paranoiacdda.patch b/SOURCES/cdrkit-1.1.11-paranoiacdda.patch
new file mode 100644
index 0000000..062971d
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-paranoiacdda.patch
@@ -0,0 +1,556 @@
+diff -up cdrkit-1.1.11/CMakeLists.txt.paranoiacdda cdrkit-1.1.11/CMakeLists.txt
+--- cdrkit-1.1.11/CMakeLists.txt.paranoiacdda	2012-07-31 14:27:15.166155309 +0200
++++ cdrkit-1.1.11/CMakeLists.txt	2012-07-31 14:27:28.469613175 +0200
+@@ -1,3 +1,3 @@
+ PROJECT (cdrkit C)
+-SUBDIRS(include genisoimage wodim libedc libhfs_iso libparanoia icedax libusal librols libunls readom netscsid 3rd-party/dirsplit)
++SUBDIRS(include genisoimage wodim libedc libhfs_iso icedax libusal librols libunls readom netscsid 3rd-party/dirsplit)
+ 
+diff -up cdrkit-1.1.11/icedax/CMakeLists.txt.paranoiacdda cdrkit-1.1.11/icedax/CMakeLists.txt
+--- cdrkit-1.1.11/icedax/CMakeLists.txt.paranoiacdda	2012-07-31 14:27:15.228157411 +0200
++++ cdrkit-1.1.11/icedax/CMakeLists.txt	2012-07-31 14:27:15.239157786 +0200
+@@ -1,8 +1,9 @@
+ PROJECT (icedax C)
+-INCLUDE_DIRECTORIES(../include ../wodim ../libparanoia ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/include)
++INCLUDE_DIRECTORIES(../include ../wodim ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/include)
+ include(../include/AddScgBits.cmake)
+ include(../include/AddSchilyBits.cmake)
+ include(../include/AddNetworkBits.cmake)
++INCLUDE (CheckLibraryExists) 
+ 
+ FIND_FILE (HAVE_SYS_SOUNDCARD_H sys/soundcard.h)
+ IF(HAVE_SYS_SOUNDCARD_H)
+@@ -18,12 +19,20 @@ IF(HAVE_LIBOSSAUDIO)
+    LIST(APPEND EXTRA_LIBS "ossaudio")
+ ENDIF(HAVE_LIBOSSAUDIO)
+ 
+-LIST(APPEND EXTRA_LIBS  paranoia)
++CHECK_INCLUDE_FILES(cdda/cdda_interface.h HAVE_CDDA_INTERFACE_H)
++CHECK_LIBRARY_EXISTS (cdda_paranoia paranoia_init "" HAVE_LIBPARANOIA)
++IF(HAVE_CDDA_INTERFACE_H AND HAVE_LIBPARANOIA)
++   LIST(APPEND EXTRA_LIBS cdda_paranoia cdda_interface)
++ELSE(HAVE_CDDA_INTERFACE_H AND HAVE_LIBPARANOIA)
++   MESSAGE(FATAL_ERROR "You need cdparanoia library installed")
++ENDIF(HAVE_CDDA_INTERFACE_H AND HAVE_LIBPARANOIA)
++	
++LIST(APPEND EXTRA_LIBS)
+ IF (WIN32)
+ 	LIST(APPEND EXTRA_LIBS winmm)
+ ENDIF (WIN32)
+ 
+-LINK_DIRECTORIES(../librols ../libusal  ../libparanoia)
++LINK_DIRECTORIES(../librols ../libusal)
+ ADD_EXECUTABLE (icedax aifc.c aiff.c base64.c icedax.c interface.c ioctl.c raw.c resample.c ringbuff.c scsi_cmds.c semshm.c setuid.c sha_func.c sndconfig.c sun.c toc.c wav.c)
+ TARGET_LINK_LIBRARIES(icedax wodimstuff ${EXTRA_LIBS})
+ SET_TARGET_PROPERTIES(icedax PROPERTIES  SKIP_BUILD_RPATH TRUE)
+diff -up cdrkit-1.1.11/icedax/global.h.paranoiacdda cdrkit-1.1.11/icedax/global.h
+--- cdrkit-1.1.11/icedax/global.h.paranoiacdda	2012-07-31 14:27:15.232157548 +0200
++++ cdrkit-1.1.11/icedax/global.h	2012-07-31 14:27:15.226157345 +0200
+@@ -17,7 +17,8 @@
+ #include "md5.h"
+ #endif
+ #ifdef	USE_PARANOIA
+-#include "cdda_paranoia.h"
++#include <cdda/cdda_interface.h>
++#include <cdda/cdda_paranoia.h>
+ #endif
+ 
+ typedef struct index_list
+@@ -102,10 +103,10 @@ typedef struct global
+ 
+ 	struct paranoia_parms_t
+ 	{
+-	        Ucbit	disable_paranoia:1;
+-	        Ucbit	disable_extra_paranoia:1;
+-	        Ucbit	disable_scratch_detect:1;
+-	        Ucbit	disable_scratch_repair:1;
++	        char	disable_paranoia:1;
++	        char	disable_extra_paranoia:1;
++	        char	disable_scratch_detect:1;
++	        char	disable_scratch_repair:1;
+ 		int	retries;
+ 		int	overlap;
+ 		int	mindynoverlap;
+diff -up cdrkit-1.1.11/icedax/icedax.c.paranoiacdda cdrkit-1.1.11/icedax/icedax.c
+--- cdrkit-1.1.11/icedax/icedax.c.paranoiacdda	2012-07-31 14:27:15.237157718 +0200
++++ cdrkit-1.1.11/icedax/icedax.c	2012-07-31 14:27:15.238157752 +0200
+@@ -120,6 +120,10 @@
+ #ifdef	USE_LAME
+ #include "mp3.h"	/* mp3 file handling */
+ #endif
++#ifdef	USE_PARANOIA
++#include <cdda/cdda_interface.h>
++#include <cdda/cdda_paranoia.h>
++#endif
+ #include "interface.h"  /* low level cdrom interfacing */
+ #include "icedax.h"
+ #include "resample.h"
+@@ -128,9 +132,6 @@
+ #include "ringbuff.h"
+ #include "global.h"
+ #include "exitcodes.h"
+-#ifdef	USE_PARANOIA
+-#include "cdda_paranoia.h"
+-#endif
+ #include "defaults.h"
+ 
+ static void RestrictPlaybackRate(long newrate);
+@@ -800,7 +801,7 @@ static void init_globals()
+   global.useroverlap = -1;      /* amount of overlapping sectors user override */
+   global.need_hostorder = 0;	/* processing needs samples in host endianess */
+   global.in_lendian = -1;	/* input endianess from SetupSCSI() */
+-  global.outputendianess = NONE; /* user specified output endianess */
++  global.outputendianess = NONE_EN; /* user specified output endianess */
+   global.findminmax  =  0;	/* flag find extrem amplitudes */
+ #ifdef HAVE_LIMITS_H
+   global.maxamp[0] = INT_MIN;	/* maximum amplitude */
+@@ -2418,7 +2419,7 @@ Rate   Divider      Rate   Divider
+   if (bulk == -1) bulk = 0;
+ 
+   global.need_big_endian = global.audio_out->need_big_endian;
+-  if (global.outputendianess != NONE)
++  if (global.outputendianess != NONE_EN)
+     global.need_big_endian = global.outputendianess == BIG;
+ 
+   if (global.no_file) global.fname_base[0] = '\0';
+@@ -2602,7 +2603,7 @@ Rate   Divider      Rate   Divider
+     fputs( ", soundcard", stderr );
+ #endif
+ #if defined USE_PARANOIA
+-    fputs( ", libparanoia", stderr );
++    fputs( ", libcdda_paranoia", stderr );
+ #endif
+     fputs( " support\n", stderr );
+   }
+@@ -2892,8 +2893,28 @@ Rate   Divider      Rate   Divider
+ #ifdef	USE_PARANOIA
+ 	if (global.paranoia_selected) {
+ 		long paranoia_mode;
++		cdrom_drive *tmpdrive;
++		usal_close(get_scsi_p());
+ 
+-		global.cdp = paranoia_init(get_scsi_p(), global.nsectors);
++		tmpdrive = cdda_identify(global.dev_name, 0, NULL);
++		if (!tmpdrive)
++		{
++			fputs("Can't identify disc\n", stderr);
++                	return 1;
++		}
++
++		if(global.nsectors)
++		{
++		  tmpdrive->nsectors = global.nsectors;
++		  tmpdrive->bigbuff = global.nsectors * CD_FRAMESIZE_RAW;
++		}
++		if (cdda_open(tmpdrive) != 0)
++		{
++		  fputs("Can't open disc\n", stderr);
++		  cdda_close(tmpdrive);
++		  return 1;
++		}
++		global.cdp = paranoia_init(tmpdrive);
+ 
+ 		if (global.paranoia_parms.overlap >= 0) {
+ 			int	overlap = global.paranoia_parms.overlap;
+@@ -2902,17 +2923,7 @@ Rate   Divider      Rate   Divider
+ 				overlap = global.nsectors - 1;
+ 			paranoia_overlapset(global.cdp, overlap);
+ 		}
+-		/*
+-		 * Default to a  minimum of dynamic overlapping == 0.5 sectors.
+-		 * If we don't do this, we get the default from libparanoia
+-		 * which is approx. 0.1.
+-		 */
+-		if (global.paranoia_parms.mindynoverlap < 0)
+-			paranoia_dynoverlapset(global.cdp, CD_FRAMEWORDS/2, -1);
+-		paranoia_dynoverlapset(global.cdp,
+-			global.paranoia_parms.mindynoverlap * CD_FRAMEWORDS,
+-			global.paranoia_parms.maxdynoverlap * CD_FRAMEWORDS);
+-
++	
+ 		paranoia_mode = PARANOIA_MODE_FULL ^ PARANOIA_MODE_NEVERSKIP;
+ 
+ 		if (global.paranoia_parms.disable_paranoia) {
+diff -up cdrkit-1.1.11/icedax/icedax.h.paranoiacdda cdrkit-1.1.11/icedax/icedax.h
+--- cdrkit-1.1.11/icedax/icedax.h.paranoiacdda	2012-07-31 14:27:15.216157005 +0200
++++ cdrkit-1.1.11/icedax/icedax.h	2012-07-31 14:27:15.217157039 +0200
+@@ -41,7 +41,7 @@
+ 
+ /* Endianess */
+ #define GUESS (-2)
+-#define NONE (-1)
++#define NONE_EN (-1)
+ #define LITTLE 0
+ #define BIG 1
+ 
+diff -up cdrkit-1.1.11/icedax/interface.c.paranoiacdda cdrkit-1.1.11/icedax/interface.c
+--- cdrkit-1.1.11/icedax/interface.c.paranoiacdda	2012-07-31 14:27:15.235157650 +0200
++++ cdrkit-1.1.11/icedax/interface.c	2012-07-31 14:27:15.232157548 +0200
+@@ -116,7 +116,7 @@ int		(*Play_at)(SCSI *usalp, unsigned in
+ int		(*StopPlay)(SCSI *usalp);
+ void		(*trash_cache)(UINT4 *p, unsigned lSector, unsigned SectorBurstVal);
+ 
+-#if	defined	USE_PARANOIA
++#if	0 //defined	USE_PARANOIA
+ long cdda_read(void *d, void *buffer, long beginsector, long sectors);
+ 
+ long cdda_read(void *d, void *buffer, long beginsector, long sectors)
+diff -up cdrkit-1.1.11/icedax/toc.c.paranoiacdda cdrkit-1.1.11/icedax/toc.c
+--- cdrkit-1.1.11/icedax/toc.c.paranoiacdda	2012-07-31 14:27:15.225157311 +0200
++++ cdrkit-1.1.11/icedax/toc.c	2012-07-31 14:27:15.230157480 +0200
+@@ -379,8 +379,7 @@ static void emit_cddb_form(char *fname_b
+ static void emit_cdindex_form(char *fname_baseval);
+ #endif
+ 
+-
+-typedef struct TOC {	/* structure of table of contents (cdrom) */
++typedef struct TOC_t {	/* structure of table of contents (cdrom) */
+ 	unsigned char reserved1;
+ 	unsigned char bFlags;
+ 	unsigned char bTrack;
+@@ -391,8 +390,7 @@ typedef struct TOC {	/* structure of tab
+ 	int frms;
+ 	unsigned char ISRC[16];
+ 	int	SCMS;
+-} TOC;
+-
++} TOC_t;
+ 
+ /* Flags contains two fields:
+     bits 7-4 (ADR)
+@@ -432,7 +430,7 @@ struct iterator {
+ 	int index;
+ 	int startindex;
+ 	void        (*reset)(struct iterator *this);
+-	struct TOC *(*getNextTrack)(struct iterator *this);
++	struct TOC_t *(*getNextTrack)(struct iterator *this);
+ 	int         (*hasNextTrack)(struct iterator *this);
+ };
+ 
+@@ -518,7 +516,7 @@ unsigned FixupTOC(unsigned no_tracks)
+ 		    InitIterator(&i, 1);
+ 
+ 	    while (i.hasNextTrack(&i)) {
+-		    struct TOC *p = i.getNextTrack(&i);
++		    struct TOC_t *p = i.getNextTrack(&i);
+ 		    if (IS__AUDIO(p)) count_audio_tracks++;
+ 	    }
+ 
+@@ -733,7 +731,7 @@ static void emit_cddb_form(char *fname_b
+   fprintf( cddb_form, "# Track frame offsets:\n#\n");
+ 
+   while (i.hasNextTrack(&i)) {
+-	  struct TOC *p = i.getNextTrack(&i);
++	  struct TOC_t *p = i.getNextTrack(&i);
+ 	  if (GETTRACK(p) == CDROM_LEADOUT) break;
+ 	  fprintf( cddb_form,
+ 		   "# %lu\n", 150 + Get_AudioStartSector(GETTRACK(p)));
+@@ -765,7 +763,7 @@ static void emit_cddb_form(char *fname_b
+ 
+   i.reset(&i);
+   while (i.hasNextTrack(&i)) {
+-	  struct TOC *p = i.getNextTrack(&i);
++	  struct TOC_t *p = i.getNextTrack(&i);
+ 	  int ii;
+ 
+ 	  ii = GETTRACK(p);
+@@ -788,7 +786,7 @@ static void emit_cddb_form(char *fname_b
+ 
+   i.reset(&i);
+   while (i.hasNextTrack(&i)) {
+-	  struct TOC *p = i.getNextTrack(&i);
++	  struct TOC_t *p = i.getNextTrack(&i);
+ 	  int ii;
+ 
+ 	  ii = GETTRACK(p);
+@@ -1495,7 +1493,7 @@ static int IsSingleArtist(void)
+ 	InitIterator(&i, 1);
+ 
+ 	while (i.hasNextTrack(&i)) {
+-		struct TOC *p = i.getNextTrack(&i);
++		struct TOC_t *p = i.getNextTrack(&i);
+ 		int ii;
+ 
+ 		if (IS__DATA(p) || GETTRACK(p) == CDROM_LEADOUT) continue;
+@@ -1681,7 +1679,7 @@ static void emit_cdindex_form(char *fnam
+ 	 global.creator ? ascii2html(global.creator) : "");
+ 
+     while (i.hasNextTrack(&i)) {
+-	    struct TOC *p = i.getNextTrack(&i);
++	    struct TOC_t *p = i.getNextTrack(&i);
+ 	    int ii = GETTRACK(p);
+ 
+ 	    if (ii == CDROM_LEADOUT) break;
+@@ -1703,7 +1701,7 @@ static void emit_cdindex_form(char *fnam
+     fprintf( cdindex_form, "   <MultipleArtistCD>\n");
+ 
+     while (i.hasNextTrack(&i)) {
+-	    struct TOC *p = i.getNextTrack(&i);
++	    struct TOC_t *p = i.getNextTrack(&i);
+ 	    int ii = GETTRACK(p);
+ 
+ 	    if (ii == CDROM_LEADOUT) break;
+@@ -1942,9 +1940,9 @@ static void DisplayToc_with_gui(unsigned
+ 
+ 	if ((global.verbose & (SHOW_TOC | SHOW_STARTPOSITIONS | SHOW_SUMMARY | SHOW_TITLES)) != 0
+ 	    && i.hasNextTrack(&i)) {
+-		TOC *o = i.getNextTrack(&i);
++		TOC_t *o = i.getNextTrack(&i);
+ 		while (i.hasNextTrack(&i)) {
+-			TOC *p = i.getNextTrack(&i);
++			TOC_t *p = i.getNextTrack(&i);
+ 			int from;
+ 			from = GETTRACK(o);
+ 
+@@ -2072,9 +2070,9 @@ static void DisplayToc_no_gui(unsigned l
+ 	count_audio_trks = 0;
+ 
+ 	if (i.hasNextTrack(&i)) {
+-		TOC *o = i.getNextTrack(&i);
++		TOC_t *o = i.getNextTrack(&i);
+ 		while (i.hasNextTrack(&i)) {
+-			TOC *p = i.getNextTrack(&i);
++			TOC_t *p = i.getNextTrack(&i);
+ 			int from;
+ 			from = GETTRACK(o);
+ 
+@@ -2131,10 +2129,10 @@ static void DisplayToc_no_gui(unsigned l
+ 	i.reset(&i);
+ 	if ((global.verbose & SHOW_TOC) != 0 &&
+ 		i.hasNextTrack(&i)) {
+-		TOC *o = i.getNextTrack(&i);
++		TOC_t *o = i.getNextTrack(&i);
+ 
+ 		for (; i.hasNextTrack(&i);) {
+-			TOC *p = i.getNextTrack(&i);
++			TOC_t *p = i.getNextTrack(&i);
+ 
+ 			if ( GETTRACK(o) <= MAXTRK ) {
+ 				unsigned char brace1, brace2;
+@@ -2189,9 +2187,9 @@ static void DisplayToc_no_gui(unsigned l
+ 		ii = 0;
+ 		i.reset(&i);
+ 		if (i.hasNextTrack(&i)) {
+-			TOC *o = i.getNextTrack(&i);
++			TOC_t *o = i.getNextTrack(&i);
+ 			for ( ; i.hasNextTrack(&i);) {
+-				TOC *p = i.getNextTrack(&i);
++				TOC_t *p = i.getNextTrack(&i);
+ 				fprintf ( stderr,
+ 					  " %2u.(%8u)",
+ 					  GETTRACK(o),
+@@ -2248,7 +2246,7 @@ static void DisplayToc_no_gui(unsigned l
+ 
+ 		i.reset(&i);
+ 		for ( ; i.hasNextTrack(&i);) {
+-			TOC *p = i.getNextTrack(&i);
++			TOC_t *p = i.getNextTrack(&i);
+ 			int jj = GETTRACK(p);
+ 
+ 			if ( global.tracktitle[jj] != NULL ) {
+@@ -2260,7 +2258,7 @@ static void DisplayToc_no_gui(unsigned l
+ 		
+ 		i.reset(&i);
+ 		for ( ; i.hasNextTrack(&i); ) {
+-			TOC *p = i.getNextTrack(&i);
++			TOC_t *p = i.getNextTrack(&i);
+ 			int jj;
+ 
+ 			if (IS__DATA(p))
+@@ -2720,7 +2718,7 @@ void Read_MCN_ISRC(void)
+ 		InitIterator(&i, 1);
+ 
+ 		while (i.hasNextTrack(&i)) {
+-			struct TOC *p = i.getNextTrack(&i);
++			struct TOC_t *p = i.getNextTrack(&i);
+ 			unsigned ii = GETTRACK(p);
+ 			
+ 			if (ii == CDROM_LEADOUT) break;
+@@ -3155,7 +3153,7 @@ unsigned ScanIndices(unsigned track, uns
+ 
+ 
+   while (i.hasNextTrack(&i)) {
+-	  struct TOC *p = i.getNextTrack(&i);
++	  struct TOC_t *p = i.getNextTrack(&i);
+ 	  unsigned ii = GETTRACK(p);
+ 
+ 	  if ( ii < starttrack || IS__DATA(p) )
+@@ -3322,7 +3320,7 @@ unsigned char *Get_MCN(void)
+ }
+ 
+ 
+-static TOC g_toc [MAXTRK+1]; /* hidden track + 100 regular tracks */
++static TOC_t g_toc [MAXTRK+1]; /* hidden track + 100 regular tracks */
+ 
+ /*#define IS_AUDIO(i) (!(g_toc[i].bFlags & 0x40))*/
+ 
+@@ -3397,10 +3395,10 @@ static int patch_cd_extra(unsigned track
+ 
+ static int restrict_tracks_illleadout(void)
+ {
+-	struct TOC *o = &g_toc[cdtracks+1];
++	struct TOC_t *o = &g_toc[cdtracks+1];
+ 	int i;
+ 	for (i = cdtracks; i >= 0; i--) {
+-		struct TOC *p = &g_toc[i];
++		struct TOC_t *p = &g_toc[i];
+ 		if (GETSTART(o) > GETSTART(p)) break;
+ 	}
+ 	patch_cd_extra(i+1, GETSTART(o));
+@@ -3523,7 +3521,7 @@ static void it_reset(struct iterator *th
+ 
+ 
+ static int it_hasNextTrack(struct iterator *this);
+-static struct TOC *it_getNextTrack(struct iterator *this);
++static struct TOC_t *it_getNextTrack(struct iterator *this);
+ 
+ static int it_hasNextTrack(struct iterator *this)
+ {
+@@ -3532,7 +3530,7 @@ static int it_hasNextTrack(struct iterat
+ 
+ 
+ 
+-static struct TOC *it_getNextTrack(struct iterator *this)
++static struct TOC_t *it_getNextTrack(struct iterator *this)
+ {
+ 	/* if ( (*this->hasNextTrack)(this) == 0 ) return NULL; */
+ 	if ( this->index > (int)cdtracks+1 ) return NULL;
+@@ -3583,7 +3581,7 @@ long Get_AudioStartSector(unsigned long
+ 	if (p_track == cdtracks + 1) p_track = CDROM_LEADOUT;
+ 
+ 	while (i.hasNextTrack(&i)) {
+-		TOC *p = i.getNextTrack(&i);
++		TOC_t *p = i.getNextTrack(&i);
+ 
+ 		if (GETTRACK(p) == p_track) {
+ 			if (IS__DATA(p)) {
+@@ -3613,7 +3611,7 @@ long Get_StartSector(unsigned long p_tra
+ 	if (p_track == cdtracks + 1) p_track = CDROM_LEADOUT;
+ 
+ 	while (i.hasNextTrack(&i)) {
+-		TOC *p = i.getNextTrack(&i);
++		TOC_t *p = i.getNextTrack(&i);
+ 
+ 		if (GETTRACK(p) == p_track) {
+ 			return GETSTART(p);
+@@ -3637,7 +3635,7 @@ long Get_EndSector(unsigned long p_track
+ 	if (p_track == cdtracks + 1) p_track = CDROM_LEADOUT;
+ 
+ 	while (i.hasNextTrack(&i)) {
+-		TOC *p = i.getNextTrack(&i);
++		TOC_t *p = i.getNextTrack(&i);
+ 		if (GETTRACK(p) == p_track) {
+ 			p = i.getNextTrack(&i);
+ 			if (p == NULL) {
+@@ -3669,7 +3667,7 @@ long FirstAudioTrack(void)
+ 	else i.reset(&i);
+ 
+ 	while (i.hasNextTrack(&i)) {
+-		TOC *p = i.getNextTrack(&i);
++		TOC_t *p = i.getNextTrack(&i);
+ 		unsigned ii = GETTRACK(p);
+ 
+ 		if (ii == CDROM_LEADOUT) break;
+@@ -3687,7 +3685,7 @@ long FirstDataTrack(void)
+ 	else i.reset(&i);
+ 
+ 	while (i.hasNextTrack(&i)) {
+-		TOC *p = i.getNextTrack(&i);
++		TOC_t *p = i.getNextTrack(&i);
+ 		if (IS__DATA(p)) {
+ 			return GETTRACK(p);
+ 		}
+@@ -3708,7 +3706,7 @@ long LastAudioTrack(void)
+ 	else i.reset(&i);
+ 
+ 	while (i.hasNextTrack(&i)) {
+-		TOC *p = i.getNextTrack(&i);
++		TOC_t *p = i.getNextTrack(&i);
+ 		if (IS__AUDIO(p) && (GETTRACK(p) != CDROM_LEADOUT)) {
+ 			j = GETTRACK(p);
+ 		}
+@@ -3730,7 +3728,7 @@ long Get_LastSectorOnCd(unsigned long p_
+ 	if (p_track == cdtracks + 1) p_track = CDROM_LEADOUT;
+ 
+ 	while (i.hasNextTrack(&i)) {
+-		TOC *p = i.getNextTrack(&i);
++		TOC_t *p = i.getNextTrack(&i);
+ 
+ 		if (GETTRACK(p) < p_track)
+ 			continue;
+@@ -3749,9 +3747,9 @@ int Get_Track(unsigned long sector)
+ 	else i.reset(&i);
+ 
+ 	if (i.hasNextTrack(&i)) {
+-		TOC *o = i.getNextTrack(&i);
++		TOC_t *o = i.getNextTrack(&i);
+ 		while (i.hasNextTrack(&i)) {
+-			TOC *p = i.getNextTrack(&i);
++			TOC_t *p = i.getNextTrack(&i);
+ 			if ((GETSTART(o) <= sector) && (GETSTART(p) > sector)) {
+ 				if (IS__DATA(o)) {
+ 					return -1;
+@@ -3772,7 +3770,7 @@ int CheckTrackrange(unsigned long from,
+ 	else i.reset(&i);
+ 
+ 	while (i.hasNextTrack(&i)) {
+-		TOC *p = i.getNextTrack(&i);
++		TOC_t *p = i.getNextTrack(&i);
+ 
+ 		if (GETTRACK(p) < from)
+ 			continue;
+@@ -3788,54 +3786,3 @@ int CheckTrackrange(unsigned long from,
+ 	return 0;
+ }
+ 
+-#ifdef	USE_PARANOIA
+-long cdda_disc_firstsector(void *d);
+-
+-long cdda_disc_firstsector(void *d)
+-{
+-	return Get_StartSector(FirstAudioTrack());
+-}
+-
+-int cdda_tracks(void *d);
+-
+-int cdda_tracks(void *d)
+-{
+-	return LastAudioTrack() - FirstAudioTrack() +1;
+-}
+-
+-int cdda_track_audiop(void *d, int track);
+-
+-int cdda_track_audiop(void *d, int track)
+-{
+-	return Get_Datatrack(track) == 0;
+-}
+-
+-long cdda_track_firstsector(void *d, int track);
+-
+-long cdda_track_firstsector(void *d, int track)
+-{
+-	return Get_AudioStartSector(track);
+-}
+-
+-long cdda_track_lastsector(void *d, int track);
+-
+-long cdda_track_lastsector(void *d, int track)
+-{
+-	return Get_EndSector(track);
+-}
+-
+-long cdda_disc_lastsector(void *d);
+-
+-long cdda_disc_lastsector(void *d)
+-{
+-	return Get_LastSectorOnCd(cdtracks) - 1;
+-}
+-
+-int cdda_sector_gettrack(void *d,long sector);
+-
+-int cdda_sector_gettrack(void *d, long sector)
+-{
+-	return Get_Track(sector);
+-}
+-
+-#endif
diff --git a/SOURCES/cdrkit-1.1.11-ppc64le_elfheader.patch b/SOURCES/cdrkit-1.1.11-ppc64le_elfheader.patch
new file mode 100644
index 0000000..0542b4e
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-ppc64le_elfheader.patch
@@ -0,0 +1,13 @@
+diff -up wrk/include/glibc_elf.h.wrk wrk/include/glibc_elf.h
+--- wrk/include/glibc_elf.h.wrk	2014-09-19 16:04:45.546981432 +0200
++++ wrk/include/glibc_elf.h	2014-09-19 16:38:55.407991682 +0200
+@@ -2081,7 +2081,8 @@ typedef Elf32_Addr Elf32_Conflict;
+ #define R_PPC64_DTPREL16_HIGHESTA 106 /* half16	(sym+add)@dtprel@highesta */
+ 
+ /* Keep this the last entry.  */
+-#define R_PPC64_NUM		107
++//symbol conflicting with system headers on ppc64le and nowhere used
++//#define R_PPC64_NUM		107
+ 
+ /* PowerPC64 specific values for the Dyn d_tag field.  */
+ #define DT_PPC64_GLINK  (DT_LOPROC + 0)
diff --git a/SOURCES/cdrkit-1.1.11-readsegfault.patch b/SOURCES/cdrkit-1.1.11-readsegfault.patch
new file mode 100644
index 0000000..a3a1305
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-readsegfault.patch
@@ -0,0 +1,12 @@
+diff -up cdrkit-1.1.11/readom/readom.c.readsegfault cdrkit-1.1.11/readom/readom.c
+--- cdrkit-1.1.11/readom/readom.c.readsegfault	2011-03-07 15:51:46.889441591 +0100
++++ cdrkit-1.1.11/readom/readom.c	2011-03-07 15:51:50.702938263 +0100
+@@ -906,7 +906,7 @@ read_ftoc(SCSI *usalp, parm_t *parmp, BO
+ 
+ 
+ 	strcpy(filename, "toc.dat");
+-	if (strcmp(parmp->name, "/dev/null") != 0) {
++	if (parmp != NULL && strcmp(parmp->name, "/dev/null") != 0) {
+ 
+ 		len = strlen(parmp->name);
+ 		if (len > (sizeof (filename)-5)) {
diff --git a/SOURCES/cdrkit-1.1.11-rootstat.patch b/SOURCES/cdrkit-1.1.11-rootstat.patch
new file mode 100644
index 0000000..d9ceb3b
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-rootstat.patch
@@ -0,0 +1,31 @@
+diff -up cdrkit-1.1.11/genisoimage/tree.c.rootstat cdrkit-1.1.11/genisoimage/tree.c
+--- cdrkit-1.1.11/genisoimage/tree.c.rootstat	2011-01-25 14:15:36.766389403 +0100
++++ cdrkit-1.1.11/genisoimage/tree.c	2011-01-25 14:17:24.804643126 +0100
+@@ -48,6 +48,7 @@
+ #include <fctldefs.h>
+ #include <device.h>
+ #include <schily.h>
++#include <libgen.h>
+ 
+ extern int allow_limited_size;
+ 
+@@ -1421,12 +1422,16 @@ insert_file_entry(struct directory *this
+ 		return (0);
+ 	}
+ 	if (this_dir == root && strcmp(short_name, ".") == 0)
+-		root_statbuf = statbuf;	/* Save this for later on */
++		memcpy(&root_statbuf, &statbuf, sizeof(root_statbuf));  /* Save this for later on */
+ 
+ 	/* We do this to make sure that the root entries are consistent */
+ 	if (this_dir == root && strcmp(short_name, "..") == 0) {
+-		statbuf = root_statbuf;
+-		lstatbuf = root_statbuf;
++		/* for the case .. comes before . */
++		if (!root_statbuf.st_ctime) {
++			stat_filter(dirname(whole_path), &root_statbuf);
++		}
++		memcpy(&statbuf, &root_statbuf, sizeof(statbuf));
++		memcpy(&lstatbuf, &root_statbuf, sizeof(lstatbuf));
+ 	}
+ 	if (S_ISLNK(lstatbuf.st_mode)) {
+ 
diff --git a/SOURCES/cdrkit-1.1.11-sysmacros.patch b/SOURCES/cdrkit-1.1.11-sysmacros.patch
new file mode 100644
index 0000000..975cb2b
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-sysmacros.patch
@@ -0,0 +1,60 @@
+diff -up wrk/genisoimage/rock.c.wrk wrk/genisoimage/rock.c
+--- wrk/genisoimage/rock.c.wrk	2017-01-04 14:25:54.879670532 +0100
++++ wrk/genisoimage/rock.c	2017-01-04 15:11:38.061228649 +0100
+@@ -39,6 +39,11 @@
+ #include <device.h>
+ #include <schily.h>
+ 
++/* "major" and "minor" macros will be moved to sysmacros.h
++ * silence the warning
++ * added by cdrkit-1.1.11-sysmacros.patch */
++#include <sys/sysmacros.h>
++
+ #define	SU_VERSION 1
+ 
+ #define	SL_ROOT    8
+diff -up wrk/genisoimage/tree.c.wrk wrk/genisoimage/tree.c
+--- wrk/genisoimage/tree.c.wrk	2017-01-04 14:21:47.472189363 +0100
++++ wrk/genisoimage/tree.c	2017-01-04 15:13:32.989466729 +0100
+@@ -50,6 +50,11 @@
+ #include <schily.h>
+ #include <libgen.h>
+ 
++/* "major" and "minor" macros will be moved to sysmacros.h
++ * silence the warning
++ * added by cdrkit-1.1.11-sysmacros.patch */
++#include <sys/sysmacros.h>
++
+ extern int allow_limited_size;
+ 
+ #ifdef VMS
+diff -up wrk/icedax/interface.c.wrk wrk/icedax/interface.c
+--- wrk/icedax/interface.c.wrk	2017-01-04 14:46:54.298203958 +0100
++++ wrk/icedax/interface.c	2017-01-04 15:14:06.333535804 +0100
+@@ -55,6 +55,11 @@
+ #include <sys/ioctl.h>
+ #include <statdefs.h>
+ 
++/* "major" and "minor" macros will be moved to sysmacros.h
++ * silence the warning
++ * added by cdrkit-1.1.11-sysmacros.patch */
++#include <sys/sysmacros.h>
++
+ 
+ #include "mycdrom.h"
+ #include "lowlevel.h"
+diff -up wrk/icedax/ioctl.c.wrk wrk/icedax/ioctl.c
+--- wrk/icedax/ioctl.c.wrk	2017-01-04 14:49:45.834583930 +0100
++++ wrk/icedax/ioctl.c	2017-01-04 15:15:10.268668248 +0100
+@@ -36,6 +36,11 @@
+ #include <schily.h>
+ #include <device.h>
+ 
++/* "major" and "minor" macros will be moved to sysmacros.h
++ * silence the warning
++ * added by cdrkit-1.1.11-sysmacros.patch */
++#include <sys/sysmacros.h>
++
+ #include <usal/scsitransp.h>
+ 
+ #include "mycdrom.h"
diff --git a/SOURCES/cdrkit-1.1.11-usalinst.patch b/SOURCES/cdrkit-1.1.11-usalinst.patch
new file mode 100644
index 0000000..de8dbbf
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-usalinst.patch
@@ -0,0 +1,33 @@
+diff -up cdrkit-1.1.11/librols/CMakeLists.txt.usalinst cdrkit-1.1.11/librols/CMakeLists.txt
+--- cdrkit-1.1.11/librols/CMakeLists.txt.usalinst	2012-07-31 10:51:30.270669381 +0200
++++ cdrkit-1.1.11/librols/CMakeLists.txt	2012-07-31 10:52:02.365378257 +0200
+@@ -3,5 +3,11 @@ INCLUDE_DIRECTORIES(../include ../libhfs
+ 
+ SET(LIBROLS_SRCS  astoi.c astoll.c astoull.c breakline.c cmpbytes.c comerr.c error.c fexec.c fillbytes.c getargs.c getav0.c getdomainname.c geterrno.c gethostid.c gethostname.c getpagesize.c handlecond.c movebytes.c raisecond.c rename.c saveargs.c seterrno.c spawn.c strcatl.c strdup.c streql.c swabbytes.c usleep.c stdio/cvmod.c stdio/dat.c stdio/fcons.c stdio/fdown.c stdio/fdup.c stdio/ffileread.c stdio/ffilewrite.c stdio/fgetline.c stdio/file_raise.c stdio/fileclose.c stdio/fileluopen.c stdio/filemopen.c stdio/fileopen.c  stdio/filepos.c stdio/fileread.c stdio/filereopen.c stdio/fileseek.c stdio/filesize.c stdio/filestat.c stdio/filewrite.c stdio/flag.c stdio/flush.c stdio/fpipe.c stdio/niread.c stdio/niwrite.c stdio/nixread.c stdio/nixwrite.c stdio/openfd.c stdio/peekc.c default.c)
+ 
+-ADD_LIBRARY (rols STATIC ${CMAKE_CURRENT_SOURCE_DIR}/../include/xconfig.h  ${CMAKE_CURRENT_SOURCE_DIR}/../include/align.h ${LIBROLS_SRCS})
++ADD_LIBRARY (rols SHARED ${CMAKE_CURRENT_SOURCE_DIR}/../include/xconfig.h  ${CMAKE_CURRENT_SOURCE_DIR}/../include/align.h ${LIBROLS_SRCS})
++SET_TARGET_PROPERTIES(rols PROPERTIES
++    VERSION 0.0.1
++    SOVERSION 0
++)
++
++INSTALL(TARGETS rols DESTINATION lib${LIB_SUFFIX})
+ 
+diff -up cdrkit-1.1.11/libusal/CMakeLists.txt.usalinst cdrkit-1.1.11/libusal/CMakeLists.txt
+--- cdrkit-1.1.11/libusal/CMakeLists.txt.usalinst	2012-07-31 10:51:30.302670085 +0200
++++ cdrkit-1.1.11/libusal/CMakeLists.txt	2012-07-31 10:52:09.190528942 +0200
+@@ -6,5 +6,12 @@ ADD_DEFINITIONS(-DUSE_RCMD_RSH)
+ #SET(LIBSCG_SRCS rdummy.c usalsettarget.c usaltimes.c scsi-linux-ata.c scsi-linux-pg.c scsi-linux-sg.c scsierrs.c scsihack.c scsihelp.c scsiopen.c scsitransp.c)
+ SET(LIBSCG_SRCS usalsettarget.c usaltimes.c scsierrs.c scsihack.c scsihelp.c scsiopen.c scsitransp.c scsi-remote.c)
+ LINK_DIRECTORIES(../librols)
+-ADD_LIBRARY (usal STATIC ${LIBSCG_SRCS})
++ADD_LIBRARY (usal SHARED ${LIBSCG_SRCS})
++
+ TARGET_LINK_LIBRARIES(usal ${SCG_SELF_LIBS})
++SET_TARGET_PROPERTIES(usal PROPERTIES
++    VERSION 0.0.1
++    SOVERSION 0
++)
++INSTALL(TARGETS usal DESTINATION lib${LIB_SUFFIX})
++INSTALL(FILES usal/scsicdb.h usal/aspi-dos.h usal/usalcmd.h usal/usalio.h usal/scsireg.h usal/usalops.h usal/scsidefs.h usal/spti-wnt.h usal/srb_os2.h usal/scsitransp.h usal/aspi-win32.h usal/scsisense.h usaltimes.h pg.h DESTINATION include/usal)
diff --git a/SOURCES/cdrkit-1.1.11-utf8.patch b/SOURCES/cdrkit-1.1.11-utf8.patch
new file mode 100644
index 0000000..5118509
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-utf8.patch
@@ -0,0 +1,104 @@
+diff -up cdrkit-1.1.11/Changelog.utf8 cdrkit-1.1.11/Changelog
+--- cdrkit-1.1.11/Changelog.utf8	2012-07-31 12:38:50.207872763 +0200
++++ cdrkit-1.1.11/Changelog	2012-07-31 12:38:57.669026934 +0200
+@@ -519,7 +519,7 @@ cdrkit (2.01.01a08+X.12) UNRELEASED; urg
+ 
+ cdrkit (2.01.01a08+X.11) UNRELEASED; urgency=low
+ 
+-  * 26_author_locale (ASCII transliteration of J�rg in the standard credits
++  * 26_author_locale (ASCII transliteration of Jörg in the standard credits
+     message)
+   * 28_cdda2wav_interface (Linux friendly cdda2wav behaviour)
+   * 30_doc_typo_fixes (various documentation/message fixes)
+@@ -821,8 +821,8 @@ Sun May 16 01:37:11 2004 Joerg Schilling
+ 
+ Sun May 16 01:26:52 2004 Joerg Schilling <joerg@schily.isdn.cs.tu-berlin.de>
+ 	* cdrecord.1 1.95
+-	  Ei�feldt -> Ei\*sfeldt
+-	  �sec -> \*msec
++	  Eißfeldt -> Ei\*sfeldt
++	  ľsec -> \*msec
+ 
+ Sat May 15 23:14:18 2004 Joerg Schilling <joerg@schily.isdn.cs.tu-berlin.de>
+ 	* subchan.c 1.19
+@@ -1057,7 +1057,7 @@ Wed Jan 14 15:37:47 2004 Joerg Schilling
+ Wed Jan 14 01:14:27 2004 Joerg Schilling <joerg@schily.isdn.cs.tu-berlin.de>
+ 	* scsi-mac-iokit.c 1.8
+ 	  ux_errno wird nun korrekt gesetzt wenn ein Kommando schiefgeht
+-	  Die Sense Daten werden nicht mehr gel�scht
++	  Die Sense Daten werden nicht mehr gelöscht
+ 	  Author ist nun "schily", denn das Modul kommt nun teilweise dirch scgcheck
+ 
+ Tue Jan 13 20:43:44 2004 Joerg Schilling <joerg@schily.isdn.cs.tu-berlin.de>
+@@ -1074,7 +1074,7 @@ Mon Jan 12 00:33:39 2004 Joerg Schilling
+ 
+ Sun Jan 11 18:42:14 2004 Joerg Schilling <joerg@schily.isdn.cs.tu-berlin.de>
+ 	* scsi-linux-sg.c 1.77
+-	  Versuch das /dev/hd* Interface von Linux-2.6 besser zu unterst�tzen.
++	  Versuch das /dev/hd* Interface von Linux-2.6 besser zu unterstützen.
+ 
+ Sun Jan 11 16:18:48 2004 Joerg Schilling <joerg@schily.isdn.cs.tu-berlin.de>
+ 	* scsi-linux-sg.c 1.76
+@@ -6144,7 +6144,7 @@ Mon Oct 26 00:27:22 1998 Joerg Schilling
+ 	  New manufacturer: Xcitec Inc.
+ 			Doremi Media Co., Ltd.
+ 			Matsushita Electric Industrial Co.,Ltd.
+-			CDA Datentr�ger Albrechts GmbH.
++			CDA Datenträger Albrechts GmbH.
+ 
+ Sun Oct 25 13:00:22 1998 Joerg Schilling <joerg@schily.isdn.cs.tu-berlin.de>
+ 	* cdrecord.c 1.71
+diff -up cdrkit-1.1.11/doc/icedax/README.utf8 cdrkit-1.1.11/doc/icedax/README
+--- cdrkit-1.1.11/doc/icedax/README.utf8	2012-07-31 12:38:18.903226517 +0200
++++ cdrkit-1.1.11/doc/icedax/README	2012-07-31 12:38:18.902226496 +0200
+@@ -387,7 +387,7 @@ and
+ 
+ <http://www.anime.net/~goemon/linux-cd/cdda-list.html>
+ 
+-From a news posting from Bj�rn Wiberg
++From a news posting from Björn Wiberg
+ 
+ > The following table was generated using the CDROM.CFG file from Nero
+ > v3.0.4.2.
+diff -up cdrkit-1.1.11/doc/icedax/THANKS.utf8 cdrkit-1.1.11/doc/icedax/THANKS
+--- cdrkit-1.1.11/doc/icedax/THANKS.utf8	2012-07-31 12:38:18.901226475 +0200
++++ cdrkit-1.1.11/doc/icedax/THANKS	2012-07-31 12:38:18.901226475 +0200
+@@ -5,7 +5,7 @@ http://www.mode.net/
+ 
+ and 
+ 
+-Fraunhofer Institut f�r integrierte Schaltungen (FhG-IIS)
++Fraunhofer Institut für integrierte Schaltungen (FhG-IIS)
+ http://www.iis.fhg.de/
+ 
+ Code for extraction of ISRC and MCN codes as well as MD5 signatures
+@@ -33,4 +33,4 @@ Francesco Chemolli (getopt_long patches)
+ Thanks to all testers and finally Jim McLaughlin for supplying
+ the first cdda-reader source code (that got me started).
+ 
+-Heiko Ei�feldt
++Heiko Eißfeldt
+diff -up cdrkit-1.1.11/doc/READMEs/README.ATAPI.utf8 cdrkit-1.1.11/doc/READMEs/README.ATAPI
+--- cdrkit-1.1.11/doc/READMEs/README.ATAPI.utf8	2012-07-31 12:38:18.899226433 +0200
++++ cdrkit-1.1.11/doc/READMEs/README.ATAPI	2012-07-31 12:38:18.900226454 +0200
+@@ -279,7 +279,7 @@ selectively telling the kernel what to u
+ this would not be needed if the Linux SCSI CD-ROM driver would be more 
+ up to date and supports standard conforming drives.
+ 
+-J�rg Schilling <schilling@fokus.fhg.de>
++Jörg Schilling <schilling@fokus.fhg.de>
+ 
+ --------------------------------------------------
+ Here is a hint from Alan Brown <alanb@manawatu.gen.nz>:
+diff -up cdrkit-1.1.11/doc/READMEs/README.cdplus.utf8 cdrkit-1.1.11/doc/READMEs/README.cdplus
+--- cdrkit-1.1.11/doc/READMEs/README.cdplus.utf8	2012-07-31 12:38:18.900226454 +0200
++++ cdrkit-1.1.11/doc/READMEs/README.cdplus	2012-07-31 12:38:18.900226454 +0200
+@@ -63,7 +63,7 @@ Note: If you want to create an HFS hybri
+ use the '-part' option to genisoimage. Otherwise, the data track will be mounted
+ as an ISO9660/Joliet CD when used on a Mac.
+ 	
+-J�rg
++Jörg
+ 
+ Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch
+ 
diff --git a/SOURCES/cdrkit-1.1.11-werror_gcc5.patch b/SOURCES/cdrkit-1.1.11-werror_gcc5.patch
new file mode 100644
index 0000000..f98bd36
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.11-werror_gcc5.patch
@@ -0,0 +1,22 @@
+diff -up wrk/genisoimage/exclude.c.wrk wrk/genisoimage/exclude.c
+--- wrk/genisoimage/exclude.c.wrk	2015-02-25 13:16:28.054237196 +0100
++++ wrk/genisoimage/exclude.c	2015-02-25 13:33:06.761312002 +0100
+@@ -39,7 +39,7 @@ exclude(char *fn)
+ {
+ 	register int	i;
+ 
+-	for (i = 0; excl[i] && i < MAXEXCL; i++)
++	for (i = 0; i < MAXEXCL && excl[i]; i++)
+ 		;
+ 
+ 	if (i == MAXEXCL) {
+@@ -69,7 +69,7 @@ is_excluded(char *fn)
+ 	/*
+ 	 * very dumb search method ...
+ 	 */
+-	for (i = 0; excl[i] && i < MAXEXCL; i++) {
++	for (i = 0; i < MAXEXCL && excl[i]; i++) {
+ 		if (strcmp(excl[i], fn) == 0) {
+ 			return (1);	/* found -> excluded filenmae */
+ 		}
+diff -up wrk/icedax/toc.c.wrk wrk/icedax/toc.c
diff --git a/SOURCES/cdrkit-1.1.8-werror.patch b/SOURCES/cdrkit-1.1.8-werror.patch
new file mode 100644
index 0000000..c5189ed
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.8-werror.patch
@@ -0,0 +1,206 @@
+diff -up cdrkit-1.1.8/wodim/wodim.c.werror cdrkit-1.1.8/wodim/wodim.c
+--- cdrkit-1.1.8/wodim/wodim.c.werror	2008-05-27 15:34:03.000000000 +0200
++++ cdrkit-1.1.8/wodim/wodim.c	2008-05-27 15:36:22.000000000 +0200
+@@ -4089,7 +4089,7 @@ audioread(SCSI *usalp, cdr_t *dp, int fl
+ 
+ 	read_scsi(usalp, buf, 1000, 1);
+ 	printf("XXX:\n");
+-	write(1, buf, 512); /* FIXME: handle return value */
++	do{int ret;ret=write(1, buf, 512);}while(0); /* FIXME: handle return value */
+ 	unload_media(usalp, dp, flags);
+ 	comexit(0);
+ #endif
+diff -up cdrkit-1.1.8/wodim/isosize.c.werror cdrkit-1.1.8/wodim/isosize.c
+--- cdrkit-1.1.8/wodim/isosize.c.werror	2008-05-27 15:41:36.000000000 +0200
++++ cdrkit-1.1.8/wodim/isosize.c	2008-05-27 15:42:12.000000000 +0200
+@@ -69,7 +69,7 @@ isosize(int f)
+ 	vp = (struct iso9660_pr_voldesc *) &vd;
+ 
+ 	do {
+-		read(f, &vd, sizeof (vd)); /* FIXME: check return value */
++		do{int ret;ret=read(f, &vd, sizeof (vd));}while(0); /* FIXME: check return value */
+ 		if (GET_UBYTE(vd.vd_type) == VD_PRIMARY)
+ 			break;
+ 
+diff -up cdrkit-1.1.8/icedax/toc.c.werror cdrkit-1.1.8/icedax/toc.c
+--- cdrkit-1.1.8/icedax/toc.c.werror	2008-05-27 15:34:03.000000000 +0200
++++ cdrkit-1.1.8/icedax/toc.c	2008-05-27 15:41:11.000000000 +0200
+@@ -1071,7 +1071,7 @@ static int handle_userchoice(char *p, un
+ 	/* get user response. */
+ 	do {
+ 		fprintf(stderr, "please choose one (0-%u): ", nr);
+-		scanf("%u", &user_choice); /* FIXME: check return value */
++		do{int ret;ret=scanf("%u", &user_choice);}while(0); /* FIXME: check return value */
+ 	} while (user_choice > nr);
+ 
+ 	if (user_choice == nr)
+diff -up cdrkit-1.1.8/genisoimage/diag/dump.c.werror cdrkit-1.1.8/genisoimage/diag/dump.c
+--- cdrkit-1.1.8/genisoimage/diag/dump.c.werror	2008-05-27 15:34:03.000000000 +0200
++++ cdrkit-1.1.8/genisoimage/diag/dump.c	2008-05-27 15:34:03.000000000 +0200
+@@ -368,7 +368,7 @@ main(int argc, char *argv[])
+ 	do {
+ 		if (file_addr < (off_t)0) file_addr = (off_t)0;
+ 		showblock(1);
+-		read(STDIN_FILENO, &c, 1); /* FIXME: check return value */
++		do{int ret;ret=read(STDIN_FILENO, &c, 1);}while(0); /* FIXME: check return value */
+ 		if (c == 'a')
+ 			file_addr -= PAGE;
+ 		if (c == 'b')
+@@ -378,11 +378,11 @@ main(int argc, char *argv[])
+ 			printf("Enter new starting block (in hex):");
+ 			if (sizeof (file_addr) > sizeof (long)) {
+ 				Llong	ll;
+-				scanf("%llx", &ll); /* FIXME: check return value */
++				do{int ret;ret=scanf("%llx", &ll);}while(0); /* FIXME: check return value */
+ 				file_addr = (off_t)ll;
+ 			} else {
+ 				long	l;
+-				scanf("%lx", &l); /* FIXME: check return value */
++				do{int ret;ret=scanf("%lx", &l);}while(0); /* FIXME: check return value */
+ 				file_addr = (off_t)l;
+ 			}
+ 			file_addr = file_addr << 11;
+@@ -392,7 +392,7 @@ main(int argc, char *argv[])
+ 		if (c == 'f') {
+ 			crsr2(20, 1);
+ 			printf("Enter new search string:");
+-			fgets((char *)search, sizeof (search), stdin); /* FIXME: check return value */
++			do{char *ret;ret=fgets((char *)search, sizeof (search), stdin);}while(0); /* FIXME: check return value */
+ 			while (search[strlen((char *)search)-1] == '\n')
+ 				search[strlen((char *)search)-1] = 0;
+ 			crsr2(20, 1);
+diff -up cdrkit-1.1.8/genisoimage/diag/isoinfo.c.werror cdrkit-1.1.8/genisoimage/diag/isoinfo.c
+--- cdrkit-1.1.8/genisoimage/diag/isoinfo.c.werror	2008-05-27 15:34:03.000000000 +0200
++++ cdrkit-1.1.8/genisoimage/diag/isoinfo.c	2008-05-27 15:34:03.000000000 +0200
+@@ -651,7 +651,7 @@ extract_file(struct iso_directory_record
+ #endif
+ 		len -= tlen;
+ 		extent++;
+-		write(STDOUT_FILENO, buff, tlen); /* FIXME: check return value */
++		do{int ret;ret=write(STDOUT_FILENO, buff, tlen);}while(0); /* FIXME: check return value */
+ 	}
+ }
+ 
+diff -up cdrkit-1.1.8/genisoimage/diag/isodump.c.werror cdrkit-1.1.8/genisoimage/diag/isodump.c
+--- cdrkit-1.1.8/genisoimage/diag/isodump.c.werror	2008-05-27 15:34:03.000000000 +0200
++++ cdrkit-1.1.8/genisoimage/diag/isodump.c	2008-05-27 15:34:03.000000000 +0200
+@@ -655,7 +655,7 @@ main(int argc, char *argv[])
+ 		if (file_addr < 0)
+ 			file_addr = (off_t)0;
+ 		showblock(1);
+-		read(STDIN_FILENO, &c, 1); /* FIXME: check return value */
++		do{int ret;ret=read(STDIN_FILENO, &c, 1);}while(0); /* FIXME: check return value */
+ 		if (c == 'a')
+ 			file_addr -= blocksize;
+ 		if (c == 'b')
+@@ -665,11 +665,11 @@ main(int argc, char *argv[])
+ 			printf("Enter new starting block (in hex):");
+ 			if (sizeof (file_addr) > sizeof (long)) {
+ 				Llong	ll;
+-				scanf("%llx", &ll); /* FIXME: check return value */
++				do{int ret;ret=scanf("%llx", &ll);}while(0); /* FIXME: check return value */
+ 				file_addr = (off_t)ll;
+ 			} else {
+ 				long	l;
+-				scanf("%lx", &l); /* FIXME: check return value */
++				do{int ret;ret=scanf("%lx", &l);}while(0); /* FIXME: check return value */
+ 				file_addr = (off_t)l;
+ 			}
+ 			file_addr = file_addr * blocksize;
+@@ -679,7 +679,7 @@ main(int argc, char *argv[])
+ 		if (c == 'f') {
+ 			crsr2(20, 1);
+ 			printf("Enter new search string:");
+-			fgets((char *)search, sizeof (search), stdin); /* FIXME: check return value */
++			do{char *ret;ret=fgets((char *)search, sizeof (search), stdin);}while(0); /* FIXME: check return value */
+ 			while (search[strlen((char *)search)-1] == '\n')
+ 				search[strlen((char *)search)-1] = 0;
+ 			crsr2(20, 1);
+diff -up cdrkit-1.1.8/genisoimage/diag/isovfy.c.werror cdrkit-1.1.8/genisoimage/diag/isovfy.c
+--- cdrkit-1.1.8/genisoimage/diag/isovfy.c.werror	2008-05-27 15:34:03.000000000 +0200
++++ cdrkit-1.1.8/genisoimage/diag/isovfy.c	2008-05-27 15:34:03.000000000 +0200
+@@ -591,11 +591,11 @@ check_path_tables(int typel_extent, int 
+ 	readsecs(typel_extent * blocksize / 2048, typel, ISO_BLOCKS(path_table_size));
+ #else
+ 	lseek(fileno(infile), (off_t)((off_t)typel_extent) * blocksize, SEEK_SET);
+-	read(fileno(infile), typel, path_table_size); /* FIXME: check return value */
++	do{int ret;ret=read(fileno(infile), typel, path_table_size);}while(0); /* FIXME: check return value */
+ #endif
+ 	typem = (char *) malloc(path_table_size);
+ 	lseek(fileno(infile), (off_t)((off_t)typem_extent) * blocksize, SEEK_SET);
+-	read(fileno(infile), typem, path_table_size); /* FIXME: check return value */
++	do{int ret;ret=read(fileno(infile), typem, path_table_size);}while(0); /* FIXME: check return value */
+ 
+ 	j = path_table_size;
+ 	pnt = typel;
+diff -up cdrkit-1.1.8/genisoimage/jte.c.werror cdrkit-1.1.8/genisoimage/jte.c
+--- cdrkit-1.1.8/genisoimage/jte.c.werror	2008-05-27 15:34:03.000000000 +0200
++++ cdrkit-1.1.8/genisoimage/jte.c	2008-05-27 15:34:03.000000000 +0200
+@@ -36,6 +36,8 @@
+ #include "vms.h"
+ #endif
+ 
++#include "md5.h"
++
+ /* Different types used in building our state list below */
+ #define JTET_FILE_MATCH 1
+ #define JTET_NOMATCH    2
+@@ -643,7 +645,7 @@ static void flush_bz2_chunk(void *buffer
+ 
+     err = BZ2_bzCompressInit(&c_stream, 9, 0, 0);
+     comp_buf = malloc(2 * size); /* Worst case */
+-    c_stream.next_out = comp_buf;
++    c_stream.next_out = (char *)comp_buf;
+     c_stream.avail_out = 2 * size;
+     c_stream.next_in = buffer;
+     c_stream.avail_in = size;
+@@ -691,7 +693,7 @@ static void write_compressed_chunk(unsig
+ 		if (!uncomp_buf)
+ 		{
+ #ifdef	USE_LIBSCHILY
+-            comerr("failed to allocate %d bytes for template compression buffer\n", uncomp_size);
++            comerr("failed to allocate %d bytes for template compression buffer\n", (int)uncomp_size);
+ #else
+             fprintf(stderr, "failed to allocate %d bytes for template compression buffer\n", uncomp_size);
+             exit(1);
+@@ -1019,8 +1021,8 @@ void write_jt_match_record(char *filenam
+ #endif
+ 		}
+         if (first_block)
+-            rsync64_sum = rsync64(buf, MIN_JIGDO_FILE_SIZE);
+-        checksum_update(iso_context, buf, use);
++            rsync64_sum = rsync64((unsigned char *)buf, MIN_JIGDO_FILE_SIZE);
++        checksum_update(iso_context, (unsigned char *)buf, use);
+ //        mk_MD5Update(&iso_context, buf, use);
+         remain -= use;
+         first_block = 0;
+@@ -1033,7 +1035,7 @@ void write_jt_match_record(char *filenam
+     {
+         int pad_size = sector_size - (size % sector_size);
+         memset(buf, 0, pad_size);
+-        checksum_update(iso_context, buf, pad_size);
++        checksum_update(iso_context, (unsigned char *)buf, pad_size);
+ //        mk_MD5Update(&iso_context, buf, pad_size);
+     }
+ 
+@@ -1041,7 +1043,7 @@ void write_jt_match_record(char *filenam
+     if (size % sector_size)
+     {
+         int pad_size = sector_size - (size % sector_size);
+-        write_compressed_chunk(buf, pad_size);
++        write_compressed_chunk((unsigned char *)buf, pad_size);
+         add_unmatched_entry(pad_size);
+     }        
+ }
+diff -up cdrkit-1.1.8/genisoimage/eltorito.c.werror cdrkit-1.1.8/genisoimage/eltorito.c
+--- cdrkit-1.1.8/genisoimage/eltorito.c.werror	2008-05-27 15:34:03.000000000 +0200
++++ cdrkit-1.1.8/genisoimage/eltorito.c	2008-05-27 15:34:03.000000000 +0200
+@@ -660,7 +660,7 @@ fill_boot_desc(struct eltorito_defaultbo
+ 		set_731(bi_table.bi_length, de->size);
+ 		set_731(bi_table.bi_csum, bi_checksum);
+ 
+-		write(bootimage, &bi_table, sizeof (bi_table)); /* FIXME: check return value */
++		do{int ret;ret=write(bootimage, &bi_table, sizeof (bi_table));}while(0); /* FIXME: check return value */
+ 		close(bootimage);
+ 	}
+ }/* fill_boot_desc(... */
diff --git a/SOURCES/cdrkit-1.1.9-buffer_overflow.patch b/SOURCES/cdrkit-1.1.9-buffer_overflow.patch
new file mode 100644
index 0000000..b93d8d2
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.9-buffer_overflow.patch
@@ -0,0 +1,66 @@
+diff -ru origin-1.1.9/wodim/scsi_cdr.c master-1.1.9/wodim/scsi_cdr.c
+--- origin-1.1.9/wodim/scsi_cdr.c	2008-02-25 12:14:07.000000000 +0100
++++ master-1.1.9/wodim/scsi_cdr.c	2009-07-16 12:01:29.000000000 +0200
+@@ -2181,26 +2181,30 @@
+ 		if (inq->add_len == 0) {
+ 			if (usalp->dev == DEV_UNKNOWN && got_inquiry) {
+ 				usalp->dev = DEV_ACB5500;
+-				strcpy(inq->vendor_info,
+-					"ADAPTEC ACB-5500        FAKE");
++				strncpy(inq->vendor_info, "ADAPTEC ", 8);
++				strncpy(inq->prod_ident,"ACB-5500        ", 16);
++				strncpy(inq->prod_revision, "FAKE", 4);
+ 
+ 			} else switch (usalp->dev) {
+-
+ 				case DEV_ACB40X0:
+-					strcpy(inq->vendor_info,
+-							"ADAPTEC ACB-40X0        FAKE");
++					strncpy(inq->vendor_info, "ADAPTEC ", 8);
++					strncpy(inq->prod_ident, "ACB-40X0        ",16);
++					strncpy(inq->prod_revision, "FAKE", 4);
+ 					break;
+ 				case DEV_ACB4000:
+-					strcpy(inq->vendor_info,
+-							"ADAPTEC ACB-4000        FAKE");
++					strncpy(inq->vendor_info, "ADAPTEC ",8);
++					strncpy(inq->prod_ident, "ACB-4000        ",16);
++					strncpy(inq->prod_revision, "FAKE",4);
+ 					break;
+ 				case DEV_ACB4010:
+-					strcpy(inq->vendor_info,
+-							"ADAPTEC ACB-4010        FAKE");
++					strncpy(inq->vendor_info, "ADAPTEC ",8);
++					strncpy(inq->prod_ident, "ACB-4010        ",16);
++					strncpy(inq->prod_revision, "FAKE",4);
+ 					break;
+ 				case DEV_ACB4070:
+-					strcpy(inq->vendor_info,
+-							"ADAPTEC ACB-4070        FAKE");
++					strncpy(inq->vendor_info,"ADAPTEC ",8);
++					strncpy(inq->prod_ident, "ACB-4070        ", 16);
++					strncpy(inq->prod_revision, "FAKE",4 );
+ 					break;
+ 			}
+ 		} else if (inq->add_len < 31) {
+@@ -2230,14 +2234,16 @@
+ 
+ 	case INQ_SEQD:
+ 		if (usalp->dev == DEV_SC4000) {
+-			strcpy(inq->vendor_info,
+-				"SYSGEN  SC4000          FAKE");
++			strncpy(inq->vendor_info,"SYSGEN  ",8);
++			strncpy(inq->prod_ident, "SC4000          ",16);
++			strncpy(inq->prod_revision, "FAKE",4);
+ 		} else if (inq->add_len == 0 &&
+ 					inq->removable &&
+ 						inq->ansi_version == 1) {
+ 			usalp->dev = DEV_MT02;
+-			strcpy(inq->vendor_info,
+-				"EMULEX  MT02            FAKE");
++			strncpy(inq->vendor_info,"EMULEX  ",8);
++			strncpy(inq->prod_ident, "MT02            ",16);
++			strncpy(inq->prod_revision, "FAKE",4);
+ 		}
+ 		break;
+ 
diff --git a/SOURCES/cdrkit-1.1.9-efi-boot.patch b/SOURCES/cdrkit-1.1.9-efi-boot.patch
new file mode 100644
index 0000000..45f910b
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.9-efi-boot.patch
@@ -0,0 +1,204 @@
+diff --git a/doc/icedax/tracknames.pl b/doc/icedax/tracknames.pl
+old mode 100755
+new mode 100644
+index 09f0fcf..801b89e
+--- a/doc/icedax/tracknames.pl
++++ b/doc/icedax/tracknames.pl
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl 
++#!/usr/bin/perl 
+ # A quick perl hack to get rename files pulled in with icedax.
+ # by billo@billo.com
+ #
+diff --git a/genisoimage/eltorito.c b/genisoimage/eltorito.c
+index b97bdf1..5d7c2d1 100644
+--- a/genisoimage/eltorito.c
++++ b/genisoimage/eltorito.c
+@@ -59,7 +59,7 @@ static	void	get_torito_desc(struct eltorito_boot_descriptor *boot_desc);
+ static	void	fill_boot_desc(struct eltorito_defaultboot_entry *boot_desc_entry,
+ 										struct eltorito_boot_entry_info *boot_entry);
+ void	get_boot_entry(void);
+-void	new_boot_entry(void);
++void	new_boot_entry();
+ static	int	tvd_write(FILE *outfile);
+ 
+ 
+@@ -283,6 +283,7 @@ get_torito_desc(struct eltorito_boot_descriptor *boot_desc)
+ 	int			i;
+ 	int			offset;
+ 	struct eltorito_defaultboot_entry boot_desc_record;
++	struct eltorito_sectionheader_entry section_header;
+ 
+ 	memset(boot_desc, 0, sizeof (*boot_desc));
+ 	boot_desc->type[0] = 0;
+@@ -317,7 +318,7 @@ get_torito_desc(struct eltorito_boot_descriptor *boot_desc)
+ 	 */
+ 	memset(&valid_desc, 0, sizeof (valid_desc));
+ 	valid_desc.headerid[0] = 1;
+-	valid_desc.arch[0] = EL_TORITO_ARCH_x86;
++	valid_desc.arch[0] = first_boot_entry->arch;
+ 
+ 	/*
+ 	 * we'll shove start of publisher id into id field,
+@@ -347,10 +348,53 @@ get_torito_desc(struct eltorito_boot_descriptor *boot_desc)
+ 	/* now write it to the virtual boot catalog */
+ 	memcpy(de2->table, &valid_desc, 32);
+ 
+-	for (current_boot_entry = first_boot_entry, offset = sizeof (valid_desc);
+-		current_boot_entry != NULL;
+-		current_boot_entry = current_boot_entry->next,
+-		offset += sizeof (boot_desc_record)) {
++	/* Fill the first entry, since it's special and already has the
++	 * matching header via the validation header... */
++	offset = sizeof (valid_desc);
++	current_boot_entry = first_boot_entry;
++
++	if (offset >= SECTOR_SIZE) {
++#ifdef	USE_LIBSCHILY
++		comerrno(EX_BAD, "Too many El Torito boot entries\n");
++#else
++		fprintf(stderr,	"Too many El Torito boot entries\n");
++		exit(1);
++#endif
++	}
++	fill_boot_desc(&boot_desc_record, current_boot_entry);
++	memcpy(de2->table + offset, &boot_desc_record,
++				sizeof (boot_desc_record));
++
++	offset += sizeof(boot_desc_record);
++
++	for (current_boot_entry = current_boot_entry->next;
++			current_boot_entry != NULL;
++			current_boot_entry = current_boot_entry->next) {
++		struct eltorito_sectionheader_entry section_header;
++
++		if (offset >= SECTOR_SIZE) {
++#ifdef	USE_LIBSCHILY
++			comerrno(EX_BAD,
++			"Too many El Torito boot entries\n");
++#else
++			fprintf(stderr,
++			"Too many El Torito boot entries\n");
++			exit(1);
++#endif
++		}
++
++		memset(&section_header, '\0', sizeof(section_header));
++		if (current_boot_entry->next)
++			section_header.headerid[0] = EL_TORITO_SECTION_HEADER;
++		else
++			section_header.headerid[0] = EL_TORITO_LAST_SECTION_HEADER;
++
++		section_header.arch[0] = current_boot_entry->arch;
++		set_721(section_header.num_entries, 1);
++
++		memcpy(de2->table + offset, &section_header,
++					sizeof(section_header));
++		offset += sizeof(section_header);
+ 
+ 		if (offset >= SECTOR_SIZE) {
+ #ifdef	USE_LIBSCHILY
+@@ -365,6 +409,8 @@ get_torito_desc(struct eltorito_boot_descriptor *boot_desc)
+ 		fill_boot_desc(&boot_desc_record, current_boot_entry);
+ 		memcpy(de2->table + offset, &boot_desc_record,
+ 					sizeof (boot_desc_record));
++		offset += sizeof (boot_desc_record);
++
+ 	}
+ }/* get_torito_desc(... */
+ 
+diff --git a/genisoimage/genisoimage.c b/genisoimage/genisoimage.c
+index a5b0b46..8add1ac 100644
+--- a/genisoimage/genisoimage.c
++++ b/genisoimage/genisoimage.c
+@@ -47,6 +47,7 @@
+ 
+ #include <mconfig.h>
+ #include "genisoimage.h"
++#include "iso9660.h"
+ #include <errno.h>
+ #include <timedefs.h>
+ #include <fctldefs.h>
+@@ -523,6 +524,8 @@ static const struct ld_option ld_options[] =
+ 	'\0', NULL, "Set debug flag", ONE_DASH},
+ 	{{"eltorito-boot", required_argument, NULL, 'b'},
+ 	'b', "FILE", "Set El Torito boot image name", ONE_DASH},
++	{{"efi-boot", required_argument, NULL, 'e'},
++	'e', "FILE", "Set EFI boot image name", ONE_DASH},
+ 	{{"eltorito-alt-boot", no_argument, NULL, OPTION_ALT_BOOT},
+ 	'\0', NULL, "Start specifying alternative El Torito boot parameters", ONE_DASH},
+ 	{{"sparc-boot", required_argument, NULL, 'B'},
+@@ -1502,6 +1505,7 @@ int main(int argc, char *argv[])
+ 			all_files = 0;
+ 			break;
+ 		case 'b':
++		case 'e':
+ 			do_sort++;		/* We sort bootcat/botimage */
+ 			use_eltorito++;
+ 			boot_image = optarg;	/* pathname of the boot image */
+@@ -1517,6 +1521,10 @@ int main(int argc, char *argv[])
+ #endif
+ 			}
+ 			get_boot_entry();
++			if (c == 'e')
++				current_boot_entry->arch = EL_TORITO_ARCH_EFI;
++			else
++				current_boot_entry->arch = EL_TORITO_ARCH_x86;
+ 			current_boot_entry->boot_image = boot_image;
+ 			break;
+ 		case OPTION_ALT_BOOT:
+diff --git a/genisoimage/genisoimage.h b/genisoimage/genisoimage.h
+index bbedfb0..76e5e21 100644
+--- a/genisoimage/genisoimage.h
++++ b/genisoimage/genisoimage.h
+@@ -293,6 +293,7 @@ struct deferred_write {
+ struct eltorito_boot_entry_info {
+ 	struct eltorito_boot_entry_info *next;
+ 	char		*boot_image;
++	char		arch;
+ 	int		not_bootable;
+ 	int		no_emul_boot;
+ 	int		hard_disk_boot;
+diff --git a/genisoimage/iso9660.h b/genisoimage/iso9660.h
+index c74c2a9..c8b7a05 100644
+--- a/genisoimage/iso9660.h
++++ b/genisoimage/iso9660.h
+@@ -62,10 +62,14 @@ struct iso_volume_descriptor {
+ #define	EL_TORITO_ARCH_x86	0
+ #define	EL_TORITO_ARCH_PPC	1
+ #define	EL_TORITO_ARCH_MAC	2
++#define	EL_TORITO_ARCH_EFI	0xef
+ 
+ #define	EL_TORITO_BOOTABLE	0x88
+ #define	EL_TORITO_NOT_BOOTABLE	0
+ 
++#define	EL_TORITO_SECTION_HEADER	0x90
++#define	EL_TORITO_LAST_SECTION_HEADER	0x91
++
+ #define	EL_TORITO_MEDIA_NOEMUL	0
+ #define	EL_TORITO_MEDIA_12FLOP	1
+ #define	EL_TORITO_MEDIA_144FLOP	2
+@@ -173,7 +177,7 @@ struct eltorito_validation_entry {
+ struct eltorito_defaultboot_entry {
+ 	char boot_id			[ISODCL(1,    1)]; /* 711 */
+ 	char boot_media			[ISODCL(2,    2)];
+-	char loadseg			[ISODCL(3,    4)]; /* 711 */
++	char loadseg			[ISODCL(3,    4)]; /* 712 */
+ 	char sys_type			[ISODCL(5,    5)];
+ 	char pad1			[ISODCL(6,    6)];
+ 	char nsect			[ISODCL(7,    8)];
+@@ -181,6 +185,14 @@ struct eltorito_defaultboot_entry {
+ 	char pad2			[ISODCL(13,  32)];
+ };
+ 
++/* El Torito Section Header Entry in boot catalog */
++struct eltorito_sectionheader_entry {
++	char headerid			[ISODCL(1,    1)]; /* 711 */
++	char arch			[ISODCL(2,    2)];
++	char num_entries		[ISODCL(3,    4)]; /* 711 */
++	char id				[ISODCL(5,   32)];
++};
++
+ /*
+  * XXX JS: The next two structures have odd lengths!
+  * Some compilers (e.g. on Sun3/mc68020) padd the structures to even length.
diff --git a/SOURCES/cdrkit-1.1.9-no_mp3.patch b/SOURCES/cdrkit-1.1.9-no_mp3.patch
new file mode 100644
index 0000000..6948e4e
--- /dev/null
+++ b/SOURCES/cdrkit-1.1.9-no_mp3.patch
@@ -0,0 +1,50 @@
+diff -up cdrkit-1.1.9/icedax/cdda2ogg.1.no_mp3 cdrkit-1.1.9/icedax/cdda2ogg.1
+--- cdrkit-1.1.9/icedax/cdda2ogg.1.no_mp3	2009-06-15 14:48:44.930637082 +0200
++++ cdrkit-1.1.9/icedax/cdda2ogg.1	2009-06-15 14:50:35.596769274 +0200
+@@ -1,12 +1,11 @@
+ '\"
+ .TH "cdda2ogg" "1"
+ .SH "NAME"
+-cdda2ogg, cdda2mp3 \(em extract audio CD audio tracks and encode them
++cdda2ogg \(em extract audio CD audio tracks and encode them
+ .SH "SYNOPSIS"
+ .PP
+ .B cdda2ogg
+ .PP
+-.B cdda2mp3
+ .SH "DESCRIPTION"
+ .PP
+ .B cdda2ogg is a simple script that uses the
+@@ -15,9 +14,6 @@ command to extract all audio tracks with
+ .B icedax <fileprefix>
+ command and encode them using the
+ .B ogg123
+-respective
+-.I <censored>
+-MP3
+ encoder. The scripts are not intended to be full-featured music archiving
+ programs, but only for quick storing of few audio data.
+ It does not use databases like CDDB or have any extra features. You may look
+@@ -36,8 +32,6 @@ for more information.
+ .SH "CONFIGURATION"
+ .PP
+ .B cdda2ogg
+-and
+-.B cdda2mp3
+ have predefined values for reading and labeling of the target files.
+ You can overwrite them with following environment variables:
+ 
+@@ -65,11 +59,11 @@ Additional options passed to
+ The base part of the filename of resulting audio files. This can also be specified as the first argument to the script.
+ 
+ .PP
+-See cdda2ogg (cdda2mp3) script file to get the default values
++See cdda2ogg script file to get the default values
+ .PP
+ System administrator can also set default values by creating of a shell
+ include file, defining the variables for the POSIX shell, and storing them as
+-/etc/default/cdda2ogg (resp. cdda2mp3).
++/etc/default/cdda2ogg.
+ .SH "EXAMPLES"
+ .PP
+ .B CDDA_DEVICE=/dev/cdrom1 cdda2ogg
diff --git a/SPECS/cdrkit.spec b/SPECS/cdrkit.spec
new file mode 100644
index 0000000..f1942cb
--- /dev/null
+++ b/SPECS/cdrkit.spec
@@ -0,0 +1,539 @@
+Summary: A collection of CD/DVD utilities
+Name: cdrkit
+Version: 1.1.11
+Release: 39%{?dist}
+License: GPLv2
+Group: Applications/System
+URL: http://cdrkit.org/
+Source: http://cdrkit.org/releases/cdrkit-%{version}.tar.gz
+
+Patch1: cdrkit-1.1.8-werror.patch
+Patch2: cdrkit-1.1.9-efi-boot.patch
+Patch4: cdrkit-1.1.9-no_mp3.patch
+Patch5: cdrkit-1.1.9-buffer_overflow.patch
+Patch6: cdrkit-1.1.10-build-fix.patch
+Patch7: cdrkit-1.1.11-manpagefix.patch
+Patch8: cdrkit-1.1.11-rootstat.patch
+Patch9: cdrkit-1.1.11-usalinst.patch
+Patch10: cdrkit-1.1.11-readsegfault.patch
+Patch11: cdrkit-1.1.11-format.patch
+Patch12: cdrkit-1.1.11-handler.patch
+Patch13: cdrkit-1.1.11-dvdman.patch
+Patch14: cdrkit-1.1.11-paranoiacdda.patch
+Patch15: cdrkit-1.1.11-utf8.patch
+Patch16: cdrkit-1.1.11-cmakewarn.patch
+Patch17: cdrkit-1.1.11-memset.patch
+Patch19: cdrkit-1.1.11-ppc64le_elfheader.patch
+Patch20: cdrkit-1.1.11-werror_gcc5.patch
+Patch21: cdrkit-1.1.11-devname.patch
+Patch22: cdrkit-1.1.11-sysmacros.patch
+
+Patch23: 0001-fix-file-name-buffer-overflow-in-isoinfo.patch 
+
+BuildRequires: cmake libcap-devel zlib-devel perl-interpreter perl-generators file-devel bzip2-devel
+
+%description
+cdrkit is a collection of CD/DVD utilities.
+
+%package -n wodim
+Summary: A command line CD/DVD recording program
+Group: Applications/Archiving
+Obsoletes: dvdrecord <= 0:0.1.5
+Provides: dvdrecord = 0:0.1.5.1
+Obsoletes: cdrecord < 9:2.01-12
+Provides: cdrecord = 9:2.01-12
+Requires: libusal = %{version}-%{release}
+Requires(preun): %{_sbindir}/alternatives coreutils
+Requires(post): %{_sbindir}/alternatives coreutils
+
+%description -n wodim
+Wodim is an application for creating audio and data CDs. Wodim
+works with many different brands of CD recorders, fully supports
+multi-sessions and provides human-readable error messages.
+
+%package -n genisoimage
+Summary: Creates an image of an ISO9660 file-system
+Group: Applications/System
+Obsoletes: mkisofs < 9:2.01-12
+Provides: mkisofs = 9:2.01-12
+Requires: libusal = %{version}-%{release}
+Requires(preun): %{_sbindir}/alternatives coreutils
+Requires(post): %{_sbindir}/alternatives coreutils
+
+%description -n genisoimage
+The genisoimage program is used as a pre-mastering program; i.e., it
+generates the ISO9660 file-system. Genisoimage takes a snapshot of
+a given directory tree and generates a binary image of the tree
+which will correspond to an ISO9660 file-system when written to
+a block device. Genisoimage is used for writing CD-ROMs, and includes
+support for creating boot-able El Torito CD-ROMs.
+
+Install the genisoimage package if you need a program for writing
+CD-ROMs.
+
+%package -n dirsplit
+Summary: Utility to split directories
+Group: Applications/System
+Requires: perl-interpreter >= 4:5.8.1
+Requires: genisoimage = %{version}-%{release}
+
+%description -n dirsplit
+This utility is used to split directories into chunks before burning. 
+Chunk size is usually set to fit to a CD/DVD.
+
+%package -n icedax
+Group: Applications/Multimedia
+Summary: A utility for sampling/copying .wav files from digital audio CDs
+Obsoletes: cdda2wav < 9:2.01-12
+Provides: cdda2wav = 9:2.01-12
+Requires: libusal = %{version}-%{release}
+Requires(preun): %{_sbindir}/alternatives chkconfig coreutils
+Requires(post): %{_sbindir}/alternatives chkconfig coreutils
+Requires: vorbis-tools
+Requires: cdparanoia
+BuildRequires: cdparanoia-devel
+
+%description -n icedax
+Icedax is a sampling utility for CD-ROM drives that are capable of
+providing a CD's audio data in digital form to your host. Audio data
+read from the CD can be saved as .wav or .sun format sound files.
+Recording formats include stereo/mono, 8/12/16 bits and different
+rates. Icedax can also be used as a CD player.
+
+%package -n libusal
+Summary: Library to communicate with SCSI devices
+Group: Development/Libraries
+
+%description -n libusal
+The libusal package contains C libraries that allows applications
+to communicate with SCSI devices and is well suitable for writing
+CD-R media.
+
+%package -n libusal-devel
+Summary: Development files for libusal
+Group: Development/Libraries
+Requires: libusal = %{version}-%{release}
+
+%description -n libusal-devel
+The libusal-devel package contains C libraries and header files
+for developing applications that use libusal for communication with
+SCSI devices.
+
+%prep
+%setup -q 
+%patch1 -p1 -b .werror
+%patch2 -p1 -b .efi
+%patch4 -p1 -b .no_mp3
+%patch5 -p1 -b .buffer_overflow
+%patch6 -p1 -b .build-fix
+%patch7 -p1 -b .manpagefix
+%patch8 -p1 -b .rootstat
+%patch9 -p1 -b .usalinst
+%patch10 -p1 -b .readsegfault
+%patch11 -p1 -b .format
+%patch12 -p1 -b .handler
+%patch13 -p1 -b .dvdman
+%patch14 -p1 -b .paranoiacdda
+# not using -b since otherwise backup files would be included into rpm
+%patch15 -p1
+%patch16 -p1 -b .cmakewarn
+%patch17 -p1 -b .edcspeed
+%patch19 -p1 -b .elfheader
+%patch20 -p1 -b .werror_gcc5
+%patch21 -p1 -b .devname
+%patch22 -p1 -b .sysmacros
+
+%patch23 -p1 -b .namesize
+
+# we do not want bundled paranoia library
+rm -rf libparanoia
+
+find . -type f -print0 | xargs -0 perl -pi -e 's#/usr/local/bin/perl#/usr/bin/perl#g'
+find doc -type f -print0 | xargs -0 chmod a-x 
+
+
+%build
+mkdir fedora
+cd fedora
+export CFLAGS="$RPM_OPT_FLAGS -Wno-error=format-security -fno-strict-aliasing"
+export CXXFLAGS="$CFLAGS"
+export FFLAGS="$CFLAGS"
+%cmake CMAKE_VERBOSE=1 \
+	-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
+	-DBUILD_SHARED_LIBS:BOOL=ON \
+..
+
+make VERBOSE=1 %{?_smp_mflags}
+
+%install
+cd fedora
+make install DESTDIR=$RPM_BUILD_ROOT
+perl -pi -e 's#^require v5.8.1;##g' $RPM_BUILD_ROOT%{_bindir}/dirsplit
+ln -s genisoimage $RPM_BUILD_ROOT%{_bindir}/mkisofs
+ln -s genisoimage $RPM_BUILD_ROOT%{_bindir}/mkhybrid
+ln -s icedax $RPM_BUILD_ROOT%{_bindir}/cdda2wav
+ln -s wodim $RPM_BUILD_ROOT%{_bindir}/cdrecord
+ln -s wodim $RPM_BUILD_ROOT%{_bindir}/dvdrecord
+
+#do not include empty fedora/* directories in debuginfo package
+cd ..
+rm -rf fedora
+
+# missing man page. Do symlink like in debian
+ln -sf wodim.1.gz $RPM_BUILD_ROOT/%{_mandir}/man1/netscsid.1.gz
+
+# we don't need cdda2mp3 since we don't have any mp3 {en,de}coder
+rm $RPM_BUILD_ROOT%{_bindir}/cdda2mp3
+
+%post -n wodim
+link=`readlink %{_bindir}/cdrecord`
+if [ "$link" == "%{_bindir}/wodim" ]; then
+	rm -f %{_bindir}/cdrecord
+fi
+link=`readlink %{_bindir}/dvdrecord`
+if [ "$link" == "wodim" ]; then
+	rm -f %{_bindir}/dvdrecord
+fi
+
+%{_sbindir}/alternatives --install %{_bindir}/cdrecord cdrecord \
+		%{_bindir}/wodim 50 \
+	--slave %{_mandir}/man1/cdrecord.1.gz cdrecord-cdrecordman \
+		%{_mandir}/man1/wodim.1.gz \
+	--slave %{_bindir}/dvdrecord cdrecord-dvdrecord %{_bindir}/wodim \
+	--slave %{_mandir}/man1/dvdrecord.1.gz cdrecord-dvdrecordman \
+		%{_mandir}/man1/wodim.1.gz \
+	--slave %{_bindir}/readcd cdrecord-readcd %{_bindir}/readom \
+	--slave %{_mandir}/man1/readcd.1.gz cdrecord-readcdman \
+		%{_mandir}/man1/readom.1.gz 
+
+%preun -n wodim
+if [ $1 = 0 ]; then
+	%{_sbindir}/alternatives --remove cdrecord %{_bindir}/wodim
+fi
+
+%post -n genisoimage
+link=`readlink %{_bindir}/mkisofs`
+if [ "$link" == "genisoimage" ]; then
+	rm -f %{_bindir}/mkisofs
+fi
+
+%{_sbindir}/alternatives --install %{_bindir}/mkisofs mkisofs \
+		%{_bindir}/genisoimage 50 \
+	--slave %{_mandir}/man1/mkisofs.1.gz mkisofs-mkisofsman \
+		%{_mandir}/man1/genisoimage.1.gz \
+	--slave %{_bindir}/mkhybrid mkisofs-mkhybrid %{_bindir}/genisoimage \
+	--slave %{_mandir}/man1/mkhybrid.1.gz mkisofs-mkhybridman \
+		%{_mandir}/man1/genisoimage.1.gz
+
+%preun -n genisoimage
+if [ $1 = 0 ]; then
+	%{_sbindir}/alternatives --remove mkisofs %{_bindir}/genisoimage
+fi
+
+%post -n icedax
+link=`readlink %{_bindir}/cdda2wav`
+if [ "$link" == "icedax" ]; then
+	rm -f %{_bindir}/cdda2wav
+fi
+%{_sbindir}/alternatives --install %{_bindir}/cdda2wav cdda2wav \
+		%{_bindir}/icedax 50 \
+	--slave %{_mandir}/man1/cdda2wav.1.gz cdda2wav-cdda2wavman \
+		%{_mandir}/man1/icedax.1.gz 
+
+%preun -n icedax
+if [ $1 = 0 ]; then
+	%{_sbindir}/alternatives --remove cdda2wav %{_bindir}/icedax
+fi
+
+%post -n libusal -p /sbin/ldconfig
+
+%postun -n libusal -p /sbin/ldconfig
+
+%files -n wodim
+%doc Changelog COPYING FAQ FORK START
+%doc doc/READMEs doc/wodim
+%{_bindir}/devdump
+%{_bindir}/wodim
+%ghost %{_bindir}/cdrecord
+%ghost %{_bindir}/dvdrecord
+%{_bindir}/readom
+%{_sbindir}/netscsid
+%{_mandir}/man1/devdump.*
+%{_mandir}/man1/wodim.*
+%{_mandir}/man1/netscsid.*
+%{_mandir}/man1/readom.*
+
+%files -n icedax
+%doc doc/icedax COPYING
+%{_bindir}/icedax
+%ghost %{_bindir}/cdda2wav
+%{_bindir}/cdda2ogg
+%{_mandir}/man1/icedax.*
+%{_mandir}/man1/cdda2ogg.*
+%{_mandir}/man1/list_audio_tracks.*
+
+%files -n genisoimage
+%doc doc/genisoimage COPYING
+%{_bindir}/genisoimage
+%ghost %{_bindir}/mkisofs
+%ghost %{_bindir}/mkhybrid
+%{_bindir}/isodebug
+%{_bindir}/isodump
+%{_bindir}/isoinfo
+%{_bindir}/isovfy
+%{_bindir}/pitchplay
+%{_bindir}/readmult
+%{_mandir}/man5/genisoimagerc.*
+%{_mandir}/man1/genisoimage.*
+%{_mandir}/man1/isodebug.*
+%{_mandir}/man1/isodump.*
+%{_mandir}/man1/isoinfo.*
+%{_mandir}/man1/isovfy.*
+%{_mandir}/man1/pitchplay.*
+%{_mandir}/man1/readmult.*
+
+%files -n dirsplit
+%{_bindir}/dirsplit
+%{_mandir}/man1/dirsplit.*
+
+%files -n libusal
+%doc doc/plattforms/README.linux Changelog COPYING FAQ FORK START
+%{_libdir}/libusal.so.*
+%{_libdir}/librols.so.*
+
+%files -n libusal-devel
+%doc COPYING
+%{_libdir}/libusal.so
+%{_libdir}/librols.so
+%{_includedir}/usal
+
+%changelog
+* Thu Aug 02 2018 Jakub Martisko <jamartis@redhat.com> - 1.1.11-39
+- Fix buffer overflow erro in isoinfo caused by long names
+- Resolves: 1533004
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.11-38
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.11-37
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.11-36
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Thu Jul 13 2017 Petr Pisar <ppisar@redhat.com> - 1.1.11-35
+- perl dependency renamed to perl-interpreter
+  <https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules>
+
+* Wed Feb 22 2017 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.1.11-34
+- FTBFS with gcc7, removed -Werror (no upstream to fix problems anyway)
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.11-33
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Wed Jan 04 2017 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.1.11-32
+- FTBFS: <sys/sysmacros.h> included where "major" and "minor" macros are in use
+  (cdrkit-1.1.11-sysmacros.patch added)
+- https://bugzilla.redhat.com/show_bug.cgi?id=1263599 - man page clarified
+  (cdrkit-1.1.11-manpagefix.patch modified)
+
+* Tue Feb 16 2016 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.1.11-31
+- FTBFS: added -Wno-error=misleading-indentation
+
+* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.11-30
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.11-29
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Fri May 29 2015 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.1.11-28
+- libusal: added /dev/srN next to /dev/scdN path when scanning for devices
+  added cdrkit-1.1.11-devname.patch
+  bz#1053056
+
+* Wed Feb 25 2015 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.1.11-27
+- fixed FTBFS with gcc5, added cdrkit-1.1.11-werror_gcc5.patch
+
+* Fri Nov 07 2014 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.1.11-26
+- reverted back to cdda-paranoia, cdio has now incompatible GPLv3+ license
+
+* Wed Nov 05 2014 Dan Horák <dan[at]danny.cz> - 1.1.11-25
+- fix build on ppc* (#1144072)
+
+* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.11-24
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.11-23
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Sat Aug 03 2013 Petr Pisar <ppisar@redhat.com> - 1.1.11-22
+- Perl 5.18 rebuild
+
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.11-21
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Tue Jul 23 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.1.11-20
+- do not include empty fedora/* directories in debuginfo package
+
+* Wed Jul 17 2013 Petr Pisar <ppisar@redhat.com> - 1.1.11-19
+- Perl 5.18 rebuild
+
+* Wed Jul 17 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.1.11-18
+- ported from cdda-paranoia to libcdio-paranoia, modified paranoia-cdda.patch
+- fixed bogus date in changelog
+
+* Mon Feb 25 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.1.11-17
+- modified the memset patch, memsetting the whole array
+
+* Fri Feb 22 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.1.11-16
+- changed or deleted faulty and unneeded memset's that caused build failure with gcc-4.8 -Werror
+
+* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.11-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Wed Oct 03 2012 Honza Horak <hhorak@redhat.com> - 1.1.11-14
+- Add coreutils as preun/post requirements for wodim and genisoimage
+  Resolves: #862554
+
+* Mon Aug 27 2012 Honza Horak <hhorak@redhat.com> - 1.1.11-13
+- Add mkhybrid(1) as a symlink to genisoimage(1)
+- Spec file cleanup
+
+* Mon Jul 30 2012 Honza Horak <hhorak@redhat.com> - 1.1.11-12
+- Use system cdparanoia instead of old bundled version
+- Build libusal as a shared library
+- Messages from rpmlint clean-up
+
+* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.11-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.11-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Wed Dec 07 2011 Honza Horak <hhorak@redhat.com> - 1.1.11-9
+- Fix driver specification in man pages
+  (Resolves: #711623)
+
+* Thu Jun 02 2011 Honza Horak <hhorak@redhat.com> - 1.1.11-8
+- Fix segmentation fault when icedax exits while sleeping after ctrl-c
+  (Resolves: #709902)
+
+* Tue May 17 2011 Honza Horak <hhorak@redhat.com> - 1.1.11-7
+- Fix automatic formatting of DVD+RW if needed
+  (Resolves: #519465)
+
+* Thu Mar 17 2011 Honza Horak <hhorak@redhat.com> - 1.1.11-6
+- Added Provides: libusal-static for libusal-devel subpackage
+  (Resolves: #688347)
+
+* Mon Mar 07 2011 Honza Horak <hhorak@redhat.com> - 1.1.11-5
+- Fix segmentation fault in readom
+  (Resolves: #682591)
+
+* Thu Feb 17 2011 Honza Horak <hhorak@redhat.com> - 1.1.11-4
+- Library libusal is installed in order to be used by other apps
+  (Resolves: #588508)
+  https://bugzilla.redhat.com/show_bug.cgi?id=588508
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.11-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Mon Jan 31 2011 Honza Horak <hhorak@redhat.com> 1.1.11-2
+- fixed man page missing arguments (Resolves: #647024)
+  https://bugzilla.redhat.com/show_bug.cgi?id=647024
+- fixed erroneous "Unknown file type (unallocated)" warning 
+  (Resolves: #174667)
+  https://bugzilla.redhat.com/show_bug.cgi?id=174667
+
+* Mon Oct 18 2010 Nikola Pajkovsky <npajkovs@redhat.com> 1.1.11-1
+- new upstream version 1.1.11
+
+* Mon Jun 21 2010 Roman Rakus <rrakus@redhat.com> - 1.1.10-2
+- Added missing manpage for netscsid (symlink to wodim manpage)
+
+* Wed Jan 20 2010 Nikola Pajkovsky <npajkovs@redhat.com> - 1.1.10-1
+- new upstream version 1.1.10
+
+* Tue Aug 11 2009 Nikola Pajkovsky <npajkovs@redhat.com> 1.1.9-10
+- fix #508449. fix string overflow breakage when using the -root
+
+* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.9-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Thu Jul 16 2009 Nikola Pajkovsky <npajkovs@redhat.com> 1.1.9-8
+- fix buffer overflow
+
+* Fri Jul 10 2009 Adam Jackson <ajax@redhat.com> 1.1.9-7
+- Move dirsplit to a subpackage to isolate the perl dependency.
+
+* Mon Jun 15 2009 Roman Rakus <rrakus@redhat.com> - 1.1.9-6
+- rename functions as they conflict with glibc
+- Don't push cdda2mp3 because we don't have any mp3 coder
+  Resolves: #505918
+
+* Tue Jun 02 2009 Roman Rakus <rrakus@redhat.com> - 1.1.9-5
+- Added Requires vorbis-tools in icedax (rhbz #503699)
+
+* Wed Feb 25 2009 Peter Jones <pjones@redhat.com> - 1.1.9-4
+- Add support for EFI boot images.
+
+* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.9-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Thu Feb 12 2009 Roman Rakus <rrakus@redhat.com> - 1.1.9-2
+- Use -fno-strict-aliasing to prevent strict_aliasing warnings/errors
+
+* Mon Oct 27 2008 Roman Rakus <rrakus@redhat.com> - 1.1.9-1
+- Bump to version 1.1.9
+
+* Tue May 27 2008 Roman Rakus <rrakus@redhat.com> - 1.1.8-1
+- Version 1.1.8 - old patches included
+                - added bzip2-devel to build requirements
+- fixed #171510 - preserve directory permissions
+
+* Wed Feb 27 2008 Harald Hoyer <harald@redhat.com> 1.1.6-11
+- refined -Werror patch
+
+* Mon Feb 25 2008 Harald Hoyer <harald@redhat.com> 1.1.6-10
+- patched to compile with -Werror (rhbz#429385)
+
+* Thu Feb 21 2008 Harald Hoyer <harald@redhat.com> 1.1.6-9
+- fixed loop on error message for old dev syntax (rhbz#429386)
+
+* Thu Feb 21 2008 Harald Hoyer <harald@redhat.com> 1.1.6-8
+- added file-devel to build requirements
+
+* Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.1.6-7
+- Autorebuild for GCC 4.3
+
+* Tue Sep 25 2007 Harald Hoyer <harald@redhat.com> - 1.1.6-6
+- fixed readcd man page symlink
+
+* Fri Sep 21 2007 Harald Hoyer <harald@redhat.com> - 1.1.6-5
+- fixed rhbz#255001 - icedax --devices segfaults
+- fixed rhbz#249357 - Typo in wodim output
+
+* Fri Sep 21 2007 Harald Hoyer <harald@redhat.com> - 1.1.6-4
+- play stupid tricks, to let alternatives make the links and
+  rpm not removing them afterwards
+- removed bogus warning for "." and ".."
+
+* Thu Sep 20 2007 Harald Hoyer <harald@redhat.com> - 1.1.6-3
+- fixed rhbz#248262
+- switched to alternatives
+
+* Fri Aug 17 2007 Harald Hoyer <harald@redhat.com> - 1.1.6-2
+- changed license to GPLv2
+
+* Wed Jun 20 2007 Harald Hoyer <harald@redhat.com> - 1.1.6-1
+- version 1.1.6
+- added readcd symlink
+
+* Mon Apr 23 2007 Harald Hoyer <harald@redhat.com> - 1.1.2-4
+- bump obsoletes/provides
+
+* Tue Feb 27 2007 Harald Hoyer <harald@redhat.com> - 1.1.2-3
+- applied specfile changes as in bug #224365
+
+* Wed Jan 24 2007 Harald Hoyer <harald@redhat.com> - 1.1.2-1
+- version 1.1.2