Bug 462586

Summary: wine doesn't build on x86_64
Product: [openSUSE] openSUSE 11.1 Reporter: Philip Ashmore <contact>
Component: OtherAssignee: Marcus Meissner <meissner>
Status: RESOLVED INVALID QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: Final   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 11.1   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: Compressed output of rpmbuild --target i686-unknown-linux-gnu -ba wine.spec 2>&1 | tee make.txt
Compressed output of rpmbuild -ba wine.spec 2>&1 | tee make.txt

Description Philip Ashmore 2008-12-26 15:39:08 UTC
I eventually downloaded wine-1.1.9-1.18.src.rpm - see https://bugzilla.novell.com/show_bug.cgi?id=462576 for the details.

As a regular user I installed it with rpm -i.
    $ cd ~/rpmbuild/wine-1.1.9
    $ rpmbuild -ba --target i686-unknown-linux-gnu wine.spec

This revealed a list of missing build dependencies that I dutifully installed.
The build failed with
    configure: error: X development files not found. Wine will be built
without X support, which probably isn't what you want. You will need to install
development packages of Xlib/Xfree86 at the very least.
    Use the --without-x option if you really want this.
    error: Bad exit status from ~/rpmbuild/tmp/rpm-tmp.969 (%build)


    RPM build errors:
        Bad exit status from ~/rpmbuild/tmp/rpm-tmp.969 (%build)
Comment 1 Marcus Meissner 2008-12-26 19:56:28 UTC
you need quite a bit of -32bit-devel and -32bit packages.

Better is if you build in a 32bit chroot altogether, using "osc build" or lbuild or build.

And why do you need to rebuild?
Comment 2 Philip Ashmore 2008-12-27 16:21:20 UTC
> you need quite a bit of -32bit-devel and -32bit packages
I think that's what the buildrequires section of the rpm spec file is for. Basically rpmbuild should report missing dependencies rather than obscure configure errors - it didn't tell me to "install xyz" to set up the build environment.

> And why do you need to rebuild?
What I really want is a portable com/ole2/atl development environment. I looks like Wine has to do some of this stuff already, but my requirement looks like a re-task of what's there.

With a common com/ole2 toolchain allowing wine/windows com components running on Wine/Linux to talk to native Linux com components on the same machine or on different machines - great for development / testing.

To complete the picture, this would require porting to cygwin so that development / testing could take place on Windows as well.

But initially to see if it's possible to compile/run the "Inside Ole2" MSPress book examples. That would be a great start.

64 bit Wine would also help.

I'm a software developer and would be willing to assist in this effort.
Comment 3 Marcus Meissner 2009-01-05 15:50:40 UTC
Wine is a special package here, where we cannot fix the buildrequires correctly for such case. (even on 64bit it tries to build itself in 32bit mode).

But as help:
http://wiki.winehq.org/WineOn64bit  has the packages that need to be installed
on a 64bit system for it to build. See the "Building WINE on 64bit SUSE" section.


64bit Wine is currently in development and not working well enough for such purposes.
Comment 4 Philip Ashmore 2009-01-10 14:10:51 UTC
I followed the http://wiki.winehq.org/WineOn64bit instructions and at least now it's compiling, but I'm still getting build errors - see attachment to follow.

Notes:
1. Should I take it that obs doesn't use this approach?
2. Wouldn't it be possible within the wine.spec to detect the host architecture as well as the build architecture and express the build dependencies as appropriate for the host platform?
Comment 5 Philip Ashmore 2009-01-10 14:12:58 UTC
Created attachment 264305 [details]
Compressed output of rpmbuild --target i686-unknown-linux-gnu -ba wine.spec 2>&1 | tee make.txt
Comment 6 Philip Ashmore 2009-01-10 14:25:58 UTC
I just downloaded wine-1.1.12-2.1.src.rpm from http://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_11.1/repodata/repoview/wine-0-1.1.12-2.1.html

Build (failure) output attachment to follow.
Comment 7 Philip Ashmore 2009-01-10 14:27:39 UTC
Created attachment 264306 [details]
Compressed output of rpmbuild -ba wine.spec 2>&1 | tee make.txt

Note that this build is for x86_64
Comment 8 Marcus Meissner 2009-01-13 14:00:11 UTC
the x86_64 64bit wine build needs GCC TRUNK currently. I will add it once we have gcc 4.4 released and in Factory.
Comment 9 Marcus Meissner 2009-01-13 16:58:03 UTC
for the i586 build is missing that
the "update-desktop-files" RPM is installed I think, this causes the failing macro.

(If you want to, you could even remove this line. It is not necessary for your purposes.)