summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmcneill <jmcneill>2008-09-29 01:28:50 +0000
committerjmcneill <jmcneill>2008-09-29 01:28:50 +0000
commit2f9c33e68bdf3768066911febd5f01d6d33826a5 (patch)
treed126542f0936c6e0a8b52c0c04778026db5917b1
parentc2b818751b5c2b7b746c98b87852c6e1efe41c6e (diff)
downloadpkgsrc-2f9c33e68bdf3768066911febd5f01d6d33826a5.tar.gz
Workaround a bug with NetBSD rtld that prevented libavcodec-based plugins
from working properly. Ekiga can now use H264, H263+, and MPEG4 codecs.
-rw-r--r--devel/opal/distinfo6
-rw-r--r--devel/opal/patches/patch-aa23
-rw-r--r--devel/opal/patches/patch-ab16
-rw-r--r--devel/opal/patches/patch-ac33
-rw-r--r--devel/opal/patches/patch-ad12
5 files changed, 89 insertions, 1 deletions
diff --git a/devel/opal/distinfo b/devel/opal/distinfo
index a4d2a073ec4..9bbdfbd4fa1 100644
--- a/devel/opal/distinfo
+++ b/devel/opal/distinfo
@@ -1,5 +1,9 @@
-$NetBSD: distinfo,v 1.1.1.1 2008/09/22 23:41:42 jmcneill Exp $
+$NetBSD: distinfo,v 1.2 2008/09/29 01:28:50 jmcneill Exp $
SHA1 (opal-3.4.1.tar.bz2) = 4ab0b36f2eb3ba27cf32749d48f1f677ba491d39
RMD160 (opal-3.4.1.tar.bz2) = d51e284806128b2c1b19b1087240ff15334924c4
Size (opal-3.4.1.tar.bz2) = 15629492 bytes
+SHA1 (patch-aa) = a472dcfe3df333f664d639d2933f5022de9e1090
+SHA1 (patch-ab) = 42cd61b09d27ecb25ea880a1b4f460ab6c1579ab
+SHA1 (patch-ac) = 0a7ab6803a10c483b7b826405afd70757faca407
+SHA1 (patch-ad) = a333cc09e061180482d28905c3001da66c48eec8
diff --git a/devel/opal/patches/patch-aa b/devel/opal/patches/patch-aa
new file mode 100644
index 00000000000..73a316b342a
--- /dev/null
+++ b/devel/opal/patches/patch-aa
@@ -0,0 +1,23 @@
+$NetBSD: patch-aa,v 1.1 2008/09/29 01:28:50 jmcneill Exp $
+
+--- plugins/video/H.264/Makefile.in.orig 2008-09-28 21:05:02.000000000 -0400
++++ plugins/video/H.264/Makefile.in
+@@ -124,9 +124,9 @@ OBJECTS = $(addprefix $(OBJDIR)/,$(patsu
+ $(PLUGIN): $(OBJECTS)
+ @set -e; $(foreach dir,$(SUBDIRS),if test -d ${dir} ; then $(MAKE) -C $(dir); fi ; )
+ ifeq (,$(findstring solaris,$(target_os)))
+- $(CXX) $(LDSO) $(DL_LIBS) -o $@ $^
++ $(CXX) $(LDSO) $(LDFLAGS) $(DL_LIBS) -o $@ $^
+ else
+- $(CXX) $(LDSO) $(DL_LIBS) $@ -o $@ $^
++ $(CXX) $(LDSO) $(LDFLAGS) $(DL_LIBS) $@ -o $@ $^
+ endif
+
+
+@@ -144,4 +144,4 @@ clean:
+ @set -e; $(foreach dir,$(SUBDIRS),if test -d ${dir} ; then $(MAKE) -C $(dir) clean; fi ; )
+
+ ###########################################
+-
+\ No newline at end of file
++
diff --git a/devel/opal/patches/patch-ab b/devel/opal/patches/patch-ab
new file mode 100644
index 00000000000..ea5b6b9e4dd
--- /dev/null
+++ b/devel/opal/patches/patch-ab
@@ -0,0 +1,16 @@
+$NetBSD: patch-ab,v 1.1 2008/09/29 01:28:50 jmcneill Exp $
+
+--- plugins/video/H.264/gpl/Makefile.in.orig 2008-09-28 21:07:24.000000000 -0400
++++ plugins/video/H.264/gpl/Makefile.in
+@@ -137,9 +137,9 @@ OBJECTS = $(addprefix $(OBJDIR)/,$(patsu
+
+ $(PLUGIN): $(OBJECTS)
+ ifeq (,$(findstring solaris,$(target_os)))
+- $(CXX) $(X264_LIBS) -o $@ $^
++ $(CXX) $(LDFLAGS) $(X264_LIBS) -o $@ $^
+ else
+- $(CXX) $(X264_LIBS) $@ -o $@ $^
++ $(CXX) $(LDFLAGS) $(X264_LIBS) $@ -o $@ $^
+ endif
+
+ install:
diff --git a/devel/opal/patches/patch-ac b/devel/opal/patches/patch-ac
new file mode 100644
index 00000000000..5151debcac0
--- /dev/null
+++ b/devel/opal/patches/patch-ac
@@ -0,0 +1,33 @@
+$NetBSD: patch-ac,v 1.1 2008/09/29 01:28:50 jmcneill Exp $
+
+--- plugins/video/common/dyna.cxx.orig 2008-09-28 20:48:56.000000000 -0400
++++ plugins/video/common/dyna.cxx
+@@ -89,6 +89,7 @@ bool DynaLink::InternalOpen(const char *
+ #else
+ WITH_ALIGNED_STACK({ // must be called before using avcodec lib
+ _hDLL = dlopen((const char *)path, RTLD_NOW);
++ _hDLLutil = dlopen("libavutil.so", RTLD_NOW);
+ });
+ #endif /* _WIN32 */
+
+@@ -119,8 +120,10 @@ void DynaLink::Close()
+ FreeLibrary(_hDLL);
+ #else
+ dlclose(_hDLL);
++ if (_hDLLutil)
++ dlclose(_hDLLutil);
+ #endif /* _WIN32 */
+- _hDLL = NULL;
++ _hDLL = _hDLLutil = NULL;
+ }
+ }
+
+@@ -143,6 +146,8 @@ bool DynaLink::GetFunction(const char *
+ return true;
+ #else
+ void * p = dlsym(_hDLL, (const char *)name);
++ if (p == NULL && _hDLLutil != NULL)
++ p = dlsym(_hDLLutil, (const char *)name);
+ if (p == NULL) {
+ TRACE(1, _codecString << "\tDYNA\tError " << dlerror());
+ return false;
diff --git a/devel/opal/patches/patch-ad b/devel/opal/patches/patch-ad
new file mode 100644
index 00000000000..f4f27ba7b3e
--- /dev/null
+++ b/devel/opal/patches/patch-ad
@@ -0,0 +1,12 @@
+$NetBSD: patch-ad,v 1.1 2008/09/29 01:28:50 jmcneill Exp $
+
+--- plugins/video/common/dyna.h.orig 2008-09-28 20:48:27.000000000 -0400
++++ plugins/video/common/dyna.h
+@@ -137,6 +137,7 @@ class DynaLink
+ HINSTANCE _hDLL;
+ #else
+ void * _hDLL;
++ void * _hDLLutil;
+ #endif /* _WIN32 */
+ CodecID _codec;
+ char _codecString [32];