Skip to content

Commit

Permalink
media-video/dvdbackup: fix build with latest libdvdread
Browse files Browse the repository at this point in the history
Patch from freebsd/ubuntu provided to us by  Christohper Harrington

Closes: https://bugs.gentoo.org/721732
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Alexis Ballier <[email protected]>
  • Loading branch information
aballier committed May 18, 2020
1 parent be60ba5 commit e92c80f
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 0 deletions.
1 change: 1 addition & 0 deletions media-video/dvdbackup/dvdbackup-0.4.2.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ RDEPEND=">=media-libs/libdvdread-4.2.0_pre
nls? ( virtual/libintl )"
DEPEND="${RDEPEND}
nls? ( sys-devel/gettext )"
PATCHES=( "${FILESDIR}/libdvdread-6.1.0.diff" )

src_configure() {
econf \
Expand Down
92 changes: 92 additions & 0 deletions media-video/dvdbackup/files/libdvdread-6.1.0.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
https://bugs.gentoo.org/721732

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=245228
https://bugs.launchpad.net/dvdbackup/+bug/1869226

--- a/src/dvdbackup.c
+++ b/src/dvdbackup.c
@@ -1132,7 +1132,7 @@ static int DVDCopyIfoBup(dvd_reader_t* dvd, title_set_
int size;

/* DVD handler */
- ifo_handle_t* ifo_file = NULL;
+ dvd_file_t* ifo_file = NULL;


if (title_set_info->number_of_title_sets + 1 < title_set) {
@@ -1181,7 +1181,7 @@ static int DVDCopyIfoBup(dvd_reader_t* dvd, title_set_
if ((streamout_ifo = open(targetname_ifo, O_WRONLY | O_CREAT | O_TRUNC, 0666)) == -1) {
fprintf(stderr, _("Error creating %s\n"), targetname_ifo);
perror(PACKAGE);
- ifoClose(ifo_file);
+ DVDCloseFile(ifo_file);
free(buffer);
close(streamout_ifo);
close(streamout_bup);
@@ -1191,7 +1191,7 @@ static int DVDCopyIfoBup(dvd_reader_t* dvd, title_set_
if ((streamout_bup = open(targetname_bup, O_WRONLY | O_CREAT | O_TRUNC, 0666)) == -1) {
fprintf(stderr, _("Error creating %s\n"), targetname_bup);
perror(PACKAGE);
- ifoClose(ifo_file);
+ DVDCloseFile(ifo_file);
free(buffer);
close(streamout_ifo);
close(streamout_bup);
@@ -1200,31 +1200,31 @@ static int DVDCopyIfoBup(dvd_reader_t* dvd, title_set_

/* Copy VIDEO_TS.IFO, since it's a small file try to copy it in one shot */

- if ((ifo_file = ifoOpen(dvd, title_set))== 0) {
+ if ((ifo_file = DVDOpenFile(dvd, title_set, DVD_READ_INFO_FILE))== 0) {
fprintf(stderr, _("Failed opening IFO for title set %d\n"), title_set);
- ifoClose(ifo_file);
+ DVDCloseFile(ifo_file);
free(buffer);
close(streamout_ifo);
close(streamout_bup);
return 1;
}

- size = DVDFileSize(ifo_file->file) * DVD_VIDEO_LB_LEN;
+ size = DVDFileSize(ifo_file) * DVD_VIDEO_LB_LEN;

if ((buffer = (unsigned char *)malloc(size * sizeof(unsigned char))) == NULL) {
perror(PACKAGE);
- ifoClose(ifo_file);
+ DVDCloseFile(ifo_file);
free(buffer);
close(streamout_ifo);
close(streamout_bup);
return 1;
}

- DVDFileSeek(ifo_file->file, 0);
+ DVDFileSeek(ifo_file, 0);

- if (DVDReadBytes(ifo_file->file,buffer,size) != size) {
+ if (DVDReadBytes(ifo_file,buffer,size) != size) {
fprintf(stderr, _("Error reading IFO for title set %d\n"), title_set);
- ifoClose(ifo_file);
+ DVDCloseFile(ifo_file);
free(buffer);
close(streamout_ifo);
close(streamout_bup);
@@ -1234,7 +1234,7 @@ static int DVDCopyIfoBup(dvd_reader_t* dvd, title_set_

if (write(streamout_ifo,buffer,size) != size) {
fprintf(stderr, _("Error writing %s\n"),targetname_ifo);
- ifoClose(ifo_file);
+ DVDCloseFile(ifo_file);
free(buffer);
close(streamout_ifo);
close(streamout_bup);
@@ -1243,7 +1243,7 @@ static int DVDCopyIfoBup(dvd_reader_t* dvd, title_set_

if (write(streamout_bup,buffer,size) != size) {
fprintf(stderr, _("Error writing %s\n"),targetname_bup);
- ifoClose(ifo_file);
+ DVDCloseFile(ifo_file);
free(buffer);
close(streamout_ifo);
close(streamout_bup);

0 comments on commit e92c80f

Please sign in to comment.