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+
Le 29/04/2012 22:44, Eric Pouech a écrit :
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
I forgot to mention that ubuntu devels did a crappy job in 12.04 I'm really starting to get angry at their inability to take care of upward compat in what they do
A+
On Sun, Apr 29, 2012 at 9:50 PM, Eric Pouech eric.pouech@orange.fr wrote:
Le 29/04/2012 22:44, Eric Pouech a écrit :
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
I forgot to mention that ubuntu devels did a crappy job in 12.04 I'm really starting to get angry at their inability to take care of upward compat in what they do
A+
-- Eric Pouech "The problem with designing something completely foolproof is to underestimate the ingenuity of a complete idiot." (Douglas Adams)
I tried for ages to get multiarch compiling working in 12.04, in the end it was the last straw that made me switch to Arch Linux. Other than that, I did get some issues compiling with the newer libjpeg but I think it's been fixed since.
J. Leclanche
Eric Pouech wrote:
Le 29/04/2012 22:44, Eric Pouech a écrit :
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
I forgot to mention that ubuntu devels did a crappy job in 12.04 I'm really starting to get angry at their inability to take care of upward compat in what they do
Maybe looking at 'sudo apt-get build-dep wine' and the Wine packaging scripts will also reveal what's needed to build 32-bit Wine on Ubuntu 12.04 64-bit.
In general the 12.04 release still has loads of bugs however. It seems the developers couldn't manage to look over all the reported bugs anymore before the release, but decided to release anyhow. They probably only focused on the crash bugs, because there are not many crashes, but many things do not work yet as they should. I expect 12.04.1 will contain a very significant amount of fixes.
Julius
On 4/30/12 6:24 AM, Julius Schwartzenberg wrote:
Eric Pouech wrote:
Le 29/04/2012 22:44, Eric Pouech a écrit :
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
I forgot to mention that ubuntu devels did a crappy job in 12.04 I'm really starting to get angry at their inability to take care of upward compat in what they do
Maybe looking at 'sudo apt-get build-dep wine' and the Wine packaging scripts will also reveal what's needed to build 32-bit Wine on Ubuntu 12.04 64-bit.
In general the 12.04 release still has loads of bugs however. It seems the developers couldn't manage to look over all the reported bugs anymore before the release, but decided to release anyhow. They probably only focused on the crash bugs, because there are not many crashes, but many things do not work yet as they should. I expect 12.04.1 will contain a very significant amount of fixes.
It's sort of a consequence of time-based releases, unfortunately. We were very conservative about new versions of stuff that got into 12.04 to try and minimize new bugs, but stuff invariably comes up.
Thanks, Scott Ritchie
On 04/29/2012 10:44 PM, Eric Pouech wrote:
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
That's funny because I just tried yesterday and filed [1] to see what developers think. They are aware of the issue but will need some time to fix it.
What I discovered is that installing gcc:i386 on amd64 doesn't mean what we think. It replaces the (amd64) gcc and wants to remove gcc and build-esential (and others). What we want is gcc-multilib which provides libc6-dev-i386. The other way also exists with libc6-dev-amd64:i386 (compiling programs targeting amd64 from a i386 computer)
For the other issues, I guess we'll have to file as many bug as packages which are not multiarch-able. (I don't know how to say it, hope you get the idea)
Hope it helps --- [1] : https://bugs.launchpad.net/ubuntu/+source/freetype/+bug/990982
On 4/30/12 2:17 AM, GOUJON Alexandre wrote:
On 04/29/2012 10:44 PM, Eric Pouech wrote:
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
That's funny because I just tried yesterday and filed [1] to see what developers think. They are aware of the issue but will need some time to fix it.
What I discovered is that installing gcc:i386 on amd64 doesn't mean what we think. It replaces the (amd64) gcc and wants to remove gcc and build-esential (and others). What we want is gcc-multilib which provides libc6-dev-i386. The other way also exists with libc6-dev-amd64:i386 (compiling programs targeting amd64 from a i386 computer)
For the other issues, I guess we'll have to file as many bug as packages which are not multiarch-able. (I don't know how to say it, hope you get the idea)
Yes, this would be prudent. Tag them multiarch too. It's the next phase of the multiarch transition (there are a few lingering packages that aren't properly multiarch as well.
It's a good chunk of work, as we have to go package by package and identify if they:
1) Have architecture-specific strings in the -dev stuff 2) Move them into arch-specific folders when appropriate 3) Move files that aren't arch-specific into -common packages that are arch:all 4) Tag the resulting package multiarch: same 5) Send changes back to Debian (which is still in the multiarch bronze age)
Thanks, Scott Ritchie
On 04/29/2012 10:44 PM, Eric Pouech wrote: <snip>
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)
FYI, I asked it to be marked as deprecated in [1] when solving bug #21307 [2]. Now ([3] from [4]), wine uses XkbKeycodeToKeysym when available.
--- [1] : https://bugs.freedesktop.org/show_bug.cgi?id=5349 [2] : http://bugs.winehq.org/show_bug.cgi?id=21307 [3] : http://source.winehq.org/git/wine.git/blob/HEAD:/dlls/winex11.drv/keyboard.c... [4] : http://source.winehq.org/git/wine.git/commitdiff/a30b94651d9f01b4bfa9afd073b...