Overriding the check for ownership of a prefix

Joerg-Cyril.Hoehle at t-systems.com Joerg-Cyril.Hoehle at t-systems.com
Mon Sep 24 04:48:21 CDT 2012


Scott,

I don't think you need to override this check, esp. given that
there's a good reason for it being there:
>Note that there is a problem with this setup if the app modifies the 
>registry and we then need to update the prefix-default registry

I've excellent experience with symbolic links. In fact, none of the
apps (games) I use are installed directly within any .wine prefix.
Drive_c/Program Files/Games is a symbolic link to a large partition.

>Imagine a distro package containing a Windows game in the form of a 
>read-only copy of an installed prefix (into, say, /opt).

So I recommend the following setup:
- Have the game's main directory be something like /opt/games/XYZ
  in UNIX, but tell it to install to C:\games/XYZ
- During installation, write down all registry keys that the app
  creates and every file that it stores outside of its local directory.

Beware: the name of the directory C:\Program.. depends
upon every user's locale at .wine creation time!
Use C:\Games\ instead to avoid that pitfall.

For every user:
- After .wine is created normally, add a symlink from
Drive_c/Games to /opt/games
- Add registry keys or dlls needed by the app.

wineprefixcreate
ln -s /opt/games/XYZ $HOME/.wine/drive_c/games
cp -p whatever.dll $HOME/.wine/drive_c/windows/system32/
wine regedit xyz.reg

Trivial, isn't it?

Typically, you don't need to recreate the content of user-local APPDATA directories. The app will create them upon each run, since they ought to run with different users on one machine.

Caveat: Although my .wine and games directories are distinct, I've no experience with write-protecting the games partition.  Obviously, this only has a chance to work with modern apps, written after MS started recommending separating the app's dir from its per-local configuration files to be since stored in ~/LOCALAPPDATA or the like.  Thus w9x/w2k-era games are ruled out.  Still, I don't know where those apps attempt to store e.g. crash logs.

I've seen apps write high-scores or savegames to their central directory when w2k was set in winecfg, and use HKCU/LOCALAPPDATA (what's the exact name?) when running in xp mode.

I've made excellent experience with plenty of apps sharing a single .wine-games prefix with such a setup.  I.e. you don't need one prefix per app.  Like on a real box, the apps ought to be able to coexist.

Drawback: when I was initially attracted to Wine 5 years ago, every .wine was a tiny 3-4MB. Nowadays it's more than 10 times that size, and I'm not happy with that. Using a single onion-union-fs to share drive_c/xyz may be interesting -- for as long as one single version of Wine is in use.

Regards,
	Jörg Höhle


More information about the wine-devel mailing list