wine on amd64 in ports

Status
Not open for further replies.

kenorb

Well-Known Member

Reaction score: 3
Messages: 330

I'm requesting to add wine support for amd64, as amd64 patches already exists.
Is this is the right place to do it?

Currently it's possible to compile using patches.

1.
Comment all lines in Makefile with ONLY_FOR_ARCHS (wine ports dir):
Code:
# ONLY_FOR_ARCHS=       i386
2.
Code:
$ cd /usr/ports/emulators/wine/work
$ sudo make extract && cd work && ln -s wine-1.3.5/ wine
3.
Download wine-fbsd64.diff and patch-wine-nvidia.sh from http://drop.io/wine_fbsd64
and copy them to /usr/ports/emulators/wine/work

4.
Code:
$ sudo patch -p0 < wine-fbsd64.diff
$ cd /usr/ports/emulators/wine
$ sudo make install clean
5.
Then run previously downloaded patch-wine-nvidia.sh script if you have NVIDIA
Code:
$ sudo sh -x /usr/ports/emulators/wine/work/patch-wine-nvidia.sh
Already compiled packages are available here:
http://people.freebsd.org/~ivoras/wine/

Probably this patch still needs some work.
But the main question (in case if it work), what are the steps to include it into ports for amd64?
Or to create separate port wine-amd64?
 

SirDice

Administrator
Staff member
Administrator
Moderator

Reaction score: 7,753
Messages: 30,854

kenorb said:
I'm requesting to add wine support for amd64, as amd64 patches already exists.
Is this is the right place to do it?
Nope. This is a user driven forum. Submitting a PR or contacting the freebsd-ports mailinglist would be the correct way.

But the main question (in case if it work), what are the steps to include it into ports for amd64?
There is no separate ports tree for amd64. So the port must be able to apply the patch based on the architecture.
 
OP
OP
kenorb

kenorb

Well-Known Member

Reaction score: 3
Messages: 330

This information could be useful:

David.N said:
The port needs to be built in an i386 environment. FreeBSD currently does not
have support for cross building (without building a custom compiler). Even in
that case many dependant ports will need to be built. This makes the build
process rather unclean.

An alternative would be to create a port that uses the packages already
created.

I suppose one could create an i386 only port that creates a package suitable
for amd64.
David said:
The correct way to build the port would be (with a clean ports environment):

# cd /usr/ports/emulators
# patch -sp0 < /path/to/wine-fbsd64.diff
# cd wine-fbsd64
# make all install clean

The above needs to be done in an i386 environment, if you are using a chroot
from amd64 then also do (before building the port)

# setenv UNAME_p i386
# setenv UNAME_m i386
# setenv MACHINE i386

The patch-wine-nvidia.sh script should by run by the user after installation
if they are using the NVIDIA graphics driver.

One note about your suggestion for naming the port wine-amd64 is that there is
a version of wine for 64bit binaries (i.e. those that run under 64bit Windows)
which is why I used the name wine-fbsd64.

Just to be explicitly clear, this is a i386 version of wine that I have
modified to run using FreeBSD i386 compatibility layer on FreeBSD amd64. It
only runs 32bit WIndows programs. And currently it needs an i386 environment
to build.
 

vermaden

Son of Beastie

Reaction score: 1,177
Messages: 2,764

@kenorb

You should contact with WINE maintainer and CC that message to lists.freebsd.org (stable/current/ports).
 

DutchDaemon

Administrator
Staff member
Administrator
Moderator
Developer

Reaction score: 2,818
Messages: 11,306

This topic has been closed. Issues as technical or detailed as this should not be discussed in general user-oriented forums like The FreeBSD Forums. These forums are intended for end-user support with installing and/or running FreeBSD and/or applications from the ports tree, not for routinely resolving low-level problems with the operating system or add-on applications. Developers and port maintainers usually do not spend much time here, and we routinely refer technically detailed questions to them.

Consider opening this topic elsewhere, e.g.:

In the case of the FreeBSD base system:

1) by posting to one of the relevant mailing lists
2) by opening a bug report

In the case of ported applications:

1) by contacting the port maintainer (run make maintainer in the port directory)
2) by opening a bug report
 
Status
Not open for further replies.
Top