diff options
author | Joseph Jezak <josejx@gentoo.org> | 2006-10-03 04:08:37 +0000 |
---|---|---|
committer | Joseph Jezak <josejx@gentoo.org> | 2006-10-03 04:08:37 +0000 |
commit | d368330db6e8bdff8e6c9c175bd94a1d45972210 (patch) | |
tree | 438f5033600ef4f99c0248bcf78894063d9089ed /app-emulation/mol | |
parent | Stable x86; ^.^ (diff) | |
download | historical-d368330db6e8bdff8e6c9c175bd94a1d45972210.tar.gz historical-d368330db6e8bdff8e6c9c175bd94a1d45972210.tar.bz2 historical-d368330db6e8bdff8e6c9c175bd94a1d45972210.zip |
Removed _pre9 and _pre8, added 0.9.71.
Package-Manager: portage-2.1.2_pre2-r1
Diffstat (limited to 'app-emulation/mol')
-rw-r--r-- | app-emulation/mol/ChangeLog | 10 | ||||
-rw-r--r-- | app-emulation/mol/files/digest-mol-0.9.71 | 3 | ||||
-rw-r--r-- | app-emulation/mol/files/mol-0.9.71-pciproxy-dump.patch | 314 | ||||
-rw-r--r-- | app-emulation/mol/mol-0.9.71.ebuild | 138 |
4 files changed, 464 insertions, 1 deletions
diff --git a/app-emulation/mol/ChangeLog b/app-emulation/mol/ChangeLog index 79484b1deed1..4a7dff610eec 100644 --- a/app-emulation/mol/ChangeLog +++ b/app-emulation/mol/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for app-emulation/mol # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/mol/ChangeLog,v 1.63 2006/09/05 18:46:59 josejx Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-emulation/mol/ChangeLog,v 1.64 2006/10/03 04:08:36 josejx Exp $ + +*mol-0.9.71 (03 Oct 2006) + + 03 Oct 2006; Joseph Jezak <josejx@gentoo.org> + +files/mol-0.9.71-pciproxy-dump.patch, + -files/mol-0.9.71_pre9-pciproxy-dump.patch, -mol-0.9.71_pre8.ebuild, + -mol-0.9.71_pre9.ebuild, +mol-0.9.71.ebuild: + Removed _pre9 and _pre8, added 0.9.71. *mol-0.9.71_pre8-r1 (05 Sep 2006) diff --git a/app-emulation/mol/files/digest-mol-0.9.71 b/app-emulation/mol/files/digest-mol-0.9.71 new file mode 100644 index 000000000000..bbe5364a3c8b --- /dev/null +++ b/app-emulation/mol/files/digest-mol-0.9.71 @@ -0,0 +1,3 @@ +MD5 9ff92506358481c92efcd171e92324d1 mol-0.9.71.tar.bz2 2045466 +RMD160 ec696f43ea984f31940a10ef3bdd3bf11b1b3598 mol-0.9.71.tar.bz2 2045466 +SHA256 1e2d2bfec748a0bc05a9cc510553075cf33432173165485576825c8077d35caf mol-0.9.71.tar.bz2 2045466 diff --git a/app-emulation/mol/files/mol-0.9.71-pciproxy-dump.patch b/app-emulation/mol/files/mol-0.9.71-pciproxy-dump.patch new file mode 100644 index 000000000000..aee33ec0ff9c --- /dev/null +++ b/app-emulation/mol/files/mol-0.9.71-pciproxy-dump.patch @@ -0,0 +1,314 @@ +--- src/drivers/hostirq.c 2005-07-21 14:26:58.035942148 +0200 ++++ src/drivers/hostirq.c 2005-07-21 01:26:22.964756669 +0200 +@@ -26,6 +26,7 @@ + #include "thread.h" + #include "molcpu.h" + #include "driver_mgr.h" ++#include "plain-dump.h" + + #include <signal.h> + #include <string.h> +@@ -151,6 +152,7 @@ + for (i = first_mapping; i != -1; i = hostirq_mapping[i].next) { + if (hostirq_check_bit(i, irq_state->irqs)) { + // printm("update: raising %d\n", i); ++ pdump_write_pkt(0, 0, 1, hostirq_mapping[i].vmirq, "int"); + irq_line_hi(hostirq_mapping[i].vmirq); + } else { + // printm("update: lowering %d\n", i); +--- src/drivers/include/pci.h 2005-07-21 14:26:58.063944350 +0200 ++++ src/drivers/include/pci.h 2005-07-21 14:20:43.312479454 +0200 +@@ -35,8 +35,8 @@ + /* config space read/write hooks. the char * argument points to data to be read/written + * and may be overwritten by the hook. + */ +- void (*read_config)(void *, int, char *); +- void (*write_config)(void *, int, char *); ++ void (*read_config)(void *, int, int, char *); ++ void (*write_config)(void *, int, int, char *); + } pci_dev_hooks_t; + + typedef int pci_addr_t; /* 00 domain bus devfn */ +--- src/drivers/Makefile 2005-07-21 14:26:58.005939789 +0200 ++++ src/drivers/Makefile 2005-07-20 18:39:54.523735183 +0200 +@@ -8,7 +8,7 @@ + drivers-OBJS = $(obj-y) + obj-y += driver_mgr.o ioports.o keycodes.o kbd.o via-cuda.o \ + adb.o gc.o pic.o osi_pic.o nvram.o escc.o dbdma.o pci.o \ +- pci-bridges.o osi_mouse.o osi_driver.o usb.o rtas.o hostirq.o ++ pci-bridges.o osi_mouse.o osi_driver.o usb.o rtas.o hostirq.o plain-dump.o + + obj-$(LINUX) += console.o + +--- src/drivers/pci.c 2005-07-21 14:26:58.093946709 +0200 ++++ src/drivers/pci.c 2005-07-21 14:37:21.326948507 +0200 +@@ -470,7 +470,7 @@ + + + static void +-do_write_config( pci_device_t *dev, int offs, unsigned char val ) ++do_write_config( pci_device_t *dev, int offs, int last, unsigned char val ) + { + + int rr = offs >>2; +@@ -478,7 +478,7 @@ + + /* indeed we now call a hook here ;-) */ + if (dev->hooks.write_config != NULL) +- (*(dev->hooks.write_config))(dev->usr, offs, (char *) &val); ++ (*(dev->hooks.write_config))(dev->usr, offs, last, (char *) &val); + + /* Base registers & rom */ + if( rr >= (PCI_BASE_ADDRESS_0 >> 2) && rr <= (PCI_BASE_ADDRESS_5 >> 2) ) { +@@ -501,7 +501,7 @@ + } + + static unsigned char +-do_read_config( pci_device_t *dev, int offs ) ++do_read_config( pci_device_t *dev, int offs, int last ) + { + int rr = offs >>2; + basereg_t *bp = NULL; +@@ -528,7 +528,7 @@ + + /* call hook */ + if (dev->hooks.read_config != NULL) +- (*(dev->hooks.read_config))(dev->usr, offs, &val); ++ (*(dev->hooks.read_config))(dev->usr, offs, last, &val); + + #if 0 + if( offs == PCI_INTERRUPT_LINE ) { +@@ -558,7 +558,7 @@ + * alignment problems. + */ + for( i=len-1; i>=0; i--, val=val>>8 ) +- do_write_config( dev, offs+i, val & 0xff ); ++ do_write_config( dev, offs+i, i==0, val & 0xff ); + + /* Handle value written */ + if( (offs & ~3) != ((offs+len-1)&~3 )) +@@ -583,7 +583,7 @@ + + for( val=0, i=0; i<len; i++ ) { + val=val<<8; +- val |= do_read_config( dev, offs+i ) & 0xff; ++ val |= do_read_config( dev, offs+i, i==(len-1) ) & 0xff; + } + + VPRINT("config-read [%d] %04x+%02x: %08lx\n", len, addr, offs, val ); +--- src/drivers/pciproxy.c 2005-07-21 14:26:58.125949225 +0200 ++++ src/drivers/pciproxy.c 2005-07-21 14:34:32.137645970 +0200 +@@ -42,6 +42,8 @@ + #include <sys/mman.h> + #include <sys/poll.h> + ++#include "plain-dump.h" ++ + SET_VERBOSE_NAME("PCIPROXY"); + + #define PPLOG(format, args...) LOG(format "\n", ##args) +@@ -164,8 +166,11 @@ + + /* config space read/write hooks */ + static void +-pciproxy_config_read(void *usr, int offset, char *val) ++pciproxy_config_read(void *usr, int offset, int last, char *val) + { ++ static int saved_value = 0; ++ static int saved_len = 0; ++ + pciproxy_device_t *pdev = (pciproxy_device_t *) usr; + + DPRINT("config_read: off %d val %d", offset, *val); +@@ -188,13 +193,24 @@ + } else { + /* default: pass it through to the physical device */ + pciproxy_do_read_config(pdev->fd_config, offset, val, 1); ++ ++ saved_value = saved_value | (*val << 8*saved_len); ++ saved_len++; ++ if (last) { ++ pdump_write_pkt(offset-saved_len+1, 1, saved_len, saved_value, "pci"); ++ saved_len = 0; ++ saved_value = 0; ++ } + return; + } + } + + static void +-pciproxy_config_write(void *usr, int offset, char *val) ++pciproxy_config_write(void *usr, int offset, int last, char *val) + { ++ static int saved_value = 0; ++ static int saved_len = 0; ++ + pciproxy_device_t *pdev = (pciproxy_device_t *) usr; + + DPRINT("config_write: off %d val %d", offset, *val); +@@ -231,6 +247,14 @@ + /* if we are still there, pass the value to our device */ + pciproxy_do_write_config(pdev->fd_config, offset, val, 1); + ++ saved_len++; ++ saved_value = (saved_value << 8) | *val; ++ if (last) { ++ pdump_write_pkt(offset, 0, saved_len, saved_value, "pci"); ++ saved_len = 0; ++ saved_value = 0; ++ } ++ + } + + /* hook table */ +@@ -240,7 +264,7 @@ + pciproxy_config_write, + }; + +-#undef BAR_ACCESS_USERSPACE ++#define BAR_ACCESS_USERSPACE 1 + + #ifdef BAR_ACCESS_USERSPACE + static inline int +@@ -263,6 +287,8 @@ + { + pciproxy_device_t *pdev = (pciproxy_device_t *) usr; + ulong res = 0; ++ ulong r_int, r_pass; ++ ushort r_short; + char *lvaddr; + int ind; + +@@ -278,6 +304,12 @@ + res = read_mem(lvaddr, len); + + DPRINT("read mem @ 0x%lx: 0x%lx", addr, res); ++ r_int = res; ++ r_short = res; ++ r_pass = res; ++ if (len == 2) r_pass = le16_to_cpu(r_short); ++ else if (len == 4) r_pass = le32_to_cpu(r_int); ++ pdump_write_pkt(addr - pdev->bars[ind].mmum.mbase, 1, len, r_pass, "mem"); + + return res; + } +@@ -288,6 +320,8 @@ + pciproxy_device_t *pdev = (pciproxy_device_t *) usr; + char *lvaddr; + int ind; ++ ulong r_int, r_pass; ++ ushort r_short; + + DPRINT("write mem @ 0x%lx: 0x%lx", addr, data); + +@@ -300,6 +334,12 @@ + } + + lvaddr = (char *)pdev->bars[ind].lvbase + (addr - pdev->bars[ind].mmum.mbase); ++ r_int = data; ++ r_short = data; ++ r_pass = data; ++ if (len == 2) r_pass = le16_to_cpu(r_short); ++ else if (len == 4) r_pass = le32_to_cpu(r_int); ++ pdump_write_pkt(addr - pdev->bars[ind].mmum.mbase, 0, len, r_pass, "mem"); + write_mem(lvaddr, data, len); + } + +@@ -961,6 +1001,8 @@ + pciproxy_check_device(devspec, node_file, pci_node); + } + ++ pdump_initialise(); ++ + return 1; + } + +@@ -1012,6 +1054,7 @@ + free(temp); + } + ++ pdump_deinit(); + } + + driver_interface_t pciproxy_driver = +--- src/drivers/plain-dump.c 1970-01-01 01:00:00.000000000 +0100 ++++ src/drivers/plain-dump.c 2005-07-20 21:58:39.656827024 +0200 +@@ -0,0 +1,43 @@ ++#include <sys/types.h> ++#include <sys/stat.h> ++#include <fcntl.h> ++#include <unistd.h> ++#include <ctype.h> ++#include <stdlib.h> ++#include <stdio.h> ++#include <sys/time.h> ++#include <time.h> ++#include <string.h> ++#include "molcpu.h" ++#include "plain-dump.h" ++ ++static int pdump_fd = -1; ++ ++void ++pdump_write_pkt(short offset, int in, int datalen, int data, const char * type) { ++ if (pdump_fd == -1) return; ++ ++ struct timeval t; ++ u_char buf[256]; ++ int len = 0; ++ ++ if (gettimeofday(&t, NULL)) ++ fprintf(stderr, "gettimeofday error\n"); ++ ++ len = snprintf((char *)buf, sizeof(buf), "%.8ld.%.6ld 0x%.8x %s %s 0x%.4x %d %*dx%.*x\n", ++ t.tv_sec, t.tv_usec, (unsigned int) mregs->nip, type, (in?"r":"w"), offset, datalen, 9-2*datalen, 0, 2*datalen, data); ++ ++ if (len > 0) ++ write(pdump_fd, buf, len); ++} ++ ++void ++pdump_initialise(void) { ++ if (pdump_fd != -1) return; ++ pdump_fd = open("/tmp/test.dump", O_CREAT | O_WRONLY | O_TRUNC, 0644); ++} ++ ++void ++pdump_deinit(void) { ++ close(pdump_fd); ++} +--- src/drivers/plain-dump.h 1970-01-01 01:00:00.000000000 +0100 ++++ src/drivers/plain-dump.h 2005-07-20 18:41:35.651686385 +0200 +@@ -0,0 +1,8 @@ ++#ifndef __plain_dump_h ++#define __plain_dump_h ++ ++void pdump_write_pkt(short offset, int in, int datalen, int data, const char * type); ++void pdump_initialise(void); ++void pdump_deinit(void); ++ ++#endif +--- src/kmod/Linux/alloc.h 2005-07-21 14:26:24.979343068 +0200 ++++ src/kmod/Linux/alloc.h 2005-07-21 14:39:34.721436670 +0200 +@@ -21,6 +21,7 @@ + #include <linux/vmalloc.h> + #include <linux/mm.h> + #include <asm/uaccess.h> ++#include <asm/io.h> + + #ifdef LINUX_26 + #include <asm/cacheflush.h> +--- util/ofdump/Makefile 2005-07-21 14:26:25.188359502 +0200 ++++ util/ofdump/Makefile 2005-07-20 11:20:48.921882497 +0200 +@@ -12,9 +12,9 @@ + # it under the terms of the GNU General Public License version 2 + # + +-include ../../Makefile.top ++include ../../config/Makefile.top + + PROGRAMS = ofdump + ofdump-OBJS = main.o + +-include $(top_srcdir)/Rules.make ++include $(top_srcdir)/config/Rules.make diff --git a/app-emulation/mol/mol-0.9.71.ebuild b/app-emulation/mol/mol-0.9.71.ebuild new file mode 100644 index 000000000000..66318270ea61 --- /dev/null +++ b/app-emulation/mol/mol-0.9.71.ebuild @@ -0,0 +1,138 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/mol/mol-0.9.71.ebuild,v 1.1 2006/10/03 04:08:36 josejx Exp $ + +inherit flag-o-matic eutils linux-mod + +DESCRIPTION="MOL (Mac-on-Linux) lets PPC users run MacOS (X) under Linux (rsync snapshot)" +HOMEPAGE="http://www.maconlinux.org/" +SRC_URI="mirror://gentoo/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="-* ppc" +IUSE="vnc alsa oss fbcon X oldworld sheep debug dga usb pci" + +MAKEOPTS="${MAKEOPTS} -j1" +RDEPEND="net-misc/dhcp + net-firewall/iptables + alsa? ( virtual/alsa ) + vnc? ( net-misc/vnc ) + X? ( || ( ( x11-libs/libXext + dga? ( x11-libs/libXxf86dga ) + ) + virtual/x11 + ) + )" +DEPEND="${RDEPEND} + X? ( || ( ( x11-libs/libXt + x11-proto/xextproto + dga? ( x11-proto/xf86dgaproto ) + ) + virtual/x11 + ) + )" + +MODULE_NAMES="mol(mol:${S}/src/kmod/Linux) + sheep(net:${S}/src/netdriver)" + +pkg_setup() { + echo + einfo "If you want to use MOL fullscreen on a virtual console" + einfo "be sure to have the USE-flag \"fbcon\" set!" + echo + + linux-mod_pkg_setup +} + +src_unpack() { + unpack ${A} + + cd ${S} + # PCI Debugging Patch + if use debug; then + epatch ${FILESDIR}/${P}-pciproxy-dump.patch + fi +} + +src_compile() { + filter-flags -fsigned-char + append-flags -D_FILE_OFFSET_BITS=64 + append-flags -D_LARGE_FILES + + export KERNEL_SOURCE="/usr/src/${FK}" + export LDFLAGS="" + + # initialize all needed build-files + ./autogen.sh + ./configure --prefix="/usr" || die "Configure failed." + + # workaround for proper module-building + emake defconfig || die "Make failed." + + sed -i "s:CONFIG_XDGA=y:# CONFIG_XDGA is not set:" .config-ppc + sed -i "s:CONFIG_TAP=y:# CONFIG_TAP is not set:" .config-ppc + sed -i "s:CONFIG_TUN=y:# CONFIG_TUN is not set:" .config-ppc + use alsa || sed -i "s:CONFIG_ALSA=y:# CONFIG_ALSA is not set:" .config-ppc + use debug && sed -i "s:# CONFIG_DEBUGGER is not set:CONFIG_DEBUGGER=y:" .config-ppc + use oss || sed -i "s:CONFIG_OSS=y:# CONFIG_OSS is not set:" .config-ppc + use oldworld || sed -i "s:CONFIG_OLDWORLD=y:# CONFIG_OLDWORLD is not set:" .config-ppc + use sheep || sed -i "s:CONFIG_SHEEP=y:# CONFIG_SHEEP is not set:" .config-ppc + use X || sed -i "s:CONFIG_X11=y:# CONFIG_X11 is not set:" .config-ppc + use fbcon || sed -i "s:CONFIG_FBDEV=y:# CONFIG_FBDEV is not set:" .config-ppc + use vnc || sed -i "s:CONFIG_VNC=y:# CONFIG_VNC is not set:" .config-ppc + use dga || sed -i "s:CONFIG_XDGA=y:# CONFIG_XDGA is not set:" .config-ppc + use usb || sed -i "s:CONFIG_USBDEV=y:# CONFIG_USBDEV is not set:" .config-ppc + use pci || sed -i "s:CONFIG_PCIPROXY=y:# CONFIG_PCIPROXY is not set:" .config-ppc + + einfo "The configuration has been altered according to your USE-flags." + # reinitialize our changed configuration + emake oldconfig + + cd ${S} + emake BUILD_MODS=n || die "Build failed." + + # Build the modules too! + BUILD_PARAMS="KERNEL_SOURCE=${KV_DIR} LV=${KV_MAJOR}${KV_MINOR} MP=${KV_OBJ} + KUNAME=${KV}" + BUILD_TARGETS=all + linux-mod_src_compile +} + +src_install() { + #linux-mod_src_install + cd ${S} + emake DESTDIR=${D} install || die "Failed to install" + dodoc CREDITS Doc/Boot-ROM Doc/NewWorld-ROM Doc/Sound Doc/Video + dodoc Doc/Networking Doc/Dev/Debugger Doc/Dev/Addresses + dodoc Doc/man/molvconfig.1 Doc/man/startmol.1 Doc/man/molrc.5 + insinto /var/lib/mol + doins ${S}/mollib/nvram/nvram.x +} + +pkg_postinst() { + echo + einfo "Mac-on-Linux is now installed. To run, use the command startmol." + einfo "You might want to configure video modes first with molvconfig." + einfo "Other configuration is in /etc/molrc. For more info see:" + einfo " http://www.maconlinux.org" + einfo "Also try man molrc, man molvconfig, man startmol" + echo + ewarn "For networking and sound you might install the drivers in the" + ewarn "folder \"MOL-Install\" on your Mac OS X-Desktop." + echo + ewarn "If errors with networking occur, make sure you have the following" + ewarn "kernel functions enabled:" + einfo "For connecting to Linux:" + einfo " Universal TUN/TAP device driver support (CONFIG_TUN)" + einfo "For the dhcp server:" + einfo " Packet Socket (CONFIG_PACKET)" + einfo "For NAT:" + einfo " Network packet filtering (CONFIG_NETFILTER)" + einfo " Connection tracking (CONFIG_IP_NF_CONNTRACK)" + einfo " IP tables support (CONFIG_IP_NF_IPTABLES)" + einfo " Packet filtering (CONFIG_IP_NF_FILTER)" + einfo " Full NAT (CONFIG_IP_NF_NAT)" + einfo " MASQUERADE target support (CONFIG_IP_NF_TARGET_MASQUERADE)" + echo +} |