summaryrefslogtreecommitdiffstats
path: root/contrib/libdvdread/P03-mingw-disable-dlopen.patch
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libdvdread/P03-mingw-disable-dlopen.patch')
-rw-r--r--contrib/libdvdread/P03-mingw-disable-dlopen.patch134
1 files changed, 134 insertions, 0 deletions
diff --git a/contrib/libdvdread/P03-mingw-disable-dlopen.patch b/contrib/libdvdread/P03-mingw-disable-dlopen.patch
new file mode 100644
index 000000000..515526289
--- /dev/null
+++ b/contrib/libdvdread/P03-mingw-disable-dlopen.patch
@@ -0,0 +1,134 @@
+diff -Naur libdvdread.orig/configure libdvdread/configure
+--- libdvdread.orig/configure 2006-10-06 04:14:24.000000000 -0400
++++ libdvdread/configure 2009-03-10 17:48:56.000000000 -0400
+@@ -18889,11 +18889,6 @@
+ echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+ if test $ac_cv_lib_dl_dlopen = yes; then
+ DL_LIBS=-ldl
+-else
+- { { echo "$as_me:$LINENO: error: You need libdl (dlopen)" >&5
+-echo "$as_me: error: You need libdl (dlopen)" >&2;}
+- { (exit 1); exit 1; }; }
+-
+ fi
+
+
+diff -Naur libdvdread.orig/dvdread/dvd_input.c libdvdread/dvdread/dvd_input.c
+--- libdvdread.orig/dvdread/dvd_input.c 2005-09-19 09:43:08.000000000 -0400
++++ libdvdread/dvdread/dvd_input.c 2009-03-10 18:01:43.000000000 -0400
+@@ -44,18 +44,6 @@
+
+ char * (*dvdinput_error) (dvd_input_t);
+
+-#ifdef HAVE_DVDCSS_DVDCSS_H
+-/* linking to libdvdcss */
+-#include <dvdcss/dvdcss.h>
+-#define DVDcss_open(a) dvdcss_open((char*)(a))
+-#define DVDcss_close dvdcss_close
+-#define DVDcss_seek dvdcss_seek
+-#define DVDcss_title dvdcss_title
+-#define DVDcss_read dvdcss_read
+-#define DVDcss_error dvdcss_error
+-#else
+-/* dlopening libdvdcss */
+-#include <dlfcn.h>
+ typedef struct dvdcss_s *dvdcss_handle;
+ static dvdcss_handle (*DVDcss_open) (const char *);
+ static int (*DVDcss_close) (dvdcss_handle);
+@@ -63,7 +51,6 @@
+ static int (*DVDcss_title) (dvdcss_handle, int);
+ static int (*DVDcss_read) (dvdcss_handle, void *, int, int);
+ static char * (*DVDcss_error) (dvdcss_handle);
+-#endif
+
+ /* The DVDinput handle, add stuff here for new input methods. */
+ struct dvd_input_s {
+@@ -290,17 +277,7 @@
+ */
+ void dvdinput_free(void)
+ {
+-#ifdef HAVE_DVDCSS_DVDCSS_H
+- /* linked statically, nothing to free */
+ return;
+-#else
+- if(dvdcss_library) {
+- dlclose(dvdcss_library);
+- dvdcss_library = NULL;
+- }
+- dvdcss_library_init = 0;
+- return;
+-#endif
+ }
+
+
+@@ -324,58 +301,6 @@
+
+ verbose = get_verbose();
+
+-#ifdef HAVE_DVDCSS_DVDCSS_H
+- /* linking to libdvdcss */
+- dvdcss_library = &dvdcss_library; /* Give it some value != NULL */
+- /* the DVDcss_* functions have been #defined at the top */
+- dvdcss_version = &dvdcss_interface_2;
+-
+-#else
+-
+- dvdcss_library = dlopen("libdvdcss.so.2", RTLD_LAZY);
+-
+- if(dvdcss_library != NULL) {
+-#if defined(__OpenBSD__) && !defined(__ELF__)
+-#define U_S "_"
+-#else
+-#define U_S
+-#endif
+- DVDcss_open = (dvdcss_handle (*)(const char*))
+- dlsym(dvdcss_library, U_S "dvdcss_open");
+- DVDcss_close = (int (*)(dvdcss_handle))
+- dlsym(dvdcss_library, U_S "dvdcss_close");
+- DVDcss_title = (int (*)(dvdcss_handle, int))
+- dlsym(dvdcss_library, U_S "dvdcss_title");
+- DVDcss_seek = (int (*)(dvdcss_handle, int, int))
+- dlsym(dvdcss_library, U_S "dvdcss_seek");
+- DVDcss_read = (int (*)(dvdcss_handle, void*, int, int))
+- dlsym(dvdcss_library, U_S "dvdcss_read");
+- DVDcss_error = (char* (*)(dvdcss_handle))
+- dlsym(dvdcss_library, U_S "dvdcss_error");
+-
+- dvdcss_version = (char **)dlsym(dvdcss_library, U_S "dvdcss_interface_2");
+-
+- if(dlsym(dvdcss_library, U_S "dvdcss_crack")) {
+- if(verbose >= 0) {
+- fprintf(stderr,
+- "libdvdread: Old (pre-0.0.2) version of libdvdcss found.\n"
+- "libdvdread: You should get the latest version from "
+- "http://www.videolan.org/\n" );
+- }
+- dlclose(dvdcss_library);
+- dvdcss_library = NULL;
+- } else if(!DVDcss_open || !DVDcss_close || !DVDcss_title || !DVDcss_seek
+- || !DVDcss_read || !DVDcss_error || !dvdcss_version) {
+- if(verbose >= 0) {
+- fprintf(stderr, "libdvdread: Missing symbols in libdvdcss.so.2, "
+- "this shouldn't happen !\n");
+- }
+- dlclose(dvdcss_library);
+- dvdcss_library = NULL;
+- }
+- }
+-#endif /* HAVE_DVDCSS_DVDCSS_H */
+-
+ dvdcss_library_init = 1;
+
+ if(dvdcss_library) {
+diff -Naur libdvdread.orig/dvdread/dvd_reader.c libdvdread/dvdread/dvd_reader.c
+--- libdvdread.orig/dvdread/dvd_reader.c 2006-10-06 03:58:03.000000000 -0400
++++ libdvdread/dvdread/dvd_reader.c 2009-03-10 17:51:22.000000000 -0400
+@@ -183,7 +183,7 @@
+ dev->align = align;
+ }
+
+-#ifdef WIN32 /* replacement gettimeofday implementation */
++#if defined(WIN32) && !defined(__MINGW32__) /* replacement gettimeofday implementation */
+ #include <sys/timeb.h>
+ static int gettimeofday( struct timeval *tv, void *tz )
+ {