wine/i386 for FreeBSD/amd64 port (aka wine-fbsd64)

David Naylor naylor.b.david at gmail.com
Wed Nov 7 19:09:23 UTC 2012


On Wednesday, 7 November 2012 11:45:11 Thomas Mueller wrote:
> from David Naylor <naylor.b.david at gmail.com>:
> > Hi List,
> > 
> > # Executive Summary
> > 
> > Over the past years I have been maintaining the wine-fbsd64 port (see
> > http://mediafire.com/wine_fbsd64 for more).  The port itself effectively
> > does static linking (it bundles all the libraries wine needs) with
> > scripts to bootstrap the environment to easily use wine from
> > FreeBSD/amd64.  There is also a script to install the i386 nVidia
> > graphic drivers so that wine has access to nVidia accelerated graphics
> > from FreeBSD/amd64.
> > 
> > I would like to propose this port gets included in the port's collection
> > and would like to get feedback, your comments please :-).
> > 
> > P.S. I'm not subscribed to the list, so please ensure I'm cc'ed in the
> > discussion.
> > 
> > # Conclusion
> > 
> > "It is based completely off the main port and uses the hack to,
> > 
> >  effectively, use static linking (or bundling of libraries).  In a
> >  sense it is a complete, yet quite stable and encompassing, hack. "
> >  - David ;-)
> 
> It would be nice to have wine-fbsd64 as a port, but that might
> unfortunately deprive the user of certain flexibility.

To what flexibility do you refer to?  Nothing stops the user from building the 
port herself and for those who prefer a binary with most options switched on 
(as is with what I provide) that can still be provided (and possibly in an 
automated manor via a pkgng repository).  

> Also, nVidia support should be an option, since users with other graphics
> cards might have no use for it.

I think I fail to explain how the nVidia support works: it is a simple script 
that downloads the corresponding i386 drivers (user land libGL stuff) for the 
amd64 package.  If there is no amd64 package installed it cannot know which 
i386 version to download, also, when installing it does not download any 
files, only installing the drivers if the distfile is already available on the 
system.  

So, there are three cases (on installation):
 1) The user has no amd64 package installed (nothing is done)
 2) The user has amd64 package installed but no i386 distfile available 
(nothing is done)
 3) The user has amd64 package installed and i386 distfiles available (user 
land libGL stuff is extracted and placed in $LOCALBASE/lib32)

In case 2, the user is advised to run the script manually to download and 
install the i386 distfiles.  

In cases 1, 2 and 3 the user is advised to run the script manually whenever 
there is a change (or installation) to the amd64 package.  

> I would really prefer to build the i386 FreeBSD system as a separate part,
> including kernel, since some users, myself included, might want to run an
> actual FreeBSD i386, especially on an older computer.  So one could build
> this FreeBSD i386 on a USB stick or USB hard drive, and then be able to
> run wine on an i386 system.

I think an "easy" way to achieve this is to modify the FreeBSD32 compatibility 
to work similar to the linux compatibility, namely: have a super-imposed 
"shadow" file-hierarchy at /compat/i386 (similar to /compat/linux).  This way 
the i386 packages can be installed into /compat/i386 and when called can 
easily find the correct libraries.  

Then, create an alias:

pkg-i386 = chroot env UNAME_p=i386 UNAME_m=i386 MACHINE=i386 /compat/i386 pkg

and with the correct i386 repo specified it is trivial to install i386 
programs and with a modified PATH:

PATH=$PATH:/compat/i386/usr/local/bin:/compat/i386/usr/local/sbin

the programs will integrate seamlessly.  

However, to my knowledge, there are few ports that are i386 only (such as 
wine) and maybe it is easier to use a similar "hack" to the wine-fbsd64 port 
to cater for the fringe cases???

P.S. I really would like to see FreeBSD be broken into packages and integrated 
into the ports tree, just my crazy ideas though...

> Would wine-fbsd64 be a separate port, or would it be wine built on i386, as
> the page http://wiki.freebsd.org/Wine suggests?  It would be nice to be
> able to run Wine on i386 as well as amd64.

The answer is yes to both your questions.  It can only be built on i386 but is 
a separate port.  The reason for the separate port is to allow extra "stuff" 
to happen so that it can be run on amd64 as well.  The package can be run on 
both i386 and amd64.  

Regards
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 196 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20121107/ca035549/attachment.sig>


More information about the freebsd-ports mailing list