summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Jezak <josejx@gentoo.org>2005-07-31 23:32:44 +0000
committerJoseph Jezak <josejx@gentoo.org>2005-07-31 23:32:44 +0000
commitba1abec78a8958efc2f16bc6adb08f585e67a43e (patch)
tree4bfa1cbc32a1edc6b58a75fafe70844993654375 /app-emulation/mol
parenteat whitespace (diff)
downloadhistorical-ba1abec78a8958efc2f16bc6adb08f585e67a43e.tar.gz
historical-ba1abec78a8958efc2f16bc6adb08f585e67a43e.tar.bz2
historical-ba1abec78a8958efc2f16bc6adb08f585e67a43e.zip
Added PCI proxy support.
Package-Manager: portage-2.0.51.22-r2
Diffstat (limited to 'app-emulation/mol')
-rw-r--r--app-emulation/mol/ChangeLog8
-rw-r--r--app-emulation/mol/Manifest11
-rw-r--r--app-emulation/mol/files/digest-mol-0.9.71_pre1-r23
-rw-r--r--app-emulation/mol/files/mol-pciproxy-dump.patch324
-rw-r--r--app-emulation/mol/mol-0.9.71_pre1-r2.ebuild151
5 files changed, 492 insertions, 5 deletions
diff --git a/app-emulation/mol/ChangeLog b/app-emulation/mol/ChangeLog
index 556abc1d5d78..b2357128b686 100644
--- a/app-emulation/mol/ChangeLog
+++ b/app-emulation/mol/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for app-emulation/mol
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-emulation/mol/ChangeLog,v 1.48 2005/07/21 17:20:32 josejx Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/mol/ChangeLog,v 1.49 2005/07/31 23:32:44 josejx Exp $
+
+*mol-0.9.71_pre1-r2 (31 Jul 2005)
+
+ 31 Jul 2005; Joseph Jezak <josejx@gentoo.org>
+ +files/mol-pciproxy-dump.patch, +mol-0.9.71_pre1-r2.ebuild:
+ Added PCI proxy support with the pci useflag.
*mol-0.9.71_pre1-r1 (21 Jul 2005)
diff --git a/app-emulation/mol/Manifest b/app-emulation/mol/Manifest
index 63471f5fd0ca..a3671af41e1c 100644
--- a/app-emulation/mol/Manifest
+++ b/app-emulation/mol/Manifest
@@ -1,19 +1,22 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-MD5 6ada1174e28eea70f0f17c810c34628a ChangeLog 9484
+MD5 9d34e34898609a5d82d4ba5a0fe8fc67 ChangeLog 9678
MD5 37e2c58edef99f3f2be0803169d89bcd mol-0.9.70.ebuild 4048
MD5 2eff369831b47a032f31277640c57b8b mol-0.9.71_pre1-r1.ebuild 4820
MD5 3263d375abba2d098c636efc2b135ea5 metadata.xml 333
+MD5 e3076c40b7fe6d154ee8128ce4df5f3f mol-0.9.71_pre1-r2.ebuild 5091
MD5 7b1c05be512e22dbfb69b67e87d6d2f7 mol-0.9.70-r1.ebuild 3940
MD5 5674dc422930ad165912ce5d91cafff8 mol-0.9.71_pre1.ebuild 4518
MD5 f0299c003ac50a8f73bd8264889116d7 files/mol-0.9.71_pre1-linux-2.6.9.patch 2571
MD5 934e9ecf483ff3c4e34bb6307212d776 files/mol-0.9.70-nopriority.patch 1853
+MD5 659812abffbd24cf3a951dc3ea433827 files/mol-pciproxy-dump.patch 8955
MD5 3944510308e77b92ac85c07708947ad0 files/digest-mol-0.9.70-r1 64
MD5 37a24cbf6bb78c4d9bd4c79b18aab9d6 files/mol-0.9.71_pre1-big-filesystem.patch 6554
MD5 2f8f758938db9b3cb5a13c0b33d989e3 files/mol-module-fix.patch 327
MD5 453e05b555f037270dd6da665e100aa8 files/digest-mol-0.9.71_pre1 69
MD5 0ea7bd65a5ff4666665a71fb9652aae8 files/mol-0.9.70-makefile-fix.patch 924
+MD5 8d619246101648133ade3b39a2269e47 files/digest-mol-0.9.71_pre1-r2 187
MD5 3944510308e77b92ac85c07708947ad0 files/digest-mol-0.9.70 64
MD5 de4dd986b6c963eae483aebbab3d7a0d files/digest-mol-0.9.71_pre1-r1 121
MD5 1b1d52b69bcae00d0339c0f3f4ae9a6d files/mol-tiger.patch 3681
@@ -22,7 +25,7 @@ MD5 3bf68312e4299f777065f55eea5297fa files/mol-0.9.71_pre1-nopriority.patch 1861
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
-iD8DBQFC39l9csIHjyDViGQRAniSAKDapfe7V9pAu6g9QQGrwRpx1+0EjQCaAgBA
-s7I4BDz0ba8tQBiP3sXx5hk=
-=ey5u
+iD8DBQFC7V+ZcsIHjyDViGQRAvHCAKDLxQJ9x6ksbDfFJt+dUrBDZ12xdQCfStaq
+p8mItAx8Q54RMT9iDHZHjqM=
+=e2pR
-----END PGP SIGNATURE-----
diff --git a/app-emulation/mol/files/digest-mol-0.9.71_pre1-r2 b/app-emulation/mol/files/digest-mol-0.9.71_pre1-r2
new file mode 100644
index 000000000000..9b3d5b0e849d
--- /dev/null
+++ b/app-emulation/mol/files/digest-mol-0.9.71_pre1-r2
@@ -0,0 +1,3 @@
+MD5 b12e3beca8c90b56af09cb41f66920b0 mol-0.9.71_pre1.tar.bz2 1768219
+MD5 e4f4fb6e63380997c1ab6d554ca93c00 bootx.gz 33043
+MD5 b2f4c10dcadfa689cc54834f3d154884 mol-pciproxy.patch.bz2 16226
diff --git a/app-emulation/mol/files/mol-pciproxy-dump.patch b/app-emulation/mol/files/mol-pciproxy-dump.patch
new file mode 100644
index 000000000000..ab96dc13cdc4
--- /dev/null
+++ b/app-emulation/mol/files/mol-pciproxy-dump.patch
@@ -0,0 +1,324 @@
+--- 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, &val);
++ (*(dev->hooks.write_config))(dev->usr, offs, last, &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 = 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,42 @@
++#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 "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(buf, sizeof(buf), "%.8ld.%.6ld %s %s 0x%.4x %d %*dx%.*x\n",
++ t.tv_sec, t.tv_usec, type, (in?"r":"w"), offset, datalen, 9-2*datalen, 0, 2*datalen, data);
++
++ if (len > 0)
++ write(pdump_fd, buf, len);
++}
++
++void
++pdump_initialise() {
++ if (pdump_fd != -1) return;
++ pdump_fd = open("/tmp/test.dump", O_CREAT | O_WRONLY | O_TRUNC, 0644);
++}
++
++void
++pdump_deinit() {
++ 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 pdump_deinit();
++
++#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>
+--- src/netdriver/Makefile.26 2005-07-21 14:26:25.014345820 +0200
++++ src/netdriver/Makefile.26 2005-07-20 11:20:48.898880688 +0200
+@@ -6,7 +6,7 @@
+ obj-m += kuname.o
+
+
+-$(obj)/sheep.o $(obj)/ethertap.o $(obj)tun.o: $(src)/.kuname
++$(obj)/sheep.o $(obj)/ethertap.o $(obj)/tun.o: $(src)/.kuname
+
+ $(src)/.kuname: $(obj)/kuname.o
+ strings $< | grep -- '-MAGIC-' | sed -e s/-MAGIC-// > $@
+--- 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_pre1-r2.ebuild b/app-emulation/mol/mol-0.9.71_pre1-r2.ebuild
new file mode 100644
index 000000000000..c98caef4d530
--- /dev/null
+++ b/app-emulation/mol/mol-0.9.71_pre1-r2.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2005 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_pre1-r2.ebuild,v 1.1 2005/07/31 23:32:44 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.net/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2
+ mirror://gentoo/bootx.gz
+ mirror://gentoo/mol-pciproxy.patch.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* ~ppc"
+IUSE="vnc alsa oss fbcon X oldworld sheep debug dga usb pci"
+
+MAKEOPTS="${MAKEOPTS} -j1"
+
+DEPEND=""
+RDEPEND="net-misc/dhcp
+ net-firewall/iptables
+ alsa? ( virtual/alsa )
+ vnc? ( net-misc/vnc )
+ X? ( virtual/x11 )"
+
+
+MODULE_NAMES="mol(mol:${S}/src/kmod/Linux)
+ sheep(net:${S}/src/netdriver)
+ tun(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}
+ epatch ${FILESDIR}/${PN}-module-fix.patch
+ epatch ${FILESDIR}/${P}-nopriority.patch
+
+ # Fixes bug 79428
+ epatch ${FILESDIR}/${P}-linux-2.6.9.patch
+
+ # Adds big filesystem (>2Gb) image support, bug #80098
+ epatch ${FILESDIR}/${P}-big-filesystem.patch
+
+ # Fixes bug tmp-offset access violation
+ epatch ${FILESDIR}/${P}-tmp-offset.patch
+
+ # dhcp config fix and show dchpd messages on starting mol
+ sed -i "s:#ddns-update-style:ddns-update-style:g" Doc/config/dhcpd-mol.conf || die
+ sed -i "s:DHCPD\ -q\ -cf:DHCPD\ -cf:g" Doc/config/tunconfig || die
+
+ # Add tiger support to MOL
+ epatch ${FILESDIR}/${PN}-tiger.patch
+
+ # Add new bootloader
+ # Boot loader courtesy of http://www-user.rkrk.uni-kl.de/~nissler/mol/
+ cp ${WORKDIR}/bootx ${S}/libimport/drivers/bootx
+ cp ${WORKDIR}/bootx ${S}/mollib/drivers/bootx
+
+ # PCI Proxy Patch
+ epatch ${WORKDIR}/${PN}-pciproxy.patch
+ # PCI Debugging Patch
+ if use debug; then
+ epatch ${FILESDIR}/${PN}-pciproxy-dump.patch
+ fi
+}
+
+src_compile() {
+ filter-flags -fsigned-char
+
+ 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
+ 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 is not set:CONFIG_PCIPROXY=y:" .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
+}
+
+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.net"
+ 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 the dhcp server:"
+ einfo " Socket Filtering (CONFIG_FILTER)"
+ 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
+}