Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Jun 2004 00:38:50 +0100 (BST)
From:      Lewis Thompson <purple@lewiz.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/68025: UPDATE PORT: multimedia/mmpython
Message-ID:  <200406162338.i5GNcof6000106@majic.fajita.org>
Resent-Message-ID: <200406162340.i5GNeFs5014000@freefall.freebsd.org>

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

>Number:         68025
>Category:       ports
>Synopsis:       UPDATE PORT: multimedia/mmpython
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jun 16 23:40:15 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Lewis Thompson
>Release:        FreeBSD 5.2.1-RELEASE-p8 i386
>Organization:
>Environment:
System: FreeBSD majic.fajita.org 5.2.1-RELEASE-p8 FreeBSD 5.2.1-RELEASE-p8 #9: Thu May 27 21:29:56 BST 2004 lewiz@amnesia.fajita.org:/usr/src/sys/i386/compile/AMNESIA i386


	
>Description:
	This is an update to multimedia/mmpython.  I have bumped the
PORTREVISION to reflect the changes.

	This fixes a fairly major compile-time bug that causes
ifoparser.so not to get compiled, which in turns prevents lsdvd from
working.

	This also fixes a bug that would cause a traceback if no disc
was in a given device.

	Comments have also been added to patches.
>How-To-Repeat:
>Fix:
diff -ruN mmpython.orig/Makefile mmpython/Makefile
--- mmpython.orig/Makefile	Thu Jun 10 20:11:48 2004
+++ mmpython/Makefile	Thu Jun 17 00:32:13 2004
@@ -7,6 +7,7 @@
 
 PORTNAME=	mmpython
 PORTVERSION=	0.4.3
+PORTREVISION=	1
 CATEGORIES=	multimedia python
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
 MASTER_SITE_SUBDIR=	${PORTNAME}
@@ -27,5 +28,9 @@
 #USE_BZIP2=	yes
 USE_PYTHON=	yes
 USE_PYDISTUTILS=yes
+USE_REINPLACE=	yes
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|gcc -ldvdread|gcc -L${LOCALBASE}/lib -ldvdread|' ${WRKSRC}/setup.py
 
 .include <bsd.port.mk>
diff -ruN mmpython.orig/files/patch-disc_discinfo.py mmpython/files/patch-disc_discinfo.py
--- mmpython.orig/files/patch-disc_discinfo.py	Thu Jun 10 20:04:24 2004
+++ mmpython/files/patch-disc_discinfo.py	Thu Jun 17 00:08:38 2004
@@ -1,9 +1,17 @@
-
-$FreeBSD: ports/multimedia/mmpython/files/patch-disc_discinfo.py,v 1.1 2004/06/10 19:04:24 krion Exp $
-
---- disc/discinfo.py.orig	Thu Jun 10 20:51:51 2004
-+++ disc/discinfo.py	Thu Jun 10 20:52:32 2004
-@@ -223,22 +223,10 @@
+--- disc/discinfo.py	Sun Feb  8 17:44:05 2004
++++ disc/discinfo.py	Thu Jun 17 00:04:48 2004
+@@ -191,7 +191,9 @@
+     
+     fd = open(device, 'rb')
+     try:
+-    	fd.seek(0x0000832d)
++	fd.seek(32768) # 2048 multiple boundary for FreeBSD
++	# FreeBSD doesn't return IOError unless we try and read:
++	fd.read(1)
+     except IOError:
+     	fd.close()
+ 	return 3
+@@ -223,22 +225,12 @@
      else:
          f = open(device,'rb')
  
@@ -23,6 +31,8 @@
 -            id = id[813:829]
 -        else:
 -            label = f.read(32)
++        # FreeBSD can only seek to 2048 multiple boundaries.
++        # Below works on Linux and FreeBSD:
 +        f.seek(32768)
 +        id = f.read(829)
 +        label = id[40:72]
diff -ruN mmpython.orig/files/patch-disc_dvdinfo.py mmpython/files/patch-disc_dvdinfo.py
--- mmpython.orig/files/patch-disc_dvdinfo.py	Thu Jun 10 20:04:24 2004
+++ mmpython/files/patch-disc_dvdinfo.py	Thu Jun 17 00:08:38 2004
@@ -9,8 +9,8 @@
          f = open(device,'rb')
 -        f.seek(32808, 0)
 -        buffer = f.read(50000)
-+        f.seek(32768, 0)
-+        buffer = f.read(50040)
++        f.seek(32768, 0) # FreeBSD requires seeking to a 2048 multiple boundary.
++        buffer = f.read(50040) # Read 40 more to compensate for above seek.
  
          if buffer.find('UDF') == -1:
              f.close()
@@ -20,8 +20,8 @@
          # brute force reading of the device to find out if it is a DVD
 -        f.seek(32808, 0)
 -        buffer = f.read(50000)
-+        f.seek(32768, 0)
-+        buffer = f.read(50040)
++        f.seek(32768, 0) # FreeBSD requires seeking to a 2048 multiple boundary.
++        buffer = f.read(50040) # Read 40 more to compensate for above seek.
  
          if buffer.find('UDF') == -1:
              return 0
diff -ruN mmpython.orig/files/patch-disc_lsdvd.py mmpython/files/patch-disc_lsdvd.py
--- mmpython.orig/files/patch-disc_lsdvd.py	Thu Jun 10 20:04:24 2004
+++ mmpython/files/patch-disc_lsdvd.py	Thu Jun 17 00:08:38 2004
@@ -9,8 +9,8 @@
          f = open(device,'rb')
 -        f.seek(32808, 0)
 -        buffer = f.read(50000)
-+        f.seek(32768, 0)
-+        buffer = f.read(50040)
++        f.seek(32768, 0) # FreeBSD requires seeking to a 2048 multiple boundary.
++        buffer = f.read(50040) # Read 40 more to compensate for above seek.
  
          if buffer.find('UDF') == -1:
              f.close()
diff -ruN mmpython.orig/files/patch-disc_vcdinfo.py mmpython/files/patch-disc_vcdinfo.py
--- mmpython.orig/files/patch-disc_vcdinfo.py	Thu Jun 10 20:04:24 2004
+++ mmpython/files/patch-disc_vcdinfo.py	Thu Jun 17 00:08:38 2004
@@ -10,9 +10,9 @@
 -        f.seek(32808, 0)
 -        buffer = f.read(50000)
 -        f.close()
-+	f.seek(32768, 0)
-+        buffer = f.read(50040)
-+	f.close()
++        f.seek(32768, 0) # FreeBSD requires seeking to a 2048 multiple boundary.
++        buffer = f.read(50040) # Read 40 more to compensate for above seek.
++        f.close()
  
          if buffer.find('SVCD') > 0 and buffer.find('TRACKS.SVD') > 0 and \
                 buffer.find('ENTRIES.SVD') > 0:
diff -ruN mmpython.orig/files/patch-video_vcdinfo.py mmpython/files/patch-video_vcdinfo.py
--- mmpython.orig/files/patch-video_vcdinfo.py	Thu Jun 10 20:04:24 2004
+++ mmpython/files/patch-video_vcdinfo.py	Thu Jun 17 00:08:38 2004
@@ -10,9 +10,9 @@
 -        f.seek(32808, 0)
 -        buffer = f.read(50000)
 -        f.close()
-+        f.seek(32768, 0)
-+        buffer = f.read(50040)
-+	f.close()
++        f.seek(32768, 0) # FreeBSD requires seeking to 2048 multiple boundary.
++        buffer = f.read(50040) # Read 40 more to compensate for above seek.
++        f.close()
  
          if buffer.find('SVCD') > 0 and buffer.find('TRACKS.SVD') > 0 and \
                 buffer.find('ENTRIES.SVD') > 0:
diff -ruN mmpython.orig/pkg-plist mmpython/pkg-plist
--- mmpython.orig/pkg-plist	Thu Jun 10 15:16:10 2004
+++ mmpython/pkg-plist	Thu Jun 17 00:33:12 2004
@@ -66,6 +66,7 @@
 %%PYTHON_SITELIBDIR%%/mmpython/disc/dvdinfo.py
 %%PYTHON_SITELIBDIR%%/mmpython/disc/dvdinfo.pyc
 %%PYTHON_SITELIBDIR%%/mmpython/disc/dvdinfo.pyo
+%%PYTHON_SITELIBDIR%%/mmpython/disc/ifoparser.so
 %%PYTHON_SITELIBDIR%%/mmpython/disc/lsdvd.py
 %%PYTHON_SITELIBDIR%%/mmpython/disc/lsdvd.pyc
 %%PYTHON_SITELIBDIR%%/mmpython/disc/lsdvd.pyo
>Release-Note:
>Audit-Trail:
>Unformatted:



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