From 8c1a2e3648229ff022730e740ba1dc715897983f Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: May 07 2019 11:56:35 +0000 Subject: import cdrkit-1.1.11-39.el8 --- 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 +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 + #include "genisoimage.h" ++#include "checksum.h" + #include "iso9660.h" + #include + #include 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 ++#include + #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 ++#include ++#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, " \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 + #include + #include ++#include + + 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 + #include + ++/* "major" and "minor" macros will be moved to sysmacros.h ++ * silence the warning ++ * added by cdrkit-1.1.11-sysmacros.patch */ ++#include ++ + #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 + #include + ++/* "major" and "minor" macros will be moved to sysmacros.h ++ * silence the warning ++ * added by cdrkit-1.1.11-sysmacros.patch */ ++#include ++ + 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 + #include + ++/* "major" and "minor" macros will be moved to sysmacros.h ++ * silence the warning ++ * added by cdrkit-1.1.11-sysmacros.patch */ ++#include ++ + + #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 + #include + ++/* "major" and "minor" macros will be moved to sysmacros.h ++ * silence the warning ++ * added by cdrkit-1.1.11-sysmacros.patch */ ++#include ++ + #include + + #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 + * 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 + * 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 + * 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 +@@ -1074,7 +1074,7 @@ Mon Jan 12 00:33:39 2004 Joerg Schilling + + Sun Jan 11 18:42:14 2004 Joerg Schilling + * 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 + * 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 + * 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 + + + +-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 ++Jörg Schilling + + -------------------------------------------------- + Here is a hint from Alan Brown : +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 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(§ion_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, §ion_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 + #include "genisoimage.h" ++#include "iso9660.h" + #include + #include + #include +@@ -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 + command and encode them using the + .B ogg123 +-respective +-.I +-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 - 1.1.11-39 +- Fix buffer overflow erro in isoinfo caused by long names +- Resolves: 1533004 + +* Wed Feb 07 2018 Fedora Release Engineering - 1.1.11-38 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 1.1.11-37 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.1.11-36 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jul 13 2017 Petr Pisar - 1.1.11-35 +- perl dependency renamed to perl-interpreter + + +* Wed Feb 22 2017 Frantisek Kluknavsky - 1.1.11-34 +- FTBFS with gcc7, removed -Werror (no upstream to fix problems anyway) + +* Fri Feb 10 2017 Fedora Release Engineering - 1.1.11-33 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Jan 04 2017 Frantisek Kluknavsky - 1.1.11-32 +- FTBFS: 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 - 1.1.11-31 +- FTBFS: added -Wno-error=misleading-indentation + +* Wed Feb 03 2016 Fedora Release Engineering - 1.1.11-30 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 1.1.11-29 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri May 29 2015 Frantisek Kluknavsky - 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 - 1.1.11-27 +- fixed FTBFS with gcc5, added cdrkit-1.1.11-werror_gcc5.patch + +* Fri Nov 07 2014 Frantisek Kluknavsky - 1.1.11-26 +- reverted back to cdda-paranoia, cdio has now incompatible GPLv3+ license + +* Wed Nov 05 2014 Dan Horák - 1.1.11-25 +- fix build on ppc* (#1144072) + +* Fri Aug 15 2014 Fedora Release Engineering - 1.1.11-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 1.1.11-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Petr Pisar - 1.1.11-22 +- Perl 5.18 rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 1.1.11-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Jul 23 2013 Frantisek Kluknavsky - 1.1.11-20 +- do not include empty fedora/* directories in debuginfo package + +* Wed Jul 17 2013 Petr Pisar - 1.1.11-19 +- Perl 5.18 rebuild + +* Wed Jul 17 2013 Frantisek Kluknavsky - 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 - 1.1.11-17 +- modified the memset patch, memsetting the whole array + +* Fri Feb 22 2013 Frantisek Kluknavsky - 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 - 1.1.11-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Oct 03 2012 Honza Horak - 1.1.11-14 +- Add coreutils as preun/post requirements for wodim and genisoimage + Resolves: #862554 + +* Mon Aug 27 2012 Honza Horak - 1.1.11-13 +- Add mkhybrid(1) as a symlink to genisoimage(1) +- Spec file cleanup + +* Mon Jul 30 2012 Honza Horak - 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 - 1.1.11-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Jan 12 2012 Fedora Release Engineering - 1.1.11-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Dec 07 2011 Honza Horak - 1.1.11-9 +- Fix driver specification in man pages + (Resolves: #711623) + +* Thu Jun 02 2011 Honza Horak - 1.1.11-8 +- Fix segmentation fault when icedax exits while sleeping after ctrl-c + (Resolves: #709902) + +* Tue May 17 2011 Honza Horak - 1.1.11-7 +- Fix automatic formatting of DVD+RW if needed + (Resolves: #519465) + +* Thu Mar 17 2011 Honza Horak - 1.1.11-6 +- Added Provides: libusal-static for libusal-devel subpackage + (Resolves: #688347) + +* Mon Mar 07 2011 Honza Horak - 1.1.11-5 +- Fix segmentation fault in readom + (Resolves: #682591) + +* Thu Feb 17 2011 Honza Horak - 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 - 1.1.11-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jan 31 2011 Honza Horak 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 1.1.11-1 +- new upstream version 1.1.11 + +* Mon Jun 21 2010 Roman Rakus - 1.1.10-2 +- Added missing manpage for netscsid (symlink to wodim manpage) + +* Wed Jan 20 2010 Nikola Pajkovsky - 1.1.10-1 +- new upstream version 1.1.10 + +* Tue Aug 11 2009 Nikola Pajkovsky 1.1.9-10 +- fix #508449. fix string overflow breakage when using the -root + +* Fri Jul 24 2009 Fedora Release Engineering - 1.1.9-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jul 16 2009 Nikola Pajkovsky 1.1.9-8 +- fix buffer overflow + +* Fri Jul 10 2009 Adam Jackson 1.1.9-7 +- Move dirsplit to a subpackage to isolate the perl dependency. + +* Mon Jun 15 2009 Roman Rakus - 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 - 1.1.9-5 +- Added Requires vorbis-tools in icedax (rhbz #503699) + +* Wed Feb 25 2009 Peter Jones - 1.1.9-4 +- Add support for EFI boot images. + +* Mon Feb 23 2009 Fedora Release Engineering - 1.1.9-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Feb 12 2009 Roman Rakus - 1.1.9-2 +- Use -fno-strict-aliasing to prevent strict_aliasing warnings/errors + +* Mon Oct 27 2008 Roman Rakus - 1.1.9-1 +- Bump to version 1.1.9 + +* Tue May 27 2008 Roman Rakus - 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 1.1.6-11 +- refined -Werror patch + +* Mon Feb 25 2008 Harald Hoyer 1.1.6-10 +- patched to compile with -Werror (rhbz#429385) + +* Thu Feb 21 2008 Harald Hoyer 1.1.6-9 +- fixed loop on error message for old dev syntax (rhbz#429386) + +* Thu Feb 21 2008 Harald Hoyer 1.1.6-8 +- added file-devel to build requirements + +* Mon Feb 18 2008 Fedora Release Engineering - 1.1.6-7 +- Autorebuild for GCC 4.3 + +* Tue Sep 25 2007 Harald Hoyer - 1.1.6-6 +- fixed readcd man page symlink + +* Fri Sep 21 2007 Harald Hoyer - 1.1.6-5 +- fixed rhbz#255001 - icedax --devices segfaults +- fixed rhbz#249357 - Typo in wodim output + +* Fri Sep 21 2007 Harald Hoyer - 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 - 1.1.6-3 +- fixed rhbz#248262 +- switched to alternatives + +* Fri Aug 17 2007 Harald Hoyer - 1.1.6-2 +- changed license to GPLv2 + +* Wed Jun 20 2007 Harald Hoyer - 1.1.6-1 +- version 1.1.6 +- added readcd symlink + +* Mon Apr 23 2007 Harald Hoyer - 1.1.2-4 +- bump obsoletes/provides + +* Tue Feb 27 2007 Harald Hoyer - 1.1.2-3 +- applied specfile changes as in bug #224365 + +* Wed Jan 24 2007 Harald Hoyer - 1.1.2-1 +- version 1.1.2