diff options
author | Ganael LAPLANCHE <martymac@FreeBSD.org> | 2019-01-08 21:50:21 +0000 |
---|---|---|
committer | Ganael LAPLANCHE <martymac@FreeBSD.org> | 2019-01-08 21:50:21 +0000 |
commit | 7ba9c16bb91d675f496a5ffbea2d934112ff6a67 (patch) | |
tree | 932883d50a02d697895f5b3173065b6640bf2ec5 /multimedia/libdvdread | |
parent | 2ff69c6c6f382a9a837ccc27499707429536acea (diff) | |
download | ports-7ba9c16bb91d675f496a5ffbea2d934112ff6a67.tar.gz ports-7ba9c16bb91d675f496a5ffbea2d934112ff6a67.zip |
Use statfs(2) instead of getfsfile(3) to get device name from a mount point.
PR: 234694
Submitted by: tijl
Notes
Notes:
svn path=/head/; revision=489743
Diffstat (limited to 'multimedia/libdvdread')
-rw-r--r-- | multimedia/libdvdread/Makefile | 1 | ||||
-rw-r--r-- | multimedia/libdvdread/distinfo | 2 | ||||
-rw-r--r-- | multimedia/libdvdread/files/patch-src-dvd_reader.c | 50 |
3 files changed, 52 insertions, 1 deletions
diff --git a/multimedia/libdvdread/Makefile b/multimedia/libdvdread/Makefile index 0fc9b3bada54..30907ed9247b 100644 --- a/multimedia/libdvdread/Makefile +++ b/multimedia/libdvdread/Makefile @@ -3,6 +3,7 @@ PORTNAME= libdvdread PORTVERSION= 6.0.0 +PORTREVISION= 1 CATEGORIES= multimedia MASTER_SITES= http://download.videolan.org/pub/videolan/libdvdread/${PORTVERSION}/ \ http://dvdnav.mplayerhq.hu/releases/ \ diff --git a/multimedia/libdvdread/distinfo b/multimedia/libdvdread/distinfo index 333111a08ab4..c3baeee95459 100644 --- a/multimedia/libdvdread/distinfo +++ b/multimedia/libdvdread/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1516309125 +TIMESTAMP = 1546990033 SHA256 (libdvdread-6.0.0.tar.bz2) = b33b1953b4860545b75f6efc06e01d9849e2ea4f797652263b0b4af6dd10f935 SIZE (libdvdread-6.0.0.tar.bz2) = 394627 diff --git a/multimedia/libdvdread/files/patch-src-dvd_reader.c b/multimedia/libdvdread/files/patch-src-dvd_reader.c new file mode 100644 index 000000000000..603782febd8d --- /dev/null +++ b/multimedia/libdvdread/files/patch-src-dvd_reader.c @@ -0,0 +1,50 @@ +Use statfs() instead of getfsfile() to get device name from a mount point. + +(getfsfile() requires an entry in the fstab file which is often not the case +for removable media) + +--- src/dvd_reader.c.orig 2018-01-17 21:35:39 UTC ++++ src/dvd_reader.c +@@ -64,7 +64,7 @@ static inline int _private_gettimeofday( struct timeva + # include <sys/ucred.h> + # include <sys/mount.h> + #elif defined(SYS_BSD) +-# include <fstab.h> ++# include <sys/mount.h> + #elif defined(__linux__) + # include <mntent.h> + # include <paths.h> +@@ -420,7 +420,7 @@ static dvd_reader_t *DVDOpenCommon( const char *ppath, + } else if( S_ISDIR( fileinfo.st_mode ) ) { + dvd_reader_t *auth_drive = 0; + #if defined(SYS_BSD) +- struct fstab* fe; ++ struct statfs fs; + #elif defined(__sun) || defined(__linux__) + FILE *mntfile; + #endif +@@ -511,14 +511,16 @@ static dvd_reader_t *DVDOpenCommon( const char *ppath, + } + } + #elif defined(SYS_BSD) +- if( ( fe = getfsfile( path_copy ) ) ) { +- dev_name = bsd_block2char( fe->fs_spec ); +- fprintf( stderr, +- "libdvdread: Attempting to use device %s" +- " mounted on %s for CSS authentication\n", +- dev_name, +- fe->fs_file ); +- auth_drive = DVDOpenImageFile( dev_name, NULL, NULL, have_css ); ++ if( statfs( path_copy, &fs ) == 0 ) { ++ if( !strcmp( path_copy, fs.f_mntonname ) ) { ++ dev_name = bsd_block2char( fs.f_mntfromname ); ++ fprintf( stderr, ++ "libdvdread: Attempting to use device %s" ++ " mounted on %s for CSS authentication\n", ++ dev_name, ++ fs.f_mntonname ); ++ auth_drive = DVDOpenImageFile( dev_name, NULL, NULL, have_css ); ++ } + } + #elif defined(__sun) + mntfile = fopen( MNTTAB, "r" ); |