Bug 134153

Summary: Fix multimedia/libxine with libdvdcss
Product: Ports & Packages Reporter: Joseph S. Atkinson <jsa>
Component: Individual Port(s)Assignee: MANTANI Nobutaka <nobutaka>
Status: Closed FIXED    
Severity: Affects Only Me CC: jpaetzel
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
patch-src:libdvdnav:dvd_input.c none

Description Joseph S. Atkinson 2009-05-02 10:20:01 UTC

libxine expects to dlopen a static libdvdcss.so.2, but currently it sits at version 3. This patch, to be placed in multimedia/libxine/files/, changes the hardlink to the .so symlink. This not only allows fixes the problem currently, but should allow for future versions to work without need for further modification (until the ABI truly does break).

NOTE: There is a hook HAVE_DVDCSS_DVDCSS_H for building support proper, but this appears to be broken.

Thanks to jpaetzel for solving the mystery and rnoland for helping me try it out with dvdcss/dvdcss.h.

How-To-Repeat: 

Build multimedia/xine or multimdia/totem-xine, then try to watch a css encrypted dvd.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2009-05-02 10:20:57 UTC
Responsible Changed
From-To: freebsd-ports-bugs->nobutaka

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Josh Paetzel freebsd_committer freebsd_triage 2009-05-02 13:43:11 UTC
It turns out there are three files in the libxine source tree that  
reference libdvdcss.so.2
The recent release of libdvdcss-1.2.10 bumped it's shared library to  
libdvdcss.so.3

The following patch emulates the way multimedia/libdvdread handles the  
same situation.

--- Makefile.old        2009-05-01 11:01:55.000000000 +0000
+++ Makefile    2009-05-01 18:07:12.000000000 +0000
@@ -31,6 +31,10 @@
                 mad.2:${PORTSDIR}/audio/libmad \
                 dca.0:${PORTSDIR}/multimedia/libdca

+.if !defined(PACKAGE_BUILDING)
+LIB_DEPENDS+=    dvdcss.${DVDCSS_LIBVERSION}:${PORTSDIR}/multimedia/ 
libdvdcss
+.endif
+
  USE_BZIP2=     yes
  USE_GETTEXT=   yes
  USE_ICONV=     yes
@@ -74,6 +78,10 @@
  DOCSDIR=       ${PREFIX}/share/doc/xine-lib
  PLIST_SUB=     PLUGINSDIR="lib/xine/plugins/1.25"

+# DVDCSS version hardcoded in src/input/input_dvd.c misc/cdda_server.c
+# and src/input/libdvdnav/dvd_input.c (dlopen'ed)
+DVDCSS_LIBVERSION=      3
+
  .include <bsd.port.pre.mk>

  .if defined(WITH_ARTS)
@@ -208,6 +216,13 @@
                 ${WRKSRC}/${f}
  .endfor

+       @${REINPLACE_CMD} -E -e 's|(libdvdcss.so)\.2|\1.$ 
{DVDCSS_LIBVERSION}|' \
+               ${WRKSRC}/src/input/input_dvd.c
+       @${REINPLACE_CMD} -E -e 's|(libdvdcss.so)\.2|\1.$ 
{DVDCSS_LIBVERSION}|' \
+               ${WRKSRC}/misc/cdda_server.c
+       @${REINPLACE_CMD} -E -e 's|(libdvdcss.so)\.2|\1.$ 
{DVDCSS_LIBVERSION}|' \
+               ${WRKSRC}/src/input/libdvdnav/dvd_input.c
+
  pre-configure:
         @${REINPLACE_CMD} -e \
                 's|THREAD_LIBS=".*"|THREAD_LIBS="\$$THREAD_LIBS"|g ; \
Comment 3 Joseph S. Atkinson 2009-05-02 19:20:28 UTC
Josh Paetzel wrote:
> It turns out there are three files in the libxine source tree that 
> reference libdvdcss.so.2
> The recent release of libdvdcss-1.2.10 bumped it's shared library to 
> libdvdcss.so.3
> 
> The following patch emulates the way multimedia/libdvdread handles the 
> same situation.
> 

This patch appears to fix an issue I found afterwards in which I 
(testing with totem-xine) had to close and reopen the application before 
  it would play the dvd. I only noticed this after a reboot when trying 
to watch a dvd for the first time.

jaeptzel++
Comment 4 dfilter service freebsd_committer freebsd_triage 2009-05-10 06:51:21 UTC
nobutaka    2009-05-10 05:51:11 UTC

  FreeBSD ports repository

  Modified files:
    multimedia/libxine   Makefile distinfo 
    multimedia/libxine/files patch-configure 
  Log:
  - Update to 1.1.16.3.
  - Fix hardcoded libdvdcss shared library version. [*]
  
  PR:             ports/134153 [*]
  Submitted by:   Joseph S. Atkinson <jsa@wickedmachine.net> [*], jpaetzel [*]
  
  Revision  Changes    Path
  1.144     +16 -3     ports/multimedia/libxine/Makefile
  1.40      +3 -3      ports/multimedia/libxine/distinfo
  1.11      +15 -15    ports/multimedia/libxine/files/patch-configure
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 5 MANTANI Nobutaka freebsd_committer freebsd_triage 2009-05-10 06:55:50 UTC
State Changed
From-To: open->closed

Fixed, thanks!