Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Jun 2001 01:32:19 +0200 (CEST)
From:      Marc van Woerkom <van.woerkom@netcologne.de>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/28410: New port: libdvdread
Message-ID:  <200106252332.f5PNWJU69674@oranje.my.domain>

next in thread | raw e-mail | index | archive | help

>Number:         28410
>Category:       ports
>Synopsis:       New port: libdvdread
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jun 25 16:40:03 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Marc van Woerkom
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
<organization of PR author (multiple lines)>
>Environment:
System: FreeBSD oranje.my.domain 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Wed May 2 18:47:49 CEST 2001 marc@oranje.my.domain:/usr3/obj/usr/src/sys/ORANJE i386


	
>Description:
	This is the port of DVD access library for the ogle player.

        It still needs testing, so I submit this to allow feedback
        by fellow users.

	Have fun,
	Marc

>How-To-Repeat:
	
>Fix:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	libdvdread
#	libdvdread/files
#	libdvdread/files/patch-dvdread-dvd_reader.h
#	libdvdread/files/patch-configure.in
#	libdvdread/files/patch-src-Makefile.am
#	libdvdread/files/patch-dvdread-bswap.h
#	libdvdread/files/patch-dvdread-dvd_udf.c
#	libdvdread/files/patch-dvdread-dvd_reader.c
#	libdvdread/pkg-comment
#	libdvdread/Makefile
#	libdvdread/pkg-plist
#	libdvdread/pkg-descr
#	libdvdread/distinfo
#
echo c - libdvdread
mkdir -p libdvdread > /dev/null 2>&1
echo c - libdvdread/files
mkdir -p libdvdread/files > /dev/null 2>&1
echo x - libdvdread/files/patch-dvdread-dvd_reader.h
sed 's/^X//' >libdvdread/files/patch-dvdread-dvd_reader.h << 'END-of-libdvdread/files/patch-dvdread-dvd_reader.h'
X--- dvdread/dvd_reader.h.orig	Mon Jun 18 05:29:13 2001
X+++ dvdread/dvd_reader.h	Mon Jun 25 22:58:22 2001
X@@ -20,6 +20,10 @@
X #ifndef DVD_READER_H_INCLUDED
X #define DVD_READER_H_INCLUDED
X 
X+#if defined(__FreeBSD__)
X+typedef fpos_t off64_t;
X+#endif
X+
X #include <sys/types.h>
X 
X #ifdef __cplusplus
END-of-libdvdread/files/patch-dvdread-dvd_reader.h
echo x - libdvdread/files/patch-configure.in
sed 's/^X//' >libdvdread/files/patch-configure.in << 'END-of-libdvdread/files/patch-configure.in'
X--- configure.in.orig	Fri Jun 22 00:33:29 2001
X+++ configure.in	Mon Jun 25 21:06:37 2001
X@@ -58,7 +58,7 @@
X fi
X AC_SUBST(STATIC)
X 
X-AC_CHECK_LIB(dl, dlopen, DL_LIBS=-ldl, AC_MSG_ERROR(You need libdl (dlopen)))
X+DL_LIBS=
X AC_SUBST(DL_LIBS)
X 
X dnl AC_CHECK_GENERATE_INTTYPES(include)
END-of-libdvdread/files/patch-configure.in
echo x - libdvdread/files/patch-src-Makefile.am
sed 's/^X//' >libdvdread/files/patch-src-Makefile.am << 'END-of-libdvdread/files/patch-src-Makefile.am'
X--- src/Makefile.am.orig	Fri May 18 06:20:08 2001
X+++ src/Makefile.am	Tue Jun 26 00:28:10 2001
X@@ -2,9 +2,9 @@
X noinst_PROGRAMS = ifo_dump play_title title_info
X 
X ifo_dump_SOURCES = ifo_dump.c
X-ifo_dump_LDADD = $(top_builddir)/dvdread/libdvdread.la -ldl
X+ifo_dump_LDADD = $(top_builddir)/dvdread/libdvdread.la
X play_title_SOURCES = play_title.c
X-play_title_LDADD = $(top_builddir)/dvdread/libdvdread.la -ldl
X+play_title_LDADD = $(top_builddir)/dvdread/libdvdread.la
X title_info_SOURCES = title_info.c
X-title_info_LDADD = $(top_builddir)/dvdread/libdvdread.la -ldl
X+title_info_LDADD = $(top_builddir)/dvdread/libdvdread.la
X 
END-of-libdvdread/files/patch-src-Makefile.am
echo x - libdvdread/files/patch-dvdread-bswap.h
sed 's/^X//' >libdvdread/files/patch-dvdread-bswap.h << 'END-of-libdvdread/files/patch-dvdread-bswap.h'
X--- dvdread/bswap.h.orig	Sat Apr  7 17:35:10 2001
X+++ dvdread/bswap.h	Tue Jun 26 00:09:23 2001
X@@ -27,7 +27,24 @@
X #define B2N_32(x) (void)(x)
X #define B2N_64(x) (void)(x)
X #else
X+#if defined(__FreeBSD__)
X+/* code from libac3/bswap.h */
X+#define bswap_16(x) ((((uint8_t*)&x)[2] << 8) \
X+			| (((uint8_t*)&x)[3]))
X+#define bswap_32(x) \
X+     ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) | \
X+      (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))
X+#define bswap_64(x) \
X+     (__extension__						\
X+      ({ union { __extension__ uint64_t __ll;                   \
X+                 uint32_t __l[2]; } __w, __r;                   \
X+         __w.__ll = (x);					\
X+         __r.__l[0] = bswap_32 (__w.__l[1]);			\
X+         __r.__l[1] = bswap_32 (__w.__l[0]);			\
X+         __r.__ll; }))
X+#else
X #include <byteswap.h>
X+#endif
X #define B2N_16(x) x = bswap_16((x))
X #define B2N_32(x) x = bswap_32((x))
X #define B2N_64(x) x = bswap_64((x))
END-of-libdvdread/files/patch-dvdread-bswap.h
echo x - libdvdread/files/patch-dvdread-dvd_udf.c
sed 's/^X//' >libdvdread/files/patch-dvdread-dvd_udf.c << 'END-of-libdvdread/files/patch-dvdread-dvd_udf.c'
X--- dvdread/dvd_udf.c.orig	Fri May 25 08:31:22 2001
X+++ dvdread/dvd_udf.c	Mon Jun 25 23:33:11 2001
X@@ -461,8 +461,12 @@
X     if( fd < 0 )
X         return 0;
X 
X+#if defined(__FreeBSD__)    
X+    lseek(fd, lb_number * DVD_VIDEO_LB_LEN, SEEK_SET);
X+#else
X     lseek64( fd, (int64_t) lb_number * (int64_t) DVD_VIDEO_LB_LEN, SEEK_SET );
X-
X+#endif
X+    
X     return read( fd, data, block_count * DVD_VIDEO_LB_LEN );
X }
X 
END-of-libdvdread/files/patch-dvdread-dvd_udf.c
echo x - libdvdread/files/patch-dvdread-dvd_reader.c
sed 's/^X//' >libdvdread/files/patch-dvdread-dvd_reader.c << 'END-of-libdvdread/files/patch-dvdread-dvd_reader.c'
X--- dvdread/dvd_reader.c.orig	Fri Jun 22 02:40:48 2001
X+++ dvdread/dvd_reader.c	Mon Jun 25 22:57:38 2001
X@@ -30,6 +30,9 @@
X #if defined(__sun)
X #include <sys/mnttab.h>
X #define MNT_FILE MNTTAB
X+#elif defined(__FreeBSD__)
X+#undef MNT_FILE
X+#include <fstab.h>
X #else
X #include <mntent.h>
X #define MNT_FILE MOUNTED
X@@ -183,7 +186,11 @@
X     } else if( S_ISDIR( fileinfo.st_mode ) ) {
X         dvd_reader_t *auth_drive = 0;
X         char *path_copy = strdup( path );
X+#if defined(__FreeBSD__)
X+        struct fstab* fe;
X+#else
X         FILE *mntfile;
X+#endif        
X 
X         /**
X          * If we're being asked to open a directory, check if that directory is
X@@ -204,6 +211,16 @@
X             }
X         }
X 
X+#if defined(__FreeBSD__)
X+        if ((fe = getfsfile(path_copy))) {
X+            fprintf(stderr,
X+                    "libdvdread: Attempting to use block "
X+                    "device %s on %s for CSS authentication.\n",
X+                    fe->fs_spec,
X+                    fe->fs_file);
X+            auth_drive = DVDOpenImageFile(fe->fs_file);
X+        }
X+#else
X         mntfile = fopen( MNT_FILE, "r" );
X         if( mntfile ) {
X #if defined(__sun)
X@@ -234,7 +251,7 @@
X #endif
X             fclose( mntfile );
X         }
X-
X+#endif
X         free( path_copy );
X 
X         /**
X@@ -600,21 +617,39 @@
X 
X         if( offset < dvd_file->title_sizes[ i ] ) {
X             if( ( offset + block_count ) <= dvd_file->title_sizes[ i ] ) {
X+#if defined(__FreeBSD__)
X+                lseek(dvd_file->title_fds[i],
X+                      offset * DVD_VIDEO_LB_LEN,
X+                      SEEK_SET);
X+#else                
X                 lseek64( dvd_file->title_fds[ i ], offset
X                          * (int64_t) DVD_VIDEO_LB_LEN, SEEK_SET );
X+#endif                
X                 ret = read( dvd_file->title_fds[ i ], data,
X                             block_count * DVD_VIDEO_LB_LEN );
X                 break;
X             } else {
X 
X                 /* Read part 1 */
X+#if defined(__FreeBSD__)
X+                lseek(dvd_file->title_fds[i],
X+                      offset * DVD_VIDEO_LB_LEN,
X+                      SEEK_SET);
X+#else
X                 lseek64( dvd_file->title_fds[ i ], offset
X                          * (int64_t) DVD_VIDEO_LB_LEN, SEEK_SET );
X+#endif                
X                 ret = read( dvd_file->title_fds[ i ], data,
X                             dvd_file->title_sizes[ i ] - offset );
X 
X                 /* Read part 2 */
X+#if defined(__FreeBSD__)
X+                lseek(dvd_file->title_fds[i + 1],
X+                      0,
X+                      SEEK_SET);
X+#else
X                 lseek64( dvd_file->title_fds[ i + 1 ], 0, SEEK_SET );
X+#endif                
X                 ret += read( dvd_file->title_fds[ i + 1 ],
X                              &(data[ ( dvd_file->title_sizes[ i ] - offset )
X                              * DVD_VIDEO_LB_LEN ]),
X@@ -653,7 +688,11 @@
X         dvd_file->seek_pos = offset;
X         return offset;
X     } else {
X+#if defined(__FreeBSD__)        
X+        return lseek(dvd_file->title_fds[0], offset, SEEK_SET);
X+#else
X         return lseek64( dvd_file->title_fds[ 0 ], offset, SEEK_SET );
X+#endif        
X     }
X }
X 
END-of-libdvdread/files/patch-dvdread-dvd_reader.c
echo x - libdvdread/pkg-comment
sed 's/^X//' >libdvdread/pkg-comment << 'END-of-libdvdread/pkg-comment'
XThis is needed by ogle
END-of-libdvdread/pkg-comment
echo x - libdvdread/Makefile
sed 's/^X//' >libdvdread/Makefile << 'END-of-libdvdread/Makefile'
X# New ports collection makefile for:	libdvdread
X# Date created:				24 Jun 2001
X# Whom:					Marc van Woerkom <3d@freebsd.org>
X#
X# $FreeBSD: $
X#
X
XPORTNAME=	libdvdread
XPORTVERSION=	0.8.0
XCATEGORIES=	graphics
XMASTER_SITES=	http://www.dtek.chalmers.se/groups/dvd/
X
XMAINTAINER=	3d@freebsd.org
X
XUSE_GMAKE=	yes
XUSE_AUTOMAKE=	yes
XAUTOMAKE_ARGS=	--add-missing  --copy
XUSE_LIBTOOL=	yes
XINSTALLS_SHLIB=	yes
X
XUSE_NEWGCC=	yes
X
X# cf the excellent goat book:
X#    http://sources.redhat.com/autobook/autobook/autobook_43.html
Xpost-patch:
X	@cd ${WRKSRC} && ./bootstrap
X
X.include <bsd.port.mk>
END-of-libdvdread/Makefile
echo x - libdvdread/pkg-plist
sed 's/^X//' >libdvdread/pkg-plist << 'END-of-libdvdread/pkg-plist'
Xlib/libdvdread.a
Xlib/libdvdread.so
Xlib/libdvdread.so.1
Xinclude/dvdread/dvd_reader.h
Xinclude/dvdread/dvd_udf.h
Xinclude/dvdread/ifo_types.h
Xinclude/dvdread/ifo_read.h
Xinclude/dvdread/ifo_print.h
Xinclude/dvdread/nav_types.h
Xinclude/dvdread/nav_read.h
Xinclude/dvdread/nav_print.h
X@dirrm include/dvdread
X
END-of-libdvdread/pkg-plist
echo x - libdvdread/pkg-descr
sed 's/^X//' >libdvdread/pkg-descr << 'END-of-libdvdread/pkg-descr'
XThis is needed by ogle.
X
XWWW: http://www.dtek.chalmers.se/groups/dvd/index.html
END-of-libdvdread/pkg-descr
echo x - libdvdread/distinfo
sed 's/^X//' >libdvdread/distinfo << 'END-of-libdvdread/distinfo'
XMD5 (libdvdread-0.8.0.tar.gz) = f74e3ecbad02a5c5fd679b539c341d8b
END-of-libdvdread/distinfo
exit

>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200106252332.f5PNWJU69674>