diff --git a/dvd+rw-tools-7.0-bacula.patch b/dvd+rw-tools-7.0-bacula.patch new file mode 100644 index 0000000..90c5b20 --- /dev/null +++ b/dvd+rw-tools-7.0-bacula.patch @@ -0,0 +1,87 @@ +Patch adding support for bacula by Luigi Gangitano + + * Allow session to cross 4GB boundary regardless of medium type + * Add a -F option (used instead of -M or -Z), which displays + next_session offset and capacity + + +diff -Naur dvd+rw-tools-7.0.orig/growisofs.c dvd+rw-tools-7.0/growisofs.c +--- dvd+rw-tools-7.0.orig/growisofs.c 2006-09-24 17:28:53.000000000 +0000 ++++ dvd+rw-tools-7.0/growisofs.c 2006-10-29 14:18:35.000000000 +0000 +@@ -370,6 +370,11 @@ + * upon Layer Break command, therefore longer timeout is required; + * - Linux: deploy BLKFLSBUF to avoid media reloads when possible; + * - add unit buffer utilization indicator [by request from K3b]; ++ * Additions by Nicolas Boichat, Bacula project ++ * - Allow session to cross 4GB boundary regardless of medium type ++ * (don't need to have a DL media) ++ * - Add a -F option (used instead of -M or -Z), which displays next_session ++ * offset and capacity (free space = next_session - capacity). + */ + #define PRINT_VERSION(cmd) do { \ + char *s=strrchr((cmd),'/'); \ +@@ -2773,6 +2778,18 @@ + else in_device = argv[++i]; + dev_found = 'Z'; + } ++ else if (argv[i][1] == 'F') ++ { if (len > 2) in_device = argv[i]+2; ++ else in_device = argv[++i]; ++ dev_found = 'F'; ++ dry_run = 1; /* NEVER write anything with -F */ ++ } ++ else if (!strncmp(opt,"-free-space",11)) ++ { if (len > 11) in_device = opt+11; ++ else in_device = argv[++i]; ++ dev_found = 'F'; ++ dry_run = 1; /* NEVER write anything with -F */ ++ } + else if (!strcmp(opt,"-poor-man")) + { if (poor_man<0) poor_man = 1; + continue; +@@ -2993,7 +3010,9 @@ + fprintf (stderr," you most likely want to use -Z option.\n"), + exit (FATAL_START(errno)); + +- if (dev_found == 'M') ++ if ((dev_found == 'M') || ++ ((dev_found == 'F') && !(mmc_profile&0x10000)) && (saved_descriptors[0].type[0] || saved_descriptors[0].type[1] || saved_descriptors[0].type[2])) ++ /* -F : The medium is not blank, there is a fs on it (the_buffer[0,1 or 2] != 0), so compute next_session. */ + { if (memcmp (saved_descriptors[0].type,"\1CD001",6)) + fprintf (stderr,":-( %s doesn't look like isofs...\n", + in_device), exit(FATAL_START(EMEDIUMTYPE)); +@@ -3016,8 +3035,7 @@ + exit(FATAL_START(EINVAL)); + } + else if (next_session > (0x200000-0x5000)) /* 4GB/2K-40MB/2K */ +- if ((mmc_profile&0xFFFF)<0x20 || +- ((mmc_profile&0xFFFF)<0x40 && !no_4gb_check)) ++ if (!no_4gb_check) + fprintf (stderr,":-( next session would cross 4GB " + "boundary, aborting...\n"), + exit (FATAL_START(ENOSPC)); +@@ -3060,7 +3078,7 @@ + exit (FATAL_START(EINVAL)); + + if (imgfd<0) +- { if (mkisofs_argc==1) ++ { if ((mkisofs_argc==1) && (dev_found != 'F')) + fprintf (stderr,"%s: no mkisofs options specified, " + "aborting...\n",argv[0]), + exit (FATAL_START(EINVAL)); +@@ -3244,6 +3262,15 @@ + } + } + ++ if (dev_found == 'F') { ++ off64_t capacity = 0; ++ printf("next_session=%lld\n", next_session*CD_BLOCK); ++ if (ioctl_handle!=INVALID_HANDLE) ++ capacity = get_capacity (ioctl_handle); ++ printf("capacity=%lld\n", capacity); ++ exit(0); ++ } ++ + if (imgfd>=0) + { quiet--; + if (builtin_dd (imgfd,out_fd,next_session*CD_BLOCK) < 0) diff --git a/dvd+rw-tools-7.0-wexit.patch b/dvd+rw-tools-7.0-wexit.patch new file mode 100644 index 0000000..09ab1a3 --- /dev/null +++ b/dvd+rw-tools-7.0-wexit.patch @@ -0,0 +1,22 @@ +--- dvd+rw-tools-7.0/dvd+rw-format.cpp.wexit 2007-06-21 12:42:30.000000000 +0200 ++++ dvd+rw-tools-7.0/dvd+rw-format.cpp 2007-06-21 12:44:13.000000000 +0200 +@@ -245,7 +245,7 @@ int main (int argc, char *argv[]) + alarm(1); + while ((waitpid(pid,&i,0) != pid) && !WIFEXITED(i)) ; + if (WEXITSTATUS(i) == 0) fprintf (stderr,"\n"); +- exit (0); ++ exit (WEXITSTATUS(i)); + } + #endif + +--- dvd+rw-tools-7.0/growisofs.c.wexit 2007-06-21 12:44:04.000000000 +0200 ++++ dvd+rw-tools-7.0/growisofs.c 2007-06-21 12:43:50.000000000 +0200 +@@ -2534,7 +2534,7 @@ void pipe_mkisofs_up (char *mkisofs_argv + + if (!WIFEXITED(ret) || WEXITSTATUS(ret)!=0) + fprintf (stderr,":-( mkisofs has failed: %d\n",WEXITSTATUS(ret)), +- exit (1); ++ exit (WEXITSTATUS(ret)); + } + else if (n<0) + { int err = errno; diff --git a/dvd+rw-tools.spec b/dvd+rw-tools.spec index 88251cc..94d9149 100644 --- a/dvd+rw-tools.spec +++ b/dvd+rw-tools.spec @@ -1,7 +1,7 @@ Summary: Toolchain to master DVD+RW/+R media Name: dvd+rw-tools Version: 7.0 -Release: 3%{?dist} +Release: 4%{?dist} License: GPL Group: Applications/Multimedia Source: http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-%{version}.tar.gz @@ -9,6 +9,8 @@ Source1: index.html Patch1: dvd+rw-tools-7.0-phys.patch Patch2: dvd+rw-tools-7.0-pthread.patch Patch3: dvd+rw-tools-7.0.manpatch +Patch4: dvd+rw-tools-7.0-wexit.patch +Patch5: dvd+rw-tools-7.0-bacula.patch URL: http://fy.chalmers.se/~appro/linux/DVD+RW/ Requires: mkisofs >= 2.0 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -23,6 +25,8 @@ information see http://fy.chalmers.se/~appro/linux/DVD+RW/. %patch1 -p1 -b .phys %patch2 -p1 -b .pthread %patch3 -p1 -b .manpatch +%patch4 -p1 -b .wexit +%patch5 -p1 -b .bacula %build export CFLAGS="$RPM_OPT_FLAGS" @@ -46,20 +50,26 @@ rm -rf %{buildroot} %{_mandir}/man1/growisofs.1* %changelog -* Tue Feb 27 2007 Harald Hoyer - 7.0-3%{?dist} +* Thu Jun 21 2007 Harald Hoyer - 7.0-4 +- fixed exit status (#243036) +- Allow session to cross 4GB boundary regardless of medium type. + Add a -F option (used instead of -M or -Z), which displays + next_session offset and capacity. (#237967) + +* Tue Feb 27 2007 Harald Hoyer - 7.0-3 - fixed specfile issues (#209985) -* Thu Dec 14 2006 Harald Hoyer - 7.0-0%{?dist}.4 +* Thu Dec 14 2006 Harald Hoyer - 7.0-0.4 - set pthread stack size according to limit (#215818) -* Wed Dec 13 2006 Harald Hoyer - 7.0-0%{?dist}.3 +* Wed Dec 13 2006 Harald Hoyer - 7.0-0.3 - use _SC_PHYS_PAGES instead of _SC_AVPHYS_PAGES to determine available memory - Resolves: rhbz#216794 -* Fri Nov 03 2006 Harald Hoyer - 7.0-0%{?dist}.2 +* Fri Nov 03 2006 Harald Hoyer - 7.0-0.2 - define RLIMIT_MEMLOCK, which should resolve the memlock problems -* Thu Oct 26 2006 Harald Hoyer - 7.0-0%{?dist}.1 +* Thu Oct 26 2006 Harald Hoyer - 7.0-0.1 - new version 7.0 * Wed Jul 12 2006 Jesse Keating - 6.1-4.1