Skip to contentSkip to conversation

wine: New package

PATCH New André Hentschel 2 participants 3 messages Jan 6, 2015 – Jan 8, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 wine: New package

Adds new package: wine

Wine is a compatibility layer capable of running Windows applications on Linux.

---
No comments on my last RFC makes me think it's good enough for submission. try 2: Fix issue spotted by baruch

 package/Config.in      |   1 +
 package/wine/Config.in |  20 +++++++++++
 package/wine/wine.mk   | 264 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 285 insertions(+)
package/Config.in +1 -0
index 8d91b04..1f196ba 100644
@@ -1004,6 +1004,7 @@ menu "Miscellaneous"
 	source "package/snowball-init/Config.in"
 	source "package/sound-theme-borealis/Config.in"
 	source "package/sound-theme-freedesktop/Config.in"
+	source "package/wine/Config.in"
 endmenu
 
 menu "Networking applications"
package/wine/Config.in new file +20 -0
new file mode 100644
index 0000000..05c69c8
@@ -0,0 +1,20 @@
+config BR2_PACKAGE_WINE
+	bool "wine"
+	depends on BR2_INET_IPV6
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	# Wine has much CPU specific code
+	depends on BR2_i386 || BR2_x86_64
+	help
+	  Wine is a compatibility layer capable of running
+	  Windows applications on Linux. Instead of simulating internal
+	  Windows logic like a virtual machine or emulator,
+	  Wine translates Windows API calls into POSIX calls on-the-fly,
+	  eliminating the performance and memory penalties of other methods.
+
+	  http://www.winehq.org
+
+comment "wine needs a (e)glibc toolchain w/ IPv6, threads"
+	depends on BR2_i386 || BR2_x86_64
+	depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_TOOLCHAIN_USES_GLIBC
package/wine/wine.mk new file +264 -0

264 lines not on this page · raw message

#1 lore raw

PATCH 1/1 wine: New package

Dear Andr? Hentschel,

Quoted 8 lines · Andr? Hentschel

Adds new package: wine

Wine is a compatibility layer capable of running Windows applications on Linux.

---
No comments on my last RFC makes me think it's good enough for submission. try 2: Fix issue spotted by baruch

Thanks for this new version. See some comments below.

First, one thing that surprises me is the number of optional features that you try to support. Did you really tried all of them? Are you using all of them? In general, when we add a new package, we don't necessarily try to support all possible optional dependencies, because it's not necessarily easy.

But well, as long as you're ready to fix potential build issues that will arise in the autobuilders after building the wine package, I'm fine :-)

package/wine/wine.mk line 9

Quoted 3 lines
package/wine/wine.mk new file +3 -0
+WINE_VERSION = 1.6.2
+WINE_SOURCE = wine-$(WINE_VERSION).tar.bz2
+WINE_SITE = http://source.winehq.org/git/wine.git/snapshot/

Since you're download a tarball, please add a wine.hash file. See the Buildroot manual for more details about hash files.

package/wine/wine.mk line 19

Quoted 10 lines
package/wine/wine.mk new file +10 -0
+WINE_LICENSE = LGPLv2.1+
+WINE_LICENSE_FILES = COPYING.LIB
+WINE_INSTALL_TARGET = YES
+WINE_DEPENDENCIES = host-wine
+
+#Wine needs its own directory structure and tools for cross compiling
+WINE_CONF_OPTS += --with-wine-tools=../host-wine-$(WINE_VERSION)
+WINE_CONF_OPTS += --disable-tests
+WINE_CONF_OPTS += --without-opengl
+WINE_CONF_OPTS += $(if $(BR2_ARCH_IS_64),--enable-win64)

Please use only one assigment:

WINE_CONF_OPTS = \
	--with-wine-tools=... \
	--disable-tests \
	--without-opengl \
	$(if ...)

package/wine/wine.mk line 48

Quoted 5 lines
package/wine/wine.mk new file +5 -0
+ifeq ($(BR2_PACKAGE_FREETYPE),y)
+	WINE_CONF_OPTS += --with-freetype
+	HOST_WINE_CONF_OPTS += --with-freetype
+	WINE_DEPENDENCIES += freetype
+	HOST_WINE_DEPENDENCIES += host-freetype

This is not correct: BR2_PACKAGE_FREETYPE indicates that the target freetype package is enabled, not that we want freetype support in host-wine. Please only adjust WINE_CONF_OPTS and WINE_DEPENDENCIES, not HOST_WINE_CONF_OPTS and HOST_WINE_DEPENDENCIES. Unless you have a really good reason to do so, which should be explained in a comment.

package/wine/wine.mk line 52

Quoted 4 lines
package/wine/wine.mk new file +4 -0
+else
+	WINE_CONF_OPTS += --without-freetype
+	HOST_WINE_CONF_OPTS += --without-freetype
+endif

Ditto.

package/wine/wine.mk line 157

Quoted 6 lines
package/wine/wine.mk new file +6 -0
+ifeq ($(BR2_PACKAGE_XORG7),y)
+	WINE_CONF_OPTS += --with-x
+	WINE_DEPENDENCIES += xlib_libX11
+else
+	WINE_CONF_OPTS += --without-x
+endif

If you do this, then you need:

select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7

in wine/Config.in.

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#2 lore raw

PATCH 1/1 wine: New package

In reply to André Hentschel

Dear Andr? Hentschel,

Quoted 5 lines · Andr? Hentschel

Adds new package: wine

Wine is a compatibility layer capable of running Windows applications on Linux.

I did some actual testing of this, and here are the issues:

* host-flex should be in HOST_WINE_DEPENDENCIES. Otherwise, I get "configure: error: no suitable flex found" at configure time of host-wine. You didn't see the error because you have the flex utility installed in your system.

* host-bison should be in HOST_WINE_DEPENDENCIES, for the same reason.

* With those issues fixed, the build still doesn't work, I get a "winebuild: cannot find suitable name lister" message. More log below:

../../../host-wine-1.6.2/tools/winegcc/winegcc -b i586-buildroot-linux-gnu -B../../../host-wine-1.6.2/tools/winebuild --sysroot=../.. -fasynchronous-unwind-tables -shared ./advapi32.spec advapi.o cred.o crypt.o crypt_arc4.o crypt_des.o crypt_lmhash.o crypt_md4.o crypt_md5.o crypt_sha.o eventlog.o lsa.o registry.o security.o service.o svcctl_c.o version.res -o advapi32.dll.so -lrpcrt4 -Wb,-drpcrt4 ../../libs/port/libwine_port.a
../../../host-wine-1.6.2/tools/winegcc/winegcc -b i586-buildroot-linux-gnu -B../../../host-wine-1.6.2/tools/winebuild --sysroot=../.. -fasynchronous-unwind-tables -shared ./advapi32.spec advapi.o cred.o crypt.o crypt_arc4.o crypt_des.o crypt_lmhash.o crypt_md4.o crypt_md5.o crypt_sha.o eventlog.o lsa.o registry.o security.o service.o svcctl_c.o version.res -o advapi32.dll.fake -lrpcrt4 -Wb,-drpcrt4 ../../libs/port/libwine_port.a
winebuild: cannot find suitable name lister
winegcc: ../../../host-wine-1.6.2/tools/winebuild/winebuild failed make[3]: *** [advapi32.dll.so] Error 2
make[2]: *** [dlls/advapi32] Error 2

../../../host-wine-1.6.2/tools/winegcc/winegcc -b i586-buildroot-linux-gnu  -B../../../host-wine-1.6.2/tools/winebuild --sysroot=../.. -fasynchronous-unwind-tables -shared ./actxprxy.spec usrmarshal.o   actxprxy_activscp_p.o actxprxy_comcat_p.o actxprxy_docobj_p.o actxprxy_hlink_p.o actxprxy_htiface_p.o actxprxy_htiframe_p.o actxprxy_objsafe_p.o actxprxy_ocmm_p.o actxprxy_servprov_p.o actxprxy_shldisp_p.o actxprxy_shobjidl_p.o actxprxy_urlhist_p.o  actxprxy_activscp_r.res actxprxy_comcat_r.res actxprxy_docobj_r.res actxprxy_hlink_r.res actxprxy_htiface_r.res actxprxy_htiframe_r.res actxprxy_objsafe_r.res actxprxy_ocmm_r.res actxprxy_servprov_r.res actxprxy_shldisp_r.res actxprxy_shobjidl_r.res actxprxy_urlhist_r.res    dlldata.o  -o actxprxy.dll.so  -luuid -loleaut32 -lole32 -lrpcrt4  ../../libs/port/libwine_port.a
../../../host-wine-1.6.2/tools/winegcc/winegcc -b i586-buildroot-linux-gnu  -B../../../host-wine-1.6.2/tools/winebuild --sysroot=../.. -fasynchronous-unwind-tables -shared ./actxprxy.spec usrmarshal.o   actxprxy_activscp_p.o actxprxy_comcat_p.o actxprxy_docobj_p.o actxprxy_hlink_p.o actxprxy_htiface_p.o actxprxy_htiframe_p.o actxprxy_objsafe_p.o actxprxy_ocmm_p.o actxprxy_servprov_p.o actxprxy_shldisp_p.o actxprxy_shobjidl_p.o actxprxy_urlhist_p.o  actxprxy_activscp_r.res actxprxy_comcat_r.res actxprxy_docobj_r.res actxprxy_hlink_r.res actxprxy_htiface_r.res actxprxy_htiframe_r.res actxprxy_objsafe_r.res actxprxy_ocmm_r.res actxprxy_servprov_r.res actxprxy_shldisp_r.res actxprxy_shobjidl_r.res actxprxy_urlhist_r.res    dlldata.o  -o actxprxy.dll.fake  -luuid -loleaut32 -lole32 -lrpcrt4  ../../libs/port/libwine_port.a

winebuild: cannot find suitable name lister
winegcc: ../../../host-wine-1.6.2/tools/winebuild/winebuild failed make[3]: *** [actxprxy.dll.so] Error 2
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [dlls/actxprxy] Error 2
make[1]: *** [/home/test/outputs/wine/build/wine-1.6.2/.stamp_built] Error 2
make: *** [_all] Error 2

Best regards,

Thomas Petazzoni

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com