diff options
author | Stanislav Sedov <stas@FreeBSD.org> | 2007-01-03 11:27:48 +0000 |
---|---|---|
committer | Stanislav Sedov <stas@FreeBSD.org> | 2007-01-03 11:27:48 +0000 |
commit | b742c8c26de3c00517d7364518b03e14c71b96db (patch) | |
tree | 6830f5c2828d49777aa87d342f52f85ff6e592aa /multimedia/transcode | |
parent | 89ce09fad3caf1b78cda50d4a91052c7b622b556 (diff) | |
download | ports-b742c8c26de3c00517d7364518b03e14c71b96db.tar.gz ports-b742c8c26de3c00517d7364518b03e14c71b96db.zip |
- Fix detecting of device types
Currently, this patch handles all devfs cases (it uses realpath to resolve
symlinks). However, submitter supposes, that we should have a generic way
to detect which device the file belongs to. I'll leave the PR in suspended
state for a better solution come up.
PR: ports/101450
Reported by: Chad Fraleigh <chadf@bookcase.com>
Approved by: multimedia (ahze)
Notes
Notes:
svn path=/head/; revision=181329
Diffstat (limited to 'multimedia/transcode')
-rw-r--r-- | multimedia/transcode/Makefile | 2 | ||||
-rw-r--r-- | multimedia/transcode/files/patch-import_ioaux.c | 43 |
2 files changed, 44 insertions, 1 deletions
diff --git a/multimedia/transcode/Makefile b/multimedia/transcode/Makefile index c68d29dbef96..f40cfdea3450 100644 --- a/multimedia/transcode/Makefile +++ b/multimedia/transcode/Makefile @@ -7,7 +7,7 @@ PORTNAME= transcode PORTVERSION= 1.0.2 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= multimedia MASTER_SITES= http://dl.fkb.wormulon.net/transcode/ \ http://dl.kel.wormulon.net/transcode/ \ diff --git a/multimedia/transcode/files/patch-import_ioaux.c b/multimedia/transcode/files/patch-import_ioaux.c new file mode 100644 index 000000000000..d84365d6f63f --- /dev/null +++ b/multimedia/transcode/files/patch-import_ioaux.c @@ -0,0 +1,43 @@ +--- import/ioaux.c.orig Mon Jul 4 11:09:33 2005 ++++ import/ioaux.c Wed Jan 3 02:44:37 2007 +@@ -261,6 +261,25 @@ + /* char device could be several things, depending on system */ + /* *BSD DVD device? v4l? bktr? sunau? */ + if(S_ISCHR(fbuf.st_mode)) { ++# ifdef __FreeBSD__ ++ char rpath[PATH_MAX], *prpath; ++ ++ prpath = realpath(name, &rpath); ++ if (prpath == NULL) { ++ warn("realpath(%s)", name); ++ return TC_PROBE_PATH_ABSPATH; ++ } ++ ++ if (strstr(rpath, "bktr") != NULL || strstr(rpath, "tuner") || \ ++ strstr(rpath, "vbi")) ++ return(TC_PROBE_PATH_BKTR); ++ else if (strstr(rpath, "dsp") || strstr(rpath, "audio") || \ ++ strstr(rpath, "music")) ++ return(TC_PROBE_PATH_OSS); ++ else ++ return(TC_PROBE_PATH_ABSPATH); ++# endif ++ + switch (major(fbuf.st_rdev)) { + #ifdef SYS_BSD + # ifdef __OpenBSD__ +@@ -270,14 +289,6 @@ + return(TC_PROBE_PATH_SUNAU); + case 49: /* bktr */ + return(TC_PROBE_PATH_BKTR); +-# endif +-# ifdef __FreeBSD__ +- case 4: /* acd */ +- return(TC_PROBE_PATH_ABSPATH); +- case 229: /* bktr */ +- return(TC_PROBE_PATH_BKTR); +- case 0: /* OSS */ +- return(TC_PROBE_PATH_OSS); + # endif + default: /* libdvdread uses "raw" disk devices here */ + return(TC_PROBE_PATH_ABSPATH); |