diff options
author | Patrick Kursawe <phosphan@gentoo.org> | 2004-05-19 06:34:24 +0000 |
---|---|---|
committer | Patrick Kursawe <phosphan@gentoo.org> | 2004-05-19 06:34:24 +0000 |
commit | 225cfee389ac007b6ec80d1f07b08d407eeee9be (patch) | |
tree | 3891e3db13e9f749affe0b45cbe9312b1623b8e0 /media-video | |
parent | Fixed invalid symbolic link with fresh install. Thanks to ikezoe <ikezoe@user... (diff) | |
download | gentoo-2-225cfee389ac007b6ec80d1f07b08d407eeee9be.tar.gz gentoo-2-225cfee389ac007b6ec80d1f07b08d407eeee9be.tar.bz2 gentoo-2-225cfee389ac007b6ec80d1f07b08d407eeee9be.zip |
Fixing #40616
Diffstat (limited to 'media-video')
-rw-r--r-- | media-video/mplayer/ChangeLog | 8 | ||||
-rw-r--r-- | media-video/mplayer/Manifest | 45 | ||||
-rw-r--r-- | media-video/mplayer/files/digest-mplayer-1.0_pre4-r2 | 5 | ||||
-rw-r--r-- | media-video/mplayer/files/mga-kernel-2.6.patch | 588 | ||||
-rw-r--r-- | media-video/mplayer/mplayer-1.0_pre4-r2.ebuild | 408 |
5 files changed, 1032 insertions, 22 deletions
diff --git a/media-video/mplayer/ChangeLog b/media-video/mplayer/ChangeLog index a1b9bd6606f9..f75280717dfe 100644 --- a/media-video/mplayer/ChangeLog +++ b/media-video/mplayer/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for media-video/mplayer # Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer/ChangeLog,v 1.131 2004/05/12 13:51:58 pappy Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer/ChangeLog,v 1.132 2004/05/19 06:34:23 phosphan Exp $ + +*mplayer-1.0_pre4-r2 (19 May 2004) + + 19 May 2004; Patrick Kursawe <phosphan@gentoo.org> + mplayer-1.0_pre4-r2.ebuild, files/mga-kernel-2.6.patch: + Fixing bug #40616 (mga driver), little cleanups for the patch section. 12 May 2004; Alexander Gabert <pappy@gentoo.org> mplayer-1.0_pre3-r5.ebuild, mplayer-1.0_pre4-r1.ebuild, mplayer-1.0_pre4.ebuild: diff --git a/media-video/mplayer/Manifest b/media-video/mplayer/Manifest index 32a99d227755..696b961a951b 100644 --- a/media-video/mplayer/Manifest +++ b/media-video/mplayer/Manifest @@ -1,32 +1,35 @@ -MD5 bfd5ab2b005c43435b581374f68022a6 ChangeLog 22647 -MD5 9ef4af14dad87b03fde8e43f19e08d26 metadata.xml 225 -MD5 06a993cb89fac55613aad364670c41fb mplayer-0.92-r1.ebuild 11570 -MD5 f98bc5b521254207cb231a9eb853f522 mplayer-1.0_pre2-r1.ebuild 11435 -MD5 95426d21a3f8920fc3b0d94ade8ad0bd mplayer-1.0_pre3-r3.ebuild 11549 MD5 633cbda54fcb59b371bbfb86f475bd84 mplayer-1.0_pre3-r4.ebuild 11851 +MD5 00c7c3b93985919e65ea36ea90e7828f mplayer-1.0_pre4.ebuild 11094 +MD5 95426d21a3f8920fc3b0d94ade8ad0bd mplayer-1.0_pre3-r3.ebuild 11549 +MD5 f98bc5b521254207cb231a9eb853f522 mplayer-1.0_pre2-r1.ebuild 11435 +MD5 852c148987082cfd1577d44ca4989576 mplayer-1.0_pre4-r2.ebuild 11446 MD5 1a08c3bbc9cc90150bcf0228848ec76f mplayer-1.0_pre3-r5.ebuild 11525 +MD5 06a993cb89fac55613aad364670c41fb mplayer-0.92-r1.ebuild 11570 +MD5 aa54e4c73e98234b635993eb7beb7a89 ChangeLog 22868 +MD5 9ef4af14dad87b03fde8e43f19e08d26 metadata.xml 225 MD5 fc9edd731f660a6633ad81b8ae1127e2 mplayer-1.0_pre4-r1.ebuild 11026 -MD5 00c7c3b93985919e65ea36ea90e7828f mplayer-1.0_pre4.ebuild 11094 -MD5 6c2dab3392aab51766253b416ad2a10c files/default-skin.diff 396 MD5 deb1dbbf5879ed31e1b83fb7def5b600 files/digest-mplayer-0.92-r1 355 -MD5 b0205104d1242fcccdb5dfd2188f5ab2 files/digest-mplayer-1.0_pre2-r1 358 -MD5 d74f7136fa5b4fa7d9ef13f8193dfe7c files/digest-mplayer-1.0_pre3-r3 358 -MD5 d74f7136fa5b4fa7d9ef13f8193dfe7c files/digest-mplayer-1.0_pre3-r4 358 -MD5 d74f7136fa5b4fa7d9ef13f8193dfe7c files/digest-mplayer-1.0_pre3-r5 358 +MD5 059e03d1d2c965b04a5e53ed850de64a files/mplayer-0.90_rc4-gtk2.patch 6183 +MD5 98c7d58f544829621b15427ad53b98e4 files/mga-kernel-2.6.patch 16767 +MD5 e2fc2cbbc8ebf183dcb599b66c999331 files/ppc750FX-fix.patch 515 MD5 260489267a0ccf01fe300bce0ec1430d files/mencoder-segfault.patch 520 +MD5 6c2dab3392aab51766253b416ad2a10c files/default-skin.diff 396 MD5 a71fc9832d953424652af1125fb7ea64 files/mplayer-0.90-coreutils-fixup.patch 1857 -MD5 8f18911adcd661e70ad0cd84a94d49ac files/mplayer-0.90-divx.patch 25064 -MD5 26a52f084f4d177580ed9ea0187f54e7 files/mplayer-0.90-ppc-benh-2.patch 2049 -MD5 059e03d1d2c965b04a5e53ed850de64a files/mplayer-0.90_rc4-gtk2.patch 6183 +MD5 a9fa1b94e4e3842e2c5e552644b03eaa files/mplayer-1.0_pre3-alsa-gcc34.patch 299 +MD5 fef9f0571da54ae3df2e804100bd2632 files/vuln01-fix.diff 1231 +MD5 c2d65649f15837c5a326557ded4e47c5 files/mplayer.desktop 119 +MD5 8b8084aa31b466c55d15bd06bb77086d files/mplayer-1.0_pre3-xmms.patch 411 +MD5 dc67207241f6a950a4d529557ebd4053 files/digest-mplayer-1.0_pre4 358 MD5 c54c7ba8e18c8e7f3412c6d6939d010a files/mplayer-1.0-gtk2.patch 5903 +MD5 26a52f084f4d177580ed9ea0187f54e7 files/mplayer-0.90-ppc-benh-2.patch 2049 MD5 fa86dd9d6980ff064efcc9d9f919905e files/mplayer-1.0_pre3-libmatroska063.diff 810 -MD5 8b8084aa31b466c55d15bd06bb77086d files/mplayer-1.0_pre3-xmms.patch 411 -MD5 c2d65649f15837c5a326557ded4e47c5 files/mplayer.desktop 119 -MD5 e2fc2cbbc8ebf183dcb599b66c999331 files/ppc750FX-fix.patch 515 -MD5 fef9f0571da54ae3df2e804100bd2632 files/vuln01-fix.diff 1231 MD5 34f948b8f242a2aadb53a1e2b00e3155 files/vuln02-fix.diff 467 -MD5 dc67207241f6a950a4d529557ebd4053 files/digest-mplayer-1.0_pre4 358 +MD5 b0205104d1242fcccdb5dfd2188f5ab2 files/digest-mplayer-1.0_pre2-r1 358 +MD5 d74f7136fa5b4fa7d9ef13f8193dfe7c files/digest-mplayer-1.0_pre3-r3 358 +MD5 d74f7136fa5b4fa7d9ef13f8193dfe7c files/digest-mplayer-1.0_pre3-r4 358 +MD5 d74f7136fa5b4fa7d9ef13f8193dfe7c files/digest-mplayer-1.0_pre3-r5 358 MD5 dc67207241f6a950a4d529557ebd4053 files/digest-mplayer-1.0_pre4-r1 358 -MD5 a9fa1b94e4e3842e2c5e552644b03eaa files/mplayer-1.0_pre3-alsa-gcc34.patch 299 -MD5 f998f1cad3da27cac3aea1982dc5c747 files/mplayer-1.0_pre3-libavcodec-gcc34.patch 5010 +MD5 dc67207241f6a950a4d529557ebd4053 files/digest-mplayer-1.0_pre4-r2 358 MD5 a9fa1b94e4e3842e2c5e552644b03eaa files/mplayer-1.0_pre4-alsa-gcc34.patch 299 +MD5 f998f1cad3da27cac3aea1982dc5c747 files/mplayer-1.0_pre3-libavcodec-gcc34.patch 5010 +MD5 8f18911adcd661e70ad0cd84a94d49ac files/mplayer-0.90-divx.patch 25064 diff --git a/media-video/mplayer/files/digest-mplayer-1.0_pre4-r2 b/media-video/mplayer/files/digest-mplayer-1.0_pre4-r2 new file mode 100644 index 000000000000..7d0a61f16837 --- /dev/null +++ b/media-video/mplayer/files/digest-mplayer-1.0_pre4-r2 @@ -0,0 +1,5 @@ +MD5 83ebac0f05b192516a41fca2350ca01a MPlayer-1.0pre4.tar.bz2 4913390 +MD5 1ecd31d17b51f16332b1fcc7da36b312 font-arial-iso-8859-1.tar.bz2 234242 +MD5 7b47904a925cf58ea546ca15f3df160c font-arial-iso-8859-2.tar.bz2 222208 +MD5 3f1b9eb2ba639bf42c61f7b9189f6524 svgalib_helper-1.9.17-mplayer.tar.bz2 7234 +MD5 64e2d18438bbef16822c141d846884f6 Blue-1.0.tar.bz2 219130 diff --git a/media-video/mplayer/files/mga-kernel-2.6.patch b/media-video/mplayer/files/mga-kernel-2.6.patch new file mode 100644 index 000000000000..fb55ae81c0b4 --- /dev/null +++ b/media-video/mplayer/files/mga-kernel-2.6.patch @@ -0,0 +1,588 @@ +diff -rua ./Makefile ../mga-work/Makefile +--- drivers/Makefile 2003-10-18 17:04:28.000000000 +0200 ++++ drivers/Makefile.new 2003-12-11 19:38:46.000000000 +0100 +@@ -1,16 +1,30 @@ +- +-KERNEL_INCLUDES = /usr/src/linux/include +-INCLUDES = -I$(KERNEL_INCLUDES) +-CFLAGS = -O2 -D__KERNEL__ -DMODULE -include $(KERNEL_INCLUDES)/linux/modversions.h -Wall ++KERNEL_DIR=/lib/modules/KERNEL_VERSION_HERE/build ++KERNEL_INCLUDES= $(KERNEL_DIR)/include ++INCLUDES = -I$(KERNEL_INCLUDES) -I$(KERNEL_INCLUDES)/asm + VERSION = $(shell grep UTS_RELEASE $(KERNEL_INCLUDES)/linux/version.h | cut -d '"' -f2) + MDIR = /lib/modules/$(VERSION)/misc + +-all: mga_vid.o mga_vid_test ++ifneq (,$(findstring 2.6, $(VERSION))) ++obj-m += mga_vid.o ++CFLAGS = -O2 -D__KERNEL__ -DMODULE -include $(KERNEL_INCLUDES)/config/modversions.h -Wall ++else ++CFLAGS = -O2 -D__KERNEL__ -DMODULE -include $(KERNEL_INCLUDES)/linux/modversions.h -Wall ++endif ++ ++all: ++ifneq (,$(findstring 2.6, $(VERSION))) ++ $(MAKE) mga_vid.ko mga_vid_test ++else ++ $(MAKE) mga_vid.o mga_vid_test ++endif + # sis_vid.o + + mga_vid.o: mga_vid.c mga_vid.h + $(CC) $(CFLAGS) $(INCLUDES) -c $(basename $@).c + ++mga_vid.ko: mga_vid.c mga_vid.h ++ $(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules ++ + sis_vid.o: sis_vid.c sis_vid.h + $(CC) $(CFLAGS) $(INCLUDES) -c $(basename $@).c + +@@ -25,13 +39,21 @@ + + install: mga_vid.o + if test ! -d $(MDIR) ; then mkdir -p $(MDIR) ; fi ++ifneq (,$(findstring 2.6, $(VERSION))) ++ install -m 644 mga_vid.ko $(MDIR)/mga_vid.ko ++else + install -m 644 mga_vid.o $(MDIR)/mga_vid.o ++endif + depmod -a + + dep: + + clean: + rm -f *.o *~ ++ifneq (,$(findstring 2.6, $(VERSION))) ++ rm -f *.ko .mga* mga_vid.mod.c ++endif + + distclean: clean + rm -f mga_vid_test ++ +--- drivers/mga_vid.c 2003-10-04 19:28:54.000000000 +0200 ++++ drivers/mga_vid.c.new 2004-05-11 15:38:17.377090978 +0200 +@@ -1,9 +1,14 @@ ++#define MODULENAME "mga_vid" ++ + //#define CRTC2 + + // YUY2 support (see config.format) added by A'rpi/ESP-team + // double buffering added by A'rpi/ESP-team + // brightness/contrast introduced by eyck + // multiple card support by Attila Kinali <attila@kinali.ch> ++// ported to the 2.6 series kernels by F.O. Tempel ++// thankfully using the ground work done by Ed Sweetman (for the devfs work) ++// and Gergely Nagy for pushing into the right direction with his patch for 2.6.0-test1 + + // Set this value, if autodetection fails! (video ram size in megabytes) + // #define MGA_MEMORY_SIZE 16 +@@ -36,6 +41,12 @@ + #include <linux/config.h> + #include <linux/version.h> + #include <linux/module.h> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++#include <linux/moduleparam.h> ++#include <linux/kobject.h> ++#include <linux/kobj_map.h> ++#include <linux/cdev.h> ++#endif + #include <linux/types.h> + #include <linux/kernel.h> + #include <linux/sched.h> +@@ -43,6 +54,10 @@ + #include <linux/string.h> + #include <linux/errno.h> + ++#ifdef MGA_ALLOW_IRQ ++#include <asm/mach-default/irq_vectors.h> ++#include <linux/interrupt.h> ++#endif + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,10) + #include <linux/malloc.h> + #else +@@ -117,7 +132,8 @@ + #ifndef min + #define min(x,y) (((x)<(y))?(x):(y)) + #endif +- ++// These functions are provided by the 2.6.0 kernel these days. ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0) + #include <linux/ctype.h> + +@@ -155,7 +171,7 @@ + return simple_strtoul(cp,endp,base); + } + #endif +- ++#endif // 2.6.0 + + typedef struct bes_registers_s + { +@@ -348,17 +364,30 @@ + #define ICLEAR 0x1e18 + #define STATUS 0x1e14 + +- +-// global devfs handle for /dev/mga_vid ++/* Global handles for cdev and devfs */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++static struct cdev *mga_vid_cdev; ++static dev_t mga_cdev_handle; ++#ifdef CONFIG_DEVFS_FS ++typedef struct devfs_entry *devfs_handle_t; ++devfs_handle_t dev_handle = NULL; ++#endif ++#else + #ifdef CONFIG_DEVFS_FS +-static devfs_handle_t dev_handle = NULL; ++ devfs_handle_t dev_handle = NULL; ++#endif + #endif + + // card local config + typedef struct mga_card_s { + + // local devfs handle for /dev/mga_vidX ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) + #ifdef CONFIG_DEVFS_FS ++ struct devfs_entry *devfs_handle_t; ++#endif ++#endif ++#if CONFIG_DEVFS_FS + devfs_handle_t dev_handle; + #endif + +@@ -397,6 +426,7 @@ + int next_frame; + } mga_card_t; + ++ + #define MGA_MAX_CARDS 16 + // this is used as init value for the parameter arrays + // it should have exactly MGA_MAX_CARDS elements +@@ -411,11 +441,19 @@ + static int mga_contrast[MGA_MAX_CARDS] = MGA_MAX_CARDS_INIT_ARRAY; + static int mga_top_reserved[MGA_MAX_CARDS] = MGA_MAX_CARDS_INIT_ARRAY; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++module_param(mga_ram_size, int, 0); ++module_param(mga_top_reserved, int, 0); ++module_param(mga_brightness, int, 0); ++module_param(mga_contrast, int, 0); ++module_param(major, int, 0); ++#else + MODULE_PARM(mga_ram_size, "1-" __MODULE_STRING(MGA_MAX_CARDS) "i"); + MODULE_PARM(mga_top_reserved, "1-" __MODULE_STRING(MGA_MAX_CARDS) "i"); + MODULE_PARM(mga_brightness, "1-" __MODULE_STRING(MGA_MAX_CARDS) "i"); + MODULE_PARM(mga_contrast, "1-" __MODULE_STRING(MGA_MAX_CARDS) "i"); + MODULE_PARM(major, "i"); ++#endif + + #ifdef CRTC2 + static void crtc2_frame_sel(mga_card_t * card, int frame) +@@ -642,7 +680,7 @@ + writel( card->regs.besglobctl + ((readl(card->mmio_base + VCOUNT)+2)<<16), + card->mmio_base + BESGLOBCTL); + +-#if 0 ++#ifdef MP_DEBUG + printk(KERN_DEBUG "mga_vid: wrote BES registers\n"); + printk(KERN_DEBUG "mga_vid: BESCTL = 0x%08x\n", + readl(card->mmio_base + BESCTL)); +@@ -651,6 +689,7 @@ + printk(KERN_DEBUG "mga_vid: BESSTATUS= 0x%08x\n", + readl(card->mmio_base + BESSTATUS)); + #endif ++ + #ifdef CRTC2 + // printk("c2ctl:0x%08x c2datactl:0x%08x\n", readl(card->mmio_base + C2CTL), readl(card->mmio_base + C2DATACTL)); + // printk("c2misc:0x%08x\n", readl(card->mmio_base + C2MISC)); +@@ -1100,7 +1139,7 @@ + + #ifdef MGA_ALLOW_IRQ + +-static void enable_irq(mga_card_t * card){ ++static void mga_enable_irq(mga_card_t * card){ + long int cc; + + cc = readl(card->mmio_base + IEN); +@@ -1116,16 +1155,18 @@ + + } + +-static void disable_irq(mga_card_t * card){ ++static void mga_disable_irq(mga_card_t * card){ + + writeb(0x11, card->mmio_base + CRTCX); + writeb(0x20, card->mmio_base + CRTCD); /* clear 0, enable off */ + + } + +-static void mga_handle_irq(int irq, void *dev_id, struct pt_regs *pregs) { ++static int mga_handle_irq(int irq, void *dev_id, struct pt_regs *pregs) { + // static int frame=0; +-// static int counter=0; ++#ifdef MP_DEBUG ++ static int counter=0; ++#endif + long int cc; + mga_card_t * card = dev_id; + +@@ -1136,7 +1177,7 @@ + // check whether the interrupt is really for us (irq sharing) + if ( irq != -1 ) { + cc = readl(card->mmio_base + STATUS); +- if ( ! (cc & 0x10) ) return; /* vsyncpen */ ++ if ( ! (cc & 0x10) ) return 0; /* vsyncpen */ + // debug_irqcnt++; + } + +@@ -1152,15 +1193,15 @@ + // i han echt kei ahnig was das obe heisse söll + crtc2_frame_sel(card->next_frame); + #endif +- +-#if 0 ++ ++#ifdef MP_DEBUG + ++counter; + if(!(counter&63)){ + printk("mga irq counter = %d\n",counter); + } + #endif + +-// } else { ++ // } else { + // debug_irqignore = 1; + // } + +@@ -1173,7 +1214,7 @@ + // writel( card->regs.besglobctl, card->mmio_base + BESGLOBCTL); + + +- return; ++ return 0; + + } + +@@ -1257,7 +1298,7 @@ + mga_vid_write_regs(card, 0); + } + #ifdef MGA_ALLOW_IRQ +- if ( card->irq != -1 ) enable_irq(card); ++ if ( card->irq != -1 ) mga_enable_irq(card); + #endif + card->next_frame=0; + break; +@@ -1268,7 +1309,7 @@ + #endif + card->vid_src_ready = 0; + #ifdef MGA_ALLOW_IRQ +- if ( card->irq != -1 ) disable_irq(card); ++ if (card->irq != -1 ) mga_disable_irq(card); + #endif + card->regs.besctl &= ~1; + card->regs.besglobctl &= ~(1<<6); // UYVY format selected +@@ -1317,6 +1358,11 @@ + static void cards_init(mga_card_t * card, struct pci_dev * dev, int card_number, int is_g400); + + // returns the number of found cards ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++#define PCI_DEV_NAME(d) (d)->name ++#else ++#define PCI_DEV_NAME(d) pci_name((d)) ++#endif + static int mga_vid_find_card(void) + { + struct pci_dev *dev = NULL; +@@ -1347,27 +1393,27 @@ + switch(dev->device) { + case PCI_DEVICE_ID_MATROX_G550: + mga_dev_name = "MGA G550"; +- printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); ++ printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, PCI_DEV_NAME(dev)); + cards_init(card, dev, mga_cards_num - 1, 1); + break; + case PCI_DEVICE_ID_MATROX_G400: + mga_dev_name = "MGA G400/G450"; +- printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); ++ printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, PCI_DEV_NAME(dev)); + cards_init(card, dev, mga_cards_num - 1, 1); + break; + case PCI_DEVICE_ID_MATROX_G200_AGP: + mga_dev_name = "MGA G200 AGP"; +- printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); ++ printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, PCI_DEV_NAME(dev)); + cards_init(card, dev, mga_cards_num - 1, 0); + break; + case PCI_DEVICE_ID_MATROX_G200_PCI: + mga_dev_name = "MGA G200"; +- printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); ++ printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, PCI_DEV_NAME(dev)); + cards_init(card, dev, mga_cards_num - 1, 0); + break; + default: + mga_cards_num--; +- printk(KERN_INFO "mga_vid: ignoring matrox device (%d) at %s [%s]\n", dev->device, dev->slot_name, dev->name); ++ printk(KERN_INFO "mga_vid: ignoring matrox device (%d) at %s [%s]\n", dev->device, dev->slot_name, PCI_DEV_NAME(dev)); + break; + } + } +@@ -1473,7 +1519,7 @@ + return(-EAGAIN); + } + +- return(0); ++ return 0; + } + + static int mga_vid_release(struct inode *inode, struct file *file) +@@ -1493,8 +1539,9 @@ + // card->config.colkey_on=0; //!!! + mga_vid_write_regs(card, 1); + card->vid_in_use = 0; +- ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + MOD_DEC_USE_COUNT; ++#endif + return 0; + } + +@@ -1508,7 +1555,11 @@ + mga_card_t * card; + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,2) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++ int minor = iminor(inode); ++#else + int minor = MINOR(inode->i_rdev.value); ++#endif + #else + int minor = MINOR(inode->i_rdev); + #endif +@@ -1539,8 +1590,10 @@ + return(-EBUSY); + + card->vid_in_use = 1; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + MOD_INC_USE_COUNT; +- return(0); ++#endif ++ return 0; + } + + #if LINUX_VERSION_CODE >= 0x020400 +@@ -1573,10 +1626,6 @@ + static void cards_init(mga_card_t * card, struct pci_dev * dev, int card_number, int is_g400) + { + unsigned int card_option; +-// temp buffer for device filename creation used only by devfs +-#ifdef CONFIG_DEVFS_FS +- char buffer[16]; +-#endif + + memset(card,0,sizeof(mga_card_t)); + card->irq = -1; +@@ -1647,10 +1696,11 @@ + // case 0x13: card->ram_size = 8; break; + default: card->ram_size = 8; + } +- } ++} ++ + #if 0 + // printk("List resources -----------\n"); +- for(temp=0;temp<DEVICE_COUNT_RESOURCE;temp++){ ++ for(int temp=0;temp<DEVICE_COUNT_RESOURCE;temp++){ + struct resource *res=&dev->resource[temp]; + if(res->flags){ + int size=(1+res->end-res->start)>>20; +@@ -1665,7 +1715,6 @@ + #endif + } + +- + #ifdef MGA_ALLOW_IRQ + if ( card->irq != -1 ) { + int tmp = request_irq(card->irq, mga_handle_irq, SA_INTERRUPT | SA_SHIRQ, "Syncfb Time Base", card); +@@ -1683,16 +1732,15 @@ + printk(KERN_INFO "syncfb (mga): IRQ disabled in mga_vid.c\n"); + card->irq=-1; + #endif +- +- // register devfs, let the kernel give us major and minor numbers +-#ifdef CONFIG_DEVFS_FS +- snprintf(buffer, 16, "mga_vid%d", card_number); ++// register devfs, let the kernel give us major and minor numbers ++#if CONFIG_DEVFS_FS && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++ char buffer[16]; ++ snprintf(buffer, 16, "%s%d", MODULENAME, card_number); + card->dev_handle = devfs_register(NULL, buffer, DEVFS_FL_AUTO_DEVNUM, + 0, 0, + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IFCHR, + &mga_vid_fops, card); + #endif +- + } + + /* +@@ -1701,71 +1749,101 @@ + + static int mga_vid_initialize(void) + { +- int i; +- +-// printk(KERN_INFO "Matrox MGA G200/G400 YUV Video interface v0.01 (c) Aaron Holtzman \n"); ++ int i; + printk(KERN_INFO "Matrox MGA G200/G400/G450/G550 YUV Video interface v2.01 (c) Aaron Holtzman & A'rpi\n"); +- +- for(i = 0; i < MGA_MAX_CARDS; i++) ++ ++ if(mga_vid_find_card()) + { +- if (mga_ram_size[i]) { +- if (mga_ram_size[i]<4 || mga_ram_size[i]>64) { +- printk(KERN_ERR "mga_vid: invalid RAMSIZE: %d MB\n", mga_ram_size[i]); +- return -EINVAL; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++ if(register_chrdev(major, MODULENAME, &mga_vid_fops)) ++ { ++ printk(KERN_ERR "mga_vid: unable to get major: %d\n", major); ++ return -EIO; ++ } ++ /* Have the kernel generate a major device number */ ++ //if(!alloc_chrdev_region(&mga_cdev_handle, 0, mga_cards_num, "mga_vid")) ++ // major = MAJOR(mga_cdev_handle); ++ printk(KERN_INFO "mga_vid: using major: %d\n", major); ++ /* Allocate a cdev for this character device, and fill in some parameters it needs */ ++ mga_vid_cdev = cdev_alloc(); ++ mga_vid_cdev->owner = THIS_MODULE; ++ strcpy(mga_vid_cdev->kobj.name, MODULENAME); ++ mga_vid_cdev->ops = &mga_vid_fops; ++ /* Add this character device to the system */ ++ cdev_add(mga_vid_cdev, mga_cdev_handle, mga_cards_num); ++#endif ++ for(i = 0; i < mga_cards_num; i++) ++ { ++#if CONFIG_DEVFS_FS && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++ /* Create the device, and register a symlink for the first card found. ++ * Lets not break default behaviour, eh? */ ++ devfs_mk_cdev(MKDEV(major,i), S_IFCHR | S_IRUSR | S_IRGRP | S_IWUSR, "video/mga_vid%d", i); ++ if( i == 0 ) { ++ devfs_mk_symlink(MODULENAME,"video/mga_vid0"); ++ } ++#endif ++ if (mga_ram_size[i]) { ++ if (mga_ram_size[i]<4 || mga_ram_size[i]>64) { ++ printk(KERN_ERR "mga_vid: invalid RAMSIZE: %d MB\n", mga_ram_size[i]); ++ return -EINVAL; ++ } + } + } +- } + +- if(register_chrdev(major, "mga_vid", &mga_vid_fops)) +- { +- printk(KERN_ERR "mga_vid: unable to get major: %d\n", major); +- return -EIO; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++ if(register_chrdev(major, MODULENAME, &mga_vid_fops)) ++ { ++ printk(KERN_ERR "mga_vid: unable to get major: %d\n", major); ++ return -EIO; ++ } ++#endif ++ return 0; + } +- +- if (!mga_vid_find_card()) ++ else + { +- printk(KERN_ERR "mga_vid: no supported devices found\n"); +- unregister_chrdev(major, "mga_vid"); +- return -EINVAL; ++ return -EFAULT; + } +-#ifdef CONFIG_DEVFS_FS +- else { +- // we assume that this always succeedes +- dev_handle = devfs_register(NULL, "mga_vid", DEVFS_FL_AUTO_DEVNUM, +- 0,0, +- S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IFCHR, +- &mga_vid_fops, mga_cards[0]); +- } +-#endif +- +- return(0); + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++module_init(mga_vid_initialize); ++#else + int init_module(void) + { + return mga_vid_initialize(); + } ++#endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++static void mga_cleanup_module(void) ++#else + void cleanup_module(void) ++#endif + { + int i; + mga_card_t * card; + ++ printk(KERN_INFO "mga_vid: Cleaning up module\n"); + for (i = 0; i < MGA_MAX_CARDS; i++) + { + card = mga_cards[i]; + if(card) + { + #ifdef MGA_ALLOW_IRQ +- if (card->irq != -1) +- free_irq(card->irq, &(card->irq)); ++ if ( card->irq != -1) ++// free_irq(card->irq, &(card->irq)); ++ free_irq(card->irq, card); + #endif + + if(card->mmio_base) + iounmap(card->mmio_base); + if(card->param_buff) + kfree(card->param_buff); +-#ifdef CONFIG_DEVFS_FS ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++#ifdef CONFIG_DEVFS_FS ++ devfs_remove("video/%s%d",MODULENAME, i); ++#endif ++#else + if(card->dev_handle) devfs_unregister(card->dev_handle); + #endif + +@@ -1775,9 +1853,20 @@ + } + + //FIXME turn off BES +- printk(KERN_INFO "mga_vid: Cleaning up module\n"); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + #ifdef CONFIG_DEVFS_FS +- if(dev_handle) devfs_unregister(dev_handle); ++ devfs_unregister(dev_handle); ++#endif ++ unregister_chrdev(major, MODULENAME); ++#else ++#ifdef CONFIG_DEVFS_FS ++ devfs_remove(MODULENAME); ++#endif ++ cdev_del(mga_vid_cdev); ++ unregister_chrdev_region(mga_cdev_handle, mga_cards_num); + #endif +- unregister_chrdev(major, "mga_vid"); + } ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++module_exit(mga_cleanup_module); ++#endif diff --git a/media-video/mplayer/mplayer-1.0_pre4-r2.ebuild b/media-video/mplayer/mplayer-1.0_pre4-r2.ebuild new file mode 100644 index 000000000000..f83caf01c183 --- /dev/null +++ b/media-video/mplayer/mplayer-1.0_pre4-r2.ebuild @@ -0,0 +1,408 @@ +# Copyright 1999-2004 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer/mplayer-1.0_pre4-r2.ebuild,v 1.1 2004/05/19 06:34:24 phosphan Exp $ + +IUSE="dga oss xmms jpeg 3dfx sse matrox sdl X svga ggi oggvorbis 3dnow aalib gnome xv opengl truetype dvd gtk gif esd fbcon encode alsa directfb arts dvb samba lirc matroska debug joystick theora ipv6 v4l v4l2 live" + +inherit eutils flag-o-matic check-kernel + +# NOTE to myself: Test this thing with and without dvd/gtk+ support, +# as it seems the mplayer guys dont really care to +# make it work without dvd support. + +# Handle PREversions as well +MY_PV="${PV/_/}" +S="${WORKDIR}/MPlayer-${MY_PV}" +SRC_URI="mirror://mplayer/releases/MPlayer-${MY_PV}.tar.bz2 + mirror://mplayer/releases/fonts/font-arial-iso-8859-1.tar.bz2 + mirror://mplayer/releases/fonts/font-arial-iso-8859-2.tar.bz2 + svga? ( http://mplayerhq.hu/~alex/svgalib_helper-1.9.17-mplayer.tar.bz2 ) + gtk? ( mirror://mplayer/Skin/Blue-1.0.tar.bz2 )" +# Only install Skin if GUI should be build (gtk as USE flag) +DESCRIPTION="Media Player for Linux" +HOMEPAGE="http://www.mplayerhq.hu/" + +# 'encode' in USE for MEncoder. +RDEPEND="ppc? ( >=media-libs/xvid-0.9.0 ) + amd64? ( >=media-libs/xvid-0.9.0 ) + x86? ( >=media-libs/xvid-0.9.0 + >=media-libs/divx4linux-20030428 + >=media-libs/win32codecs-0.60 ) + gtk? ( media-libs/libpng + virtual/x11 + =x11-libs/gtk+-1.2* + =dev-libs/glib-1.2* ) + jpeg? ( media-libs/jpeg ) + gif? ( media-libs/giflib + media-libs/libungif ) + truetype? ( >=media-libs/freetype-2.1 ) + esd? ( media-sound/esound ) + ggi? ( media-libs/libggi ) + sdl? ( media-libs/libsdl ) + alsa? ( media-libs/alsa-lib ) + arts? ( kde-base/arts ) + nas? ( media-libs/nas ) + lirc? ( app-misc/lirc ) + aalib? ( media-libs/aalib ) + svga? ( media-libs/svgalib ) + encode? ( media-sound/lame + >=media-libs/libdv-0.9.5 ) + xmms? ( media-sound/xmms ) + matroska? ( >=media-libs/libmatroska-0.6.0 ) + opengl? ( virtual/opengl ) + directfb? ( dev-libs/DirectFB ) + oggvorbis? ( media-libs/libvorbis ) + nls? ( sys-devel/gettext ) + media-sound/cdparanoia + mpeg? ( media-libs/faad2 ) + samba? ( >=net-fs/samba-2.2.8a ) + theora? ( media-libs/libtheora ) + live? ( >=media-plugins/live-2004.01.05 ) + >=sys-apps/portage-2.0.36" +# dvd? ( media-libs/libdvdnav ) +# Hardcode paranoia support for now, as there is no +# related USE flag. + +DEPEND="${RDEPEND} + x86? ( dev-lang/nasm ) + app-arch/unzip" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~x86 ~ppc ~alpha ~amd64 -ia64 -hppa ~sparc" + + +pkg_setup() { + echo + einfo "Please note that we do not use C[XX]FLAGS from /etc/make.conf" + einfo "or the environment, as the MPlayer guys then do not give support" + einfo "in case of bug reports!." + echo + echo -ne "\a" ; sleep 0.1 &>/dev/null ; sleep 0,1 &>/dev/null + echo -ne "\a" ; sleep 1 + echo -ne "\a" ; sleep 0.1 &>/dev/null ; sleep 0,1 &>/dev/null + echo -ne "\a" ; sleep 1 + sleep 3 +} + +src_unpack() { + + unpack MPlayer-${MY_PV}.tar.bz2 \ + font-arial-iso-8859-1.tar.bz2 font-arial-iso-8859-2.tar.bz2 + + use svga && unpack svgalib_helper-1.9.17-mplayer.tar.bz2 + + use gtk && unpack Blue-1.0.tar.bz2 + + cd ${S} + + # Fix head/tail call for new coreutils + epatch ${FILESDIR}/${PN}-0.90-coreutils-fixup.patch + + # Fix mencoder segfaulting with bad arguments + epatch ${FILESDIR}/mencoder-segfault.patch + + # GCC 3.4 fixes + epatch ${FILESDIR}/${P}-alsa-gcc34.patch + + # fixes for mga driver with kernel 2.6 + get_KV_info + epatch ${FILESDIR}/mga-kernel-2.6.patch + sed -i -e "s/KERNEL_VERSION_HERE/${KV_full}/" drivers/Makefile \ + || die "sed failed on kernel version substitution" + + # Fix hppa detection + [ "${ARCH}" = "hppa" ] && sed -i -e "s/9000*/parisc*/" "${S}/configure" + + if [ "`use svga`" ] + then + echo + einfo "Enabling vidix non-root mode." + einfo "(You need a proper svgalib_helper.o module for your kernel" + einfo " to actually use this)" + echo + + mv ${WORKDIR}/svgalib_helper ${S}/libdha + cd ${S}/libdha + sed -i -e "s/^#CFLAGS/CFLAGS/" Makefile + fi +} + +src_compile() { + + filter-flags -fPIC + + use matrox && check_KV + + local myconf= + + use 3dnow \ + || myconf="${myconf} --disable-3dnow --disable-3dnowex" + + use sse \ + || myconf="${myconf} --disable-sse --disable-sse2" + + # Only disable MMX if 3DNOW or SSE is not in USE + use mmx || use 3dnow || use sse \ + || myconf="${myconf} --disable-mmx --disable-mmx2" + + # Only disable X if gtk is not in USE + use X || use gtk \ + || myconf="${myconf} --disable-gui --disable-x11 --disable-xv \ + --disable-xmga --disable-png" + use jpeg \ + || myconf="${myconf} --disable-jpeg" + + use gif \ + || myconf="${myconf} --disable-gif" + + ( use matrox && use X ) \ + && myconf="${myconf} --enable-xmga" \ + || myconf="${myconf} --disable-xmga" + + use gtk \ + && myconf="${myconf} --enable-gui --enable-x11 \ + --enable-xv --enable-vm --enable-png" + + use encode \ + && myconf="${myconf} --enable-mencoder --enable-tv" \ + || myconf="${myconf} --disable-mencoder" + + use v4l \ + && myconf="${myconf} --enable-tv-v4l" \ + || myconf="${myconf} --disable-tv-v4l" + + use v4l2 \ + && myconf="${myconf} --enable-tv-v4l2" \ + || myconf="${myconf} --disable-tv-v4l2" + + use dvd \ + && myconf="${myconf} --enable-mpdvdkit" \ + || myconf="${myconf} --disable-mpdvdkit --disable-dvdread" + # Disable dvdnav support as its not considered to be + # functional anyhow, and will be removed. + + use mpeg \ + && myconf="${myconf} --enable-external-faad" \ + || myconf="${myconf} --disable-external-faad" + + use dvb \ + && myconf="${myconf} --enable-dvb" \ + || myconf="${myconf} --disable-dvb --disable-dvbhead" + + use debug \ + && myconf="${myconf} --enable-debug" + + if [ -d /opt/RealPlayer9/Real/Codecs ] + then + einfo "Setting REALLIBDIR to /opt/RealPlayer9/Real/Codecs..." + REALLIBDIR="/opt/RealPlayer9/Real/Codecs" + elif [ -d /opt/RealPlayer8/Codecs ] + then + einfo "Setting REALLIBDIR to /opt/RealPlayer8/Codecs..." + REALLIBDIR="/opt/RealPlayer8/Codecs" + else + REALLIBDIR="/usr/lib/real" + fi + + if [ -e /dev/.devfsd ] + then + myconf="${myconf} --enable-linux-devfs" + fi + + has_pic && CC="${CC} `test_flag -fno-pic` `test_flag -nopie`" + + # Crashes on start when compiled with most optimizations. + # The code have CPU detection code now, with CPU specific + # optimizations, so extra should not be needed and is not + # recommended by the authors + unset CFLAGS CXXFLAGS + ./configure --prefix=/usr \ + --datadir=/usr/share/mplayer \ + --confdir=/usr/share/mplayer \ + --disable-runtime-cpudetection \ + --enable-largefiles \ + --enable-menu \ + --enable-real \ + --with-reallibdir=${REALLIBDIR} \ + --with-x11incdir=/usr/X11R6/include \ + `use_enable xinerama` \ + `use_enable oggvorbis vorbis` \ + `use_enable esd` \ + `use_enable truetype freetype` \ + `use_enable opengl gl` \ + `use_enable sdl` \ + `use_enable nls i18n` \ + `use_enable samba smb` \ + `use_enable aalib aa` \ + `use_enable oss ossaudio` \ + `use_enable ggi` \ + `use_enable svga` \ + `use_enable directfb` \ + `use_enable fbcon fbdev` \ + `use_enable alsa` \ + `use_enable arts` \ + `use_enable lirc` \ + `use_enable joystick` \ + `use_enable theora` \ + `use_enable nas` \ + `use_enable 3dfx tdfxfb` \ + `use_enable matrox mga` \ + `use_enable xmms` \ + `use_enable ipv6 inet6` \ + `use_enable live` \ + ${myconf} || die + # Breaks with gcc-2.95.3, bug #14479: + # --enable-shared-pp \ + # Enable untested and currently unused code: + # --enable-dynamic-plugins \ + + # emake borks on fast boxes - Azarah (07 Aug 2002) + einfo "Make" + make all || die "Failed to build MPlayer!" + einfo "Make completed" + + # We build the shared libpostproc.so here so that our + # mplayer binary is not linked to it, ensuring that we + # do not run into issues ... (bug #14479) + cd ${S}/libavcodec/libpostproc + make SHARED_PP="yes" || die "Failed to build libpostproc.so!" + + if [ -n "`use matrox`" ] + then + local oldarch=${ARCH} + if [ ${ARCH} = "x86" ]; then + ARCH="i386" + fi + get_KV_info + cd -P /lib/modules/${KV_full}/build + addwrite ${PWD}/.tmp_versions + addwrite ${PWD}/.__modpost.cmd + cd ${S}/drivers + make all || die "Failed to build matrox driver!" + ARCH=${oldarch} + fi +} + +src_install() { + + einfo "Make install" + make prefix=${D}/usr \ + BINDIR=${D}/usr/bin \ + LIBDIR=${D}/usr/lib \ + CONFDIR=${D}/usr/share/mplayer \ + DATADIR=${D}/usr/share/mplayer \ + MANDIR=${D}/usr/share/man \ + install || die "Failed to install MPlayer!" + einfo "Make install completed" + + # libpostproc is now installed by >=ffmpeg-0.4.8.20040222 +# cd ${S}/libavcodec/libpostproc +# make prefix=${D}/usr \ +# SHARED_PP="yes" \ +# install || die "Failed to install libpostproc.so!" +# cd ${S} + + dodoc AUTHORS ChangeLog README + # Install the documentation; DOCS is all mixed up not just html + find ${S}/DOCS -type d | xargs -- chmod 0755 + cp -r ${S}/DOCS ${D}/usr/share/doc/${PF}/ || die + + # Copy misc tools to documentation path, as they're not installed + # directly + find ${S}/TOOLS -type d | xargs -- chmod 0755 + cp -r ${S}/TOOLS ${D}/usr/share/doc/${PF} || die + + # Install the default Skin and Gnome menu entry + if [ -n "`use gtk`" ] + then + dodir /usr/share/mplayer/Skin + cp -r ${WORKDIR}/Blue ${D}/usr/share/mplayer/Skin/default || die + + # Fix the symlink + rm -rf ${D}/usr/bin/gmplayer + dosym mplayer /usr/bin/gmplayer + fi + + if [ -n "`use gnome`" ] + then + insinto /usr/share/pixmaps + newins ${S}/Gui/mplayer/pixmaps/logo.xpm mplayer.xpm + insinto /usr/share/gnome/apps/Multimedia + doins ${FILESDIR}/mplayer.desktop + fi + + dodir /usr/share/mplayer/fonts + local x= + # Do this generic, as the mplayer people like to change the structure + # of their zips ... + for x in $(find ${WORKDIR}/ -type d -name 'font-arial-??-iso-*') + do + cp -Rd ${x} ${D}/usr/share/mplayer/fonts + done + # Fix the font symlink ... + rm -rf ${D}/usr/share/mplayer/font + dosym fonts/font-arial-14-iso-8859-1 /usr/share/mplayer/font + + insinto /etc + newins ${S}/etc/example.conf mplayer.conf + dosed -e 's/include =/#include =/' /etc/mplayer.conf + dosed -e 's/fs=yes/fs=no/' /etc/mplayer.conf + dosym ../../../etc/mplayer.conf /usr/share/mplayer/mplayer.conf + + insinto /usr/share/mplayer + doins ${S}/etc/codecs.conf + doins ${S}/etc/input.conf + doins ${S}/etc/menu.conf + + if [ -n "`use matrox`" ] + then + check_KV + insinto /lib/modules/${KV}/kernel/drivers/char + doins ${S}/drivers/mga_vid.o + fi +} + +pkg_preinst() { + + if [ -d "${ROOT}/usr/share/mplayer/Skin/default" ] + then + rm -rf ${ROOT}/usr/share/mplayer/Skin/default + fi +} + +pkg_postinst() { + + if [ -n "`use ppc`" ] + then + echo + einfo "When you see only GREEN salad on your G4 while playing" + einfo "a DivX, you should recompile _without_ altivec enabled." + einfo "Further information: http://bugs.gentoo.org/show_bug.cgi?id=18511" + echo + einfo "If everything functions fine with watching DivX and" + einfo "altivec enabled, please drop a comment on the mentioned bug!" + echo + einfo "libpostproc is no longer installed by mplayer. If you have an" + einfo "application that depends on it, install >=ffmpeg-0.4.8.20040222" + fi + + depmod -a &>/dev/null || : +} + +pkg_postrm() { + + # Cleanup stale symlinks + if [ -L ${ROOT}/usr/share/mplayer/font -a \ + ! -e ${ROOT}/usr/share/mplayer/font ] + then + rm -f ${ROOT}/usr/share/mplayer/font + fi + + if [ -L ${ROOT}/usr/share/mplayer/subfont.ttf -a \ + ! -e ${ROOT}/usr/share/mplayer/subfont.ttf ] + then + rm -f ${ROOT}/usr/share/mplayer/subfont.ttf + fi +} + |