]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/patches/dvd+rw-tools.patch
Restore win32 dir from Branch-5.2 and update it
[bacula/bacula] / bacula / src / win32 / patches / dvd+rw-tools.patch
1 --- ../orig/dvd+rw-tools-7.0/growisofs.c        2006-09-24 10:28:53.000000000 -0700
2 +++ ./growisofs.c       2006-12-07 01:56:17.000000000 -0800
3 @@ -370,12 +370,17 @@
4   *   upon Layer Break command, therefore longer timeout is required;
5   * - Linux: deploy BLKFLSBUF to avoid media reloads when possible;
6   * - add unit buffer utilization indicator [by request from K3b];
7 + * 7.0.1: (by Nicolas Boichat, Bacula project)
8 + * - Allow session to cross 4GB boundary regardless of medium type
9 + *   (don't need to have a DL media)
10 + * - Add a -F option (used instead of -M or -Z), which displays next_session
11 + *   offset and capacity (free space = next_session - capacity).
12   */
13  #define PRINT_VERSION(cmd)     do {                    \
14      char *s=strrchr((cmd),'/');                                \
15      s ? s++ : (s=(cmd));                               \
16      printf ("* %.*sgrowisofs by <appro@fy.chalmers.se>,"\
17 -           " version 7.0,\n",(int)(s-(cmd)),(cmd));    \
18 +           " version 7.0.1,\n",(int)(s-(cmd)),(cmd));  \
19  } while (0)
20  \f
21  #define _LARGEFILE_SOURCE 
22 @@ -2576,7 +2581,8 @@
23         else                                    arg = mkisofs_argv[0];
24  
25         cmdsz--;
26 -       assert ((len0=strlen (arg)) < cmdsz);
27 +       len0 = strlen (arg);
28 +       assert (len0 < cmdsz);
29  
30         strcpy (cmd,arg), cmd[len0++] = ' ', cmdsz -= len0;
31  
32 @@ -2773,6 +2779,18 @@
33                 else          in_device = argv[++i];
34                 dev_found = 'Z';
35             }
36 +           else if (argv[i][1] == 'F')
37 +           {   if (len > 2) in_device = argv[i]+2;
38 +               else         in_device = argv[++i];
39 +               dev_found = 'F';
40 +               dry_run = 1; /* NEVER write anything with -F */
41 +           }
42 +           else if (!strncmp(opt,"-free-space",11))
43 +           {   if (len > 11) in_device = opt+11;
44 +               else          in_device = argv[++i];
45 +               dev_found = 'F';
46 +               dry_run = 1; /* NEVER write anything with -F */
47 +           }
48             else if (!strcmp(opt,"-poor-man"))
49             {   if (poor_man<0) poor_man = 1;
50                 continue;
51 @@ -2898,7 +2916,7 @@
52             else if (argv[i][1] == '?' || !strcmp(opt,"-help"))
53             {   PRINT_VERSION (argv[0]);
54                 printf ("- usage: %s [-dvd-compat] [-overburn] [-speed=1] \\\n"
55 -                       "         -[ZM] /dev/dvd <mkisofs options>\n",argv[0]);
56 +                       "         -[ZMF] /dev/dvd <mkisofs options>\n",argv[0]);
57                 printf ("  for <mkisofs options> see 'mkisofs %s'\n",opt);
58                 exit (FATAL_START(EINVAL));
59             }
60 @@ -2993,7 +3011,13 @@
61                 fprintf (stderr,"    you most likely want to use -Z option.\n"), 
62                 exit (FATAL_START(errno));
63  
64 -           if (dev_found == 'M')
65 +           if ((dev_found == 'M') || 
66 +               ((dev_found == 'F') && !(mmc_profile&0x10000)) &&
67 +                (saved_descriptors[0].type[0] ||
68 +                 saved_descriptors[0].type[1] ||
69 +                 saved_descriptors[0].type[2]))
70 +               /* -F : The medium is not blank, there is a fs on it (the_buffer[0,1 or 2] != 0),
71 +                       so compute next_session. */
72             {   if (memcmp (saved_descriptors[0].type,"\1CD001",6))
73                     fprintf (stderr,":-( %s doesn't look like isofs...\n",
74                                 in_device), exit(FATAL_START(EMEDIUMTYPE));
75 @@ -3016,8 +3040,7 @@
76                         exit(FATAL_START(EINVAL));
77                 }
78                 else if (next_session > (0x200000-0x5000)) /* 4GB/2K-40MB/2K */
79 -                   if ((mmc_profile&0xFFFF)<0x20 ||
80 -                       ((mmc_profile&0xFFFF)<0x40 && !no_4gb_check))
81 +                   if ((mmc_profile&0xFFFF)<0x40 && !no_4gb_check)
82                         fprintf (stderr,":-( next session would cross 4GB "
83                                         "boundary, aborting...\n"),
84                         exit (FATAL_START(ENOSPC));
85 @@ -3060,7 +3083,7 @@
86         exit (FATAL_START(EINVAL));
87  
88      if (imgfd<0)
89 -    {  if (mkisofs_argc==1)
90 +    {  if ((mkisofs_argc==1) && (dev_found != 'F'))
91             fprintf (stderr,"%s: no mkisofs options specified, "
92                             "aborting...\n",argv[0]),
93             exit (FATAL_START(EINVAL));
94 @@ -3244,6 +3267,15 @@
95         }
96      }
97  
98 +    if (dev_found == 'F') {
99 +       off64_t capacity = 0;
100 +       printf("next_session=%d\n", next_session * CD_BLOCK);
101 +       if (ioctl_handle!=INVALID_HANDLE)
102 +           capacity = get_capacity (ioctl_handle);
103 +       printf("capacity=%lld\n", capacity);
104 +       exit(0);
105 +    }
106 +
107      if (imgfd>=0)
108      {  quiet--;
109         if (builtin_dd (imgfd,out_fd,next_session*CD_BLOCK) < 0)
110 --- ../orig/dvd+rw-tools-7.0/Makefile   2006-08-27 13:07:37.000000000 -0700
111 +++ ./Makefile  2006-12-07 01:56:17.000000000 -0800
112 @@ -9,7 +9,7 @@
113  
114  CHAIN=growisofs dvd+rw-format dvd+rw-booktype dvd+rw-mediainfo dvd-ram-control
115  clean:
116 -       -(rm *.o $(CHAIN) rpl8 btcflash; exit 0) < /dev/null > /dev/null 2>&1
117 +       -(rm *.o $(CHAIN) $(CHAIN:=.exe) rpl8 btcflash; exit 0) < /dev/null > /dev/null 2>&1
118  
119  VER=7.0
120  DIST=dvd+rw-tools-$(VER)
121 --- ../orig/dvd+rw-tools-7.0/Makefile.m4        2006-09-24 10:55:19.000000000 -0700
122 +++ ./Makefile.m4       2006-12-07 01:59:30.000000000 -0800
123 @@ -1,12 +1,5 @@
124  # OBS! M4 processed!
125  changequote([, ])
126 -[
127 -CHAIN=growisofs dvd+rw-format dvd+rw-booktype dvd+rw-mediainfo dvd-ram-control
128 -
129 -dvd+rw-tools:  $(CHAIN)
130 -
131 -WARN=#-Wall    # developers are welcomed to build with `make WARN=-Wall'
132 -]
133  
134  # fix-up OS macro
135  ifelse(substr(OS,0,7),[CYGWIN_],[define([OS],[MINGW32])])
136 @@ -38,11 +31,36 @@
137  #
138  # MINGW section
139  #
140 +SUFFIXES+=.exe
141  CC     =gcc
142  CFLAGS +=$(WARN) -mno-cygwin -O2
143  CXX    =g++
144  CXXFLAGS+=$(WARN) -mno-cygwin -O2 -fno-exceptions
145  LINK.o =$(LINK.cc)
146 +EXE    =.exe
147 +])
148 +
149 +ifelse(OS,XMINGW32,[
150 +#
151 +# MINGW cross-compile section
152 +#
153 +SUFFIXES+=.exe
154 +CC     =mingw32-gcc
155 +CFLAGS +=$(WARN) -mno-cygwin -O2
156 +CXX    =mingw32-g++
157 +CXXFLAGS+=$(WARN) -mno-cygwin -O2 -fno-exceptions
158 +LINK.o =$(LINK.cc)
159 +EXE    =.exe
160 +%.exe:%.o
161 +       $(CXX) $(CXXFLAGS) -o $@ $> $^ $(LDFLAGS) $(LDLIBS)
162 +
163 +install:       dvd+rw-tools
164 +       [[ -d $(prefix)/bin ]] || mkdir -p $(prefix)/bin
165 +       install -m 0755 $(CHAIN) $(prefix)/bin
166 +       [[ -d $(manprefix)/man1 ]] || mkdir -p $(manprefix)/man1
167 +       install -m 0644 growisofs.1 $(manprefix)/man1
168 +       -[[ -f rpl8 ]] && install -m 0755 rpl8 $(prefix)/bin; :
169 +       -[[ -f btcflash ]] && install -m 0755 btcflash $(prefix)/bin; :
170  ])
171  
172  ifelse(OS,BSD,[
173 @@ -207,27 +225,33 @@
174  
175  # common section
176  [
177 -growisofs:             growisofs_mmc.o growisofs.o
178 +CHAIN=growisofs$(EXE) dvd+rw-format$(EXE) dvd+rw-booktype$(EXE) dvd+rw-mediainfo$(EXE) dvd-ram-control$(EXE)
179 +
180 +dvd+rw-tools:  $(CHAIN)
181 +
182 +WARN=#-Wall    # developers are welcomed to build with `make WARN=-Wall'
183 +
184 +growisofs$(EXE):       growisofs_mmc.o growisofs.o
185  growisofs.o:           growisofs.c mp.h
186  growisofs_mmc.o:       growisofs_mmc.cpp transport.hxx
187  
188 -dvd+rw-format:         dvd+rw-format.o
189 +dvd+rw-format$(EXE):   dvd+rw-format.o
190  dvd+rw-format.o:       dvd+rw-format.cpp transport.hxx
191  
192 -dvd+rw-mediainfo:      dvd+rw-mediainfo.o
193 +dvd+rw-mediainfo$(EXE):        dvd+rw-mediainfo.o
194  dvd+rw-mediainfo.o:    dvd+rw-mediainfo.cpp transport.hxx
195  
196 -dvd+rw-booktype:       dvd+rw-booktype.o
197 +dvd+rw-booktype$(EXE): dvd+rw-booktype.o
198  dvd+rw-booktype.o:     dvd+rw-booktype.cpp transport.hxx
199  
200 -dvd-ram-control:       dvd-ram-control.o
201 +dvd-ram-control$(EXE): dvd-ram-control.o
202  dvd-ram-control.o:     dvd-ram-control.cpp transport.hxx
203  
204 -rpl8:                  rpl8.o
205 +rpl8$(EXE):            rpl8.o
206  rpl8.o:                        rpl8.cpp transport.hxx
207  +rpl8:                 rpl8
208  #so that I can invoke `make +rpl8' to build rpl8...
209 -btcflash:              btcflash.o
210 +btcflash$(EXE):                btcflash.o
211  btcflash.o:            btcflash.cpp transport.hxx
212  +btcflash:             btcflash
213  #so that I can invoke `make +btcflash' to build btcflash...
214 --- ../orig/dvd+rw-tools-7.0/Makefile.msc       1969-12-31 16:00:00.000000000 -0800
215 +++ ./Makefile.msc      2006-12-07 01:56:17.000000000 -0800
216 @@ -0,0 +1,48 @@
217 +CHAIN=growisofs.exe dvd+rw-format.exe dvd+rw-booktype.exe dvd+rw-mediainfo.exe dvd-ram-control.exe
218 +
219 +DEFINES=/D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_NONSTDC_NO_DEPRECATE" /D "_MBCS" 
220 +CFLAGS=$(DEFINES) /O2 /FD /EHsc /MD /W3 /nologo /c /Wp64 /Zi
221 +CPPFLAGS=$(DEFINES) /O2 /FD /EHsc /MD /W3 /nologo /c /Wp64 /Zi
222 +LDFLAGS=/NOLOGO /SUBSYSTEM:CONSOLE /MANIFEST
223 +
224 +all:
225 +
226 +clean:
227 +       -del *.obj *.manifest *.pdb *.idb $(CHAIN) > nul 2>&1
228 +
229 +install: $(CHAIN)
230 +       !xcopy $** $(prefix)\bin\ /y
231 +
232 +dvd+rw-tools:  $(CHAIN)
233 +
234 +growisofs.exe:         growisofs_mmc.obj growisofs.obj
235 +       link $(LDFLAGS) /MANIFESTFILE:$@.manifest /out:$@ $** 
236 +       mt /nologo /outputresource:"$@;#1" -manifest $@.manifest
237 +
238 +growisofs.obj:         growisofs.c mp.h
239 +
240 +growisofs_mmc.obj:     growisofs_mmc.cpp transport.hxx
241 +
242 +dvd+rw-format.exe:     dvd+rw-format.obj
243 +       link $(LDFLAGS) /MANIFESTFILE:$@.manifest /out:$@ $** 
244 +       mt /nologo /outputresource:"$@;#1" -manifest $@.manifest
245 +
246 +dvd+rw-format.obj:     dvd+rw-format.cpp transport.hxx
247 +
248 +dvd+rw-mediainfo.exe:  dvd+rw-mediainfo.obj
249 +       link $(LDFLAGS) /MANIFESTFILE:$@.manifest /out:$@ $** 
250 +       mt /nologo /outputresource:"$@;#1" -manifest $@.manifest
251 +
252 +dvd+rw-mediainfo.obj:  dvd+rw-mediainfo.cpp transport.hxx
253 +
254 +dvd+rw-booktype.exe:   dvd+rw-booktype.obj
255 +       link $(LDFLAGS) /MANIFESTFILE:$@.manifest /out:$@ $** 
256 +       mt /nologo /outputresource:"$@;#1" -manifest $@.manifest
257 +
258 +dvd+rw-booktype.obj:   dvd+rw-booktype.cpp transport.hxx
259 +
260 +dvd-ram-control.exe:   dvd-ram-control.obj
261 +       link $(LDFLAGS) /MANIFESTFILE:$@.manifest /out:$@ $** 
262 +       mt /nologo /outputresource:"$@;#1" -manifest $@.manifest
263 +
264 +dvd-ram-control.obj:   dvd-ram-control.cpp transport.hxx