I believe this problem comes about because:
libgl1-mesa-glx 8.0.5-3 has the library libGL.so.1.2:
=> dpkg --contents libgl1-mesa-glx_8.0.5-3_i386.deb
drwxr-xr-x root/root 0 2012-12-06 17:23 ./
drwxr-xr-x root/root 0 2012-12-06 17:22 ./usr/
drwxr-xr-x root/root 0 2012-12-06 17:22 ./usr/lib/
drwxr-xr-x root/root 0 2012-12-06 17:22 ./usr/lib/i386-linux-gnu/
-rw-r--r-- root/root 363020 2012-12-06 17:22
./usr/lib/i386-linux-gnu/libGL.so.1.2 <<<<<
while the newer libgl1-mesa-glx 9.1.6-2 has the library:
=> dpkg --contents /var/cache/apt/archives/libgl1-mesa-glx_9.1.6-2_i386.deb
drwxr-xr-x root/root 0 2013-08-12 02:50 ./
drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/
drwxr-xr-x root/root 0 2013-08-12 02:50
./usr/lib/
drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/lib/i386-linux-gnu/
-rw-r--r-- root/root 357692 2013-08-12 02:50
./usr/lib/i386-linux-gnu/libGL.so.1.2.0 <<<<<
drwxr-xr-x root/root 0 2013-08-12 02:50 ./usr/share/
glx-diversions postinst is checking for a final target of libGL.so.1.2 (not
libGL.so.1.2.0) so it always
fails when the newer libgl1-mesa-glx is installed:
validate_diverted_symlink /usr/lib${triplet}libGL.so.1
/usr/lib/mesa-diverted${triplet}libGL.so.1 mesa/libGL.so.1 libGL.so.1.2
Perhaps the postinst script could check only that the link is owned by the
package libgl1-mesa-glx; here is a piece of the
postinst script showing the problem:
+ owner=libgl1-mesa-glx:i386: /usr/lib/i386-linux-gnu/libGL.so.1 <<<<<
package installing an libGL.so.1
+ [ -L /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 ]
+ [ -z libgl1-mesa-glx:i386: /usr/lib/i386-linux-gnu/libGL.so.1 ]
+ readlink /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1
+ link=libGL.so.1.2.0
<<<<< readlink -f of its libGL.so.1
+ [ -L /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 ]
+ [ libGL.so.1.2.0 = mesa/libGL.so.1 ]
+ [ -L /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 ]
+ [ libGL.so.1.2.0 = libGL.so.1.2 ]
+ [ -L /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 ]
+ [ libGL.so.1.2.0 != libGL.so.1.2 ]
+ echo Removing diverted 'libGL.so.1' symlink with unexpected target
'libGL.so.1.2.0'.
Removing diverted 'libGL.so.1' symlink
with unexpected target 'libGL.so.1.2.0'.