From 4fd7ce50afa801c9c0229ce8fe4d72c40e5250bb Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Fri, 5 Jan 2024 21:09:43 +0100 Subject: [PATCH] update to 3.01a27 [release 3.01a27-1mamba;Tue Feb 17 2015] --- cdrtools-2.01-CAN-2004-0806.patch | 15 - cdrtools-2.01-gcc4.patch | 61 -- cdrtools-2.01-gcc_static.patch | 12 - cdrtools-2.01-warnings.patch | 11 - cdrtools-2.01a32-ossdvd.patch | 1031 ----------------------------- cdrtools.spec | 23 +- 6 files changed, 8 insertions(+), 1145 deletions(-) delete mode 100644 cdrtools-2.01-CAN-2004-0806.patch delete mode 100644 cdrtools-2.01-gcc4.patch delete mode 100644 cdrtools-2.01-gcc_static.patch delete mode 100644 cdrtools-2.01-warnings.patch delete mode 100644 cdrtools-2.01a32-ossdvd.patch diff --git a/cdrtools-2.01-CAN-2004-0806.patch b/cdrtools-2.01-CAN-2004-0806.patch deleted file mode 100644 index 7fa7449..0000000 --- a/cdrtools-2.01-CAN-2004-0806.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- cdrecord-2.01/librscg/scsi-remote.c.org 2004-08-30 16:09:33.000000000 -0600 -+++ cdrecord-2.01/librscg/scsi-remote.c 2004-08-30 16:11:06.000000000 -0600 -@@ -1071,9 +1071,9 @@ - /* - * Become 'locuser' to tell the rsh program the local user id. - */ -- if (getuid() != pw->pw_uid && -- setuid(pw->pw_uid) == -1) { -- errmsg("setuid(%lld) failed.\n", -+ if ((pw->pw_uid) != geteuid() && -+ seteuid(pw->pw_uid) == -1) { -+ errmsg("seteuid(%lld) failed.\n", - (Llong)pw->pw_uid); - _exit(EX_BAD); - /* NOTREACHED */ diff --git a/cdrtools-2.01-gcc4.patch b/cdrtools-2.01-gcc4.patch deleted file mode 100644 index a865c2f..0000000 --- a/cdrtools-2.01-gcc4.patch +++ /dev/null @@ -1,61 +0,0 @@ ---- cdrtools-2.01/mkisofs/write.c.jj 2005-08-27 10:16:33.000000000 +0200 -+++ cdrtools-2.01/mkisofs/write.c 2005-08-27 10:29:41.000000000 +0200 -@@ -1907,7 +1907,7 @@ pvd_write(outfile) - /* Next we write out the primary descriptor for the disc */ - memset(&vol_desc, 0, sizeof (vol_desc)); - vol_desc.type[0] = ISO_VD_PRIMARY; -- memcpy(vol_desc.id, ISO_STANDARD_ID, sizeof (ISO_STANDARD_ID)); -+ memcpy(vol_desc.id, ISO_STANDARD_ID, sizeof (ISO_STANDARD_ID) - 1); - vol_desc.version[0] = 1; - - memset(vol_desc.system_id, ' ', sizeof (vol_desc.system_id)); -@@ -2030,7 +2030,7 @@ evd_write(outfile) - */ - memset(&evol_desc, 0, sizeof (evol_desc)); - evol_desc.type[0] = (unsigned char) ISO_VD_END; -- memcpy(evol_desc.id, ISO_STANDARD_ID, sizeof (ISO_STANDARD_ID)); -+ memcpy(evol_desc.id, ISO_STANDARD_ID, sizeof (ISO_STANDARD_ID) - 1); - evol_desc.version[0] = 1; - xfwrite(&evol_desc, SECTOR_SIZE, 1, outfile, 0, TRUE); - last_extent_written += 1; ---- cdrtools-2.01/mkisofs/eltorito.c.jj 2004-05-23 22:46:05.000000000 +0200 -+++ cdrtools-2.01/mkisofs/eltorito.c 2005-08-27 10:30:50.000000000 +0200 -@@ -270,7 +270,7 @@ get_torito_desc(boot_desc) - - memset(boot_desc, 0, sizeof (*boot_desc)); - boot_desc->type[0] = 0; -- memcpy(boot_desc->id, ISO_STANDARD_ID, sizeof (ISO_STANDARD_ID)); -+ memcpy(boot_desc->id, ISO_STANDARD_ID, sizeof (ISO_STANDARD_ID) - 1); - boot_desc->version[0] = 1; - - memcpy(boot_desc->system_id, EL_TORITO_ID, sizeof (EL_TORITO_ID)); ---- cdrtools-2.01/cdda2wav/toc.c.jj 2004-05-21 22:56:44.000000000 +0200 -+++ cdrtools-2.01/cdda2wav/toc.c 2005-08-27 10:25:04.000000000 +0200 -@@ -959,7 +959,12 @@ process_cddb_titles(sock_fd, inbuff, rea - if (*target != NULL) - **target = '\0'; - } else { -- realloc(*target, strlen(*target) + clen - 1); -+ char *newp = realloc(*target, strlen(*target) + clen - 1); -+ if (newp == NULL) { -+ free (*target); -+ *target = NULL; -+ } else -+ *target = newp; - } - if (*target != NULL) { - strcat((char *)*target, inbuff+ind+7); -@@ -994,7 +999,12 @@ process_cddb_titles(sock_fd, inbuff, rea - if (global.tracktitle[tno] != NULL) - *(global.tracktitle[tno]) = '\0'; - } else { -- realloc(global.tracktitle[tno], strlen((char *)global.tracktitle[tno]) + p - q + 1 ); -+ char *newp = realloc(global.tracktitle[tno], strlen((char *)global.tracktitle[tno]) + p - q + 1 ); -+ if (newp == NULL) { -+ free (global.tracktitle[tno]); -+ global.tracktitle[tno] = NULL; -+ } else -+ global.tracktitle[tno] = newp; - } - if (global.tracktitle[tno] != NULL) { - strcat((char *)global.tracktitle[tno], q+1); diff --git a/cdrtools-2.01-gcc_static.patch b/cdrtools-2.01-gcc_static.patch deleted file mode 100644 index d69d6b0..0000000 --- a/cdrtools-2.01-gcc_static.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -pur cdrtools-2.01/cdrecord/drv_mmc.c cdrtools-2.01-fix/cdrecord/drv_mmc.c ---- cdrtools-2.01/cdrecord/drv_mmc.c 2006-03-16 14:33:59.000000000 +0100 -+++ cdrtools-2.01-fix/cdrecord/drv_mmc.c 2006-03-16 14:35:55.000000000 +0100 -@@ -1087,7 +1087,7 @@ check_writemodes_mmc(scgp, dp) - return (0); - } - --LOCAL int -+EXPORT int - check_writemodes_mdvd(scgp, dp) - SCSI *scgp; - cdr_t *dp; diff --git a/cdrtools-2.01-warnings.patch b/cdrtools-2.01-warnings.patch deleted file mode 100644 index 690b855..0000000 --- a/cdrtools-2.01-warnings.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- cdrtools-2.01/RULES/mk-gmake.id 2004-09-08 18:10:02.000000000 +0200 -+++ cdrtools-2.01/RULES/mk-gmake.id.nowarn 2006-03-16 12:55:18.000000000 +0100 -@@ -37,7 +37,7 @@ - - ifndef ARCH_DONE - --__gmake_warn:= $(shell cat $(SRCROOT)/$(RULESDIR)/gmake.wrn 1>&2; sleep 5) -+#__gmake_warn:= $(shell cat $(SRCROOT)/$(RULESDIR)/gmake.wrn 1>&2; sleep 5) - - _MACHCMD= (mach || uname -p || true) 2> /dev/null - _ARCHCMD= (arch || /usr/ucb/arch || true) 2> /dev/null diff --git a/cdrtools-2.01a32-ossdvd.patch b/cdrtools-2.01a32-ossdvd.patch deleted file mode 100644 index 2c69011..0000000 --- a/cdrtools-2.01a32-ossdvd.patch +++ /dev/null @@ -1,1031 +0,0 @@ -diff -u -r -3 cdrtools-2.01/cdrecord/cdr_drv.c cdrtools-2.01.ossdvd/cdrecord/cdr_drv.c ---- cdrtools-2.01/cdrecord/cdr_drv.c 2004-03-02 02:06:26.000000000 +0100 -+++ cdrtools-2.01.ossdvd/cdrecord/cdr_drv.c 2004-08-27 05:22:37.000000000 +0200 -@@ -42,6 +42,7 @@ - extern cdr_t cdr_oldcd; - extern cdr_t cdr_cd; - extern cdr_t cdr_mmc; -+extern cdr_t cdr_mdvd; - extern cdr_t cdr_mmc_sony; - extern cdr_t cdr_cd_dvd; - extern cdr_t cdr_philips_cdd521O; -@@ -80,6 +81,7 @@ - cdr_t *drivers[] = { - &cdr_cd_dvd, - &cdr_mmc, -+ &cdr_mdvd, - &cdr_mmc_sony, - &cdr_cd, - &cdr_oldcd, -diff -u -r -3 cdrtools-2.01/cdrecord/cdrecord.c cdrtools-2.01.ossdvd/cdrecord/cdrecord.c ---- cdrtools-2.01/cdrecord/cdrecord.c 2004-06-17 11:24:50.000000000 +0200 -+++ cdrtools-2.01.ossdvd/cdrecord/cdrecord.c 2004-08-27 05:22:37.000000000 +0200 -@@ -215,7 +215,7 @@ - LOCAL BOOL checkdsize __PR((SCSI *scgp, cdr_t *dp, - long tsize, int flags)); - LOCAL void raise_fdlim __PR((void)); --LOCAL void gargs __PR((int, char **, int *, track_t *, char **, -+LOCAL int gargs __PR((int, char **, int *, track_t *, char **, - int *, cdr_t **, - int *, long *, int *)); - LOCAL void set_trsizes __PR((cdr_t *, int, track_t *)); -@@ -270,6 +270,7 @@ - SCSI *scgp = NULL; - char errstr[80]; - BOOL gracedone = FALSE; -+ int ispacket; - - #ifdef __EMX__ - /* This gives wildcard expansion with Non-Posix shells with EMX */ -@@ -284,7 +285,7 @@ - track[i].track = track[i].trackno = i; - track[0].tracktype = TOC_MASK; - raise_fdlim(); -- gargs(ac, av, &tracks, track, &dev, &timeout, &dp, &speed, &flags, -+ ispacket = gargs(ac, av, &tracks, track, &dev, &timeout, &dp, &speed, &flags, - &blanktype); - if ((track[0].tracktype & TOC_MASK) == TOC_MASK) - comerrno(EX_BAD, "Internal error: Bad TOC type.\n"); -@@ -351,6 +352,10 @@ - CLONE_TITLE, - cdr_version, - HOST_CPU, HOST_VENDOR, HOST_OS); -+ printf("NOTE: this is OSS DVD extensions for cdrtools and thus may have bugs\n"); -+ printf(" related to DVD issues that are not present in the original cdrtools. For\n"); -+ printf(" more information see http://crashrecovery.org/oss-dvd.html. The original\n"); -+ printf(" cdrtools author should not be bothered with problems in this version.\n"); - - #if defined(SOURCE_MODIFIED) || !defined(IS_SCHILY_XCONFIG) - #define INSERT_YOUR_EMAIL_ADDRESS_HERE -@@ -591,6 +596,19 @@ - } else if (!is_unknown_dev(scgp) && dp != get_cdrcmds(scgp)) { - errmsgno(EX_BAD, "WARNING: Trying to use other driver on known device.\n"); - } -+ if (ispacket) { -+ BOOL is_cdwr = FALSE; -+ BOOL is_dvdwr = FALSE; -+ is_mmc(scgp, &is_cdwr, &is_dvdwr); -+ if (is_dvdwr) { -+ track[0].flags |= TI_PACKET; -+ /*XXX put here to only affect DVD writing, should be in gargs. -+ * however if set in args for all mode, packet writing is then -+ * broken for all disc as cdrecord assume that PACKET imply TAO which -+ * is not true at all???? */ -+ track[0].flags &= ~TI_TAO; -+ } -+ } - - if (!is_cddrive(scgp)) - comerrno(EX_BAD, "Sorry, no CD/DVD-Drive found on this target.\n"); -@@ -632,7 +650,7 @@ - if (!is_mmc(scgp, &is_cdwr, &is_dvdwr)) - is_cdwr = TRUE; /* If it is not MMC, it must be a CD writer */ - -- if (is_dvdwr && !set_cdrcmds("mmc_dvd", (cdr_t **)NULL)) { -+ if (is_dvdwr && !set_cdrcmds("mmc_mdvd", (cdr_t **)NULL)) { - errmsgno(EX_BAD, - "This version of cdrecord does not include DVD-R/DVD-RW support code.\n"); - errmsgno(EX_BAD, -@@ -1180,6 +1198,14 @@ - trackno = 0; - } - scgp->silent--; -+ -+ /* If it is DVD, the information in TOC is fabricated :) -+ The real information is from read disk info command*/ -+ if((dp->cdr_dstat->ds_disktype&DT_DVD) && (dp->cdr_dstat->ds_trlast>0)){ -+ trackno=dp->cdr_dstat->ds_trlast-1; -+ printf("trackno=%d\n",trackno); -+ } -+ - if ((tracks + trackno) > MAX_TRACK) { - /* - * XXX How many tracks are allowed on a DVD? -@@ -2911,10 +2937,13 @@ - /* - * dsp->ds_maxblocks == 0 (disk capacity is unknown). - */ -- if (endsec >= (405000-300)) { /*<90 min disk*/ -- errmsgno(EX_BAD, -- "Data will not fit on any disk.\n"); -- goto toolarge; -+ if (endsec >= (2300000)) { -+ errmsgno(EX_BAD, -+ "ERROR: Could not manage to find medium size, and more than 4.3 GB of data.\n"); -+ goto toolarge; -+ } else if (endsec >= (405000-300)) { /*<90 min disk or DVD*/ -+ errmsgno(EX_BAD, -+ "WARNING: Could not manage to find medium size, and more than 90 mins of data.\n"); - } else if (endsec >= (333000-150)) { /* 74 min disk*/ - errmsgno(EX_BAD, - "WARNING: Data may not fit on standard 74min disk.\n"); -@@ -2998,7 +3027,7 @@ - #define M_RAW 4 /* Raw mode */ - #define M_PACKET 8 /* Packed mode */ - --LOCAL void -+LOCAL int - gargs(ac, av, tracksp, trackp, devp, timeoutp, dpp, speedp, flagsp, blankp) - int ac; - char **av; -@@ -3666,14 +3695,14 @@ - ((strncmp(*devp, "HELP", 4) == 0) || - (strncmp(*devp, "help", 4) == 0))) { - *flagsp |= F_CHECKDRIVE; /* Set this for not calling mlockall() */ -- return; -+ return ispacket; - } - if (*flagsp & (F_LOAD|F_DLCK|F_SETDROPTS|F_MSINFO|F_TOC|F_PRATIP|F_FIX|F_VERSION|F_CHECKDRIVE|F_PRCAP|F_INQUIRY|F_SCANBUS|F_RESET|F_ABORT)) { - if (tracks != 0) { - errmsgno(EX_BAD, "No tracks allowed with this option\n"); - susage(EX_BAD); - } -- return; -+ return ispacket; - } - *tracksp = tracks; - if (*flagsp & F_SAO) { -@@ -3702,12 +3731,13 @@ - susage(EX_BAD); - } - cuefilename = cuefile; -- return; -+ return ispacket; - } - if (tracks == 0 && (*flagsp & (F_LOAD|F_DLCK|F_EJECT|F_BLANK|F_FORMAT)) == 0) { - errmsgno(EX_BAD, "No tracks specified. Need at least one.\n"); - susage(EX_BAD); - } -+ return ispacket; - } - - LOCAL void -@@ -4131,9 +4161,11 @@ - /* - * Verify that scheduling is available - */ -+ seteuid ( 0 ); - #ifdef _SC_PRIORITY_SCHEDULING - if (sysconf(_SC_PRIORITY_SCHEDULING) == -1) { - errmsg("WARNING: RR-scheduler not available, disabling.\n"); -+ seteuid ( getuid() ); - return (-1); - } - #endif -@@ -4141,8 +4173,10 @@ - scp.sched_priority = sched_get_priority_max(SCHED_RR) - pri; - if (sched_setscheduler(0, SCHED_RR, &scp) < 0) { - errmsg("WARNING: Cannot set RR-scheduler\n"); -+ seteuid ( getuid() ); - return (-1); - } -+ seteuid ( getuid() ); - return (0); - } - -diff -u -r -3 cdrtools-2.01/cdrecord/cdrecord.h cdrtools-2.01.ossdvd/cdrecord/cdrecord.h ---- cdrtools-2.01/cdrecord/cdrecord.h 2004-05-25 00:36:01.000000000 +0200 -+++ cdrtools-2.01.ossdvd/cdrecord/cdrecord.h 2004-08-27 05:22:37.000000000 +0200 -@@ -570,6 +570,12 @@ - #define DSF_NEED_FORMAT 0x0800 /* Disk needs to be formatted */ - - /* -+ * Definitions for disktype flags -+ */ -+#define DT_CD 0x001 /*is a CD */ -+#define DT_DVD 0x002 /*is a DVD */ -+ -+/* - * Definitions for disk_status disk type - * used in "ds_type". - */ -diff -u -r -3 cdrtools-2.01/cdrecord/drv_mmc.c cdrtools-2.01.ossdvd/cdrecord/drv_mmc.c ---- cdrtools-2.01/cdrecord/drv_mmc.c 2004-05-25 00:36:01.000000000 +0200 -+++ cdrtools-2.01.ossdvd/cdrecord/drv_mmc.c 2004-08-27 05:23:18.000000000 +0200 -@@ -84,8 +84,11 @@ - EXPORT char *hasdrvopt __PR((char *optstr, char *optname)); - LOCAL cdr_t *identify_mmc __PR((SCSI *scgp, cdr_t *, struct scsi_inquiry *)); - LOCAL int attach_mmc __PR((SCSI *scgp, cdr_t *)); -+LOCAL int attach_mdvd __PR((SCSI *scgp, cdr_t *)); - EXPORT int check_writemodes_mmc __PR((SCSI *scgp, cdr_t *dp)); -+EXPORT int check_writemodes_mdvd __PR((SCSI *scgp, cdr_t *dp)); - LOCAL int deflt_writemodes_mmc __PR((SCSI *scgp, BOOL reset_dummy)); -+LOCAL int deflt_writemodes_mdvd __PR((SCSI *scgp, BOOL reset_dummy)); - LOCAL int get_diskinfo __PR((SCSI *scgp, struct disk_info *dip)); - LOCAL void di_to_dstat __PR((struct disk_info *dip, dstat_t *dsp)); - LOCAL int get_atip __PR((SCSI *scgp, struct atipinfo *atp)); -@@ -94,18 +97,26 @@ - #endif - LOCAL int init_mmc __PR((SCSI *scgp, cdr_t *dp)); - LOCAL int getdisktype_mmc __PR((SCSI *scgp, cdr_t *dp)); -+LOCAL int getdisktype_mdvd __PR((SCSI *scgp, cdr_t *dp)); - LOCAL int speed_select_mmc __PR((SCSI *scgp, cdr_t *dp, int *speedp)); -+LOCAL int speed_select_mdvd __PR((SCSI *scgp, cdr_t *dp, int *speedp)); - LOCAL int mmc_set_speed __PR((SCSI *scgp, int readspeed, int writespeed, int rotctl)); - LOCAL int next_wr_addr_mmc __PR((SCSI *scgp, track_t *trackp, long *ap)); -+LOCAL int next_wr_addr_mdvd __PR((SCSI *scgp, track_t *trackp, long *ap)); - LOCAL int write_leadin_mmc __PR((SCSI *scgp, cdr_t *dp, track_t *trackp)); - LOCAL int open_track_mmc __PR((SCSI *scgp, cdr_t *dp, track_t *trackp)); -+LOCAL int open_track_mdvd __PR((SCSI *scgp, cdr_t *dp, track_t *trackp)); - LOCAL int close_track_mmc __PR((SCSI *scgp, cdr_t *dp, track_t *trackp)); -+LOCAL int close_track_mdvd __PR((SCSI *scgp, cdr_t *dp, track_t *trackp)); - LOCAL int open_session_mmc __PR((SCSI *scgp, cdr_t *dp, track_t *trackp)); -+LOCAL int open_session_mdvd __PR((SCSI *scgp, cdr_t *dp, track_t *trackp)); - LOCAL int waitfix_mmc __PR((SCSI *scgp, int secs)); - LOCAL int fixate_mmc __PR((SCSI *scgp, cdr_t *dp, track_t *trackp)); -+LOCAL int fixate_mdvd __PR((SCSI *scgp, cdr_t *dp, track_t *trackp)); - LOCAL int blank_mmc __PR((SCSI *scgp, cdr_t *dp, long addr, int blanktype)); - LOCAL int send_opc_mmc __PR((SCSI *scgp, caddr_t, int cnt, int doopc)); - LOCAL int opt1_mmc __PR((SCSI *scgp, cdr_t *dp)); -+LOCAL int opt1_mdvd __PR((SCSI *scgp, cdr_t *dp)); - LOCAL int opt2_mmc __PR((SCSI *scgp, cdr_t *dp)); - LOCAL int scsi_sony_write __PR((SCSI *scgp, caddr_t bp, long sectaddr, long size, int blocks, BOOL islast)); - LOCAL int gen_cue_mmc __PR((track_t *trackp, void *vcuep, BOOL needgap)); -@@ -197,6 +208,46 @@ - opt2_mmc, - }; - -+cdr_t cdr_mdvd = { -+ 0, 0, -+ CDR_SWABAUDIO, -+ 370,370, -+ "mmc_mdvd", -+ "generic SCSI-3/mmc DVD-R(W) driver", -+ 0, -+ (dstat_t *)0, -+ identify_mmc, -+ attach_mdvd, -+ init_mmc, -+ getdisktype_mdvd, -+ scsi_load, -+ scsi_unload, -+ read_buff_cap, -+ cmd_dummy, /* recovery_needed */ -+ (int(*)__PR((SCSI *, int)))cmd_dummy, /* recover */ -+ speed_select_mdvd, -+ select_secsize, -+ next_wr_addr_mdvd, -+ (int(*)__PR((SCSI *, Ulong)))cmd_ill, /* reserve_track */ -+ scsi_cdr_write, -+ (int(*)__PR((SCSI *scgp, int, track_t *)))cmd_dummy, /* gen_cue */ -+ (int(*)__PR((SCSI *scgp, cdr_t *, track_t *)))cmd_dummy, /* send_cue */ -+ write_leadin_mmc, -+ open_track_mdvd, -+ close_track_mdvd, -+ open_session_mdvd, -+ cmd_dummy, -+ cmd_dummy, /* abort */ -+ read_session_offset, -+ fixate_mdvd, -+ stats_mmc, -+ blank_mmc, -+ format_dummy, -+ send_opc_mmc, -+ opt1_mdvd, -+ opt2_mmc, -+}; -+ - /* - * Sony MMC CD-writer - */ -@@ -589,11 +640,8 @@ - } - } else if (profile >= 0x10 && profile < 0x18) { - errmsgno(EX_BAD, -- "Found DVD media but DVD-R/DVD-RW support code is missing.\n"); -- errmsgno(EX_BAD, -- "If you need DVD-R/DVD-RW support, ask the Author for cdrecord-ProDVD.\n"); -- errmsgno(EX_BAD, -- "Free test versions and free keys for personal use are at ftp://ftp.berlios.de/pub/cdrecord/ProDVD/\n"); -+ "Found DVD media: using cdr_mdvd.\n"); -+ dp = &cdr_mdvd; - return (dp); - } - } else { -@@ -662,11 +710,8 @@ - } - if (is_dvd) { - errmsgno(EX_BAD, -- "Found DVD media but DVD-R/DVD-RW support code is missing.\n"); -- errmsgno(EX_BAD, -- "If you need DVD-R/DVD-RW support, ask the Author for cdrecord-ProDVD.\n"); -- errmsgno(EX_BAD, -- "Free test versions and free keys for personal use are at ftp://ftp.berlios.de/pub/cdrecord/ProDVD/\n"); -+ "Found DVD media: using cdr_mdvd.\n"); -+ dp = &cdr_mdvd; - } - return (dp); - } -@@ -856,6 +901,42 @@ - return (0); - } - -+LOCAL int -+attach_mdvd(scgp, dp) -+ SCSI *scgp; -+ cdr_t *dp; -+{ -+ struct cd_mode_page_2A *mp; -+ -+ -+ allow_atapi(scgp, TRUE);/* Try to switch to 10 byte mode cmds */ -+ -+ scgp->silent++; -+ mp = mmc_cap(scgp, NULL);/* Get MMC capabilities in allocated mp */ -+ scgp->silent--; -+ if (mp == NULL) -+ return (-1); /* Pre SCSI-3/mmc drive */ -+ -+ dp->cdr_cdcap = mp; /* Store MMC cap pointer */ -+ -+ if (mp->loading_type == LT_TRAY) -+ dp->cdr_flags |= CDR_TRAYLOAD; -+ else if (mp->loading_type == LT_CADDY) -+ dp->cdr_flags |= CDR_CADDYLOAD; -+ -+ if (mp->BUF != 0) -+ dp->cdr_flags |= CDR_BURNFREE; -+ -+ check_writemodes_mdvd(scgp, dp); -+ -+ if (driveropts != NULL) { -+ if (strcmp(driveropts, "help") == 0) { -+ mmc_opthelp(dp, 0); -+ } -+ } -+ -+ return (0); -+} - - EXPORT int - check_writemodes_mmc(scgp, dp) -@@ -1007,6 +1088,77 @@ - } - - LOCAL int -+check_writemodes_mdvd(scgp, dp) -+ SCSI *scgp; -+ cdr_t *dp; -+{ -+ Uchar mode[0x100]; -+ int len; -+ struct cd_mode_page_05 *mp; -+ -+ if (xdebug) -+ printf("Checking possible write modes: "); -+ -+ deflt_writemodes_mdvd(scgp, FALSE); -+ -+ fillbytes((caddr_t)mode, sizeof(mode), '\0'); -+ -+ scgp->silent++; -+ if (!get_mode_params(scgp, 0x05, "CD write parameter", -+ mode, (Uchar *)0, (Uchar *)0, (Uchar *)0, &len)) { -+ scgp->silent--; -+ return (-1); -+ } -+ if (len == 0) { -+ scgp->silent--; -+ return (-1); -+ } -+ -+ mp = (struct cd_mode_page_05 *) -+ (mode + sizeof(struct scsi_mode_header) + -+ ((struct scsi_mode_header *)mode)->blockdesc_len); -+ -+ mp->test_write = 0; -+ -+ /*We only check for PACKET and SAO since these are the only supported modes for DVD */ -+ /*XXX these checks are irrelevant because they are not medium sensitive. ie the device returns -+ error only when it does not support a given mode for ALL mediums. It should check using -+ GET CONFIGURATION command.*/ -+ -+ mp->write_type = WT_PACKET; -+ mp->fp = 0; -+ i_to_4_byte(mp->packet_size, 0); -+ -+ if (set_mode_params(scgp, "CD write parameter", mode, len, 0, -1)) { -+ dp->cdr_flags |= CDR_PACKET; -+ if (xdebug) -+ printf("PACKET "); -+ } else -+ dp->cdr_flags &= ~CDR_PACKET; -+ mp->fp = 0; -+ i_to_4_byte(mp->packet_size, 0); -+ mp->track_mode = TM_DATA; -+ -+ -+ mp->write_type = WT_SAO; -+ -+ if (set_mode_params(scgp, "CD write parameter", mode, len, 0, -1)) { -+ dp->cdr_flags |= CDR_SAO; -+ if (xdebug) -+ printf("SAO "); -+ } else -+ dp->cdr_flags &= ~CDR_SAO; -+ -+ -+ if (xdebug) -+ printf("\n"); -+ -+ deflt_writemodes_mdvd(scgp, TRUE); -+ scgp->silent--; -+ return (0); -+} -+ -+LOCAL int - deflt_writemodes_mmc(scgp, reset_dummy) - SCSI *scgp; - BOOL reset_dummy; -@@ -1080,6 +1232,61 @@ - return (0); - } - -+LOCAL int -+deflt_writemodes_mdvd(scgp, reset_dummy) -+ SCSI *scgp; -+ BOOL reset_dummy; -+{ -+ Uchar mode[0x100]; -+ int len; -+ struct cd_mode_page_05 *mp; -+ -+ fillbytes((caddr_t)mode, sizeof(mode), '\0'); -+ -+ scgp->silent++; -+ if (!get_mode_params(scgp, 0x05, "DVD write parameter", -+ mode, (Uchar *)0, (Uchar *)0, (Uchar *)0, &len)) { -+ scgp->silent--; -+ return (-1); -+ } -+ if (len == 0) { -+ scgp->silent--; -+ return (-1); -+ } -+ -+ mp = (struct cd_mode_page_05 *) -+ (mode + sizeof(struct scsi_mode_header) + -+ ((struct scsi_mode_header *)mode)->blockdesc_len); -+ -+ mp->test_write = 0; -+ /* -+ * This is the only place where we reset mp->test_write (-dummy) -+ */ -+ if (reset_dummy) -+ mp->test_write = 0; -+ -+ -+ /* -+ * Set default values: -+ * Write type = 02 (session at once) -+ * -+ * XXX Note: the same code appears in check_writemodes_mmc() and -+ * XXX in speed_select_mmc(). -+ */ -+ mp->write_type = WT_SAO; -+ mp->track_mode = TM_DATA; -+ mp->dbtype = DB_ROM_MODE1; -+ mp->session_format = SES_DA_ROM; -+ -+ -+ if (set_mode_params(scgp, "DVD write parameter", mode, len, 0, -1) < 0) { -+ scgp->silent--; -+ return (-1); -+ } -+ scgp->silent--; -+ return (0); -+} -+ - #ifdef PRINT_ATIP - LOCAL void print_di __PR((struct disk_info *dip)); - LOCAL void atip_printspeed __PR((char *fmt, int speedindex, char speedtab[])); -@@ -1149,6 +1356,9 @@ - - if (dsp->ds_last_leadout == 0 && dsp->ds_maxblocks >= 0) - dsp->ds_last_leadout = dsp->ds_maxblocks; -+ dsp->ds_trfirst=dip->first_track; -+ dsp->ds_trlast=dip->last_track_ls; -+ dsp->ds_trfirst_ls=dip->first_track_ls; - } - - LOCAL int -@@ -1259,6 +1469,30 @@ - } - - LOCAL int -+getdisktype_mdvd(scgp, dp) -+ SCSI *scgp; -+ cdr_t *dp; -+{ -+ int ret; -+ dstat_t *dsp = dp->cdr_dstat; -+ -+ struct track_info track_info; -+ if(getdisktype_mmc(scgp, dp)<0) -+ return -1; -+ -+ /* read rzone info to get the space left on disk */ -+ /*ds_trlast is the last rzone on disk, can be invisible */ -+ if(read_rzone_info(scgp, (caddr_t)&track_info, sizeof(track_info))>=0) -+ dsp->ds_maxblocks=a_to_u_4_byte(track_info.free_blocks)+a_to_4_byte(track_info.next_writable_addr); -+ -+ dsp->ds_disktype&= ~DT_CD; -+ dsp->ds_disktype|= DT_DVD; -+ -+ return (ret); -+ -+} -+ -+LOCAL int - getdisktype_mmc(scgp, dp) - SCSI *scgp; - cdr_t *dp; -@@ -1762,6 +1996,68 @@ - } - - LOCAL int -+speed_select_mdvd(scgp, dp, speedp) -+ SCSI *scgp; -+ cdr_t *dp; -+ int *speedp; -+{ -+ int retcode; -+ unsigned char perf_desc[28]; -+ int write_speed = *speedp * 1385; -+ int val = 0, val2 = 0; -+ int i; -+ -+/* For the moment we just divide the CD speed by 7*/ -+ -+ if(speedp!=NULL) -+ (*speedp)=(*speedp)*8; -+ -+ memset(perf_desc, 0, sizeof(perf_desc)); -+ -+ /* Write Rotation Control = ROTCTL_CLV -+ * | Restore Logical Unit Defaults = 0 -+ * | Exact = 0 -+ * | Random Access = 0) -+ */ -+ perf_desc[0]= ROTCTL_CLV << 3 | 0 << 2 | 0 << 1 | 0; -+ /* Start LBA to 0 */ -+ perf_desc[4] = 0; -+ perf_desc[5] = 0; -+ perf_desc[6] = 0; -+ perf_desc[7] = 0; -+ /* End LBA set to 0 (setting to 0xffffffff failed on my LG burner -+ */ -+ perf_desc[8] = 0; -+ perf_desc[9] = 0; -+ perf_desc[10] = 0; -+ perf_desc[11] = 0; -+ /* Read Speed = 0xFFFF */ -+ perf_desc[12] = 0; -+ perf_desc[13] = 0; -+ perf_desc[14] = 0xFF; -+ perf_desc[15] = 0xFF; -+ /* Read Time = 1s */ -+ perf_desc[18] = 1000 >> 8; -+ perf_desc[19] = 1000 & 0xFF; -+ /* Write Speed */ -+ perf_desc[20] = write_speed >> 24; -+ perf_desc[21] = write_speed >> 16 & 0xFF; -+ perf_desc[22] = write_speed >> 8 & 0xFF; -+ perf_desc[23] = write_speed & 0xFF; -+ /* Write Time = 1s */ -+ perf_desc[26] = 1000 >> 8; -+ perf_desc[27] = 1000 & 0xFF; -+ -+ //retcode = scsi_set_streaming(scgp, NULL, 0); -+ retcode = scsi_set_streaming(scgp, &perf_desc, sizeof(perf_desc)); -+ if (retcode == -1) return retcode; -+ retcode = speed_select_mmc(scgp, dp, speedp); -+ if(speedp!=NULL) -+ (*speedp)=(*speedp)/7; -+ return retcode; -+} -+ -+LOCAL int - next_wr_addr_mmc(scgp, trackp, ap) - SCSI *scgp; - track_t *trackp; -@@ -1898,6 +2194,48 @@ - }; - - LOCAL int -+next_wr_addr_mdvd(scgp, trackp, ap) -+ SCSI *scgp; -+ track_t *trackp; -+ long *ap; -+{ -+ int track; -+ struct track_info track_info; -+ long next_addr; -+ int result = -1; -+ struct disk_info disk_info; -+ if (trackp){ -+ track = trackp->trackno; -+ } -+ -+ if (trackp != 0 && track > 0 && is_packet(trackp)) { -+ scgp->silent++; -+ result = read_rzone_info(scgp, (caddr_t)&track_info, sizeof(track_info)); -+ scgp->silent--; -+ if (scsi_in_progress(scgp)){ -+ return -1; -+ } -+ -+ } -+ -+ if (result < 0) { -+ /* Get the last rzone*/ -+ if(read_disk_info(scgp,(caddr_t)&disk_info,8)<0) -+ return (-1); -+ -+ if (read_rzone_info(scgp, (caddr_t)&track_info, sizeof(track_info)) < 0) -+ return (-1); -+ } -+ if (scgp->verbose) -+ scg_prbytes("track info:", (Uchar *)&track_info, -+ sizeof(track_info)-scg_getresid(scgp)); -+ next_addr = a_to_4_byte(track_info.next_writable_addr); -+ if (ap) -+ *ap = next_addr; -+ return (0); -+} -+ -+LOCAL int - open_track_mmc(scgp, dp, trackp) - SCSI *scgp; - cdr_t *dp; -@@ -1978,6 +2316,45 @@ - } - - LOCAL int -+open_track_mdvd(scgp, dp, trackp) -+ SCSI *scgp; -+ cdr_t *dp; -+ track_t *trackp; -+{ -+ Uchar mode[0x100]; -+ int len; -+ struct cd_mode_page_05 *mp; -+ -+ if (is_packet(trackp)) { -+ fillbytes((caddr_t)mode, sizeof(mode), '\0'); -+ -+ if (!get_mode_params(scgp, 0x05, "DVD write parameter", -+ mode, (Uchar *)0, (Uchar *)0, (Uchar *)0, &len)) -+ return (-1); -+ if (len == 0) -+ return (-1); -+ -+ mp = (struct cd_mode_page_05 *) -+ (mode + sizeof(struct scsi_mode_header) + -+ ((struct scsi_mode_header *)mode)->blockdesc_len); -+ -+ mp->write_type = WT_PACKET; -+ mp->LS_V = 1; -+ /*For now we set the link size to 0x10(32k) because Pioneer-A03 only support this */ -+ mp->link_size=0x10; -+ mp->fp = 1; -+ i_to_4_byte(mp->packet_size, trackp->pktsize); -+ } else { -+ return 0; -+ } -+ -+ if (!set_mode_params(scgp, "CD write parameter", mode, len, 0, trackp->secsize)) -+ return (-1); -+ -+ return (0); -+} -+ -+LOCAL int - close_track_mmc(scgp, dp, trackp) - SCSI *scgp; - cdr_t *dp; -@@ -2003,6 +2380,30 @@ - return (0); - } - -+LOCAL int -+close_track_mdvd(scgp, dp, trackp) -+ SCSI *scgp; -+ cdr_t *dp; -+ track_t *trackp; -+{ -+ int ret; -+ if (!is_packet(trackp)) -+ return (0); -+ -+ if (scsi_flush_cache(scgp, (dp->cdr_cmdflags&F_IMMED) != 0) < 0) { -+ printf("Trouble flushing the cache\n"); -+ return -1; -+ } -+ wait_unit_ready(scgp, 300); /* XXX Wait for ATAPI */ -+ if (is_packet(trackp) && !is_noclose(trackp)) { -+ /* close the incomplete track */ -+ ret = scsi_close_tr_session(scgp, 1, 0xFF, (dp->cdr_cmdflags&F_IMMED) != 0); -+ wait_unit_ready(scgp, 300); /* XXX Wait for ATAPI */ -+ return (ret); -+ } -+ return (0); -+} -+ - int toc2sess[] = { - SES_DA_ROM, /* CD-DA */ - SES_DA_ROM, /* CD-ROM */ -@@ -2086,6 +2487,80 @@ - } - - LOCAL int -+open_session_mdvd(scgp, dp, trackp) -+ SCSI *scgp; -+ cdr_t *dp; -+ track_t *trackp; -+{ -+ Uchar mode[0x100]; -+ int tracks = trackp->tracks; -+ -+ int len; -+ struct cd_mode_page_05 *mp; -+ Ulong totalsize; -+ int i; -+ struct track_info track_info; -+ -+ fillbytes((caddr_t)mode, sizeof(mode), '\0'); -+ -+ if (!get_mode_params(scgp, 0x05, "DVD write parameter", -+ mode, (Uchar *)0, (Uchar *)0, (Uchar *)0, &len)) -+ return (-1); -+ if (len == 0) -+ return (-1); -+ -+ mp = (struct cd_mode_page_05 *) -+ (mode + sizeof(struct scsi_mode_header) + -+ ((struct scsi_mode_header *)mode)->blockdesc_len); -+ if(is_packet(trackp)){ -+ mp->write_type=WT_PACKET; -+ mp->multi_session = (track_base(trackp)->tracktype & TOCF_MULTI) ? MS_MULTI : MS_NONE; -+ mp->fp=0; -+ mp->BUFE=1; -+ mp->track_mode=1; -+ }else{ -+ mp->write_type = WT_SAO; -+ } -+ -+ -+ if (lverbose && dp->cdr_cdcap->BUF != 0) -+ printf("BURN-Free is %s.\n", mp->BUFE?"ON":"OFF"); -+ if (driveropts != NULL) { -+ if ((strcmp(driveropts, "burnproof") == 0 || -+ strcmp(driveropts, "burnfree") == 0) && dp->cdr_cdcap->BUF != 0) { -+ errmsgno(EX_BAD, "Turning BURN-Free on\n"); -+ mp->BUFE = 1; -+ } else if ((strcmp(driveropts, "noburnproof") == 0 || -+ strcmp(driveropts, "noburnfree") == 0)) { -+ errmsgno(EX_BAD, "Turning BURN-Free off\n"); -+ mp->BUFE = 0; -+ } else if (strcmp(driveropts, "help") == 0) { -+ mmc_opthelp(dp, 0); -+ } else { -+ errmsgno(EX_BAD, "Bad driver opts '%s'.\n", driveropts); -+ mmc_opthelp(dp, EX_BAD); -+ } -+ } -+ -+ -+ if (!set_mode_params(scgp, "DVD write parameter", mode, len, 0, -1)) -+ return (-1); -+ -+ -+ totalsize=0; -+ for(i=1;i<=tracks;i++) { -+ totalsize+=trackp[i].tracksecs; -+ } -+ -+ if(!is_packet(trackp)){ -+ /* in DAO mode we need to reserve space for the track*/ -+ if(reserve_track(scgp, totalsize)<0) -+ return (-1); -+ } -+ return (0); -+} -+ -+LOCAL int - waitfix_mmc(scgp, secs) - SCSI *scgp; - int secs; -@@ -2215,6 +2690,25 @@ - return (ret); - } - -+LOCAL int -+fixate_mdvd(scgp, dp, trackp) -+ SCSI *scgp; -+ cdr_t *dp; -+ track_t *trackp; -+{ -+ /*set a really BIG timeout and call fixate_mmc -+ The BIG timeout is needed in case there was a very short rzone to write at the -+ beginning of the disk, because lead-out needs to be at some distance. -+ */ -+ scg_settimeout(scgp, 1000); -+ if(is_packet(trackp)){ -+ scsi_close_tr_session(scgp, 2, 0, FALSE); -+ } -+ fixate_mmc(scgp, dp, trackp); -+ scg_settimeout(scgp, 200); -+ -+} -+ - char *blank_types[] = { - "entire disk", - "PMA, TOC, pregap", -@@ -2453,6 +2947,42 @@ - } - - LOCAL int -+opt1_mdvd(scgp, dp) -+ SCSI *scgp; -+ cdr_t *dp; -+{ -+ int oflags = dp->cdr_dstat->ds_cdrflags; -+ -+ if ((dp->cdr_dstat->ds_cdrflags & RF_AUDIOMASTER) != 0) { -+ printf("Turning Audio Master Q. R. on\n"); -+ if (set_audiomaster_yamaha(scgp, dp, TRUE) < 0) -+ return (-1); -+ if (!debug && lverbose <= 1) -+ dp->cdr_dstat->ds_cdrflags &= ~RF_PRATIP; -+ if (getdisktype_mdvd(scgp, dp) < 0) { -+ dp->cdr_dstat->ds_cdrflags = oflags; -+ return (-1); -+ } -+ dp->cdr_dstat->ds_cdrflags = oflags; -+ if (oflags & RF_PRATIP) { -+ msf_t msf; -+ lba_to_msf(dp->cdr_dstat->ds_first_leadin, &msf); -+ printf("New start of lead in: %ld (%02d:%02d/%02d)\n", -+ (long)dp->cdr_dstat->ds_first_leadin, -+ msf.msf_min, -+ msf.msf_sec, -+ msf.msf_frame); -+ lba_to_msf(dp->cdr_dstat->ds_maxblocks, &msf); -+ printf("New start of lead out: %ld (%02d:%02d/%02d)\n", -+ (long)dp->cdr_dstat->ds_maxblocks, -+ msf.msf_min, -+ msf.msf_sec, -+ msf.msf_frame); -+ } -+ } -+ return (0); -+} -+LOCAL int - scsi_sony_write(scgp, bp, sectaddr, size, blocks, islast) - SCSI *scgp; - caddr_t bp; /* address of buffer */ -diff -u -r -3 cdrtools-2.01/cdrecord/scsi_cdr.c cdrtools-2.01.ossdvd/cdrecord/scsi_cdr.c ---- cdrtools-2.01/cdrecord/scsi_cdr.c 2004-05-25 00:36:01.000000000 +0200 -+++ cdrtools-2.01.ossdvd/cdrecord/scsi_cdr.c 2004-08-27 05:46:33.000000000 +0200 -@@ -107,6 +107,7 @@ - EXPORT int send_cue_sheet __PR((SCSI *scgp, caddr_t bp, long size)); - EXPORT int read_buff_cap __PR((SCSI *scgp, long *, long *)); - EXPORT int scsi_blank __PR((SCSI *scgp, long addr, int blanktype, BOOL immed)); -+EXPORT int scsi_set_streaming __PR((SCSI *scgp, caddr_t addr, int size)); - EXPORT BOOL allow_atapi __PR((SCSI *scgp, BOOL new)); - EXPORT int mode_select __PR((SCSI *scgp, Uchar *, int, int, int)); - EXPORT int mode_sense __PR((SCSI *scgp, Uchar *dp, int cnt, int page, int pcf)); -@@ -519,6 +520,32 @@ - } - - EXPORT int -+scsi_set_streaming(scgp, perf_desc, size) -+ SCSI *scgp; -+ caddr_t perf_desc; -+ int size; -+{ -+ register struct scg_cmd *scmd = scgp->scmd; -+ -+ fillbytes((caddr_t)scmd, sizeof (*scmd), '\0'); -+ scmd->addr = perf_desc; -+ scmd->size = size; -+ scmd->flags = SCG_DISRE_ENA; -+ scmd->cdb_len = SC_G5_CDBLEN; -+ scmd->sense_len = CCS_SENSE_LEN; -+ scmd->cdb.g5_cdb.cmd = 0xB6; -+ scmd->cdb.cmd_cdb[11] = 0; -+ scmd->cdb.cmd_cdb[10] = size; -+ -+ scgp->cmdname = "set streaming"; -+ -+ printf("scsi_set_streaming\n"); -+ if (scg_cmd(scgp) < 0) -+ return (-1); -+ return (0); -+} -+ -+EXPORT int - scsi_set_speed(scgp, readspeed, writespeed, rotctl) - SCSI *scgp; - int readspeed; -@@ -1042,6 +1069,32 @@ - return (0); - } - -+ -+EXPORT int -+reserve_track(scgp, size) -+ SCSI *scgp; -+ Ulong size; -+ -+{ -+ register struct scg_cmd *scmd = scgp->scmd; -+ -+ fillbytes((caddr_t)scmd, sizeof(*scmd), '\0'); -+ scmd->flags = SCG_DISRE_ENA; -+ scmd->cdb_len = SC_G1_CDBLEN; -+ scmd->sense_len = CCS_SENSE_LEN; -+ scmd->cdb.g1_cdb.cmd = 0x53; -+ scmd->cdb.g1_cdb.lun = scg_lun(scgp); -+ i_to_4_byte(&scmd->cdb.g1_cdb.addr[3], size); -+ -+ scgp->cmdname = "reserve track"; -+ -+ if (scg_cmd(scgp) < 0) -+ return (-1); -+ -+ return (0); -+ -+} -+ - EXPORT int - read_rzone_info(scgp, bp, cnt) - SCSI *scgp; -diff -u -r -3 cdrtools-2.01/include/utypes.h cdrtools-2.01.ossdvd/include/utypes.h ---- cdrtools-2.01/include/utypes.h 2003-06-15 23:41:23.000000000 +0200 -+++ cdrtools-2.01.ossdvd/include/utypes.h 2004-08-27 07:13:09.076574488 +0200 -@@ -75,6 +75,25 @@ - typedef unsigned char Uchar; - - /* -+ * Added these cause Linux distro's using kernel 2.6.x seems -+ * to want them. -+ */ -+typedef unsigned char u8; -+typedef unsigned short u16; -+typedef unsigned int u32; -+#if defined(__GNUC__) /* this is defined gcc-3.x */ -+typedef unsigned long long u64; -+#endif -+ -+/* -+ * Dodge the __attribute_const__ out of sneaky kernel includes. -+ * cdrtools is a userland program, so no kernel attribute's -+ */ -+#ifndef __attribute_const__ -+# define __attribute_const__ /* unimplemented */ -+#endif -+ -+/* - * This is a definition for a compiler dependant 64 bit type. - * It currently is silently a long if the compiler does not - * support it. Check if this is the right way. -diff -u -r -3 cdrtools-2.01/cdda2wav/interface.c cdrtools-2.01.ossdvd/cdda2wav/interface.c ---- cdrtools-2.01/cdda2wav/interface.c 2004-06-07 11:49:18.000000000 +0200 -+++ cdrtools-2.01.ossdvd/cdda2wav/interface.c 2004-08-27 05:35:20.000000000 +0200 -@@ -44,6 +44,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -79,7 +80,6 @@ - #include "exitcodes.h" - #include "scsi_cmds.h" - --#include - #include - #include "scsi_scan.h" - -diff -u -r -3 cdrtools-2.01/cdda2wav/ioctl.c cdrtools-2.01.ossdvd/cdda2wav/ioctl.c ---- cdrtools-2.01/cdda2wav/ioctl.c 2003-12-27 17:29:28.000000000 +0100 -+++ cdrtools-2.01.ossdvd/cdda2wav/ioctl.c 2004-08-27 05:37:59.000000000 +0200 -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - #include - -@@ -55,7 +56,6 @@ - #include "global.h" - #include "exitcodes.h" - --#include - #include - - #if defined (HAVE_IOCTL_INTERFACE) diff --git a/cdrtools.spec b/cdrtools.spec index 5696b83..5166ff9 100644 --- a/cdrtools.spec +++ b/cdrtools.spec @@ -1,26 +1,21 @@ %define cdrecording_group 12 %define sourcever %(echo %version | cut -da -f1) Name: cdrtools -Version: 3.01a25 +Version: 3.01a27 Release: 1mamba Summary: Tools for CD/DVD recorders Group: System/Tools Vendor: openmamba Distribution: openmamba Packager: Silvan Calarco -URL: http://sourceforge.net/projects/cdrtools/ -Source: http://downloads.sourceforge.net/project/cdrtools/alpha/cdrtools-%{version}.tar.gz -Patch0: %{name}-2.01-CAN-2004-0806.patch -Patch1: %{name}-2.01-warnings.patch -Patch2: http://crashrecovery.org/oss-dvd/cdrtools-2.01a32-ossdvd.patch.bz2 -Patch3: %{name}-2.01-gcc4.patch -Patch4: %{name}-2.01-gcc_static.patch +URL: http://cdrtools.sourceforge.net/ +Source: http://downloads.sourceforge.net/project/cdrtools/alpha/cdrtools-%{version}.tar.bz2 License: GPL, Common Development and Distribution License ## AUTOBUILDREQ-BEGIN -BuildRequires: bash BuildRequires: glibc-devel -## AUTOBUILDREQ-END +BuildRequires: libacl-devel BuildRequires: libcap-devel +## AUTOBUILDREQ-END BuildRoot: %{_tmppath}/%{name}-%{version}-root %description @@ -43,11 +38,6 @@ This is the development package. %prep %setup -q -n %{name}-%{sourcever} -#%patch0 -p1 -b .CAN-2004-0806 -#%patch1 -p1 -b .warning -#%patch2 -p1 -#%patch3 -p1 -b .gcc4 -#%patch4 -p1 -b .gcc_static %build mandir=%{_mandir} @@ -117,6 +107,9 @@ mandir=%{_mandir} %doc README.linux-shm README.mkisofs %changelog +* Tue Feb 17 2015 Silvan Calarco 3.01a27-1mamba +- update to 3.01a27 + * Sun Nov 16 2014 Automatic Build System 3.01a25-1mamba - automatic version update by autodist