Fwd: Ubuntu 12.04 (version#2, drop previous mail)

Eric Pouech eric.pouech at orange.fr
Sun Apr 29 15:44:44 CDT 2012


for the devels having upgraded their boxes to ubuntu 12.04, here's a 
couple of stuff I had to do, especially to get 32bit wine compile
This could be useful if you want to have a dual x86_64 : i386 setup

this is an updated version to what I already sent to scott ritchie
of course this is not a step by step installation, just hints if you 
want to take that road

(version #3)

(I'm using a multiarch x86_64/i386)
now wine compiles and runs in 32bit while compiled on 64bit machine
here's the summary of the pain getting it right after upgrade

in response to https://bugs.launchpad.net/ubuntu/+source/wine1.4/+bug/944321
I was able to compile 32bit-wine on 64bit as I always, and without a
chroot or anything similar

Problem #1
----------
  an old (11.10 according to the dates) directory was left over after
migration, whereas it should have been removed
/usr/include/i386-linux-gnu

Problem #2
----------
  a ton of symlinks are missing in /usr/lib/i386-linux-gnu

for example
[root:/usr/lib/i386-linux-gnu]# ls -l /usr/lib/i386-linux-gnu/libfree*
lrwxrwxrwx 1 root root     20 avril  3 10:54
/usr/lib/i386-linux-gnu/libfreetype.so.6 ->  libfreetype.so.6.8.0
-rw-r--r-- 1 root root 624084 avril  3 10:54
/usr/lib/i386-linux-gnu/libfreetype.so.6.8.0

and it misses
lrwxrwxrwx 1 root root     16 avril 28 21:30
/usr/lib/i386-linux-gnu/libfreetype.so ->  libfreetype.so.6

the same applies for a lot libraries
libXcursor.so
libXi.so
libXxf86vm.so
libxrandr.so
libxinerama.so
libxcomposite.so
libGLU.so
libdbus-1.so (libdbus-1.so lies in /lib/i386-linux-gnu, not /usr/lib/i386-linux-gnu)
libgnutls.so
libsane.so
libv4l1.so
libgphoto2.so
libgphoto2_port.so
libgstreamer-0.10.so (***)
libcapi20.so
libcups.so
libfontconfig.so
libtiff.so
libmpg123.so
libopenal.so
libxrender.so
libGL.so (libGL.so is in mesa subdir!!!)
libxml2.so
libxslt.so
libssl.so
libcrypto.so
libjpeg.so (***)
libpng.so.0 (libpng12.so.0 lies in /lib/i386-linux-gnu, not /usr/lib/i386-linux-gnu)
libXext.so

the ones marked (***) means that the symlink is missing but it doesn't
solve fully the issue from a wine perspective (see below)

Problem #3 (jpeg)
-----------------

Fails to open<jconfig.h>. which only lies in /usr/include/x86_64-linux-gnu/jconfig.h,
and couldn't be accessed from 32bit build

Creating the /usr/include/i386-linux-gnu/ directory and creating a symlink for
jconfig.h to /usr/include/x86_64-linux-gnu/jconfig.h just works
(I checked the contents of jconfig.h and it looks reasonable to do so)

Problem #4 (gstreamer)
----------------------

it doesn't work as only /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h
is installed (/usr/lib/i386-linux-gnu/glib-2.0/include/glibconfig.h doesn't
exist, dpkg -S doesn't find it)
and /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h
defines gint64 as long, which is correct on 64bit targets
one wrong on 32 bit ones...

one should craft a decent /usr/lib/i386-linux-gnu/glib-2.0/include/glibconfig.h, or
grab one out of pure i386 install

(I haven't had time to look further into those, my main interest was to
have a 32bit setup up&  running)

List of potentially installed i386 packages
-------------------------------------------
  fixed by installing i386 packages (not exhaustive, unfortunately, as I
didn't note all the :i386 packages I've manually installed)
libldap2.so

alternatively, if I do a
[eric:~]$ dpkg -l | grep i386 | grep -- -dev
ii  libc6-dev-i386               2.15-0ubuntu10         Embedded GNU C Library: 32-bit development libraries for AMD64
ii  libldap2-dev:i386            2.4.28-1.1ubuntu4      OpenLDAP development libraries
ii  libpthread-stubs0-dev:i386   0.3-3                  pthread stubs not provided by native libc, development files
ii  libx11-dev:i386              2.1.4.99.1-0ubuntu2    X11 client-side library (development headers)
ii  libxau-dev:i386              1:1.0.6-4              X11 authorisation library (development headers)
ii  libxcb1-dev:i386             1.8.1-1                X C Binding, development files
ii  libxdmcp-dev:i386            1:1.1.0-4              X11 authorisation library (development headers)

tends to ask for libc6-dev:i386, libldap2-dev:i386, libx11-dev:i386,
libxau-dev:i386, libxcb1-dev:i386, libxdmcp-dev:i386
as dedicated installations of dev:i386 packages

but strangely enough, when looking at details, libx11-dev (for example)
cannot be installed with libx11-dev:i386 according
to manifest, but I have both installed (and both install the same files
in /usr/include for example)
this looks very strange indeed

List of stuff that won't work
-----------------------------
won't be supported (just to note them, as those are the left overs from
the configure failing list)
compiled without multiarch support: libhal, libgsm

Warning at compilation
----------------------
  when compiling, some warnings still have to be worked upon
/home/eric/work/wine/dlls/winex11.drv/keyboard.c:1109:5: warning:
'XKeycodeToKeysym' is deprecated (declared at
/usr/include/X11/Xlib.h:1695) [-Wdeprecated-declarations]
this one can be forgotten for now (it's just being marked deprecated in
precise, so warning doesn't come from misconfiguration)

debugging (32bit and 64bit) is broken
-------------------------------------
the debugging is broken
it turns out that ptrace and prctl (which had to be added in 11.10) work fine
when tracing, only the first started process get correct pid out of wineserver in socket
SCM_CREDENTIALS info. the later get 0
I tried to force the pid without requiring the recvmsg stuff and it works just fine
I've not found yet the change that broke this

more to come if get any futher on the remaining topics

A+

-- 
Eric Pouech
"The problem with designing something completely foolproof is to underestimate the ingenuity of a complete idiot." (Douglas Adams)





More information about the wine-devel mailing list