First of all, I have now looked into this a bit more; I also read the
bug reports which I mentioned in my earlier post in more detail. There
are two nicer ways to fix this problem:
a) /etc/X11/Xsession.xfree86 is in fact /etc/X11/Xsession from
x11-common, it just gets renamed by mistake. Therefore you can just
rename it again and the problem should be solved.
b) Another possibility is to install x11-common with dpkg:
dpkg --force-confmiss -i /var/cache/apt/archives/x11-common_1%3a7.0.16_i386.deb
The "force-confmiss" option will make sure that the missing file is
restored.
I hope you will now not need this anymore, but the information might be handy
for another time:
1) The command is dpkg-deb. In our case it would be something like
dpkg-deb -X /var/cache/apt/archives/x11-common_1%3a7.0.16_i386.deb tempdir
This will extract all files from the package to tempdir. The directory
hierarchy is preserved, therefore you would find the missing file at
tempdir/etc/X11/Xsession.
2) Aptitude keeps a log of all its (intended) operations. If you don't
use aptitude you can check for new files in the package cache:
find /var/cache/apt/archives/ -type f -mtime -2 | sed 's/.*\///;s/_.*$//'
("-mtime -2" finds files which were modified less than 2 days ago.)