[arch-commits] Commit in ogle/repos (14 files)

Eric Bélanger eric at nymeria.archlinux.org
Thu Oct 10 01:44:07 UTC 2013


    Date: Thursday, October 10, 2013 @ 03:44:06
  Author: eric
Revision: 98421

archrelease: copy trunk to community-i686, community-x86_64

Added:
  ogle/repos/community-i686/
  ogle/repos/community-i686/PKGBUILD
    (from rev 98419, ogle/trunk/PKGBUILD)
  ogle/repos/community-i686/dvdread-4.1.3.patch
    (from rev 98419, ogle/trunk/dvdread-4.1.3.patch)
  ogle/repos/community-i686/gcc34alsafix.patch
    (from rev 98419, ogle/trunk/gcc34alsafix.patch)
  ogle/repos/community-i686/gcc4.patch
    (from rev 98419, ogle/trunk/gcc4.patch)
  ogle/repos/community-i686/ogle-vuln-scripts-makefile.patch
    (from rev 98419, ogle/trunk/ogle-vuln-scripts-makefile.patch)
  ogle/repos/community-i686/xvideofix.patch
    (from rev 98419, ogle/trunk/xvideofix.patch)
  ogle/repos/community-x86_64/
  ogle/repos/community-x86_64/PKGBUILD
    (from rev 98419, ogle/trunk/PKGBUILD)
  ogle/repos/community-x86_64/dvdread-4.1.3.patch
    (from rev 98420, ogle/trunk/dvdread-4.1.3.patch)
  ogle/repos/community-x86_64/gcc34alsafix.patch
    (from rev 98420, ogle/trunk/gcc34alsafix.patch)
  ogle/repos/community-x86_64/gcc4.patch
    (from rev 98420, ogle/trunk/gcc4.patch)
  ogle/repos/community-x86_64/ogle-vuln-scripts-makefile.patch
    (from rev 98420, ogle/trunk/ogle-vuln-scripts-makefile.patch)
  ogle/repos/community-x86_64/xvideofix.patch
    (from rev 98420, ogle/trunk/xvideofix.patch)

---------------------------------------------------+
 community-i686/PKGBUILD                           |   44 ++++
 community-i686/dvdread-4.1.3.patch                |  129 ++++++++++++
 community-i686/gcc34alsafix.patch                 |   15 +
 community-i686/gcc4.patch                         |   12 +
 community-i686/ogle-vuln-scripts-makefile.patch   |   36 +++
 community-i686/xvideofix.patch                    |  205 ++++++++++++++++++++
 community-x86_64/PKGBUILD                         |   44 ++++
 community-x86_64/dvdread-4.1.3.patch              |  129 ++++++++++++
 community-x86_64/gcc34alsafix.patch               |   15 +
 community-x86_64/gcc4.patch                       |   12 +
 community-x86_64/ogle-vuln-scripts-makefile.patch |   36 +++
 community-x86_64/xvideofix.patch                  |  205 ++++++++++++++++++++
 12 files changed, 882 insertions(+)

Copied: ogle/repos/community-i686/PKGBUILD (from rev 98419, ogle/trunk/PKGBUILD)
===================================================================
--- community-i686/PKGBUILD	                        (rev 0)
+++ community-i686/PKGBUILD	2013-10-10 01:44:06 UTC (rev 98421)
@@ -0,0 +1,44 @@
+# $Id$
+# Maintainer: Eric Bélanger <eric at archlinux.org>
+
+pkgname=ogle
+pkgver=0.9.2
+pkgrel=13
+pkgdesc="A simple DVD player for Linux"
+arch=('i686' 'x86_64')
+url="http://www.dtek.chalmers.se/groups/dvd/"
+license=('GPL')
+depends=('sh' 'libxml2' 'libdvdread' 'libjpeg' 'libmad' 'libxinerama' 'libxv'
+         'alsa-lib' 'a52dec' 'libxxf86vm')
+options=('!libtool')
+# http://www.dtek.chalmers.se/groups/dvd/dist/${pkgname}-${pkgver}.tar.gz
+source=(ftp://ftp.archlinux.org/other/ogle/${pkgname}-${pkgver}.tar.gz \
+        xvideofix.patch	gcc34alsafix.patch gcc4.patch dvdread-4.1.3.patch \
+        ogle-vuln-scripts-makefile.patch)
+md5sums=('a76a9892bdb807a4bcf859d15a91f0f9'
+         '57f1cf36eed82c56f24e9c0fc25ce2b3'
+         '4ebc822b252fade6b53c5ceb5be45bf5'
+         'd08cff87c5ec41a7eebc0d2384835688'
+         '597906c64ff7f5185de8430fdae3107d'
+         'd052b01f293c61d399fdd0ac2abb1cf4')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -p0 -i "${srcdir}/dvdread-4.1.3.patch"
+  patch -p1 -i "${srcdir}/xvideofix.patch"
+  patch -p1 -i "${srcdir}/gcc34alsafix.patch"
+  patch -p1 -i "${srcdir}/gcc4.patch"
+  patch -p0 -i "${srcdir}/ogle-vuln-scripts-makefile.patch"
+
+   # fix alsa detection - stolen from their cvs
+  sed -i 's|^.*MINOR\=\=5.*$|#if SND_LIB_MAJOR==0 && SND_LIB_MINOR<6|' configure
+  sed -i 's|__diga_end:|\0;|' libogleao/alsa_audio.c
+  ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --with-x
+  make
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  export LIBRARY_PATH="${pkgdir}/usr/lib/ogle"
+  make DESTDIR="${pkgdir}" install
+}

Copied: ogle/repos/community-i686/dvdread-4.1.3.patch (from rev 98419, ogle/trunk/dvdread-4.1.3.patch)
===================================================================
--- community-i686/dvdread-4.1.3.patch	                        (rev 0)
+++ community-i686/dvdread-4.1.3.patch	2013-10-10 01:44:06 UTC (rev 98421)
@@ -0,0 +1,129 @@
+$NetBSD: patch-ad,v 1.1 2009/01/27 02:06:49 jmcneill Exp $
+
+--- vmg/ifo_dump.c.orig	2009-01-26 21:00:17.000000000 -0500
++++ vmg/ifo_dump.c	2009-01-26 21:00:33.000000000 -0500
+@@ -65,38 +65,38 @@ static void print_ifo(char *path, int ti
+   if(h->vmgi_mat != NULL) {
+     
+     printf("VMG top level\n-------------\n");
+-    ifoPrint_VMGI_MAT(h->vmgi_mat);
++    ifo_print_VMGI_MAT(h->vmgi_mat);
+       
+     printf("\nFirst Play PGC\n--------------\n");
+-    ifoPrint_PGC(h->first_play_pgc);
++    ifo_print_PGC(h->first_play_pgc);
+       
+     printf("\nTitle Track search pointer table\n");
+     printf(  "------------------------------------------------\n");
+-    ifoPrint_TT_SRPT(h->tt_srpt);
++    ifo_print_TT_SRPT(h->tt_srpt);
+       
+     printf("\nMenu PGCI Unit table\n");
+     printf(  "--------------------\n");
+     if(h->vmgi_mat->vmgm_pgci_ut != 0) {
+-      ifoPrint_PGCI_UT(h->pgci_ut);
++      ifo_print_PGCI_UT(h->pgci_ut);
+     } else 
+       printf("No Menu PGCI Unit table present\n");
+       
+     printf("\nParental Manegment Information table\n");
+     printf(  "------------------------------------\n");
+     if(h->vmgi_mat->ptl_mait != 0) {
+-      ifoPrint_PTL_MAIT(h->ptl_mait);
++      ifo_print_PTL_MAIT(h->ptl_mait);
+     } else
+       printf("No Parental Management Information present\n");
+       
+     printf("\nVideo Title Set Attribute Table\n");
+     printf(  "-------------------------------\n");
+-    ifoPrint_VTS_ATRT(h->vts_atrt);
++    ifo_print_VTS_ATRT(h->vts_atrt);
+ 
+       
+     printf("\nText Data Manager Information\n");
+     printf(  "-----------------------------\n");
+     if(h->vmgi_mat->txtdt_mgi != 0) {
+-      //ifoPrint_TXTDT_MGI(h->txtdt_mgi);
++      //ifo_print_TXTDT_MGI(h->txtdt_mgi);
+       printf("Can't print Text Data Manager Information yet\n");
+     } else
+       printf("No Text Data Manager Information present\n");
+@@ -106,14 +106,14 @@ static void print_ifo(char *path, int ti
+       printf("\nCell Address table\n");
+       printf(  "-----------------\n");
+       if(h->vmgi_mat->vmgm_c_adt != 0) {
+-	ifoPrint_C_ADT(h->menu_c_adt);
++	ifo_print_C_ADT(h->menu_c_adt);
+       } else
+ 	printf("No Cell Address table present\n");
+       
+       printf("\nVideo Title set Menu VOBU address map\n");
+       printf(  "-----------------\n");
+       if(h->vmgi_mat->vmgm_vobu_admap != 0) {
+-	ifoPrint_VOBU_ADMAP(h->menu_vobu_admap);
++	ifo_print_VOBU_ADMAP(h->menu_vobu_admap);
+       } else
+ 	printf("No Menu VOBU address map present\n");
+     }
+@@ -122,20 +122,20 @@ static void print_ifo(char *path, int ti
+   if(h->vtsi_mat != NULL) {
+       
+     printf("VTS top level\n-------------\n");
+-    ifoPrint_VTSI_MAT(h->vtsi_mat);
++    ifo_print_VTSI_MAT(h->vtsi_mat);
+       
+     printf("\nPart of title search pointer table information\n");
+     printf(  "----------------------------------------------\n");
+-    ifoPrint_VTS_PTT_SRPT(h->vts_ptt_srpt);
++    ifo_print_VTS_PTT_SRPT(h->vts_ptt_srpt);
+        
+     printf("\nPGCI Unit table\n");
+     printf(  "--------------------\n");
+-    ifoPrint_PGCIT(h->vts_pgcit);
++    ifo_print_PGCIT(h->vts_pgcit);
+       
+     printf("\nMenu PGCI Unit table\n");
+     printf(  "--------------------\n");
+     if(h->vtsi_mat->vtsm_pgci_ut != 0) {
+-      ifoPrint_PGCI_UT(h->pgci_ut);
++      ifo_print_PGCI_UT(h->pgci_ut);
+     } else
+       printf("No Menu PGCI Unit table present\n");
+       
+@@ -144,31 +144,31 @@ static void print_ifo(char *path, int ti
+       printf("\nTime Map table\n");
+       printf(  "-----------------\n");
+       if(h->vtsi_mat->vts_tmapt != 0) {
+-	ifoPrint_VTS_TMAPT(h->vts_tmapt);
++	ifo_print_VTS_TMAPT(h->vts_tmapt);
+       } else
+ 	printf("No Time Map table present\n");
+       
+       printf("\nMenu Cell Address table\n");
+       printf(  "-----------------\n");
+       if(h->vtsi_mat->vtsm_c_adt != 0) {
+-	ifoPrint_C_ADT(h->menu_c_adt);
++	ifo_print_C_ADT(h->menu_c_adt);
+       } else
+ 	printf("No Cell Address table present\n");
+       
+       printf("\nVideo Title Set Menu VOBU address map\n");
+       printf(  "-----------------\n");
+       if(h->vtsi_mat->vtsm_vobu_admap != 0) {
+-	ifoPrint_VOBU_ADMAP(h->menu_vobu_admap);
++	ifo_print_VOBU_ADMAP(h->menu_vobu_admap);
+       } else
+ 	printf("No Menu VOBU address map present\n");
+       
+       printf("\nCell Address table\n");
+       printf(  "-----------------\n");
+-      ifoPrint_C_ADT(h->vts_c_adt);
++      ifo_print_C_ADT(h->vts_c_adt);
+       
+       printf("\nVideo Title Set VOBU address map\n");
+       printf(  "-----------------\n");
+-      ifoPrint_VOBU_ADMAP(h->vts_vobu_admap);
++      ifo_print_VOBU_ADMAP(h->vts_vobu_admap);
+       
+     }
+   }

Copied: ogle/repos/community-i686/gcc34alsafix.patch (from rev 98419, ogle/trunk/gcc34alsafix.patch)
===================================================================
--- community-i686/gcc34alsafix.patch	                        (rev 0)
+++ community-i686/gcc34alsafix.patch	2013-10-10 01:44:06 UTC (rev 98421)
@@ -0,0 +1,15 @@
+--- ogle-0.9.2/libogleao/alsa_audio.c	2003-10-18 17:38:30.000000000 -0700
++++ ogle-0.9.2-patch/libogleao/alsa_audio.c	2005-04-22 18:21:23.000000000 -0700
+@@ -248,10 +248,9 @@
+       //Shouldn't ctl_handle be closed here?
+     }
+     
+-    snd_ctl_close(ctl_handle);
+-  
+-  __diga_end:
++    snd_ctl_close(ctl_handle);  
+   }
++  __diga_end:
+   
+   return 0;
+ }

Copied: ogle/repos/community-i686/gcc4.patch (from rev 98419, ogle/trunk/gcc4.patch)
===================================================================
--- community-i686/gcc4.patch	                        (rev 0)
+++ community-i686/gcc4.patch	2013-10-10 01:44:06 UTC (rev 98421)
@@ -0,0 +1,12 @@
+diff -urN ogle-0.9.2-old/ac3/ac3dec_wrap.c ogle-0.9.2/ac3/ac3dec_wrap.c
+--- ogle-0.9.2-old/ac3/ac3dec_wrap.c	2003-03-02 15:50:03.000000000 +0000
++++ ogle-0.9.2/ac3/ac3dec_wrap.c	2005-09-30 17:07:27.000000000 +0000
+@@ -48,7 +48,7 @@
+ static void handle_events(MsgEventQ_t *q, MsgEvent_t *ev);
+ 
+ 
+-static char *program_name;
++char *program_name;
+ 
+ static FILE *outfile;
+ 

Copied: ogle/repos/community-i686/ogle-vuln-scripts-makefile.patch (from rev 98419, ogle/trunk/ogle-vuln-scripts-makefile.patch)
===================================================================
--- community-i686/ogle-vuln-scripts-makefile.patch	                        (rev 0)
+++ community-i686/ogle-vuln-scripts-makefile.patch	2013-10-10 01:44:06 UTC (rev 98421)
@@ -0,0 +1,36 @@
+This patch inhibits the installation of debug scripts vulnerable to a symlink
+attack, see bug 245921 for reference.
+
+--- scripts/Makefile.in.orig	2009-04-04 18:13:33.000000000 +0200
++++ scripts/Makefile.in	2009-04-04 18:15:46.000000000 +0200
+@@ -133,10 +133,10 @@
+ subdir = scripts
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_CLEAN_FILES = ogle
+-SCRIPTS = $(bin_SCRIPTS) $(dist_pkglib_SCRIPTS)
++SCRIPTS = $(bin_SCRIPTS)
+ 
+ DIST_SOURCES =
+-DIST_COMMON = $(dist_pkglib_SCRIPTS) Makefile.am Makefile.in ogle.in
++DIST_COMMON = Makefile.am Makefile.in ogle.in
+ all: all-am
+ 
+ .SUFFIXES:
+@@ -279,7 +279,7 @@
+ 
+ install-data-am:
+ 
+-install-exec-am: install-binSCRIPTS install-dist_pkglibSCRIPTS
++install-exec-am: install-binSCRIPTS
+ 
+ install-info: install-info-am
+ 
+@@ -295,7 +295,7 @@
+ 
+ mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+ 
+-uninstall-am: uninstall-binSCRIPTS uninstall-dist_pkglibSCRIPTS \
++uninstall-am: uninstall-binSCRIPTS \
+ 	uninstall-info-am
+ 
+ .PHONY: all all-am check check-am clean clean-generic clean-libtool \

Copied: ogle/repos/community-i686/xvideofix.patch (from rev 98419, ogle/trunk/xvideofix.patch)
===================================================================
--- community-i686/xvideofix.patch	                        (rev 0)
+++ community-i686/xvideofix.patch	2013-10-10 01:44:06 UTC (rev 98421)
@@ -0,0 +1,205 @@
+--- ogle-0.9.2/mpeg2_video/video_output_x11.c	2003-11-04 04:02:10.000000000 -0800
++++ ogle-0.9.2-patch/mpeg2_video/video_output_x11.c	2005-04-22 18:37:56.000000000 -0700
+@@ -286,6 +286,7 @@
+   }
+ }
+ 
++
+ /* This section of the code looks for the Xv extension for hardware
+  * yuv->rgb and scaling. If it is not found, or any suitable adapter
+  * is not found, use_xv will be set to 0. Otherwise it allocates a
+@@ -299,121 +300,136 @@
+ {
+   int xv_found = 0;
+ #ifdef HAVE_XV
+-  int i, j;
++  int i, j, k;
+   int result;
+ 
+   xv_port = 0; /* We have no port yet. */
+-  
++
+   /* Check for the Xvideo extension */
+-  result = XvQueryExtension(mydisplay, &xv_version, &xv_release, 
+-			    &xv_request_base, &xv_event_base, 
++  result = XvQueryExtension(mydisplay, &xv_version, &xv_release,
++			    &xv_request_base, &xv_event_base,
+ 			    &xv_error_base);
+   if(result != Success) {
+     WARNING("%s", "Xvideo extension not found\n");
+     use_xv = 0;
+     return;
+   }
+-  
++
+   NOTE("Found Xv extension %d.%d, checking for suitable adaptors\n",
+        xv_version, xv_release);
+-  
++
+   /* Check for available adaptors */
+-  result = XvQueryAdaptors(mydisplay, DefaultRootWindow (mydisplay), 
++  result = XvQueryAdaptors(mydisplay, DefaultRootWindow (mydisplay),
+ 			   &xv_num_adaptors, &xv_adaptor_info);
+   if(result != Success) {
+     WARNING("%s", "No Xv adaptors found\n");
+     use_xv = 0;
+     return;
+   }
+-      
++
+   /* Check adaptors */
+   for(i = 0; i < xv_num_adaptors; i++) {
+-    
++
+     /* Is it usable for displaying XvImages */
+     if(!(xv_adaptor_info[i].type & XvInputMask) ||
+        !(xv_adaptor_info[i].type & XvImageMask))
+       continue;
+-    
+-    xv_port = xv_adaptor_info[i].base_id;
+-      
+-    /* Check image formats of adaptor */
+-    xv_formats = XvListImageFormats(mydisplay, xv_port, &xv_num_formats);
+-    for(j = 0; j < xv_num_formats; j++) {
+-      if(xv_formats[j].id == 0x32315659) { /* YV12 */
+-	//if(xv_formats[j].id == 0x30323449) { /* I420 */
+-	xv_id = xv_formats[j].id;
+-	break;
+-      } 
+-    }
+-    /* No matching format found */
+-    if(j == xv_num_formats)
+-      continue;
+-      
+-    NOTE("Xv adaptor \"%s\" port %li image format %i\n",
+-	 xv_adaptor_info[i].name, xv_port, xv_id);
+-      
+-    /* Allocate XvImages */
++
++		/* Check Available Ports */
++		for (j = 0; j <  xv_adaptor_info[i].num_ports && !xv_port ; j++) {
++			
++			/* Check Image formats of adaptor */
++			xv_formats = XvListImageFormats(mydisplay,xv_adaptor_info[i].base_id + j, &xv_num_formats); 
++			for (k = 0; k < xv_num_formats; k ++) {
++				
++				/* Check for proper format (YV12) and see if we can grab the port */			
++				if ( (xv_formats[k].id == 0x32315659) && (XvGrabPort(mydisplay,xv_adaptor_info[i].base_id + j,0) == Success) ) { 
++					xv_id = xv_formats[k].id;
++					xv_port = xv_adaptor_info[i].base_id +  j;
++					break;
++					}
++				
++				}
++
++			/* delete stuff nicely */
++			XFree(xv_formats);	
++			}
++		
++		/* Check next Adapter */
++		if (xv_port==0) continue;		
++				
++		/* Report what we found */							
++    NOTE("Xv adaptor \"%s\" port %li image format %i\n", xv_adaptor_info[i].name, xv_port, xv_id);
++			
++		/* Allocate XvImage */
+     xv_image = XvShmCreateImage(mydisplay, xv_port, xv_id, NULL,
+ 				padded_width,
+-				padded_height, 
++				padded_height,
+ 				&shm_info);
+-    
+-    /* Got an Image? */
++
++    /* Got an milk? */
+     if(xv_image == NULL)
+       continue;
+-    
++		
+     /* Test and see if we really got padded_width x padded_height */
+     if(xv_image->width != padded_width ||
+        xv_image->height != padded_height) {
+       FATAL("XvShmCreateImage got size: %d x %d\n",
+ 	    xv_image->width, xv_image->height);
+       exit(1);
+-    }
+-    
++    	}
++		
++		/* Now Finish Up */
+     shm_info.shmid = picture_buffer_shmid;
+     shm_info.shmaddr = picture_buffer_addr;
+-    
+-    /* Set the data pointer to the decoders picture segment. */  
++
++    /* Set the data pointer to the decoders picture segment. */
+     //    xv_image->data = picture_data->y;
+     shm_info.readOnly = True;
+-    
++
+     /* make sure we don't have any unhandled errors */
+     XSync(mydisplay, False);
+-    
++
+     /* set error handler so we can check if xshmattach failed */
+     prev_xerrhandler = XSetErrorHandler(xshm_errorhandler);
+-    
++
+     /* get the serial of the xshmattach request */
+     req_serial = NextRequest(mydisplay);
+-    
++
+     /* try to attach */
+     XShmAttach(mydisplay, &shm_info);
+-    
++
+     /* make sure xshmattach has been processed and any errors
+        have been returned to us */
+     XSync(mydisplay, False);
+-    
++
+     /* revert to the previous xerrorhandler */
+     XSetErrorHandler(prev_xerrhandler);
+-    
++
+     if(use_xshm) {
+ #if 0
+       shmctl(shm_info.shmid, IPC_RMID, 0); // only works on Linux..
+ #endif
+-      
++
+       CompletionType = XShmGetEventBase(mydisplay) + ShmCompletion;
+     }
+     xv_found = 1;
+ 
+     /* All set up! */
+     break;
+-  }
++		}
++	
++	/* Clean up */
++	XvFreeAdaptorInfo(xv_adaptor_info);
++
+ #endif /* HAVE_XV */
++	/* In case we didn't find a working Xv */ 
+   if(!xv_found) {
+     use_xv = 0;
+-  }
+-}
+-     
++	  }
++	
++	}
++
+ 
+ /* This section of the code tries to use the MIT XShm extension for 
+  * accellerated transfers to to X. XShm extension is need and only
+@@ -1726,6 +1742,8 @@
+ 
+   if(mydisplay) {
+     XSync(mydisplay,True);
++    if (use_xv) 
++      XvUngrabPort(mydisplay,xv_port,CurrentTime);
+     if(use_xshm)
+       XShmDetach(mydisplay, &shm_info);
+     if(window.ximage != 0)

Copied: ogle/repos/community-x86_64/PKGBUILD (from rev 98419, ogle/trunk/PKGBUILD)
===================================================================
--- community-x86_64/PKGBUILD	                        (rev 0)
+++ community-x86_64/PKGBUILD	2013-10-10 01:44:06 UTC (rev 98421)
@@ -0,0 +1,44 @@
+# $Id$
+# Maintainer: Eric Bélanger <eric at archlinux.org>
+
+pkgname=ogle
+pkgver=0.9.2
+pkgrel=13
+pkgdesc="A simple DVD player for Linux"
+arch=('i686' 'x86_64')
+url="http://www.dtek.chalmers.se/groups/dvd/"
+license=('GPL')
+depends=('sh' 'libxml2' 'libdvdread' 'libjpeg' 'libmad' 'libxinerama' 'libxv'
+         'alsa-lib' 'a52dec' 'libxxf86vm')
+options=('!libtool')
+# http://www.dtek.chalmers.se/groups/dvd/dist/${pkgname}-${pkgver}.tar.gz
+source=(ftp://ftp.archlinux.org/other/ogle/${pkgname}-${pkgver}.tar.gz \
+        xvideofix.patch	gcc34alsafix.patch gcc4.patch dvdread-4.1.3.patch \
+        ogle-vuln-scripts-makefile.patch)
+md5sums=('a76a9892bdb807a4bcf859d15a91f0f9'
+         '57f1cf36eed82c56f24e9c0fc25ce2b3'
+         '4ebc822b252fade6b53c5ceb5be45bf5'
+         'd08cff87c5ec41a7eebc0d2384835688'
+         '597906c64ff7f5185de8430fdae3107d'
+         'd052b01f293c61d399fdd0ac2abb1cf4')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -p0 -i "${srcdir}/dvdread-4.1.3.patch"
+  patch -p1 -i "${srcdir}/xvideofix.patch"
+  patch -p1 -i "${srcdir}/gcc34alsafix.patch"
+  patch -p1 -i "${srcdir}/gcc4.patch"
+  patch -p0 -i "${srcdir}/ogle-vuln-scripts-makefile.patch"
+
+   # fix alsa detection - stolen from their cvs
+  sed -i 's|^.*MINOR\=\=5.*$|#if SND_LIB_MAJOR==0 && SND_LIB_MINOR<6|' configure
+  sed -i 's|__diga_end:|\0;|' libogleao/alsa_audio.c
+  ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --with-x
+  make
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  export LIBRARY_PATH="${pkgdir}/usr/lib/ogle"
+  make DESTDIR="${pkgdir}" install
+}

Copied: ogle/repos/community-x86_64/dvdread-4.1.3.patch (from rev 98420, ogle/trunk/dvdread-4.1.3.patch)
===================================================================
--- community-x86_64/dvdread-4.1.3.patch	                        (rev 0)
+++ community-x86_64/dvdread-4.1.3.patch	2013-10-10 01:44:06 UTC (rev 98421)
@@ -0,0 +1,129 @@
+$NetBSD: patch-ad,v 1.1 2009/01/27 02:06:49 jmcneill Exp $
+
+--- vmg/ifo_dump.c.orig	2009-01-26 21:00:17.000000000 -0500
++++ vmg/ifo_dump.c	2009-01-26 21:00:33.000000000 -0500
+@@ -65,38 +65,38 @@ static void print_ifo(char *path, int ti
+   if(h->vmgi_mat != NULL) {
+     
+     printf("VMG top level\n-------------\n");
+-    ifoPrint_VMGI_MAT(h->vmgi_mat);
++    ifo_print_VMGI_MAT(h->vmgi_mat);
+       
+     printf("\nFirst Play PGC\n--------------\n");
+-    ifoPrint_PGC(h->first_play_pgc);
++    ifo_print_PGC(h->first_play_pgc);
+       
+     printf("\nTitle Track search pointer table\n");
+     printf(  "------------------------------------------------\n");
+-    ifoPrint_TT_SRPT(h->tt_srpt);
++    ifo_print_TT_SRPT(h->tt_srpt);
+       
+     printf("\nMenu PGCI Unit table\n");
+     printf(  "--------------------\n");
+     if(h->vmgi_mat->vmgm_pgci_ut != 0) {
+-      ifoPrint_PGCI_UT(h->pgci_ut);
++      ifo_print_PGCI_UT(h->pgci_ut);
+     } else 
+       printf("No Menu PGCI Unit table present\n");
+       
+     printf("\nParental Manegment Information table\n");
+     printf(  "------------------------------------\n");
+     if(h->vmgi_mat->ptl_mait != 0) {
+-      ifoPrint_PTL_MAIT(h->ptl_mait);
++      ifo_print_PTL_MAIT(h->ptl_mait);
+     } else
+       printf("No Parental Management Information present\n");
+       
+     printf("\nVideo Title Set Attribute Table\n");
+     printf(  "-------------------------------\n");
+-    ifoPrint_VTS_ATRT(h->vts_atrt);
++    ifo_print_VTS_ATRT(h->vts_atrt);
+ 
+       
+     printf("\nText Data Manager Information\n");
+     printf(  "-----------------------------\n");
+     if(h->vmgi_mat->txtdt_mgi != 0) {
+-      //ifoPrint_TXTDT_MGI(h->txtdt_mgi);
++      //ifo_print_TXTDT_MGI(h->txtdt_mgi);
+       printf("Can't print Text Data Manager Information yet\n");
+     } else
+       printf("No Text Data Manager Information present\n");
+@@ -106,14 +106,14 @@ static void print_ifo(char *path, int ti
+       printf("\nCell Address table\n");
+       printf(  "-----------------\n");
+       if(h->vmgi_mat->vmgm_c_adt != 0) {
+-	ifoPrint_C_ADT(h->menu_c_adt);
++	ifo_print_C_ADT(h->menu_c_adt);
+       } else
+ 	printf("No Cell Address table present\n");
+       
+       printf("\nVideo Title set Menu VOBU address map\n");
+       printf(  "-----------------\n");
+       if(h->vmgi_mat->vmgm_vobu_admap != 0) {
+-	ifoPrint_VOBU_ADMAP(h->menu_vobu_admap);
++	ifo_print_VOBU_ADMAP(h->menu_vobu_admap);
+       } else
+ 	printf("No Menu VOBU address map present\n");
+     }
+@@ -122,20 +122,20 @@ static void print_ifo(char *path, int ti
+   if(h->vtsi_mat != NULL) {
+       
+     printf("VTS top level\n-------------\n");
+-    ifoPrint_VTSI_MAT(h->vtsi_mat);
++    ifo_print_VTSI_MAT(h->vtsi_mat);
+       
+     printf("\nPart of title search pointer table information\n");
+     printf(  "----------------------------------------------\n");
+-    ifoPrint_VTS_PTT_SRPT(h->vts_ptt_srpt);
++    ifo_print_VTS_PTT_SRPT(h->vts_ptt_srpt);
+        
+     printf("\nPGCI Unit table\n");
+     printf(  "--------------------\n");
+-    ifoPrint_PGCIT(h->vts_pgcit);
++    ifo_print_PGCIT(h->vts_pgcit);
+       
+     printf("\nMenu PGCI Unit table\n");
+     printf(  "--------------------\n");
+     if(h->vtsi_mat->vtsm_pgci_ut != 0) {
+-      ifoPrint_PGCI_UT(h->pgci_ut);
++      ifo_print_PGCI_UT(h->pgci_ut);
+     } else
+       printf("No Menu PGCI Unit table present\n");
+       
+@@ -144,31 +144,31 @@ static void print_ifo(char *path, int ti
+       printf("\nTime Map table\n");
+       printf(  "-----------------\n");
+       if(h->vtsi_mat->vts_tmapt != 0) {
+-	ifoPrint_VTS_TMAPT(h->vts_tmapt);
++	ifo_print_VTS_TMAPT(h->vts_tmapt);
+       } else
+ 	printf("No Time Map table present\n");
+       
+       printf("\nMenu Cell Address table\n");
+       printf(  "-----------------\n");
+       if(h->vtsi_mat->vtsm_c_adt != 0) {
+-	ifoPrint_C_ADT(h->menu_c_adt);
++	ifo_print_C_ADT(h->menu_c_adt);
+       } else
+ 	printf("No Cell Address table present\n");
+       
+       printf("\nVideo Title Set Menu VOBU address map\n");
+       printf(  "-----------------\n");
+       if(h->vtsi_mat->vtsm_vobu_admap != 0) {
+-	ifoPrint_VOBU_ADMAP(h->menu_vobu_admap);
++	ifo_print_VOBU_ADMAP(h->menu_vobu_admap);
+       } else
+ 	printf("No Menu VOBU address map present\n");
+       
+       printf("\nCell Address table\n");
+       printf(  "-----------------\n");
+-      ifoPrint_C_ADT(h->vts_c_adt);
++      ifo_print_C_ADT(h->vts_c_adt);
+       
+       printf("\nVideo Title Set VOBU address map\n");
+       printf(  "-----------------\n");
+-      ifoPrint_VOBU_ADMAP(h->vts_vobu_admap);
++      ifo_print_VOBU_ADMAP(h->vts_vobu_admap);
+       
+     }
+   }

Copied: ogle/repos/community-x86_64/gcc34alsafix.patch (from rev 98420, ogle/trunk/gcc34alsafix.patch)
===================================================================
--- community-x86_64/gcc34alsafix.patch	                        (rev 0)
+++ community-x86_64/gcc34alsafix.patch	2013-10-10 01:44:06 UTC (rev 98421)
@@ -0,0 +1,15 @@
+--- ogle-0.9.2/libogleao/alsa_audio.c	2003-10-18 17:38:30.000000000 -0700
++++ ogle-0.9.2-patch/libogleao/alsa_audio.c	2005-04-22 18:21:23.000000000 -0700
+@@ -248,10 +248,9 @@
+       //Shouldn't ctl_handle be closed here?
+     }
+     
+-    snd_ctl_close(ctl_handle);
+-  
+-  __diga_end:
++    snd_ctl_close(ctl_handle);  
+   }
++  __diga_end:
+   
+   return 0;
+ }

Copied: ogle/repos/community-x86_64/gcc4.patch (from rev 98420, ogle/trunk/gcc4.patch)
===================================================================
--- community-x86_64/gcc4.patch	                        (rev 0)
+++ community-x86_64/gcc4.patch	2013-10-10 01:44:06 UTC (rev 98421)
@@ -0,0 +1,12 @@
+diff -urN ogle-0.9.2-old/ac3/ac3dec_wrap.c ogle-0.9.2/ac3/ac3dec_wrap.c
+--- ogle-0.9.2-old/ac3/ac3dec_wrap.c	2003-03-02 15:50:03.000000000 +0000
++++ ogle-0.9.2/ac3/ac3dec_wrap.c	2005-09-30 17:07:27.000000000 +0000
+@@ -48,7 +48,7 @@
+ static void handle_events(MsgEventQ_t *q, MsgEvent_t *ev);
+ 
+ 
+-static char *program_name;
++char *program_name;
+ 
+ static FILE *outfile;
+ 

Copied: ogle/repos/community-x86_64/ogle-vuln-scripts-makefile.patch (from rev 98420, ogle/trunk/ogle-vuln-scripts-makefile.patch)
===================================================================
--- community-x86_64/ogle-vuln-scripts-makefile.patch	                        (rev 0)
+++ community-x86_64/ogle-vuln-scripts-makefile.patch	2013-10-10 01:44:06 UTC (rev 98421)
@@ -0,0 +1,36 @@
+This patch inhibits the installation of debug scripts vulnerable to a symlink
+attack, see bug 245921 for reference.
+
+--- scripts/Makefile.in.orig	2009-04-04 18:13:33.000000000 +0200
++++ scripts/Makefile.in	2009-04-04 18:15:46.000000000 +0200
+@@ -133,10 +133,10 @@
+ subdir = scripts
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_CLEAN_FILES = ogle
+-SCRIPTS = $(bin_SCRIPTS) $(dist_pkglib_SCRIPTS)
++SCRIPTS = $(bin_SCRIPTS)
+ 
+ DIST_SOURCES =
+-DIST_COMMON = $(dist_pkglib_SCRIPTS) Makefile.am Makefile.in ogle.in
++DIST_COMMON = Makefile.am Makefile.in ogle.in
+ all: all-am
+ 
+ .SUFFIXES:
+@@ -279,7 +279,7 @@
+ 
+ install-data-am:
+ 
+-install-exec-am: install-binSCRIPTS install-dist_pkglibSCRIPTS
++install-exec-am: install-binSCRIPTS
+ 
+ install-info: install-info-am
+ 
+@@ -295,7 +295,7 @@
+ 
+ mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+ 
+-uninstall-am: uninstall-binSCRIPTS uninstall-dist_pkglibSCRIPTS \
++uninstall-am: uninstall-binSCRIPTS \
+ 	uninstall-info-am
+ 
+ .PHONY: all all-am check check-am clean clean-generic clean-libtool \

Copied: ogle/repos/community-x86_64/xvideofix.patch (from rev 98420, ogle/trunk/xvideofix.patch)
===================================================================
--- community-x86_64/xvideofix.patch	                        (rev 0)
+++ community-x86_64/xvideofix.patch	2013-10-10 01:44:06 UTC (rev 98421)
@@ -0,0 +1,205 @@
+--- ogle-0.9.2/mpeg2_video/video_output_x11.c	2003-11-04 04:02:10.000000000 -0800
++++ ogle-0.9.2-patch/mpeg2_video/video_output_x11.c	2005-04-22 18:37:56.000000000 -0700
+@@ -286,6 +286,7 @@
+   }
+ }
+ 
++
+ /* This section of the code looks for the Xv extension for hardware
+  * yuv->rgb and scaling. If it is not found, or any suitable adapter
+  * is not found, use_xv will be set to 0. Otherwise it allocates a
+@@ -299,121 +300,136 @@
+ {
+   int xv_found = 0;
+ #ifdef HAVE_XV
+-  int i, j;
++  int i, j, k;
+   int result;
+ 
+   xv_port = 0; /* We have no port yet. */
+-  
++
+   /* Check for the Xvideo extension */
+-  result = XvQueryExtension(mydisplay, &xv_version, &xv_release, 
+-			    &xv_request_base, &xv_event_base, 
++  result = XvQueryExtension(mydisplay, &xv_version, &xv_release,
++			    &xv_request_base, &xv_event_base,
+ 			    &xv_error_base);
+   if(result != Success) {
+     WARNING("%s", "Xvideo extension not found\n");
+     use_xv = 0;
+     return;
+   }
+-  
++
+   NOTE("Found Xv extension %d.%d, checking for suitable adaptors\n",
+        xv_version, xv_release);
+-  
++
+   /* Check for available adaptors */
+-  result = XvQueryAdaptors(mydisplay, DefaultRootWindow (mydisplay), 
++  result = XvQueryAdaptors(mydisplay, DefaultRootWindow (mydisplay),
+ 			   &xv_num_adaptors, &xv_adaptor_info);
+   if(result != Success) {
+     WARNING("%s", "No Xv adaptors found\n");
+     use_xv = 0;
+     return;
+   }
+-      
++
+   /* Check adaptors */
+   for(i = 0; i < xv_num_adaptors; i++) {
+-    
++
+     /* Is it usable for displaying XvImages */
+     if(!(xv_adaptor_info[i].type & XvInputMask) ||
+        !(xv_adaptor_info[i].type & XvImageMask))
+       continue;
+-    
+-    xv_port = xv_adaptor_info[i].base_id;
+-      
+-    /* Check image formats of adaptor */
+-    xv_formats = XvListImageFormats(mydisplay, xv_port, &xv_num_formats);
+-    for(j = 0; j < xv_num_formats; j++) {
+-      if(xv_formats[j].id == 0x32315659) { /* YV12 */
+-	//if(xv_formats[j].id == 0x30323449) { /* I420 */
+-	xv_id = xv_formats[j].id;
+-	break;
+-      } 
+-    }
+-    /* No matching format found */
+-    if(j == xv_num_formats)
+-      continue;
+-      
+-    NOTE("Xv adaptor \"%s\" port %li image format %i\n",
+-	 xv_adaptor_info[i].name, xv_port, xv_id);
+-      
+-    /* Allocate XvImages */
++
++		/* Check Available Ports */
++		for (j = 0; j <  xv_adaptor_info[i].num_ports && !xv_port ; j++) {
++			
++			/* Check Image formats of adaptor */
++			xv_formats = XvListImageFormats(mydisplay,xv_adaptor_info[i].base_id + j, &xv_num_formats); 
++			for (k = 0; k < xv_num_formats; k ++) {
++				
++				/* Check for proper format (YV12) and see if we can grab the port */			
++				if ( (xv_formats[k].id == 0x32315659) && (XvGrabPort(mydisplay,xv_adaptor_info[i].base_id + j,0) == Success) ) { 
++					xv_id = xv_formats[k].id;
++					xv_port = xv_adaptor_info[i].base_id +  j;
++					break;
++					}
++				
++				}
++
++			/* delete stuff nicely */
++			XFree(xv_formats);	
++			}
++		
++		/* Check next Adapter */
++		if (xv_port==0) continue;		
++				
++		/* Report what we found */							
++    NOTE("Xv adaptor \"%s\" port %li image format %i\n", xv_adaptor_info[i].name, xv_port, xv_id);
++			
++		/* Allocate XvImage */
+     xv_image = XvShmCreateImage(mydisplay, xv_port, xv_id, NULL,
+ 				padded_width,
+-				padded_height, 
++				padded_height,
+ 				&shm_info);
+-    
+-    /* Got an Image? */
++
++    /* Got an milk? */
+     if(xv_image == NULL)
+       continue;
+-    
++		
+     /* Test and see if we really got padded_width x padded_height */
+     if(xv_image->width != padded_width ||
+        xv_image->height != padded_height) {
+       FATAL("XvShmCreateImage got size: %d x %d\n",
+ 	    xv_image->width, xv_image->height);
+       exit(1);
+-    }
+-    
++    	}
++		
++		/* Now Finish Up */
+     shm_info.shmid = picture_buffer_shmid;
+     shm_info.shmaddr = picture_buffer_addr;
+-    
+-    /* Set the data pointer to the decoders picture segment. */  
++
++    /* Set the data pointer to the decoders picture segment. */
+     //    xv_image->data = picture_data->y;
+     shm_info.readOnly = True;
+-    
++
+     /* make sure we don't have any unhandled errors */
+     XSync(mydisplay, False);
+-    
++
+     /* set error handler so we can check if xshmattach failed */
+     prev_xerrhandler = XSetErrorHandler(xshm_errorhandler);
+-    
++
+     /* get the serial of the xshmattach request */
+     req_serial = NextRequest(mydisplay);
+-    
++
+     /* try to attach */
+     XShmAttach(mydisplay, &shm_info);
+-    
++
+     /* make sure xshmattach has been processed and any errors
+        have been returned to us */
+     XSync(mydisplay, False);
+-    
++
+     /* revert to the previous xerrorhandler */
+     XSetErrorHandler(prev_xerrhandler);
+-    
++
+     if(use_xshm) {
+ #if 0
+       shmctl(shm_info.shmid, IPC_RMID, 0); // only works on Linux..
+ #endif
+-      
++
+       CompletionType = XShmGetEventBase(mydisplay) + ShmCompletion;
+     }
+     xv_found = 1;
+ 
+     /* All set up! */
+     break;
+-  }
++		}
++	
++	/* Clean up */
++	XvFreeAdaptorInfo(xv_adaptor_info);
++
+ #endif /* HAVE_XV */
++	/* In case we didn't find a working Xv */ 
+   if(!xv_found) {
+     use_xv = 0;
+-  }
+-}
+-     
++	  }
++	
++	}
++
+ 
+ /* This section of the code tries to use the MIT XShm extension for 
+  * accellerated transfers to to X. XShm extension is need and only
+@@ -1726,6 +1742,8 @@
+ 
+   if(mydisplay) {
+     XSync(mydisplay,True);
++    if (use_xv) 
++      XvUngrabPort(mydisplay,xv_port,CurrentTime);
+     if(use_xshm)
+       XShmDetach(mydisplay, &shm_info);
+     if(window.ximage != 0)




More information about the arch-commits mailing list