Date: Wed, 6 Jan 2010 16:02:29 +0200 From: David Naylor <naylor.b.david@gmail.com> To: Rusty Nejdl <rnejdl@ringofsaturn.com>, =?utf-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC?= <maxchernov@yandex.ru> Cc: freebsd-emulation@freebsd.org Subject: Re: [WIP] wine/i386 on FreeBSD/amd64 (take 3) Message-ID: <201001061602.35221.naylor.b.david@gmail.com> In-Reply-To: <cfb21b6a1ce6bca5fe9f1ddbfc23b624@ringofsaturn.com> References: <200912081524.03878.naylor.b.david@gmail.com> <200912221456.32693.naylor.b.david@gmail.com> <cfb21b6a1ce6bca5fe9f1ddbfc23b624@ringofsaturn.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--nextPart1649594.Xei4QVjKhH Content-Type: multipart/mixed; boundary="Boundary-01=_1fJRLa20eA1m7If" Content-Transfer-Encoding: 7bit --Boundary-01=_1fJRLa20eA1m7If Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Wednesday 30 December 2009 19:26:01 Rusty Nejdl wrote: > On Tue, 22 Dec 2009 14:56:27 +0200, David Naylor > <naylor.b.david@gmail.com> >=20 > wrote: > >> I'll update the patch when wine-1.1.35 gets into my ports. >=20 > David, >=20 > Have you had a chance to work up a diff for wine 1.1.35 ? I'd love to > test this out if you have it. Please see attached for the patches. I have the packages built for FreeBSD= 7=20 & 8 and am just waiting for an upload site. =20 Is the mailing list eating my attachments? If so could someone please host= =20 them somewhere. =20 Regards --Boundary-01=_1fJRLa20eA1m7If Content-Type: text/x-patch; charset="ISO-8859-1"; name="wine-fbsd64.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="wine-fbsd64.diff" diff -uNr /usr/ports/emulators/wine/Makefile wine/Makefile =2D-- /usr/ports/emulators/wine/Makefile 2009-12-20 03:04:01.000000000 +0200 +++ wine/Makefile 2009-12-20 17:02:22.000000000 +0200 @@ -30,12 +30,10 @@ --without-sane --without-xcursor CONFIGURE_ENV=3D CPPFLAGS=3D"-I${LOCALBASE}/include" \ LDFLAGS=3D"-L${LOCALBASE}/lib" =2DUSE_LDCONFIG=3D ${PREFIX}/lib ${PREFIX}/lib/wine MAKE_JOBS_SAFE=3D yes MAN1=3D widl.1 wine.1 winebuild.1 winedbg.1 winedump.1 winegcc.1 \ winemaker.1 wineprefixcreate.1 wineserver.1 wmc.1 wrc.1 MLINKS=3D winegcc.1 wineg++.1 =2DONLY_FOR_ARCHS=3D i386 USE_BISON=3D build USE_BZIP2=3D yes USE_GMAKE=3D yes @@ -80,10 +78,33 @@ CONFIGURE_ARGS+=3D --without-xslt .endif =20 +# TODO: when does FreeBSD/i386 work properly under FreeBSD/amd64? .if ${OSVERSION} < 603000 IGNORE=3D fails to properly work on versions of FreeBSD before 6.3 .endif =20 +.ifdef WINE_CROSS_BUILD + +CONFIGURE_ARGS+=3D --bindir=3D${PREFIX}/bin32 --libdir=3D${PREFIX}/lib32 +CONFLICTS=3D wine-[0-9]* +ONLY_FOR_ARCHS=3D i386 amd64 +USE_LDCONFIG32=3D ${PREFIX}/lib32 ${PREFIX}/lib32/wine +WINELIBDIR=3D${PREFIX}/lib32 + +PLIST_REINPLACE+=3D winelib +PLIST_REINPLACE_WINELIB=3Ds!lib/!lib32/!g + +ACTUAL-PACKAGE-DEPENDS=3D${DO_NADA} + +.else + +CONFLICTS=3D wine-fbsd64.* +ONLY_FOR_ARCHS=3D i386 +USE_LDCONFIG=3D ${PREFIX}/lib ${PREFIX}/lib/wine +WINELIBDIR=3D${PREFIX}/lib + +.endif + post-patch: .if ${OSVERSION} < 700041 ${REINPLACE_CMD} 's/-lpthread/-lthr/g' ${WRKSRC}/configure @@ -99,8 +120,8 @@ ${MAN1PREFIX}/man/fr.UTF-8/man1/wineserver.1 @-${RMDIR} -p ${MAN1PREFIX}/man/de.UTF-8/man1 \ ${MAN1PREFIX}/man/fr.UTF-8/man1 =2D ${MV} -f ${PREFIX}/lib/libwine.so.1.0 ${PREFIX}/lib/libwine.so.1 =2D ${LN} -sf libwine.so.1 ${PREFIX}/lib/libwine.so + ${MV} -f ${WINELIBDIR}/libwine.so.1.0 ${WINELIBDIR}/libwine.so.1 + ${LN} -sf libwine.so.1 ${WINELIBDIR}/libwine.so .if !defined(NOPORTDOCS) -@${MKDIR} ${DOCSDIR} .for i in README ANNOUNCE AUTHORS LICENSE @@ -109,6 +130,27 @@ @${INSTALL_DATA} ${WRKSRC}/programs/winedbg/README ${DOCSDIR}/README.wine= dbg @${INSTALL_DATA} ${WRKSRC}/tools/winedump/README ${DOCSDIR}/README.winedu= mp .endif +.ifdef WINE_CROSS_BUILD + grep -v '[@%]' ${TMPPLIST} | sed "s!^!${PREFIX}/!g" | \ + xargs -n1 file -F' ' | grep ELF | cut -f1 -d' ' | \ + env LD_LIBRARY_PATH=3D${PREFIX}/lib32:${LD_LIBRARY_PATH} xargs ldd -f '%p= \n' \ + | sort -u | grep -v '^\(/usr\)\?/lib' | grep -v "^${PREFIX}/lib32/libwine= =2Eso" \ + | grep -v "^${PREFIX}/lib32/wine" > ${WRKDIR}/winelibs.list + for i in `cat ${WRKDIR}/winelibs.list` ; do \ + ${INSTALL_DATA} $${i} ${PREFIX}/lib32/ ; \ + echo lib32/`basename $${i}` >> ${TMPPLIST} ; \ + done + for i in libfreetype.so.9 libXrender.so.1 ; do \ + ${INSTALL_DATA} ${LOCALBASE}/lib/$${i} ${PREFIX}/lib32/ ; \ + echo lib32/$${i} >> ${TMPPLIST} ; \ + done + ${INSTALL_SCRIPT} ${FILESDIR}/binbounce ${PREFIX}/bin/wine + for i in `grep ^bin ${TMPPLIST} | xargs -n1 basename` ; do \ + [ "$${i}" =3D "wine" ] || ${LN} -f ${PREFIX}/bin/wine ${PREFIX}/bin/$${i= } ; \ + echo bin32/$${i} >> ${TMPPLIST} ; \ + done + echo '@unexec rmdir %D/bin32 2>/dev/null || true' >> ${TMPPLIST} +.endif @${MKDIR} ${DESKTOPDIR} @${MV} ${DATADIR}/applications/wine.desktop ${DESKTOPDIR}/ @${ECHO} diff -uNr /usr/ports/emulators/wine/files/binbounce wine/files/binbounce =2D-- /usr/ports/emulators/wine/files/binbounce 1970-01-01 02:00:00.0000000= 00 +0200 +++ wine/files/binbounce 2009-12-20 18:29:51.000000000 +0200 @@ -0,0 +1,27 @@ +#!/bin/sh + +TARGET=3D$0 +_count=3D0 +while [ -L "$TARGET" ] +do + TARGET=3D`ls -l "$TARGET" | sed -e 's/.* -> //'` + _count=3D$(($_count + 1)) + if [ $_count -gt 100 ] + then + echo "$0: to many symbolic links" > /dev/stderr + exit 1 + fi +done + +LOCALBASE=3D`dirname "$TARGET"`/.. +BINNAME=3D`basename "$TARGET"` + +if [ `uname -p` =3D i386 ] +then + export LD_LIBRARY_PATH=3D"$LOCALBASE/lib32":"$LOCALBASE/lib32/wine":"$LD= _LIBRARY_PATH" +else + export LD_32_LIBRARY_PATH=3D"$LOCALBASE/lib32":"$LOCALBASE/lib32/wine":"= $LD_32_LIBRARY_PATH" +fi +export PATH=3D"$LOCALBASE/bin32":"$PATH" + +exec "$LOCALBASE/bin32/$BINNAME" "$@" diff -uNr /usr/ports/emulators/wine-fbsd64/ChangeLog wine-fbsd64/ChangeLog =2D-- /usr/ports/emulators/wine-fbsd64/ChangeLog 1970-01-01 02:00:00.000000= 000 +0200 +++ wine-fbsd64/ChangeLog 2009-12-20 16:52:11.000000000 +0200 @@ -0,0 +1,20 @@ +2009/12/20: + * Correctly set bin/lib directories + * Support running on i386 + * Follow symbolic links to script + * Allow spaces in path + * Hard link the bin/* files (otherwise symbolic link following breaks) + +2009/12/19: + * Include freetype (it is a soft dependancy) + * Include libXrender (it is a soft dependancy) + +2009/12/18: + * Rename to something with a little more sense (wine-amd64-[V] -> wine-fb= sd64.[V]) + * Fix conflicts (wine conflicts with wine-fbsd64) + +2009/12/17: + * Automatically determine libraries and binaries + +2009/12/08: + * Initial implementation of WINE/i386 on FreeBSD/amd64=20 diff -uNr /usr/ports/emulators/wine-fbsd64/Makefile wine-fbsd64/Makefile =2D-- /usr/ports/emulators/wine-fbsd64/Makefile 1970-01-01 02:00:00.0000000= 00 +0200 +++ wine-fbsd64/Makefile 2009-12-18 19:44:47.000000000 +0200 @@ -0,0 +1,12 @@ +PORTNAME=3D wine +PKGNAMESUFFIX=3D -fbsd64.${OSVERSION:C/([0-9]).*/\1/} + +WINE_CROSS_BUILD=3Dyes + +MASTERDIR=3D ${.CURDIR}/../wine + +#.if ${ARCH} =3D=3D "amd64" +# TODO: install from package (how?) +#.endif + +.include "${MASTERDIR}/Makefile" --Boundary-01=_1fJRLa20eA1m7If-- --nextPart1649594.Xei4QVjKhH Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.13 (FreeBSD) iEYEABECAAYFAktEl/sACgkQUaaFgP9pFrKTwACdEywygmAFdFomwressLU+g8Kb RSoAn3fTpVjCbObm56em8okj3H2TM/W/ =AIqU -----END PGP SIGNATURE----- --nextPart1649594.Xei4QVjKhH--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001061602.35221.naylor.b.david>