I just got the wine-20041019-r1 ebuild to merge and I figured I'd refresh my config, so I removed ~/.wine. This didn't work. /usr/bin/wine does: source wine-setup || exit 1 then /usr/bin/wine-setup does: if [ ! -f "$WINEPREFIX/config" ] then <snip> cp "${INSTALLDIR}/share/wine/data/config" "${WINEPREFIX}/config" which failed because that file didn't exist, but it continued on: wine rundll32 <snip> which starts /usr/bin/wine, which sources wine-setup, etc, etc, until the oom-killer started killing stuff. I think the script should die when the config cp fails to prevent this infinite recursion. The reason the cp failed is probably because doins documentation/sample/config should be doins documentation/samples/config I'm currently remerging wine to verify this. Reproducible: Always Steps to Reproduce: 1. emerge wine (after adding a keyword and applying the fix from bug 69215) 2. rm -rf ~/.wine 3. wine Actual Results: System became unresponsive after probably spawning thousands of bash instances. Expected Results: Created a nice ~/.wine (bugzilla-related notes: I'll assign this to wine@gentoo.org if it lets me. I've labeled this 'critical' because the oom killer got confused after this forkbomb-style attack and probably killed X, leaving the box in a less-than-useful state) Portage 2.0.51-r2 (default-x86-2004.2, gcc-3.4.2, glibc-2.3.4.20041021-r0, 2.6.9 -gentoo-r1-m1 i686) ================================================================= System uname: 2.6.9-gentoo-r1-m1 i686 AMD Athlon(tm) XP 2600+ Gentoo Base System version 1.6.4 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.92.0.2-r1 Headers: sys-kernel/linux26-headers-2.6.8.1-r1 Libtools: sys-devel/libtool-1.5.2-r5 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer -frename-registers" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer -frename-registers" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs candy ccache distlocks sandbox userpriv usersandbox" GENTOO_MIRRORS="ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://www.mirror.ac.uk/sites/www.ibiblio.org/gentoo/ ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.nl.gentoo.org/gentoo-portage" USE="3dnow 3dnowex X alsa ansi apm avi bitmap-fonts cdr crypt dga edl emacs esd f77 faad fbcon foomaticdb gnome gtk2 hal javascript jit jpeg libcaca libg++ libwww lufsusermount maildir md5sum mikmod mmx mmx2 mng mozdevelop mpeg ncurses nethack network nls nntp no-old-linux nptl nptlonly oggvorbis opengl pam png python quicktime readline rtc softmmu spell sse ssl svg tcpd tetex truetype unicode userlocales x86 xml2 xv zlib"
I can confirm fixing that sample/samples typo in the ebuild fixed things.
err, damn i suck :) fixed the ebuild (and added || die) and updated the wine-setup code to check the return status of the config copy