Date: Thursday, May 14, 2015 @ 09:09:47 Author: ronald Revision: 239329
archrelease: copy trunk to testing-i686, testing-x86_64 Added: dvd+rw-tools/repos/testing-i686/ dvd+rw-tools/repos/testing-i686/PKGBUILD (from rev 239328, dvd+rw-tools/trunk/PKGBUILD) dvd+rw-tools/repos/testing-i686/dvd+rw-tools-7.0-dvddl.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-dvddl.patch) dvd+rw-tools/repos/testing-i686/dvd+rw-tools-7.0-glibc2.6.90.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-glibc2.6.90.patch) dvd+rw-tools/repos/testing-i686/dvd+rw-tools-7.0-wctomb.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-wctomb.patch) dvd+rw-tools/repos/testing-i686/dvd+rw-tools-7.0-wexit.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-wexit.patch) dvd+rw-tools/repos/testing-i686/dvd+rw-tools-7.1-layerbreaksetup.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.1-layerbreaksetup.patch) dvd+rw-tools/repos/testing-x86_64/ dvd+rw-tools/repos/testing-x86_64/PKGBUILD (from rev 239328, dvd+rw-tools/trunk/PKGBUILD) dvd+rw-tools/repos/testing-x86_64/dvd+rw-tools-7.0-dvddl.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-dvddl.patch) dvd+rw-tools/repos/testing-x86_64/dvd+rw-tools-7.0-glibc2.6.90.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-glibc2.6.90.patch) dvd+rw-tools/repos/testing-x86_64/dvd+rw-tools-7.0-wctomb.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-wctomb.patch) dvd+rw-tools/repos/testing-x86_64/dvd+rw-tools-7.0-wexit.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-wexit.patch) dvd+rw-tools/repos/testing-x86_64/dvd+rw-tools-7.1-layerbreaksetup.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.1-layerbreaksetup.patch) -------------------------------------------------------+ testing-i686/PKGBUILD | 45 +++++++ testing-i686/dvd+rw-tools-7.0-dvddl.patch | 13 ++ testing-i686/dvd+rw-tools-7.0-glibc2.6.90.patch | 11 + testing-i686/dvd+rw-tools-7.0-wctomb.patch | 11 + testing-i686/dvd+rw-tools-7.0-wexit.patch | 11 + testing-i686/dvd+rw-tools-7.1-layerbreaksetup.patch | 93 ++++++++++++++++ testing-x86_64/PKGBUILD | 45 +++++++ testing-x86_64/dvd+rw-tools-7.0-dvddl.patch | 13 ++ testing-x86_64/dvd+rw-tools-7.0-glibc2.6.90.patch | 11 + testing-x86_64/dvd+rw-tools-7.0-wctomb.patch | 11 + testing-x86_64/dvd+rw-tools-7.0-wexit.patch | 11 + testing-x86_64/dvd+rw-tools-7.1-layerbreaksetup.patch | 93 ++++++++++++++++ 12 files changed, 368 insertions(+) Copied: dvd+rw-tools/repos/testing-i686/PKGBUILD (from rev 239328, dvd+rw-tools/trunk/PKGBUILD) =================================================================== --- testing-i686/PKGBUILD (rev 0) +++ testing-i686/PKGBUILD 2015-05-14 07:09:47 UTC (rev 239329) @@ -0,0 +1,45 @@ +# $Id$ +# Maintainer: damir <da...@archlinux.org> + +pkgname=dvd+rw-tools +pkgver=7.1 +pkgrel=6 +pkgdesc="dvd burning tools" +arch=('i686' 'x86_64') +license=('GPL') +url="http://fy.chalmers.se/~appro/linux/DVD+RW" +depends=('cdrkit' 'gcc-libs') +source=("http://fy.chalmers.se/~appro/linux/DVD+RW/tools/${pkgname}-${pkgver}.tar.gz" + 'dvd+rw-tools-7.0-dvddl.patch' + 'dvd+rw-tools-7.0-glibc2.6.90.patch' + 'dvd+rw-tools-7.0-wctomb.patch' + 'dvd+rw-tools-7.0-wexit.patch' + 'dvd+rw-tools-7.1-layerbreaksetup.patch') +sha1sums=('6400e013934ff589b4b224eced03fd9f42ed719b' + 'd2c949bc15420f39a9055757b1f5bb5543c46b6c' + '6b2f496e8d95738501dcad5fb63a4faa32882202' + '08ad4c2309ae1602b855cf1a2bbdbe0dab5037a2' + 'f50dc64f5d020f0dd64ffb38c18cfa3fbf03f8a2' + 'dd5224fdd8e94ec9483f651b3579cf9c18381129') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + # patches from Gentoo/Fedora + # see https://bugs.gentoo.org/257360, https://bugzilla.redhat.com/show_bug.cgi?id=426068 + # and https://bugzilla.redhat.com/show_bug.cgi?id=243036 + patch -p0 -i "${srcdir}/dvd+rw-tools-7.0-dvddl.patch" + patch -p1 -i "${srcdir}/dvd+rw-tools-7.0-glibc2.6.90.patch" + patch -p0 -i "${srcdir}/dvd+rw-tools-7.0-wctomb.patch" + patch -p1 -i "${srcdir}/dvd+rw-tools-7.0-wexit.patch" + patch -p1 -i "${srcdir}/dvd+rw-tools-7.1-layerbreaksetup.patch" + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + install -m755 -d "${pkgdir}/usr/bin" + install -m755 -d "${pkgdir}/usr/share/man/man1" + + install -m755 growisofs dvd+rw-booktype dvd+rw-format dvd+rw-mediainfo dvd-ram-control "${pkgdir}/usr/bin/" + install -m644 growisofs.1 ${pkgdir}/usr/share/man/man1/growisofs.1 +} Copied: dvd+rw-tools/repos/testing-i686/dvd+rw-tools-7.0-dvddl.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-dvddl.patch) =================================================================== --- testing-i686/dvd+rw-tools-7.0-dvddl.patch (rev 0) +++ testing-i686/dvd+rw-tools-7.0-dvddl.patch 2015-05-14 07:09:47 UTC (rev 239329) @@ -0,0 +1,13 @@ +--- ./growisofs_mmc.cpp.joe 2006-04-27 20:45:00.788446635 +0200 ++++ ./growisofs_mmc.cpp 2006-04-27 20:46:01.666824300 +0200 +@@ -1412,9 +1412,7 @@ + blocks += 15, blocks &= ~15; + + if (blocks <= split) +- fprintf (stderr,":-( more than 50%% of space will be *wasted*!\n" +- " use single layer media for this recording\n"), +- exit (FATAL_START(EMEDIUMTYPE)); ++ fprintf (stderr,":-? more than 50%% of space will be *wasted*!\n"); + + blocks /= 16; + blocks += 1; Copied: dvd+rw-tools/repos/testing-i686/dvd+rw-tools-7.0-glibc2.6.90.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-glibc2.6.90.patch) =================================================================== --- testing-i686/dvd+rw-tools-7.0-glibc2.6.90.patch (rev 0) +++ testing-i686/dvd+rw-tools-7.0-glibc2.6.90.patch 2015-05-14 07:09:47 UTC (rev 239329) @@ -0,0 +1,11 @@ +diff -up dvd+rw-tools-7.0/transport.hxx.glibc2.6.90 dvd+rw-tools-7.0/transport.hxx +--- dvd+rw-tools-7.0/transport.hxx.glibc2.6.90 2007-08-15 12:56:17.000000000 +0200 ++++ dvd+rw-tools-7.0/transport.hxx 2007-08-15 12:56:42.000000000 +0200 +@@ -11,6 +11,7 @@ + #include <stdlib.h> + #include <unistd.h> + #include <string.h> ++#include <limits.h> + #include <sys/types.h> + #include <sys/stat.h> + #include <fcntl.h> Copied: dvd+rw-tools/repos/testing-i686/dvd+rw-tools-7.0-wctomb.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-wctomb.patch) =================================================================== --- testing-i686/dvd+rw-tools-7.0-wctomb.patch (rev 0) +++ testing-i686/dvd+rw-tools-7.0-wctomb.patch 2015-05-14 07:09:47 UTC (rev 239329) @@ -0,0 +1,11 @@ +--- transport.hxx~ 2008-03-25 21:24:47.000000000 -0400 ++++ transport.hxx 2008-03-25 21:25:36.000000000 -0400 +@@ -116,7 +116,7 @@ + extern "C" char *plusminus_locale() + { static class __plusminus { + private: +- char str[4]; ++ char str[MB_LEN_MAX]; + public: + __plusminus() { setlocale(LC_CTYPE,ENV_LOCALE); + int l = wctomb(str,(wchar_t)(unsigned char)'�'); Copied: dvd+rw-tools/repos/testing-i686/dvd+rw-tools-7.0-wexit.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-wexit.patch) =================================================================== --- testing-i686/dvd+rw-tools-7.0-wexit.patch (rev 0) +++ testing-i686/dvd+rw-tools-7.0-wexit.patch 2015-05-14 07:09:47 UTC (rev 239329) @@ -0,0 +1,11 @@ +--- 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 + Copied: dvd+rw-tools/repos/testing-i686/dvd+rw-tools-7.1-layerbreaksetup.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.1-layerbreaksetup.patch) =================================================================== --- testing-i686/dvd+rw-tools-7.1-layerbreaksetup.patch (rev 0) +++ testing-i686/dvd+rw-tools-7.1-layerbreaksetup.patch 2015-05-14 07:09:47 UTC (rev 239329) @@ -0,0 +1,93 @@ +diff -ur dvd+rw-tools-7.1-orig/growisofs.c dvd+rw-tools-7.1/growisofs.c +--- dvd+rw-tools-7.1-orig/growisofs.c 2008-03-04 10:15:03.000000000 +0100 ++++ dvd+rw-tools-7.1/growisofs.c 2009-09-06 22:39:33.000000000 +0200 +@@ -535,7 +535,7 @@ + */ + int get_mmc_profile (void *fd); + int plusminus_r_C_parm (void *fd,char *C_parm); +-pwrite64_t poor_mans_setup (void *fd,off64_t leadout); ++pwrite64_t poor_mans_setup (void *fd,off64_t leadout,unsigned int lbreak); + char *plusminus_locale (); + int __1x (); + /* +@@ -2447,7 +2447,7 @@ + goto out; + } + if (!progress.final) progress.final = tracksize; +- tracksize = layer_break*CD_BLOCK*2; ++ //tracksize = layer_break*CD_BLOCK*2; + } + } + else if (capacity > outoff) +@@ -2648,7 +2648,7 @@ + * further details on poor_mans_setup + */ + pwrite64_method = poor_mans_setup (ioctl_handle, +- outoff+tracksize); ++ outoff+tracksize, (unsigned int)layer_break); + } + + if (!progress.final) +diff -ur dvd+rw-tools-7.1-orig/growisofs_mmc.cpp dvd+rw-tools-7.1/growisofs_mmc.cpp +--- dvd+rw-tools-7.1-orig/growisofs_mmc.cpp 2008-03-04 18:47:49.000000000 +0100 ++++ dvd+rw-tools-7.1/growisofs_mmc.cpp 2009-09-06 20:52:46.000000000 +0200 +@@ -1612,7 +1612,7 @@ + return 0; + } + +-static void plus_r_dl_split (Scsi_Command &cmd,off64_t size) ++static void plus_r_dl_split (Scsi_Command &cmd,off64_t size,unsigned int lbreak) + { int err; + unsigned int blocks,split; + unsigned char dvd_20[4+8]; +@@ -1644,10 +1644,17 @@ + " use single layer media for this recording\n"), + exit (FATAL_START(EMEDIUMTYPE)); + +- blocks /= 16; +- blocks += 1; +- blocks /= 2; +- blocks *= 16; ++ if (lbreak) ++ { ++ blocks=lbreak; ++ } ++ else ++ { ++ blocks /= 16; ++ blocks += 1; ++ blocks /= 2; ++ blocks *= 16; ++ } + + fprintf (stderr,"%s: splitting layers at %u blocks\n", + ioctl_device,blocks); +@@ -2010,7 +2017,7 @@ + typedef ssize_t (*pwrite64_t)(int,const void *,size_t,off64_t); + + extern "C" +-pwrite64_t poor_mans_setup (void *fd,off64_t leadout) ++pwrite64_t poor_mans_setup (void *fd,off64_t leadout,unsigned int lbreak) + { Scsi_Command cmd(ioctl_handle=fd); + int err,profile=mmc_profile&0xFFFF; + +@@ -2059,7 +2066,7 @@ + case 0x2B: // DVD+R Double Layer + plusminus_pages_setup(cmd,profile); + if (profile==0x2B && next_track==1 && dvd_compat && leadout) +- plus_r_dl_split (cmd,leadout); ++ plus_r_dl_split (cmd,leadout,lbreak); + atexit (plus_r_finalize); + if (next_wr_addr) + { atsignals (no_r_finalize); +diff -ur dvd+rw-tools-7.1-orig/transport.hxx dvd+rw-tools-7.1/transport.hxx +--- dvd+rw-tools-7.1-orig/transport.hxx 2008-03-01 11:34:43.000000000 +0100 ++++ dvd+rw-tools-7.1/transport.hxx 2009-09-06 20:53:53.000000000 +0200 +@@ -9,6 +9,7 @@ + #if defined(__unix) || defined(__unix__) + #include <stdio.h> + #include <stdlib.h> ++#include <limits.h> + #include <unistd.h> + #include <string.h> + #include <sys/types.h> Copied: dvd+rw-tools/repos/testing-x86_64/PKGBUILD (from rev 239328, dvd+rw-tools/trunk/PKGBUILD) =================================================================== --- testing-x86_64/PKGBUILD (rev 0) +++ testing-x86_64/PKGBUILD 2015-05-14 07:09:47 UTC (rev 239329) @@ -0,0 +1,45 @@ +# $Id$ +# Maintainer: damir <da...@archlinux.org> + +pkgname=dvd+rw-tools +pkgver=7.1 +pkgrel=6 +pkgdesc="dvd burning tools" +arch=('i686' 'x86_64') +license=('GPL') +url="http://fy.chalmers.se/~appro/linux/DVD+RW" +depends=('cdrkit' 'gcc-libs') +source=("http://fy.chalmers.se/~appro/linux/DVD+RW/tools/${pkgname}-${pkgver}.tar.gz" + 'dvd+rw-tools-7.0-dvddl.patch' + 'dvd+rw-tools-7.0-glibc2.6.90.patch' + 'dvd+rw-tools-7.0-wctomb.patch' + 'dvd+rw-tools-7.0-wexit.patch' + 'dvd+rw-tools-7.1-layerbreaksetup.patch') +sha1sums=('6400e013934ff589b4b224eced03fd9f42ed719b' + 'd2c949bc15420f39a9055757b1f5bb5543c46b6c' + '6b2f496e8d95738501dcad5fb63a4faa32882202' + '08ad4c2309ae1602b855cf1a2bbdbe0dab5037a2' + 'f50dc64f5d020f0dd64ffb38c18cfa3fbf03f8a2' + 'dd5224fdd8e94ec9483f651b3579cf9c18381129') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + # patches from Gentoo/Fedora + # see https://bugs.gentoo.org/257360, https://bugzilla.redhat.com/show_bug.cgi?id=426068 + # and https://bugzilla.redhat.com/show_bug.cgi?id=243036 + patch -p0 -i "${srcdir}/dvd+rw-tools-7.0-dvddl.patch" + patch -p1 -i "${srcdir}/dvd+rw-tools-7.0-glibc2.6.90.patch" + patch -p0 -i "${srcdir}/dvd+rw-tools-7.0-wctomb.patch" + patch -p1 -i "${srcdir}/dvd+rw-tools-7.0-wexit.patch" + patch -p1 -i "${srcdir}/dvd+rw-tools-7.1-layerbreaksetup.patch" + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + install -m755 -d "${pkgdir}/usr/bin" + install -m755 -d "${pkgdir}/usr/share/man/man1" + + install -m755 growisofs dvd+rw-booktype dvd+rw-format dvd+rw-mediainfo dvd-ram-control "${pkgdir}/usr/bin/" + install -m644 growisofs.1 ${pkgdir}/usr/share/man/man1/growisofs.1 +} Copied: dvd+rw-tools/repos/testing-x86_64/dvd+rw-tools-7.0-dvddl.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-dvddl.patch) =================================================================== --- testing-x86_64/dvd+rw-tools-7.0-dvddl.patch (rev 0) +++ testing-x86_64/dvd+rw-tools-7.0-dvddl.patch 2015-05-14 07:09:47 UTC (rev 239329) @@ -0,0 +1,13 @@ +--- ./growisofs_mmc.cpp.joe 2006-04-27 20:45:00.788446635 +0200 ++++ ./growisofs_mmc.cpp 2006-04-27 20:46:01.666824300 +0200 +@@ -1412,9 +1412,7 @@ + blocks += 15, blocks &= ~15; + + if (blocks <= split) +- fprintf (stderr,":-( more than 50%% of space will be *wasted*!\n" +- " use single layer media for this recording\n"), +- exit (FATAL_START(EMEDIUMTYPE)); ++ fprintf (stderr,":-? more than 50%% of space will be *wasted*!\n"); + + blocks /= 16; + blocks += 1; Copied: dvd+rw-tools/repos/testing-x86_64/dvd+rw-tools-7.0-glibc2.6.90.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-glibc2.6.90.patch) =================================================================== --- testing-x86_64/dvd+rw-tools-7.0-glibc2.6.90.patch (rev 0) +++ testing-x86_64/dvd+rw-tools-7.0-glibc2.6.90.patch 2015-05-14 07:09:47 UTC (rev 239329) @@ -0,0 +1,11 @@ +diff -up dvd+rw-tools-7.0/transport.hxx.glibc2.6.90 dvd+rw-tools-7.0/transport.hxx +--- dvd+rw-tools-7.0/transport.hxx.glibc2.6.90 2007-08-15 12:56:17.000000000 +0200 ++++ dvd+rw-tools-7.0/transport.hxx 2007-08-15 12:56:42.000000000 +0200 +@@ -11,6 +11,7 @@ + #include <stdlib.h> + #include <unistd.h> + #include <string.h> ++#include <limits.h> + #include <sys/types.h> + #include <sys/stat.h> + #include <fcntl.h> Copied: dvd+rw-tools/repos/testing-x86_64/dvd+rw-tools-7.0-wctomb.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-wctomb.patch) =================================================================== --- testing-x86_64/dvd+rw-tools-7.0-wctomb.patch (rev 0) +++ testing-x86_64/dvd+rw-tools-7.0-wctomb.patch 2015-05-14 07:09:47 UTC (rev 239329) @@ -0,0 +1,11 @@ +--- transport.hxx~ 2008-03-25 21:24:47.000000000 -0400 ++++ transport.hxx 2008-03-25 21:25:36.000000000 -0400 +@@ -116,7 +116,7 @@ + extern "C" char *plusminus_locale() + { static class __plusminus { + private: +- char str[4]; ++ char str[MB_LEN_MAX]; + public: + __plusminus() { setlocale(LC_CTYPE,ENV_LOCALE); + int l = wctomb(str,(wchar_t)(unsigned char)'�'); Copied: dvd+rw-tools/repos/testing-x86_64/dvd+rw-tools-7.0-wexit.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.0-wexit.patch) =================================================================== --- testing-x86_64/dvd+rw-tools-7.0-wexit.patch (rev 0) +++ testing-x86_64/dvd+rw-tools-7.0-wexit.patch 2015-05-14 07:09:47 UTC (rev 239329) @@ -0,0 +1,11 @@ +--- 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 + Copied: dvd+rw-tools/repos/testing-x86_64/dvd+rw-tools-7.1-layerbreaksetup.patch (from rev 239328, dvd+rw-tools/trunk/dvd+rw-tools-7.1-layerbreaksetup.patch) =================================================================== --- testing-x86_64/dvd+rw-tools-7.1-layerbreaksetup.patch (rev 0) +++ testing-x86_64/dvd+rw-tools-7.1-layerbreaksetup.patch 2015-05-14 07:09:47 UTC (rev 239329) @@ -0,0 +1,93 @@ +diff -ur dvd+rw-tools-7.1-orig/growisofs.c dvd+rw-tools-7.1/growisofs.c +--- dvd+rw-tools-7.1-orig/growisofs.c 2008-03-04 10:15:03.000000000 +0100 ++++ dvd+rw-tools-7.1/growisofs.c 2009-09-06 22:39:33.000000000 +0200 +@@ -535,7 +535,7 @@ + */ + int get_mmc_profile (void *fd); + int plusminus_r_C_parm (void *fd,char *C_parm); +-pwrite64_t poor_mans_setup (void *fd,off64_t leadout); ++pwrite64_t poor_mans_setup (void *fd,off64_t leadout,unsigned int lbreak); + char *plusminus_locale (); + int __1x (); + /* +@@ -2447,7 +2447,7 @@ + goto out; + } + if (!progress.final) progress.final = tracksize; +- tracksize = layer_break*CD_BLOCK*2; ++ //tracksize = layer_break*CD_BLOCK*2; + } + } + else if (capacity > outoff) +@@ -2648,7 +2648,7 @@ + * further details on poor_mans_setup + */ + pwrite64_method = poor_mans_setup (ioctl_handle, +- outoff+tracksize); ++ outoff+tracksize, (unsigned int)layer_break); + } + + if (!progress.final) +diff -ur dvd+rw-tools-7.1-orig/growisofs_mmc.cpp dvd+rw-tools-7.1/growisofs_mmc.cpp +--- dvd+rw-tools-7.1-orig/growisofs_mmc.cpp 2008-03-04 18:47:49.000000000 +0100 ++++ dvd+rw-tools-7.1/growisofs_mmc.cpp 2009-09-06 20:52:46.000000000 +0200 +@@ -1612,7 +1612,7 @@ + return 0; + } + +-static void plus_r_dl_split (Scsi_Command &cmd,off64_t size) ++static void plus_r_dl_split (Scsi_Command &cmd,off64_t size,unsigned int lbreak) + { int err; + unsigned int blocks,split; + unsigned char dvd_20[4+8]; +@@ -1644,10 +1644,17 @@ + " use single layer media for this recording\n"), + exit (FATAL_START(EMEDIUMTYPE)); + +- blocks /= 16; +- blocks += 1; +- blocks /= 2; +- blocks *= 16; ++ if (lbreak) ++ { ++ blocks=lbreak; ++ } ++ else ++ { ++ blocks /= 16; ++ blocks += 1; ++ blocks /= 2; ++ blocks *= 16; ++ } + + fprintf (stderr,"%s: splitting layers at %u blocks\n", + ioctl_device,blocks); +@@ -2010,7 +2017,7 @@ + typedef ssize_t (*pwrite64_t)(int,const void *,size_t,off64_t); + + extern "C" +-pwrite64_t poor_mans_setup (void *fd,off64_t leadout) ++pwrite64_t poor_mans_setup (void *fd,off64_t leadout,unsigned int lbreak) + { Scsi_Command cmd(ioctl_handle=fd); + int err,profile=mmc_profile&0xFFFF; + +@@ -2059,7 +2066,7 @@ + case 0x2B: // DVD+R Double Layer + plusminus_pages_setup(cmd,profile); + if (profile==0x2B && next_track==1 && dvd_compat && leadout) +- plus_r_dl_split (cmd,leadout); ++ plus_r_dl_split (cmd,leadout,lbreak); + atexit (plus_r_finalize); + if (next_wr_addr) + { atsignals (no_r_finalize); +diff -ur dvd+rw-tools-7.1-orig/transport.hxx dvd+rw-tools-7.1/transport.hxx +--- dvd+rw-tools-7.1-orig/transport.hxx 2008-03-01 11:34:43.000000000 +0100 ++++ dvd+rw-tools-7.1/transport.hxx 2009-09-06 20:53:53.000000000 +0200 +@@ -9,6 +9,7 @@ + #if defined(__unix) || defined(__unix__) + #include <stdio.h> + #include <stdlib.h> ++#include <limits.h> + #include <unistd.h> + #include <string.h> + #include <sys/types.h>